How much are data structures and algorithms used when working as a software developer?

How much are data structures and algorithms used when working as a software developer?

The usual answers to this question are either ‘All the time’ or ‘Never’.

My thoughts on this have changed over the span of 7 years.

Intern / Trainee:

They asked me to use a cache!

JavaScript sucks at this kind of stuff. I will use C++ with Knuth’s algorithm of dancing links to speed it up. The datatype will be integers, so maybe I can use Maxwell’s equations to…

My answer then: They are used all the time! Every millisecond counts!

Fresher:

Hmm, I need to read the codebase they have. Maybe I could use some algorithm here to speed up the cache. No…the idea is too rigidly based on the datatype. Some other day perhaps.

My answer then: They are used, but only by the senior developers. They write the infra code. I can't find the time between bug fixes and feature requests.

Second Year:

My cache has a bug. And a memory leak to boot. Let’s copy paste this code from StackOverflow. It has 200 upvotes, so it must be perfect. Better meet that product manager now.

My answer then:?No one uses algorithms except research guys or very senior developers. They probably pick up the code from elsewhere anyway.

Now:

We need a cache. It should be extensible. I’ll take advice from my colleagues on how to make it easily useable and scalable. A custom expiry algorithm here will be perfect.

My answer now: If necessary,?I’ll write the algorithm myself.

Apart from the above, we use algorithms and data structures to understand how systems work. Have a look at?Consistent hashing?and?NoSQL Databases. You need a strong base of algorithms to ever design something like that.

What describes our growth as software engineers is:?The more senior we get, the more relevant algorithms become.

Successful products are difficult to manage, and those problems often require advanced knowledge.

If you are preparing for system design interviews, here is a video course with 10 detailed designs: InterviewReady.

Have a great day!

Shubham J.

Passionate Technologist| Driving Real-Time Tech Solutions in Retail- Sourcing

3 年

Gaurav Sen this is nice question you asked. I think people do not use DSA while implementation actual solution. They just study or solve problem for cracking interviews. Once they landed in job they use basic programming.

回复
vinayak sharma

Senior Software Engineer @Pratishthan Software Ventures Pvt. Ltd | Finacle Payment | Backend Engineer | JavaScript, Node, Linux, DevOps

3 年

Love this

回复
Prof Maruf Islam PhD

NMF Founder and CEO, University Teaching, Int'l Development, SDGs; Focusing: Climate Action, Gender Equality, Environment, Good Health, Quality Education, and Well-being for PWD & MH; ex UN (FAO and WFP), and ex CARE USA

3 年

Gaurav Sen, all the best form Naifa Maruf Foundation

回复
Shubham Kumar

Scaling Tech @ Limechat(YC W21)

3 年

Given a laptop with the internet, I can write, understand any algorithm, data structure, I can solve any problem that is there in the system that requires some algorithm to be used, what I cannot do is "solve an algorithm trivia, where imaginary problems are designed and then judgement is made whether you are qualified for the job or not".

要查看或添加评论,请登录

Gaurav Sen的更多文章

  • The cost of non-boarding

    The cost of non-boarding

    2015: None of our interns make it to full-time. Interns work with us for two months.

    3 条评论
  • Habit forming: How thoughts are subtle building blocks for behavior

    Habit forming: How thoughts are subtle building blocks for behavior

    Everyone talks about building good habits. But few talk about how easy it is to slip into bad habits.

    7 条评论
  • 75 years of India: Freedom and Opportunity

    75 years of India: Freedom and Opportunity

    1942, East Pakistan. My grandfather, Debesh Chandra Sarkar, is waiting with his family at the India - Pakistan Border.

    25 条评论
  • Start a YouTube channel - Educational Content Creation

    Start a YouTube channel - Educational Content Creation

    Here are some tips on how to build an Educational YouTube Channel…

    7 条评论
  • Necessary Evil? Misconceptions about Sales and Marketing.

    Necessary Evil? Misconceptions about Sales and Marketing.

    What is marketing? Marketing Misconceptions: It's about brand-building. It's about visibility.

    2 条评论
  • A Pragmatic Guide to Start Up

    A Pragmatic Guide to Start Up

    Are you looking to startup? I often hear aspiring entrepreneurs say the following: It's now or never. It's not about…

    16 条评论
  • Moving from coding to engineering: Five famous misconceptions in software engineering

    Moving from coding to engineering: Five famous misconceptions in software engineering

    This blog lists some of the common myths I harboured when starting my career. The lessons listed here are my summary of…

    14 条评论
  • Game Playing AI

    Game Playing AI

    This blog explains how I built a chess engine. You can find the source code here.

    33 条评论
  • Design Reviews: STARTED!

    Design Reviews: STARTED!

    Would you like to get your architecture design reviewed? ?? Problem Statement: Design a live video broadcasting system…

    14 条评论
  • Excitement > 9000

    Excitement > 9000

    My last intra-college chess tournament: Everyone believed I would win, and I let it get to my head. Before a match, I…

    56 条评论

社区洞察

其他会员也浏览了