In the workplace, the major outcry that I hear from fellow developers is “We have been doing this from the last 1 year, there is no learning”.
Now I believe that a large part of the responsibility for learning should be in your hands and the following can help with learning on the Job:
Know what the management wants
It is great if you get to join an organization which has a real focus on learning and improving, but unfortunately not all organizations are like that. If you are someone, for whom learning matters a lot, try to gauge this aspect before you even join there.
Now how can you do it? Ask them directly, check their social media updates, are they contributing to open source? are they actively supporting or participating in meetup/conferences? There might be many other ways, but its always good to know what the top leadership has focus on.
But if you have already joined an organization which doesn’t have “skill development for employees” on their agenda, why not you be the crusader? Talk to the management, tell them the ROI(Return on Investment), they might just be ignorant. It can be a new start for the organization and a lot of your colleagues can be thanking you.
Look at different kind of learning opportunities
Your friend’s organization might have hired a top notch trainer for guiding their team and now you are thinking if only your organization did something similar. Instead, of getting stuck with that thought, start looking at various other ways the company might support the same training but through a different medium. Maybe, the organization that you are working with has budget constraints to hire a trainer/consultant, but these days there are plenty of other options available. Research on those options and discuss with management, you might find an online course, which costs a fraction of that in-person training. Maybe online classes. Some meetups see experts giving hands on sessions. Suggest company to buy such courses, support commute or food, for going to meetups.
Most probably, you can create a win-win for your “learning on the job” agenda.
Learning on the Job
Even apart from formal training, courses, meetups there are other way to continuously learn and be better on the job. Try to find like minded people in the workplace. If work permits, do group coding with them. Everyone has a different skill set, maybe they can teach you something about Unit Testing and you can tell them about that great CSS animation trick you know of. Create a small learning group within the organization, share your knowledge within the group. Share your code with them, let them review it. The only condition here would be to find people who are as passionate as you about learning or are inspired enough by you. 🙂
Help others to help youself
This is specially useful, if unfortunately you do not find anyone in the workplace to peer code or get code reviewed. You can learn by helping colleagues. I personally have learned a lot by helping others, it got me exposed to various different kinds of problems and if they were working on a different technology got some glimpse of that as well. Another thing you can do is if you learn something share it with your colleagues. Let’s say you do a course or you read a book, share a summary of it with them. It will help you retain your learning better, at the same time your colleagues will also get to learn something. You can also use your daily stand-ups, as well, as a medium for sharing ideas and thoughts(this might not be a good idea for all teams/projects)
Increase your exposure
This is something I really need to work on better. Along with your workplace make sure that you expose yourself to the world outside of it as well. Some ways to do this would be to go to conferences, be part on online forums, go to meetups. I do only 10% of what I wish of doing. I RSVP to meetups then don’t turn up, something or the other comes along(excuses). Doing all this will help you in meeting a lot a great people. People who can help you to be better, you might even find a mentor among the crowd.
That’s all that I can think of right now, will update the post if I get anymore ideas to improve and be a better programmer while in a job.