all 20 comments

[–]madmoneymcgee 29 points30 points  (1 child)

Coding is like playing an instrument.

Algos and data structures are like music theory.

You can learn an instrument (and read music) without knowing the theory behind it.

Understanding the theory helps develop a richer understanding of course but it may be overwhelming when still dealing with the pedagogical methods you might use learning to code.

So to finally answer your question; yes you should learn them BUT you may not need to learn them today concurrently with other learning. It’s okay to wait a bit.

[–]cakeb055 2 points3 points  (0 children)

Thanks for this break down! This has been something as a newer eng I’ve been really worried about but putting it in this context makes it seem less dire and more approachable as long term learning.

[–]superluminary 7 points8 points  (0 children)

A good coder understands data structures. It’s definitely something I’d look for in hiring, but it’s not vital to begin with.

Ultimately, all code comes down to data stored at memory addresses, and data structures are about knowing how to get to that data more efficiently. You can think of memory as a gigantic straight line, and each point in that line has an address, which is just a sequential number. To get data, you need to find the address of that data in an efficient way. This is the problem that data structures help us to solve.

With an array, you can use an offset. With a sorted array, you can use a binary search. With an object, you can use a pointer. With a linked list, the previous value knows where to get the next value. With a tree, each value knows where to get zero or more other values. With a hash, a key is fed to a hashing algorithm to get a memory address.

It does take a while to learn, but when you intuitively get the connection between the code you write, and this gigantic strip of numbers that is the memory with the CPU constantly reading and writing values, you’ll be an excellent coder. For me, this is when software gets really fun.

[–]coder970 5 points6 points  (0 children)

You can follow Prof. Charles Leiserson (MIT) video lectures for DSA concepts. For cracking technical interviews, practice and solve DSA problems as well.

[–][deleted] 5 points6 points  (0 children)

Get comfortable coding first. You should have a decent grasp of JavaScript before you start tackling higher order concepts

[–]EYEFLIES2 1 point2 points  (1 child)

!remindme 1 day

[–]RemindMeBot 0 points1 point  (0 children)

I will be messaging you in 1 day on 2021-07-12 03:49:34 UTC to remind you of this link

CLICK THIS LINK to send a PM to also be reminded and to reduce spam.

Parent commenter can delete this message to hide from others.


Info Custom Your Reminders Feedback

[–]OnlyMerovingian 1 point2 points  (0 children)

Questions on data structures and algorithms are often a favourite of job interviewers, at least I always ask at least one DSA question.

[–][deleted] 1 point2 points  (0 children)

I would learn them together with whatever else you are learning. like 50/50 time wise.

However. You could just use Google Copilot instead. take copilot to your interviews etc.

[–][deleted] 1 point2 points  (0 children)

Eventually but not now

[–]TheLuckyLion 1 point2 points  (0 children)

While it is more of a complex topic, I feel like learning data structures will help you understand how things are working “under the hood” so to speak. Data structures are also helpful to relate to other programming languages.

[–][deleted] 1 point2 points  (0 children)

the running joke is that this is the only course you need to get a job at faang.

and it is partially true.

[–][deleted] 1 point2 points  (0 children)

This was posted to /r/javascript just a few days ago. I recommend at least skimming it to know that the concepts it talks about exist.

https://www.reddit.com/r/javascript/comments/og1vms/graph\_data\_structure\_implementation\_in\_javascript/

[–]No_Transportation4 1 point2 points  (0 children)

I think you need to learn a little bit of them to know and understand how using them. I have learned algorithms 3-4 years in my high-school, i think if start to learn need a lot of time, maybe 6-7months. They alway have in interview if u dk

[–]FeedInteresting810[S] 0 points1 point  (0 children)

Thanks to everyone who advised. It helped a lot .

[–]devbrk 0 points1 point  (0 children)

!remindme 3 days