Software engineering and returning to my roots

My decision to take up a programming job – returning to software engineering – and start climbing the more typical career path for a computer science graduate has been met with an understandable amount of scepticism and confusion from friends and acquaintances who know me.

I was always vocal about my desire to pursue education and academia; from my extensive volunteer and activist acumen developed throughout my time as a student to my eventual enrolment and the recent completion of a PGCE teaching qualification and acceptance onto a PhD programme within the past year. With all that in mind, why the sudden change of heart? How on Earth was I satisfied with a junior position?

Life as an unpaid trainee teacher

It’s complex. From September to December of last year, I was still teaching at Arden. At my own expense. Despite needing to work an extra semester in the wake of nationwide school closures caused by COVID-19, there was no additional government or university financing available to me which placed me under serious financial hardship. Given the hours I was at my placement, it was also impractical to find part-time work. Despite the placement itself being fulfilling and my colleagues being unbelievably fun to work with, I can’t stress how difficult this period was.

Nevertheless, I managed to drag myself through it and hey, I’m a qualified teacher now. Neat!

All the while, I was planning my next steps. I secured a PhD position at the University of Portsmouth, but I wouldn’t be able to start that until at least September because it was self-funded and I needed a chance to put together some cash. Furthermore, computer science teaching positions, especially those in Further and Higher Education were scarce. I knew that I had to rethink my options and that I had to start looking for jobs in the field that I am good at – software engineering.

I was approached by a developer friend about interviewing to join their company in January as a PHP developer – my programming language and ecosystem of choice – and I was immediately interested. Though it would be remote, they have an office in my hometown. The salary and perks are good. There’s plenty of room for learning and progression, and most importantly from my perspective, there’s a warm and close-knit culture that values you. The caveat? I would be entering as a junior.

Don’t think for a minute I got in effortlessly though. I still had to pass a programming challenge and technical interview, both of which went well.

Impostor syndrome or a dose of reality

Was this an absolute deal-breaker for me? Not really. Despite my academic credentials, I know I damn well didn’t have any software engineering experience outside of education, in my six months at Amadeus, or in my personal projects. To me, coming in as a junior is a chance to reacquaint myself with programming on a deeper level. To finally apply the mountains of software engineering literature I had previously endured; all within a safe and risk-free environment.

It didn’t bother me knowing that there are plenty of self-taught, degree-less developers with junior positions such as mine, all the while I have the shiny (and expensive) accomplishments earned during my time in Aberystwyth. Chances are, they will remain in said positions until they have developed the experience, confidence, and programming knowledge to ascend further. By the way, even though this can take a while, you know it’s natural and totally fine. In any case, I knew that I would not be a junior for long. It would be just enough time to sharpen myself into form once again after spending so long cutting the grass.

Now that I’m over four months into my time at Stickee, where do I think that I’m at? Hand on heart, I think that both my technical skills and my more soft skills have skyrocketed, and it’s thanks largely due to the support of my more senior developers who have helped me at each stepping stone. There’s still always so much to learn, and that’s okay. We’re not encyclopaedias. We’ll learn what we need as we go, and whatever is super important will undoubtedly stick around.

So did you meander for no reason?

Learning to teach has been incredibly meaningful and enriching and I don’t regret it for a minute. I learned a great deal about the science of learning and of pedagogy and the impact of these skills is evident in numerous aspects of my work, no doubt. The students were 100% the most rewarding part and I would do it all again.

I understand why many of my friends and acquaintances criticise me for “postponing” just getting a software engineering job instead of spending more time in the Ivory Tower, but I did it for myself. It’s what I wanted to do. There’s so much pressure on graduates to race head-first into their careers. Many of whom spend months, if not years preparing all whilst completing their studies. I wanted to do these things now whilst I’m still young, full of energy, and with a head full of malleable brain matter.

Some quick-fire, tl;dr questions and answers

  • Will you return to teaching/academia/research?
    • Maybe when the time’s right. I love education and teaching, so I won’t rule it out altogether. Not in the foreseeable future though.
  • Do you regret your Master’s degree?
    • Yes and no. Was it challenging and a positive experience? Yes! Was it basically worth it and outvalued by a year or two of real-world experience? Yes again. Unless you’re specialising in something like AI or pursuing academia, I probably wouldn’t bother.
  • What’s it like working at Stickee?
    • Seriously great. No, I’m not at gunpoint! I’ll write a more general blog post soon about my first few months there.
  • What are your ambitions now?
    • Senior code monkey! In all seriousness, I look forward to being experienced and knowledgeable enough to be a senior or lead programmer within software engineering or nearby fields. After that? Who knows.
  • I’m a former student of yours and I’m lurking your website. Do you miss us?
    • Immensely! You’re all incredible and I know you’re capable of anything you set your mind to. Once you’ve finished school, by all means, get in touch.

Conclusions

From programmer, to teacher, to programmer once more, it has been quite the journey. Frankly, I can’t wait for the next chapters and I hope to document them here on my blog.

In case you’re wondering, I migrated back to WordPress from Hashnode (though if you haven’t seen my neat PHP API, go take a look) after being dissatisfied with the platform – it always felt more of a circlejerk of the same authors and I couldn’t be bothered with that anyway.

Thanks for reading, and until next time.

Securing subject-specific knowledge in an unending battle but a vital one

Teachers of computer science face a challenge not commonly found in other taught disciplines – the need to continuously ensure that one’s subject-specific knowledge is continuously up-to-date and in line with both current trends in technology and substantial advancements in the field.

Whilst many aspects of taught computing remain the same and are likely to remain the same for generations to come, particularly those heavily rooted in mathematics such as binary arithmetic; a concept dating back even as early as the 1600s, (Lodder, 2009) the dynamic and ever-evolving curriculum poses unique challenges for computing educators as they fight to balance their intense workload characteristic of working in education along with finding time to improve their skills as a practitioner.

The far-reaching need for continuous professional development

Before exploring this topic in more detail it is important to preface with an acknowledgement of the importance of continuous learning and self-improvement and that they are cornerstones of the educator’s profession, with the most talented and dedicated teachers looking to simultaneously improve their subject knowledge and pedagogical toolset linked to the latest research.

Goodall et al (2005) found that 90% of teachers participating in their study found continuous professional development (henceforth CPD) to be felt at least somewhat useful, in particular for those where improvements in knowledge and skills were most impacted. Furthermore, those within the post-compulsory sector for example can look to professional standards 7, 8 and 9 for further reassurance of its importance regardless of what one teaches. (Education & Training Foundation, 2014)

My own experiences

For the teaching of Computer Science at both the GCSE and A Level specifications, much of the curriculum remains the same over the years due to the theoretical nature of the course, where choices of programming language are broad and allow for more traditional choices when teachers might be lacking in more contemporary resources and skill sets (i.e. many examining bodies allow for choosing Visual Basic over more increasingly popular languages such as C# and JavaScript) and that many areas linked into computational theory have little tendency to change.

Nevertheless, large components of these courses consist of coursework projects whereby students are at liberty to design and create complex software projects using the software development lifecycle (SDLC). Students are often free to create whatever they want, provided that they meet the complexity requirements set by the examining body.

I came into my current teaching role with a wealth of prior programming experience developed in academia and in industry, though I naturally have my preferences in languages and frameworks that I am more familiar with. Some of my Year 12 students were developing using the C# language – one that I was mostly unacquainted with aside from basic tutorials and open source projects I worked on in my free time. This meant that not only did I need to rapidly learn a new language, but since students were often including third-party libraries, I had to learn aspects of its ecosystem too. This is a completely ordinary experience for software engineers and computer scientists to do when they take on new projects or move into new areas, but I do not think that it would be an experience most other fields would be well equipped to deal with. Fascinatingly, the only close comparison I can immediately think of are those teaching music and perhaps also dance, which are continuously flooded with new concepts and contemporary ideas, often also caused by technology. (BBC, 2019)

Furthermore, some students expressed interest in using development engines and environments, namely Unity, to develop video games; a prospect both allowed and encouraged by examining bodies due to their inherent complexity. (OCR, 2015) This naturally calls for additional learning, and if you do not have a powerful enough computer at home to run these environments then this can create additional issues at keeping up with your own students just so that you can be in a position to support them wherever necessary.

The additional challenges of vocational courses

Many colleges and post-compulsory centres and schools will offer vocational courses in IT (information technology), such as ‘vendor certifications’ or coursework-oriented Level 2 and Level 3 BTEC certificates and the like. These courses sometimes change frequently, even annually, in order to keep up with ever-changing computer software packages, trends, and even legislation. For example, qualifications issued by Microsoft will eventually retire and are replaced by newer programmes in order to keep the certifications current. (2020)

What the research indicates

According to a study conducted by Sentance & Csizmadia (2016), where British teachers of computing across a range of key stages were questioned on the greatest difficulties that they face, the most common challenge reported was in their own subject knowledge. One such teacher reported: ‘I do self CPD daily and have given easily 100+ hrs of my own time to building my own skill set up’.

For many teachers, teaching computer science is a new prospect in a United Kingdom that has spent 20+ years previously teaching only information technology, and as a result the need to upskill and learn entirely new curricula is a daunting prospect. Sentance et al (2013) found that in a small group of surveyed teachers, 71% of them needed guidance on how to teach the subject.

A study from Brown et al on the resurgence of computer science in British schools concludes that though the steps to reintroduce the subject in the country has been positive, many changes remain in order to further equip teachers – mainly the need for future training, better resources, and for many, formal training to transition to the more theoretical subject in the first place.

Final reflections

It comes as no surprise that numerous teachers throughout the country struggle and must dedicate large quantities of their own time to keeping their own subject knowledge strong. It is disappointing however, that many former teachers of IT / ICT migrate into teaching computing with little to no support or CPD to enable them to teach what is practically a widely different subject altogether.

Having previously worked in software engineering I am aware of the challenges we face as professionals and the constant need to evolve in the face of change. For many teachers without this experience, it might come as a surprise that teaching computing is more in alignment with industry than one might initially expect, and that they too will be expected to make continuous adaptations as the curriculum does, especially for those teaching vocational subjects and vendor qualifications.

The need to enjoy what you do is paramount for success in teaching computing. I am thankful that I am still passionate for programming and still share the same curiosity for computers and technology that I did as a teenager. As a result of these revelations I have taken steps to conduct my own CPD, including sitting Microsoft examinations to fill gaps in my subject knowledge and to provide proof of my ongoing learning. I will continue to learn and play in my own time to provide my students with a suitable model for emulation, a significant part of my teaching and learning philosophy, so that they too can follow a similar approach in whatever career path they choose.

Bibliography

  • British Broadcasting Corporation (BBC). (2019, March 4). Music education ‘risks being outdated by technology’. Retrieved April 29, 2020, from https://www.bbc.co.uk/news/education-47414952
  • Brown, N. C. C., Sentance, S., Crick, T., & Humphreys, S. (2014). Restart: The Resurgence of Computer Science in UK Schools. ACM Transactions on Computing Education, 14(2), 1–22. doi: 10.1145/2602484
  • Education & Training Foundation (ETF). (2014). Professional Standards for FE Teachers. Retrieved April 27, 2020, from https://www.et-foundation.co.uk/supporting/support-practitioners/professional-standards/
  • Goodall, J., Day, C., Lindsay, G., Muijs, D., & Harris, A. (2005). Evaluating the impact of continuing professional development. Nottingham: Dept. for Education and Skills.
  • Lodder, J. M. (2009). Binary Arithmetic: From Leibniz to von Neumann. Resources for Teaching Discrete Mathematics, 169–178. doi: 10.5948/upo9780883859742.023
  • Microsoft Corporation. (2020). Legacy Certifications. Retrieved April 29, 2020, from https://www.microsoft.com/en-us/learning/retired-certifications.aspx
  • Oxford, Cambridge and RSA Examinations (OCR). (2015, May 10). OCR A Level Computer Science Project Setting Guidance. Retrieved April 29, 2020, from https://www.ocr.org.uk/Images/324587-project-setting-guidance.pdf
  • Sentance, S., Dorling, M., & Mcnicol, A. (2013). Computer Science in Secondary Schools in the UK: Ways to Empower Teachers. Informatics in Schools. Sustainable Informatics Education for Pupils of All Ages Lecture Notes in Computer Science, 15–30. doi: 10.1007/978-3-642-36617-8_2
  • Sentance, S., & Csizmadia, A. (2016). Computing in the curriculum: Challenges and strategies from a teacher’s perspective. Education and Information Technologies, 22(2), 469–495. doi: 10.1007/s10639-016-9482-0