I’ve been lucky enough to leverage a non-technical role in a tech company to help further my study of programming. I wanted to offer actionable tips for how others working around tech can use the resources at their work to further their own studies.
Find an information rich environment
If you’re already working in an environment that uses the technologies you’re looking to learn, you’re going to be in a great place to access resources and support, even if your role doesn’t (yet) involve working with them. If you’re not currently in a workplace that interacts with the technologies you’re trying to learn, you may be better served by looking for support in community or educational groups, meet ups or looking for individuals working with the tech you’re interested in who might be able help. Or you might want to consider starting with the technologies available at work. Companies with training or internship programs may have more systems in place to offer on the job support for learning.
Look for existing programs and resources
Many larger companies may have programs in place to support professional development. These may include tuition assistance for courses, help paying for workshops or training or formal mentorship pairings. If your company is large enough to have a HR department, this should be your first stop. Be prepared to present a compelling business reason that they should offer you support.
Smaller companies may also have policies on supporting professional or personal development. Check your contract and handbook as well as asking around to see if you can find existing programs that fit your needs. If you can’t find anything currently in place and have a compelling business reason for support, ask a member of HR or management if they’re interested in talking about ways they could help.
Companies without formal policies to help support your learning may still have resources to help you as you learn to program. It’s not uncommon to find libraries of technical books available on development teams. Check to see if there is software, hardware or learning materials that you might be able to access.
Look for sources of informal support or mentorship
One of the best things to source through your workspace is the support and advice of people with professional experience in your subject. If you have colleagues who are willing to help out, start looking to them for help. These coworkers don’t have to be expereienced programmers to offer great support. Placement students, interns, new hires and anyone else who might also be try to working to better develop their own skills might be open to studying with you, as well as offering advice.
When you first start looking to coworkers for support, try to keep things casual. Asking for help with specific questions or concepts are easy ways for your coworkers to help out without the expectation of an ongoing commitment. Wait to ask for a formal mentor-mentee relationship till you’ve established a rapport with casual queries.
Have something to show your progress
Have clear goals
Before you try to involve colleagues in your learning goals, make sure you have a clear understanding of your short term and long term goals. Are you studying in order to better function in your current role, or do you dream of moving into the dev team? What projects do you want to take on to meet this goal? What do you want to get done on those projects this week?
Ask good questions
Your colleagues may be happy to help, but make sure you’re only coming to them with the questions you need answered by a real, live person. Check Stack Overflow and Google any specific problems you encounter. To get information on bigger programming concepts, work with technical books and YouTube tutorials. If none of these can answer your question, they’ll still leave you better able to ask great, well informed questions when you do have to run something past your coworkers.
Demonstrate the value of your expanding skill set
If you’re asking for support from your workplace, make sure that you’re able to show that they’re getting something back from the process. Using your new skill set in the workplace will help give you valuable real world experience in your subject area. It’ll also show those supporting you that supporting your continued studies will pay off through your ability to contribute more to the team.
Start with small and specific tasks
If you’re going to be trying to expand the scope of your current role to let you work with tasks which reinforce your developing skill set, be sure to start with small, manageable tasks before moving on to larger projects to test your programming chops. Tasks like re-writing documentation, answering technical support requests and simple bug fixes are a great way to get started handling increasingly challenging technical tasks.
Respect IP and company policies
If your work is giving you the chance to learn on the job, make sure you’re not furthering your studies at their expense. Don’t create projects that compete with their products or use their resources. If you’re not sure if your project is going to fall foul of company policy, ask someone!
Don’t source all your learning through work
It’s great to have a workplace that you’re able to find supports you as you learn to program. Just be sure that you’re not relying on them for all of your support and resources. Constant programming questions can be distracting in the workplace. Programming is also wonderfully idiosyncratic, with teams tending to develop styles unique to the team. If you want to develop flexible programming skills (and make sure you’re not taking up too much company time) try to find contacts outside of the workplace to help out, as well.
If you have any questions on or suggestions for using your workplace to learn to program, ask in the comments below or find me on Twitter.