Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

I'm surprised that people disagreed with my C recommendation (although, note that I did say Python or Ruby if you want to get something done quickly). Learning C isn't really about learning C, it's about learning how the computer actually does things (aka pointers, memory management, etc.). Knowing C lets you understand concepts in higher level languages easier. For example, "pass by reference" is easy to understand once you have passed around some pointers. It helps you understand what the garbage collector is doing, and why it's doing it. It helps explain why even in managed languages sometimes you need to "free()" something (an example is bitmaps in C#).

Would you rather start programming on the surface (not knowing what is happening underneath) or would you rather start by learning the hard stuff underneath? I, personally, would rather know what is happening underneath. Is there an argument for learning the more surface stuff first? Maybe I'm off nuts and have a slanted view because I learned Java, Scheme and then C.



Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: