When I started working a programmer, I learned lots at first, on the job. Although Ive been given more responsibility, which is good in a way, it is mostly in the form of increased workload. I havent had much time or energy left to learn anything much new day to day. Sometimes I have 1 hr of time and energy left at the end of the day to keep up, but I mostly just produce a lot of the same type of code. It does make sense to spend working hrs producing, since it’s the reason why a programmer is trained and hired. However, I am concerned about if Im falling behind as a programmer, by doing what I was hired for, even if not learning much new. Is this standard for most programmers?
3
In my opinion my job title does not say ‘coding monkey’, therefore I think it is ok to improve everywhere, not just coding. Furthermore I had a talk with the head of my department and I told him that I do read articles during work time and he was actually glad about that. So here is what I do:
First of all, start your day with reading some new stuff, articles and so on. I do that in the morning, because as you I am too exhausted in the evening. Evaluate what you read and think about using it for your job.
Be a catalyst for change. Review your daily work and check which of your work-steps could be optimized. Some months ago I realized my team had problems with Acceptance Testing (late, brittle etc). Therefore I started to inform myself about that topic and used that knowledge to tackle these problems.
Improve your coding skills by doing pair programming and code reviews. Talk to your superior, maybe it is ok to make a coding kata once/twice a month with your colleagues.
Try to improve other skills. Your presentation skills by creating some form of a knowledge group within your company; your coaching skills by taking care of new employees or an intern.
…Contrary to what you might believe, merely doing your job every day
doesn’t qualify as real practice. Going to meetings isn’t practising
your people skills, and replying to mail isn’t practising your
typing…
I really recommend this article as it summarizes how to deal with being a programmer and further education.
As Robert J. already suggested take a look at ‘The Pragmatic Programmer’, but also take a look at ‘The Passionate Programmer’.
I suggest you should extend yourself instead of becoming a good programmer. Programmers code to solve problems and reduce other’s workload. However, problems and user’s request are endless so it is not just programming could solve. Let’s see how a great programmer could solve its workload, becomes the best programmer and earns 250,000 a year. So a good project management and social skill could finish the job much better, thats why a project manager earns more than a programmer usually. Then you should have more free time to spend on researching technique and reviewing other’s code, which could really improve your knowledge and stay ahead of other programmers.
Have you read ‘The Pragmatic Programmer’? It’s quite well known and always a refreshing read.
It contains lots of lateral ways of looking at programming as a pursuit and maybe you could incorporate some of the many suggestions and ways of doing things in to your existing flow.
I haven’t read it in years but it could even contain the answer to this specifc question.
It’d definitely be worth the time to squeeze in reading this if you haven’t already.