Hacker News new | ask | show | jobs
by at-fates-hands 5028 days ago
I think the problem is a lot of people jump in, start coding and then never go back and learn about the nuances of a language.

Case in point was myself when I was learning Javascript. Sure, I could get the JS to do what I wanted, but it was clunky, used a lot of memory and was slow. Fast forward a few years and I've gone back and read Crockford's books several times, and with more studying, I've gotten much better at writing JS. I now try and make my JS as lean and as fast as possible. It's a totally different approach then when I started.

The problem is thinking once you know how to do something, you're done. Like a friend once told me, "You don't learn to be a programmer, you learn to be a student of the language you choose."

4 comments

This goes hand-in-hand with people writing lots of code (especially when first starting out) and not reading much.

There seems to be a huge lack of people simply reading code to learn from it, rather than poring through dozens of recommended "Learn to Program in X in 7 Days!". A novelist probably reads more than they write; the same is rarely the case for programers (at least in my experience, especially in the case of people who are less pedantic than others).

You make some valid points.

However, had you not taken the road you did, the material you read much later on probably wouldn't have made much sense and probably could have made you turn away from it all right at the start, right?

You get excited when you see results right away. Once you do enough things that begin to make you wonder, "Gee, there's gotta be a way to do this faster or more efficiently." When your curiosity drives you to search for answers is when you delve much deeper into the nuances and the grit of a language that becomes important for scale.

You're right, there's always some retrospective bias, but I'll never get back those days of reading about PHP, since reading Python accomplished the same and actually was much nicer for a beginner. The truth is, your MVP will evolve and will require you to learn things, new languages and new technologies. The fun is never over. For me it's continuing and im so glad of that.
Well put. I've been programming professionally for 8 years (and as a student for another 8 years prior--HP48G RPN represent!). And to this day, I find myself regularly attracted to articles, books, and blog posts about "basic" lower-division CS topics: principles of object-oriented design, language design, patterns, compilers, etc. It's the same old stuff, but reading it is more enriching and insightful the more real-world programming experience you have.
yep. When I just started I struggled through GoF's Design Patterns and even sorta tricked myself into believing I understood it. Well, I didn't. At all. 5 years later though it was one of the most insightful and useful reads ever.
I agree that learning the nuances of languages is important, but to demand this aspect of learning to someone who is just beginning to code is actually harmful in my opinion.

As students of computer science, we have strong tendency to learn things bottom-up. We take care in learning the fundamentals before applying theories in real work. This is not a bad thing. Better quality codes are shipped and become more maintanable.

But for someone who is just starting out, the bottom-up approach becomes an insurmountable obstacle. As a result, many give up too soon and never end up enjoying the joy of creating real working applications.

Look back to when we first started to code. I wrote some bad BASIC code in high school abusing GOTO and GOSUB everywhere I could. I knew nothing about programming language paradigms or memeory management, but I had a lot of fun coding without reading any book on CS.