Take the 2-minute tour ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free, no registration required.

I am a junior developer at my second working experience, the first one using PHP with WordPress and currently on Groovy on Grails. I like coding, I attend meetup to discuss technology etc but I still did not understand how to become a real professional with the "know how" attitude.

I read Clean Coder, the author advises to spend 20 hours per week of my spare time to learn new technologies and to keep myself up to date. I do not find this realistic, if you want to have a bit of a social life, and I also noticed that learning at work, at least in the places where I worked, is not ideal. No support from seniors for new projects, no pair programming and code reviews, no company trainings, one hour a week tech meetings where seniors walk away after a bit because they already know the topic discussed and so on. Sometimes is quite hard to keep the motivation...

My questions are:

  1. Is our industry supposed to be like this? Is there real team working in the sense of sharing knowledge and help juniors to get up to speed?

  2. Are we supposed to learn new technologies or technology features just in our spare time?Clean Coder says football players do not train during official matches and our working hours are like official matches, we should just perform and learn in other moments. Is it really like this?

  3. How can I improve my skills with no support? Is it enough to read books and try out the exercises and perhaps some katas? In almost 5 month of Groovy on Grails experience at work, I have never had the opportunity to create anything from scratch, just worked on existing issues where it was even really difficult to get the domain knowledge from senior devs.

share|improve this question

closed as off-topic by gnat, GlenH7, MichaelT, Kilian Foth, Robert Harvey Nov 6 '13 at 0:16

This question appears to be off-topic. The users who voted to close gave this specific reason:

  • "Questions seeking career or education advice are off topic on Programmers. They are only meaningful to the asker and do not generate lasting value for the broader programming community. Furthermore, in most cases, any answer is going to be a subjective opinion that may not take into account all the nuances of a (your) particular circumstance." – GlenH7, MichaelT, Kilian Foth, Robert Harvey
If this question can be reworded to fit the rules in the help center, please edit the question.

Social life? What's that? –  Yannis Nov 3 '13 at 16:25
Re 2, football players aren't paid per match and training certainly isn't something they only do in their spare time. –  dan_waterworth Nov 3 '13 at 16:41

1 Answer 1

Is there real team working in the sense of sharing knowledge and help juniors to get up to speed?

Most places have some help for all programmers, juniors especially. Places that do not have even informal training are sweatshop sort of places that don't care if you advance or even do things well... just if you create billable hours.

Are we supposed to learn new technologies or technology features just in our spare time?

Not just in your spare time, but yes - good programmers spend their spare time learning new things.

Your workplace might provide time and training to advance in skills directly applicable to your job (learning C# 4.0 if you're using 3.5 in production). They'll rarely provide training on new things. If you think you'll spend your entire ~40 year career in one technology track, I pity you.

How can I improve my skills with no support?


I cannot say it strongly enough, the only way you improve at programming is to program. Make something from scratch. See how it sucks. Make another one that sucks less. Repeat, repeat, repeat.

And the key thing to note is that no employer will provide you with the opportunity to iterate and experiment so freely on creating programs. 20 hours a week might be optimistic, but you'll need to spend some personal time to be a good programmer.

share|improve this answer

Not the answer you're looking for? Browse other questions tagged or ask your own question.