To improve programming skills as a programmer, he can read books, read other's code, coding at work, coding at spare time.
How to allocate the time to do such things reasonably? Writing much code , or reading books?
To improve programming skills as a programmer, he can read books, read other's code, coding at work, coding at spare time.
How to allocate the time to do such things reasonably? Writing much code , or reading books?
There's no substitute for writing code and actually putting into practice the stuff you are learning.
I think the main thing is to do coding outside of work/school, in some form or fashion, whether it be via open source projects, programming competitions, or just building apps for fun. There is no better way to improve that I've ever found that making coding your passion, and spending time on it when you're not forced to, but because you want to.
One thing I've started doing is setting weekly goals for myself. For example, my current goals are to finish reading The Pragmatic Programmer, and to become more proficient with JQuery
and advanced javascript
.
Future goals include learning F#
(functional language) and develop fun apps with it just for personal knowledge.
So I think it's good to have weekly, monthly, and yearly goals of what you want to accomplish. A wise person once said, "If you aim at nothing, you're sure to hit it". But by having written, attainable goals, you have a roadmap of where you want to go.
And the main thing is to always challenge yourself and strive for new horizons. Do things you haven't done before, it can only make you better (that's a big reason I want to learn F#
).
As far as how to allocate the time reasonably, one of the things you can do with your weekly goals is schedule time each day (or whatever is reasonable for your situation) to work on those goals. Maybe that means you have to get up earlier, or stay up later, but the point is that improvement takes effort and sometimes pain. But it will be worth it when you reap the gains from reaching those goals.
I think that amount of time to spent on activities you've mentioned above is varying for different people. Just don't waste too much time and keep developing yourself. There are some clues. Joel Spolsky wrote for example about 'fire and motion' - that mean you should allways do something.. Small steps that sum to good results. Another is 'get things done' - sometimes it is better do make something working instead of spending whole week for thinking how make it in coolest way. And last but not least, not only IT stuff will make your better programmer. Find a hobby and spent some time on fresh air. Brain needs oxygene :-) Also finding a nice girl is good way to be more responsible -> it will also make you better person and better coder :-P