|
|
|
|
|
by biston7
2953 days ago
|
|
You should learn C. Most current engineers don't, and therefore the fundamentals of things like memory allocation, data types, call stacks, etc. remain a mystery to them. I have one other comment to make. In my opinion, being a strong programmer is mostly a "knack," meaning it's not a particularly teachable skill. Some people are just amazingly good at it. If you are, great. If not, I suggest acknowledging that and fashioning a career that doesn't rely primarily on programming skills. |
|
> fundamentals of things like memory allocation, data types, call stacks, etc. remain a mystery to them.
I don't think C is especially good at teaching these.
Unless you roll your own malloc, the big difference in memory allocation in C vs. say, Java is that C requires the programmer free memory after allocation on the heap. This is more tedious than difficult.
Data types exist in other languages. You can unpack raw bytes of data using Java and simulate the behavior or unions.
You'll have to explain how call stacks are more exposed in C. Best I can think is calling conventions, but that's more the domain of compilers than language. Buffer overflow prevention, maybe (but again, I think that's more tedium to deal with).
C is great because it's a small language. But I don't think it's an especially educational language.