Hacker News new | past | comments | ask | show | jobs | submit login

Stop, stop!

Don't learn anything new. Go build something substantial. Write a compiler, build a database, create a browser renderer, make a game engine. Build something that is not CRUD, and is over ten thousand lines of code, something that takes you years - a Forever Project. Keep at it, hone the fundamentals. Go deep, and learn to enjoy the pursuit.

Everyday you'll learn something new about how you like to think. You'll develop a voice so to speak. You may realize that language doesn't matter, or you may find a language perfect for you, maybe you'll itch to build one. Our tastes are as unique as us, there is no perfect answer, and no technology that will improve our craft magically. The only way is to write, deliberate, read, and rewrite, and keep doing it for a long time.




I have to both agree and disagree with this. Yes, the OP should build something...but I believe that for most people, they shouldn't necessarily build something so computer-science focused -- such as their own compiler, database, engine -- unless that's what they really want to do, eventually (i.e. go into computer science, or game development).

For people learning general programming...they should build something that is useful to them, in the very near future. When I had to learn Ruby on Rails for my new job, coming from PHP (and, well, a computer engineering, FWIW)...I learned Ruby quickly by using it to scrape Craigslist for apartment listings to my own CSV files for easier organization. It's a task I could already do in PHP, but now I could reap the benefits of a faster apartment search while learning a new language. As a new programmer, it's also helpful to understand what it means to build for an end user, even if that end-user is you. Even as an experienced programmer, I find it very helpful to do selfish-side-projects...because knowing what I need to have at the end of the day helps me get over the many obstacles I throw in front of myself (e.g. Am I following proper style? Should I refactor this now or later? etc. etc) that usually hinder my enjoyment of programming.


Thanks for this response. Completely agree that we need to build things that give us quick-wins. Writing a quick script that does something convenient illuminates the joy of programming like no other.

My point was of a more general nature, for those of us who want to make a long-term career out of programming, and keep getting better at it. A lot of us (myself included) get stuck re-building simple stuff in a newfangled technology every few months and mistake that for progress. If we are to ever get to a place where we have the confidence to build larger and more complex things, we have to try making them, instead of being slaves to the latest project with the most Github stars. It won't be easy, but that is the point of deliberate practice - do something that is slightly beyond our reach and slowly push the bar.


There's nothing wrong with small throwaway projects. Skimming through the article I noticed the fireworks picture. There's an idea staring you in the face. WebGL/OpenGL particles to create fireworks, or perhaps snow, water, etc.


Yeah, I tried this. IMO, if you don't have the grounding to do such a project justice, this is a good way of getting lost in the weeds and crash and burn hard once it passes your level.

There's nothing wrong with taking a few projects at a time to try and build up to where you want to be.




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

Search: