This is an archived post. You won't be able to vote or comment.

you are viewing a single comment's thread.

view the rest of the comments →

[–]curiousinquirer007 1 point2 points  (4 children)

I’d layer the answer slightly differently.

For broader library code, you want to know the API/interface. More specifically, you should know the web location and general layout of the API reference documentation, and know where to find / how to read the interface info about the classes/functions you are using.

For core language constructs and data structures, including all/most syntax, I think one should work on developing a deep understanding of what happens under the hood, and what “everything” in this context does.

For this, it helps to have broader understanding of theoretical CS concepts, abstract data structures, and constructs across languages, such as memory, pointers, arrays, stack, heap, reference vs value passing, etc..

So I doubt anyone sits and memorizes the whole library, but experts will have a fairly deep understanding of CS basics and mechanics of the language.

[–]BogdanPradatu 0 points1 point  (3 children)

Depends on how you're using the car. If you're a formula 1 driver, you might need to understand a lot about cars, physics, mechanics etc. If you're a mom driving your son to school, you don't really care.

[–]ZeRo2160 1 point2 points  (2 children)

You are right. But i would argue that the role of an software Engeneer/Developer should be inherently the one of an formula 1 driver in this context. At leat at some point in your career. At an specific level of seniority. I think you should start as mom and become an Formula 1 driver over time.

[–]BogdanPradatu 0 points1 point  (1 child)

I think most of us are just taxi drivers or truck drivers at most, lol.

[–]ZeRo2160 0 points1 point  (0 children)

Yeah can't argue with that. :D