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

IMHO there are two aspects.

Technical:

Read a lot of new material: articles, books, source code. The more it is different from what you already know the better. Get as diverse a coverage as possible. Same goes for programming languages. A good starting point is the book "Seven languages in seven weeks" because it covers a broad spectrum of language types.

But much more important than reading is doing: write a lot of code. Do the exercises in books you read, try out what you see in examples/articles/source code. Change things just to see what happens etc. Also lots of projects (from the tiny to the large) to put what you're learning to the test (and then make changes to your understanding based on trying things out). Contributing to open source projects isn't necessary, but definitely helps because you will learn a lot about how other people work and also get to take part in a much larger project than you would do on your own. There is unfortunately no shortcut or cheat to get out of actually doing stuff. No matter how much you read, you can't become great without writing a lot of code too.

The second aspect is do things that help you be an stay as sharp as possible:

Get a lot of sleep. Get plenty of exercise. Get fresh air. Make sure you have a decent diet. I'd recommend specifically dedicating some of that 72 hour budget to getting more sleep and exercise. Also, when trying to solve tough problems, go outside to mull them over. Or sleep on it. Lots of downtime helps your brain make sense of things (I'm a big fan of "Hammock Driven Development"). Find ways to deal with stress too. Short term stress might help focus, but long term I find it kills concentration and problem solving ability.

Seriously though, the technical aspect is important, but don't neglect the health aspect as it really does make a huge difference in my opinion.



Great post. I really need to exercise. I do take walks though and I find that really helps. I think a lot of this boils down to knowing yourself, and that takes time!

For example, I've found that I skip around a lot, and I that's ok with me because I learn a LOT by doing that. I've found that if I stick to one thing longer than I'm able to stay interested, it is counterproductive. So I try to mix it. I read, I code, I explore, etc. As long as I feel internally that I'm making progress, I'm happy and I continue to love my work and love programming.

If anything by doing this I've found that I'm impatient and I want to learn more. I feel like my brain expands when I learn more about programming and I love that feeling.

Right now I'm working on C++ and sometimes I feel discouraged, but then I'll switch pace and - for example - write some code rather than read about how incompetent I am, and then I feel empowered and really want to read more.

So for me, a lot of it comes down to knowing yourself and working that to your advantage. And right now, I know that my health suffers due to my love for programming + all my other responsibilities. And so I'll work on that next.

Once again, nice post :)


Thanks for your feedback.

Regarding reading, I find there's simply too much to read to just leave it to chance what to read. I want to strike a balance between reading the best stuff on the fundamentals while at the same time keeping up with recent trends. Whenever I start following too many blogs or check in too frequently to link aggregators such as HN, I find that my reading becomes too shallow and my attention span just gets ruined. What I want to do is find the best fundamental stuff that is still relevant, and keep reading stuff that is slightly above my current skill level. At the same time I want to read the most recent trends that are more than just indulgance in buzzwords or every single new framework or whatever.

I also need to find a way to strike a balance between reading and coding. Maybe doing the exercises in the books is a good thing. But I also want to try it in side projects like you said. I just don't want to get stuck in side projects with needless detail that doesn't really move me forward as a programmer.




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

Search: