One of the things that I recognise is that my line of work is very well paid compared to many – I may have to put in a lot of my own time keeping my skills current and developing knowledge in new areas, but in return I get satisfying work with good financial rewards. In line with expectations on Lawyers and the like, it is not unreasonable to think that at least the better-paid IT professionals should also look to do an element of pro-bono work to contribute back to the community.
While I am willing to help someone set up their computer, replace hardware, reinstall an operating system, etc, that’s not really what I do day to day, it’s just something I’ve learned along the way. However, where a friend helps me with some decorating or transport or the like, I’ll pay them but will not expect payment for helping fix their computer, it’s part of how I can give a little back. Much as there are geek T-shirts announcing they will not fix your computer, I think many of us can recognise that we have specialist knowledge and can help others who would struggle, and that by virtue of having a lucrative career we have a responsibility to give something back. If you want to donate to charity, then that’s naturally fine with me, but if you’re not able or willing to do that, then providing some of your spare time isn’t necessarily that big a request.
That’s the most commonly identified demand for IT experience. Most developers will not expect to write a complete website for a charity without being paid – if nothing else, the likelihood of getting ongoing time demands to support the site may prove problematic. Simpler requirements are more feasible, though – I’ve set up a club site or 2, but would generally stick to just a few pages, or help set up a basic CMS or e-commerce solution so they can then work on the site themselves. The advantage of this kind of work is that you can potentially take the opportunity to get experience with technologies or areas in which you’re less experienced, and can generally get permission to point a potential client at such work, so this kind of work has some potential rewards anyway.
However, perhaps the most important aspect where IT professionals can help their community is by helping promote best practices, awareness and mentoring. The first 2 involve trying to ensure that you’re doing your bit to improve the quality of code, offering advice on best practices, discussing and shaping standards, and promoting awareness of professional bodies like BCS with their codes of conduct and commitment to professionalism in IT. The mentoring side is rather separate, but given that there are ongoing calls for more people coming into the industry and a shortage of skills holding back companies, mentoring can help those with the requisite knowledge get those key first steps and positive experiences within the industry in order to build their own positive career.
My brother likes it when he has the opportunity to hire someone with little commercial experience and provide solid on the job mentoring to instill a range of best practices on top of the basic development skills already learned, to ensure each new team member quickly becomes a productive team member capable of working efficiently in a team. For myself, as a contractor I have far less opportunity for mentoring inexperienced team members currently, but am always happy to share knowledge with co-workers and provide mentoring if appropriate. Instead, I will happily invest as many hours as required into discussing options and plans for people directed my way to gain knowledge about programming and to get their first steps in the field. The first thing I can offer suggestions on is CV structure – as a contractor my CV has probably been reviewed more often than most people’s, and has been continually revised. On an IT note, I’ve put massive amounts of time into continuing professional development, so I (like most good programmers) know many resources for learning, including good quality free online courses, and have a feel for the technologies that are in demand.
Any experienced programmer would be in a position to offer some guidance on how we specialise in particular areas – and not to worry about learning everything in the subject domain, as it’s just not possible. We can point novices at Stack Overflow and other invaluable resources. We can provide some tips about how to approach programming (e.g. save early, test often, because it’s so much easier finding that bug in a few lines of code than a few hundred… and reassure them that even after years in the field logic mistakes are a common occurrence, the skill comes in spotting them earlier and more reliably and not letting them out into the wild). We can provide some ideas for projects to work on, and look over some code to suggest ways in which it could be improved. And when they get stuck in what they’re trying to learn we can provide some suggestions on how to resolve their current problem. It may even be refreshing to find that you have someone who is willing to adjust the way they write things and take on board the advice, when most of us have experience working with at least some developers who have lax development practices and no willingness to improve.
Young adults have much higher levels of unemployment than older working-age adults, and getting that initial step into a field can be daunting. A surprising proportion of graduates who are working 6 months after graduation are not working in their field of study. By providing mentoring and support of those you know who are keen to get into the field, we can help people in a challenging moment in their lives, and help them build a satisfying and rewarding career. A few hours of our time to help a friend (or, more often, a friend of a friend that you’ve never met before, in my experience) isn’t really that much, and I think most of us are pretty happy to talk about technology and IT at the drop of a hat anyway. It’s unlikely to get any reward other than personal satisfaction at having done something worthwhile, but that’s kind of the point. Pro Bono work is about giving something back, not about doing something in the hope of getting further rewards for yourself. And mentoring (rather than general IT support) allows our specialist knowledge to be passed on and shared within our community, to hopefully improve the availability of such knowledge and capability to more people indirectly as well. If they ask what they can do in return, the best answer seems to me to ‘pay it forward’ – rather than trying to pay back the help you’ve received, agree to make similar efforts to help someone else in need, so someone else deserving help can get the support they need.