5 CAREER PROGRESSION

The preceding chapters examined the critical technologies required for front-end development as well as some of the other tools and methodologies you might be expected to use in your career. Let’s now look at the profession itself in a little more detail.

BECOMING A FRONT-END DEVELOPER

I know self-taught front-end developers as well as those who have entered the business after completing a PhD (though not necessarily in a sphere closely aligned to computer science). We have seen that the primary personal attributes required are empathy and curiosity – but these are requirements of most, if not all, professions, so what sets front-end developers apart? Knowledge of the tools, methods and techniques we have looked at thus far in this book will stand you in good stead, and a willingness to continue your professional development will make you stand out to your colleagues as well as to potential employers.

Images

In my first role in front-end development, the people I worked with, without exception, were educated to at least degree level. Some had a degree in a sphere closely aligned with computer science, if not actually in computer science. Each of us had a degree, though, as this was thought to be the appropriate indicator that we were suitable for a development role at that point in the progression of the profession. More recently, however, it has become increasingly likely for front-end developers to be self-taught or even to have undergone training in a bootcamp (more on this below). These individuals are still in the minority, but their number is growing.

Employers, particularly smaller companies (Thayer, 2018), are now often less interested than they used to be in candidates who have studied for a generalist computer science degree. They now often prefer applicants with more practical and modern knowledge, those who have perhaps had experience of problem-solving within teams, and those who have dedicated time and resources to seeking specific expertise in a development sphere.

With growing dissatisfaction with university education among both students and employers, there has arisen a specific industry, that of the coding bootcamp. A bootcamp is a training program specifically designed to hone those skills most in demand by employers. Often the most theoretical aspects of a topic are ignored over imparting the skills needed to solve problems likely to confront students in the workplace. It might be worthwhile for traditionally university-educated developers to take a bootcamp or two on specific subjects to add depth to their knowledge.

The knowledge that bootcamps impart can be considerable, but some leave something to be desired. So, if you want to learn front-end development via a bootcamp, I would suggest reading reviews before parting with your cash. Taking several bootcamps and gaining greater depth of understanding is likely to be cheaper in the long run than a university degree, but bear in mind that it does not take into account the other benefits of university education, such as gaining a broader understanding of the subject.

Kyle Thayer (2017) has spent some time researching coding bootcamps. He cautions people who are considering this option that the process of learning the trade and changing careers is likely to take a year. Further, he suggests learning as much as possible before the coding bootcamp and being shrewd when looking at their reported success rates.

Bootcamps might also fulfil the promise of universal education in that, at least in the USA, they attract a higher proportion of women and ethnic minorities than universities. WhatsTheHost.com has a brilliant infographic from which I gleaned this information; it also details other differences between coding bootcamps and a computer science degree (WhatsTheHost Team, 2019).

Having a broad understanding of a field means that you are not merely skilled in one aspect of it but can instead use your knowledge more widely.

Images

I mentioned above that I know self-taught developers. I have an appreciation for the time and effort required to learn in this way, as I have tried it. After spending months and months attempting to teach myself, getting lost in different forms of learning and becoming confused by the plethora of resources available, I chose a part-time conversion MSc, and that suited me far better.

