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

> A lot of students struggle with these ideas because they can't match the naive model to reality and so it's a struggle to understand the purpose of it.

Truer words never said. I'm one of those data points.

Luckily I had the fortune of having a science teacher who identified this and did teach me the basics of the underlying theories in high school. My mind rejects "rules" and wants "reasons." While everyone else was learning about Newtonian gravity, I was grasping the basics of special relativity. While everyone else was learning the "rules of bonds" in chemistry I was learning the basics of QCD. From these base theories I was able to remember via back-tracking all the way back up to the "rules" that I had learnt along with the rest.

It's about being a student versus being a parrot. Wanting insight into the underlying complexities is being a student while regurgitating information in an exam is being a parrot.

I started off with VICBASIC at 8, then QBASIC at 10. I only started C# when I was 16 or 17. Even then C# has a lot of abstractions away from the hardware. The only time I ever truly learnt what was going on is when I was thrown into the deep end: a customer was having problems and I had a memory dump, WINDBG and SOS. Only recently have I been taking the time to actually learn C/++.

Now that I am no longer "parroting" code I am starting to identify parroted code. No care is given to memory usage "because the GC will deal with it." Mutexs are sprinkled everywhere "because that's how you deal with concurrency."

At some point every developer needs to be thrown into the deep end. I would say that learning Python as your first language is fine.

However, if you never take the time to learn the nuances of how Python works, you are a dangerously ignorant.



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

Search: