11 ms·
Your friend is probably a very good designer but not a developer in the usual sense.
by leaveyou 9y ago
Your friend is probably a very good designer but not a developer in the usual sense.
- detaro 9y agoSince linked lists are a concept you don't need in many languages, I don't think you can nowadays say someone not knowing about them is "not a developer". They are a developer without knowledge of some fundamentals, but they can be perfectly productive as a developer without that knowledge.
- sigi45 9y agoHe doesn't know what a linked list is? Srsly?
- detaro 9y agoYes, seriously. If someone learns programming with JS (or Python or ...) and has neither been interested in nor exposed through work to lower levels they can easily go years of professional work without having to deal with the concept (not meaning that they wouldn't understand it, just that it never came up). Thanks to abstraction, you can go far without really knowing what's happening below, and that has moved up the layers more and more. Where does a JS frontend developer really need to have heard of linked lists?
- leaveyou 9y agoJS and Python can't decide what's best for your problem: an array or a linked list. It's the programmer who decides these things. I'm currently working on a project started by people who apparently were completely unaware (among other intellectual obscenities) that it's not OK to return a long list of integers by concatenating them into a long string only to split and parse them again later when some subset of this list was needed. Recently, due to increased traffic, the web service kept crashing.. with 64GB of RAM. Some of these people are probably on this forum, trying to justify why "you can be productive" without knowing wtf you are actually doing.
- always_good 9y agoTo be fair, languages like Ruby and Javascript only have one sequence container in their standard lib and the difference just doesn't come up for most people most of the time. Just like how most day-to-day data for most people probably fits in array with a capacity <100. And the most common day-to-day operations are array[0] and array.append(). And even when it's thrown in your face like listOf() vs arrayOf() in Kotlin or [] vs '() in Clojure, one is the conventional default that you use most of the time anyways. That said, someone who doesn't know what a linked list may also be lacking experience with many other things that you would expect from a candidate, but it's no mystery how someone can go far without really encountering one.
- fencepost 9y agoThe reason almost any developer should have heard of linked lists is that understanding them is fairly fundamental to understanding a bunch of other useful data structures. Some of it may be a terminology problem as well - frontend devs may not have met "linked lists" but what's the difference between a doubly linked list and a straight series of nested objects where no object has more than one child?
- deleted 9y ago[deleted]
- sklivvz1971 9y agoHe clearly lacks depth if he doesn't know how JavaScript works...
- detaro 9y agoSure, the question is if that lack of depth actually matters. It certainly doesn't make a designer out of someone. What do you mean by "know how Javascript works"?
- LandR 9y agoCan't remember the last time I used a linked list at work, it was a concept I learned at uni 16 years ago and never used in the real world.
- leaveyou 9y agoAnd what data structure do you use when you have to insert and remove efficiently many items from a container ? For example when you have a big queue ?
- erikrothoff 9y agoYou use the language native array implementation until your queue gets so huge that it's actually a problem to add or remove items. Everything else is just premature optimisation. Modern web programming has the luxury of fast iteration cycles so any problem that appear at scale are easily and swiftly fixed. I'm really curious if you could point to a real world example where a custom data structure is needed, where it's not written for performance critical reasons?
- leaveyou 9y agoOh, the "premature optimization" trump card.. OK, you won. You can go write programs without knowing CS 101 now.
- hycaria 9y agoI had CS classes but in my work I do 80% front (because I enjoy it actually) and 20% back. Not using anything fancy in my work though. So how does one avoid being classified like you do ? (well you edited, your original post had Just call it "frontend dev"., but my question still stands, how can I counter the prejudices you seem to have ?)
- leaveyou 9y agoKnow what a linked list is, its advantages and drawbacks.
- erikrothoff 9y agoNo, a developer. One where the real world knowledge and experience by leaps and bounds exceeds the theoretical knowledge.
- stefano 9y agoHold on, you can't call a linked list theoretical knowledge. It's a basic data structure used in tons of real world code, including this forum. And even then, theoretical knowledge does have an impact in the real world. People don't study and research theoretical subjects because they have nothing better to do, they do it because it has real world implications. If you ignore the theory, you end up with sub-optimal software that only kinda works (who cares about studying the theory and actually verifying those pesky edge cases) and is slower than it should be (who cares about advanced data structures, just use arrays and hash tables everywhere).
- erikrothoff 9y agoYou'd be surprised to see the excellent code written by people who don't know basic data structure theory. Arrays/Objects in JavaScript, Hashes and Arrays in Ruby, Dicts and Lists in Python go all the way to fill the needs of that. At what point would you need the implementation details of any of these to write code?
- obstacle1 9y ago>At what point would you need the implementation details of any of these to write code? ...literally any time you are performing a computation on a collection of items and care even the least bit about performance? It sounds like your bar for what makes "excellent code" simply excludes performance issues completely. That's fine if you're talking about scrappy startup devs who move from MVP to MVP. But when it comes time to turn an MVP into an honest-to-goodness P, you can't totally ignore the efficiency of your code. And you can't write efficient code without understanding the basic strengths and weaknesses of the data structures your programming language implements.
- tiraralabasura 9y ago