You should be coding

There’s no doubt about it. Software engineering as a continuously evolving and advancing discipline that often requires programmers to be equally steadfast in their advancement.

For new developers, perhaps those undertaking a self-taught journey or have recently joined or graduated from a boot camp, they will often look to the tech side of Twitter, Dev.to, and other communities for inspiration on how they can succeed in their new career; how they might become more employable and stand out from the crowd to find the success that they crave. Their efforts are not completely misguided – there’s plenty of fantastic information out there, and occasionally putting your ear to the wall can be useful in uncovering the latest trends and up-and-coming frameworks.

However, there is a sinister evil that lies amidst these communities. Many of those who garner large amounts of followers and engagement, those that quickly accelerate to the top of recommended lists and follow suggestions, are often nothing but charlatans. Of course, this isn’t all of them, but it’s many of them, and you might already know the kind of folk I’m talking about.

Those that are more social media influencers and link aggregators, than they are developers. They’ll post the same snake oil several times a day, the “learn x quick” tutorials, the free certifications, the secret tips and tricks that senior developers and industry moguls are purportedly withholding from you. Well, here’s my golden rule for handling just about anyone talking tech online:

Take anything from someone who has more time to tweet and blog than write code with a pinch of salt.

I know there are loads of exceptions and I don’t need a witch mob coming after me with raised pitchforks, the DevRels, the YouTube tech-bros, etc. I’m not really writing this article to ridicule those who produce content for other people. That would be the height of hypocrisy. The point I really want to drive home is that new developers often look to those with strong social media presence as those they should emulate.

Let me make it clear: The vast majority of software developers, especially the most senior and experienced ones, are almost certainly not cranking out amalgamations of no-code tools or the latest AI trends on Twitter. They’re almost certainly not writing article after article on Hashnode about the latest front-end libraries. They’re not doing any of these things.

You know what they’re doing? Well, funnily enough, the realistic answer is probably something not tech related. A senior developer friend of mine once told me that the more experienced developers get, the more they want to do non-tech things in their free time, perhaps tending to their vegetable patch, or perhaps playing golf. But, nevertheless, if they’re looking to upskill for an important new opportunity or they’re changing jobs? They’re writing code. If they’re not writing code, they’re reading code.

That’s the best way to get better. The talk about tutorial hell is a topic we can discuss on a different day, but the fact is, if you want to get better as a programmer, especially a green one, you should be coding. Find problems that you want to solve; things that you’re passionate about and want to resolve and figure out how you’re going to resolve it. Don’t sweat the details. Don’t worry about it being perfect; programming is an iterative process – you can make it better later! Grind Leetcode if that’s your thing!

Reading code doesn’t mean sitting with your nose in Modern Software Engineering by Dave Harley (though I highly recommend it). It means watching YouTube videos, or Twitch streamers, or even better, reading and understanding the source code of open source libraries and things that interest you. Many software engineers don’t realise it, but by reviewing their own code, and the code of their colleagues, they’re improving their own development and computational thinking abilities. It’s all nourishment for the mind.

I’d like to round off this rant by saying it’s not a bad thing to write blog posts, or to be engaged on social media if that tickles your fancy. Just don’t let it be a distraction. All the blog posts and followers in the world are not comparable to real-world experience.

So that game you’ve been thinking about? The portfolio site you want to build? The next generation social media and mobile app you know will change the world? Don’t wait until you’re more experienced, you should start now. The learning process happens by primarily by doing, secondarily by reading. Then and only then, consider writing a blog post about what you learned – we’ve got enough damn blog posts about the mystery of semantic HTML.

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.