For those who are not beginners, there are a wealth of – possibly far too many – resources available. One of my friends found their way into the profession through engaging with Daniel Shiffman’s Coding Train (https://thecodingtrain.com). While Shiffman is an academic, his YouTube videos are an engaging way of learning. They and my friend’s further reading and experimentation, including developing applications for friends and family, meant that they were eminently qualified for a role in the business where we both worked. Again, curiosity was vital to their success – that and having a defined goal for each area of exploration.

There seems to be no better way of engaging in self-teaching than having a set goal for your scholarship. This appears to be a critical difference between self-learning and bootcamps: whereas bootcamps teach techniques and use example applications, developing an application is an excellent way of picking up techniques as it forces you to experiment and research. A measure of pride is also advantageous here as well – if the application is going to be used by those who are close to you, then you want their experience to be seamless and the application to be flawless. Users should also be less reticent about offering suggestions or criticism.

PROGRESSING AS A FRONT-END DEVELOPER

There are many options for you to develop your skills as you progress as a front-end developer. I have previously touched on the importance of curiosity, and that will be an essential resource in your progression. A desire to keep on learning new techniques and technologies will stand you in good stead, as will a willingness to prove those hard-earned skills with professional accreditation.

A previous employer of mine, Arcus Global, introduced Volunteers Day, on which we were paid but spent time volunteering in the wider community. A colleague (Simon Cull) and I decided to volunteer with Code Club (https://codeclub.org/en) and we have not looked back. Despite us both moving on to other employers, we keep on doing our volunteering work as, at least for me, it improves my understanding of the broader field.

I also have some experience as a code mentor (Myers, 2018a) and have taught people who were engaged in a coding bootcamp. The students at the coding bootcamp had made a conscious decision to learn and used me to bolster that learning, and this further reinforced my understanding of the subject as well as theirs.

There are no formal universal accreditation schemes, but some come close to being so. It is worth researching any such schemes carefully to understand their prominence and recognition within the industry. Many providers of technology, such as Amazon and Salesforce, have accreditation schemes, but they are focused on those technologies and are perhaps not transferrable. There are more general training courses, and these might be better suited to you when you start your career. You could then focus on training for specific technologies if this will help your career progression.

Online course providers and books are also worth investigating, but again some care should be taken when it comes to accessing these resources: the field is continually evolving and what once was relevant might have been superseded. Newer versions of software might make older tutorials useless and leave you feeling frustrated and scouring further documentation.

Another source you can use to progress in your career is your colleagues. We explored the roles and responsibilities of other members of the development team in Chapter 1, and gaining a greater understanding of their work will help you and broaden your knowledge base. You can also help your colleagues to learn the skills you have mastered, though this should be done sensitively, so as not to appear patronising in any way. Some employers institute lunchtime meetings where learning can be disseminated among the team.

Alongside these impromptu, work-based conferences there are now many conferences and meetups aimed specifically at front-end developers. Wherever you live, you shouldn’t find it too hard to meet up with other front-end developers, either to gain a more comprehensive understanding of the profession or to help you learn new techniques. You should also research and attend more formal conferences if possible. If you have the opportunity to present at one, then grasp the opportunity with both hands – it will increase your professional standing and force you to learn the nuts and bolts of the subject you’re presenting.

MOVING ON FROM FRONT-END DEVELOPMENT

Due to the varied skill set required in front-end development, you will be exposed to a wide variety of technologies and processes in your role, allowing you to get a taste of possible avenues you might want to explore in greater depth.

If you lean more towards the overarching business where you are employed, then moving to a role such as product manager or owner will allow you to combine your existing expertise with a more business-oriented approach to the final product. If you lean more towards the user, then you might want to look at a role more focused on user experience or even design.

There are greater and greater similarities between the tools used by designers and front-end developers, and this will help you significantly if you choose to go down this path.

Becoming a Scrum master might be another possible route and, should you want to explore more of the back-end and architecture, then becoming a software architect is a further possibility. With the increase in the use of JavaScript on the server, as well as NoSQL databases using data in a form analogous with JSON, front-end developers are also more than able to make the switch to back-end development or mix responsibilities by becoming full-stack developers.

Teaching is another possible avenue if it is something you enjoy. Considering the increasing popularity of web fundamentals courses, you might find that your experience is in demand. Helping to bring on future generations of front-end developers may well be something you find fulfilling.

As you can see, you have plenty of options should you wish to progress your career in an aligned area.

Carvill (2009) saw a lack of a clear career progression for front-end developers as worrying. He noted that there are only so many architect or senior engineer roles to go around, and only those developers who excel will be considered possible candidates. He suggested that one route would be to specialise in a specific aspect and work from there. Considering the pace at which the tools of our trade evolve, however, this might be more than a little problematic. You could become an expert in one framework or library, only to have it soon replaced by another, and the result could be finding yourself redundant.

One prediction Carvill made in 2009 – that performance specialists would be in higher demand in the five years after he wrote his article – only partly came to pass. Ubiquitous Wi-Fi, 4G and faster and faster devices mean that the need to simplify and reduce page loads is not so urgent. It is still essential but has become automated, either through software or via caching (on either the network or the device).

Many discussions of the career path of front-end developers note a progression from junior front-end developer to mid-level front-end developer through to senior front-end developer and then software designer or team lead and on to software architect or head of department, with technical fellow or chief technical officer (CTO) as a final step.

Software designer, software architect and technical fellow all have a distinct leaning towards a greater understanding of and facility with the technology associated with front-end development. In contrast, team lead, head of department and CTO have more of a leaning towards managerial responsibilities. Sometimes it is only through reading a job specification that you can adequately see whether you might be suited to a role, as different organisations will expect different things from the same job titles. This split does, however, illustrate that because we have two responsibilities (the business we work for and our audience), we are closely aligned with both spheres and our options are almost limitless within the software development field.

SUMMARY

As you can see, your options in terms of entering the profession, how you develop within your career, and where you might find yourself are varied. Enjoy the journey and learn to recognise when a path might be wrong for you. Save your attention for those things which will enrich your career and life. Learn from as many sources as you can and disseminate that knowledge widely while keeping the user as your focus.

..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset