Over my last 24 months as a fledgling frontend developer I’ve realised the importance of prioritising learning as both a way of reinforcing my love of coding and furthering my knowledge as fast as my sponge-like brain will allow.
This may not sound like a revelation, but in development, it can be easy to just focus on getting the job done. That myopia however, can come at the expense of expanding your knowledge and getting to know the community at large.
I want to outline how I came to be a developer, how I continue to make learning a priority, and how it continues to be the major contributing factor to loving what I do.
Recovering from law
I didn’t start as a developer. I graduated into a career in foreign direct investment law and set to work in a corporate law firm in Guangzhou.
For eighteen months I wrestled with the Chinese government during the day and came home from work in the evening to read books from the Five Simple Steps library or the A Book Apart series. I came to realise I was more interested in writing code (however rudimentary to start with) than I was filling out contracts and incorporation documents.
Those small guides from Five Simple Steps and A Book Apart were the perfect introduction to the varied world of frontend development. I got the chance to dabble in HTML5 and CSS3 as both were becoming standards (and avoided the table-based hell my predecessors had to suffer with) and watch Ethan Marcotte’s responsive design take to the forefront. I gradually began to ask myself the question, could I build a career on this? Could I take small projects in my spare time and move to working on large codebases full time?
After returning to the UK I was lucky enough to be introduced to Team Prime and the Money Advice Service and made the leap into frontend development, and have never looked back.
In the last twenty-four months at the Money Advice Service I’ve progressed from that initial dabbling in short guides, to learning from experienced developers. It has been an incredible experience. Looking back at that time there are three main methods that have helped me learn quickly and efficiently. These methods are:
- surround yourself with with people who are better than you;
- see your product in action; and
- meet others in the community who love what they do.
Surround yourself with people who are better than you
When I interviewed with the Money Advice Service I was told that I would be joining a team of highly experienced contractors as the only junior developer. If I was up for that challenge, I would have to prepare for a steep learning curve. When you’re changing careers, this is exactly what you want to hear. They were right, it was a steep learning curve, but being surrounded by experts helped me decipher everything from Ruby templating to basic operations.
While you can absorb a lot of useful information from books, tutorials, and conferences there is nothing like working under a mentor. If you’re lucky enough to have an entire team of people acting as mentors, you can learn at a prodigious rate.
Wherever I go next, I consider it a priority that I surround myself with people who I can actively learn from. I believe this is what has allowed me to grow quickly as a developer and continue to remain fascinated by all of the facets of development work.
See it in action
Our lead frontend developer, Alistair Duggin, was one of those people. His passion for making websites accessible is truly infectious. Website accessibility can be a difficult concept to grasp, particularly for those who might not need to use those accessibility features. I can, as a sighted user, try to simulate tabbing through elements on a page by using voiceover to swipe through a website on iOS, but I am still only ever simulating the experience.
Cognitive disability is even more difficult to simulate. During my first year at the Money Advice Service we built a baby timeline to help expectant parents plan for the first few months after their baby had been born. During the build process it was reviewed by the Digital Accessibility Centre for potential accessibility pit falls. One of their analysts, who has learning difficulties, identified a complex and confusing area of the user interface. This kind of barrier to use isn’t something you can simulate by turning on voiceover, so we followed the analysts advice, and in doing so improved the UI for all users (the design ended up being more attractive as well.)
Your frame of reference for users does not necessarily need to focus on disability. Building the recent Retirement Adviser Directory we wanted to target users approaching retirement age. As our development team has a fairly low average age this is a time of life we cannot truly simulate, and it highlighted the importance of user testing. At the Money Advice Service we have had the pleasure to work with two brilliant UX researchers, Bex Tindle and Paul Bermudez. Watching them patiently work with a number of users from different socio-economic backgrounds has helped us shape our products and opened our eyes to how different people view the tools we create.
I mention both of these examples because the second method to learning quickly and efficiently is to ‘see your product in action’, or to rephrase that, ‘to see your product being used by actual users’. Whether it is being tested by actual users (rather than the team that built it) or reviewed by users who’s abilities do not mirror your own. This is both an incredible learning experience but also incredibly eye-opening. Once you’ve seen a user struggle to understand, or use your product it gives you the passion to learn how to improve it and build it better the next time around.
Meet others who love what they do
Finally, and most recently I have discovered the joy of attending conferences and meeting people who work outside of your development team, and perhaps do not necessarily work in your language. This is the third method for learning quickly and efficiently, ‘meet others who love what they do’.
As a frontend developer my understanding of Ruby and the Ruby on Rails framework is limited, however over the past five months I have really enjoyed getting to know the Ruby developer community. They are both passionate about their language, and open and friendly to developers outside the community. Bath Ruby, a conference I wrote about previously, was brilliant. I am already looking forward to attending next year. Ruby Conference Lithuania (RubyConfLT) was similarly inspiring, and it was a pleasure to be introduced to a more international component of the community.
I also had the pleasure of hearing one of our senior developers, Ben Lovell, speak at the conference. As someone who finds public speaking rather daunting it was fascinating to see a seasoned speaker talk to a large audience on the passion he has for crafting good code and developing his career. It has even, perhaps, inspired me to think about what experiences I can draw from to talk about at conferences in the future.
It is easy to forget that as a developer, I am part of a greater community. Whether that is the community of developers who write the same language, or whether it is simply the development community as a whole. Travelling to meet-ups and conferences has really renewed my love of both frontend development, but also in learning new languages. This is the method I’d like to share: ‘meet others who love what they do’ and learn from them, leach inspiration from them and expand your understanding of what can be done with your language.
Changing careers is a pretty daunting task. Even more so when you make that jump and realise your understanding of your new career is shallow at best. However, the initial love of development that caused me to make the jump has only grown.
As a junior developer I have had the pleasure of being surrounded, and mentored, by some of the best developers in the industry. I got to see our products tested by ‘real life users’, both disabled and from different demographics, and learnt how important it is to see the product through their eyes. And finally, how eye-opening and reinvigorating it can be to attend conferences, get to know your peers outside of your specific work context, and see what other challenges those in the industry are facing.
What I love about development is that it is characterised by constant learning. While there are many effective ways to learn and develop, the three above have really helped me advance from stumbling junior to more a confident developer.
This post also appears on my website.