If we are being pedantic, yes. Eg. learning to program in "brainfuck” will teach you the real fundamentals of the Turing machines. Programming in assembly will teach you the background for any more complex paradigms in higher level languages. C will similarly teach you about memory management and data types.
But in practice, if you can understand the core abstractions and principles behind higher level constructs (loops, functions, objects and their representations), you do not need to internalize their details to a level that you can do daily work with them.
I know this is not what you were looking for, but basically, my advice is to go with whatever language you like.
I like to say that you are allowed to use anything that you have an idea of how would you implement it yourself (maybe not as optimally, and with infinite time :)). Eg, if you understand hash tables, just go ahead and use a language that has them as built-ins. That makes you a CS guy, rather than just a developer!
1 comment
[ 2.6 ms ] story [ 11.5 ms ] threadBut in practice, if you can understand the core abstractions and principles behind higher level constructs (loops, functions, objects and their representations), you do not need to internalize their details to a level that you can do daily work with them.
I know this is not what you were looking for, but basically, my advice is to go with whatever language you like.
I like to say that you are allowed to use anything that you have an idea of how would you implement it yourself (maybe not as optimally, and with infinite time :)). Eg, if you understand hash tables, just go ahead and use a language that has them as built-ins. That makes you a CS guy, rather than just a developer!