Hacker News new | ask | show | jobs
by striking 4414 days ago
To become a better programmer and not a better computer scientist:

Do your own thing. Build something you want to see built and you will learn oh so much. Programming isn't about how you implement something so much as it is for what reason. Think of something you want to see built and figure it out from there.

For example, I learned Python by trying to write an app that would take my Shazam tags and convert them to a Google Music playlist so I could more easily remember songs to listen to later.

Notice that I didn't write anything about SQLite or how slow Python's HTTP was when making the queries, because in learning Python, that wasn't important; those things were just implementation details that I only started thinking about after my application was demonstrably "slow." And more than that, I really didn't consider anything about lambda calculus and I don't know a single thing about NFAs or DFAs. I just wrote an app.

And I learned something, enough to get the job done. If you really want to learn about how to apply functional programming, learn Haskell. If you want to learn about compilers, write a compiler. You'll learn enough, because there's no way you can learn "everything" on a topic in Computer Science.

The field is much too broad, and you'll be way better off lazy-evaluating it than calculating it wholesale.

Tl;dr: If you want to be a better programmer (as opposed to being a better computer scientist) build and the knowledge will follow.

1 comments

This, a thousand times this.

Don't go straight for an open source project unless you're really into it. Honestly - debugging other people's code is hell, I hate doing it (but frequently have to). By all means dig through other people's code to work out how something is achieved, but for people starting out, bug-fixing is a bore.

Make your own damn open source project! Pick something you love that has a problem and have a bash at fixing it. An here's the best bit: you'll still get to solve bugs, lots and lots and lots of them. Some of them will be easy to solve, some will take you a week before you realise you missed out a bracket.

You have to enjoy what you do or it won't stick. And don't be fooled into thinking you like something until you actually try to build something with it.