With so many languages in the world of coding, is it better to specialise or stay general? Brian O’Grady of Code Institute shares his thoughts on what you should do as a software developer.
Every industry has its own culture and preferences, its own needs and trends. Newcomers to IT often ask the same question: Is it better to be a jack of all trades, or a master of one?
There is no short answer, and the closest we can manage is this: There is a good chance that you will specialise, but it’s important to get an understanding of what’s available.
Technology is a hugely diverse area, even within the coding domain. You have so many opportunities to go down various paths, such as data science and analytics, web development, gaming, desktop, mobile, apps and so on.
There are also language-specific frameworks that provide standardised, accelerated development.
So many choices, and all this before you even decide whether you want to work in front-end development, where the visual impact and user interaction takes place, or the back end where the bulk of data is stored and manipulated.
So let’s start with why an overview is important.
Full-stack development involves working with data in three manifestations: data at rest (databases), data in motion (business logic) and data as presented (user interface). The vast majority of software development involves working in these three areas.
Exposure to full-stack development opens more doors for software developers than a skillset limited to front end or back end. Our students might not always end up working in full-stack (ie, generalists), but they gain an in-depth knowledge of how full-stack applications are made. In doing so, they discover what they naturally gravitate towards.
Does it benefit to have general knowledge? It definitely helps when landing a job, but for your longer career, you’ll probably specialise. That said, as a front-end specialist, an understanding of how back end works will make you a better developer (and vice versa).
It’s also helpful to remember that once you learn one language or skill, it’s easier to learn others. All coding languages have a core set of concepts they are built upon. When you master the fundamentals of one language, it makes it easier to learn others.
In fact, when you become sufficiently comfortable with coding languages and software development in general, you can self-teach. One of our developers does this in his spare time. He chooses a language, learns its basics and gets a feel for its quirks and advantages.
Learning how to learn a language is a vital skill. It gives the coder perspective on what their peers are working on, and it’s an effective way to future-proof a career.
While there is a good chance you will end up specialising, a broad understanding will make you a better developer.
The workplace: What happens to your skills
A common entry-level job for graduate software developers is a junior in a development team, testing or augmenting code that’s already written. If you’re in the right company, your responsibilities will grow and your knowledge will deepen. Then, if you ascend in your career, you might become a project manager, which would require a basic understanding of everyone’s role.
When working on a project for a major tech company, you’re often expected to evangelise your project or product. This requires a solid overall knowledge of how to communicate with different teams. At the same time, you may need specialist skills to actually implement the project, troubleshoot it and future-proof it.
In a smaller company, like a start-up, you’ll need an overall knowledge too, as qualified staff may not be available to lean on for specific tasks. This is where full-stack knowledge especially shines.
Finding your ‘T’
The ‘inverted T’ is sometimes used to describe the ideal skillset for software developers. Imagine a horizontal line, which represents a basic knowledge of all relevant tech skills. Emerging from that line is one strand, like a spike in a graph. The spike looks like an inverted capital T, and it represents your specialist skill, while the base represents your broader knowledge.
Exposure to different projects will help you discover what your own T looks like.
So, are newcomers better off being specialists or generalists? Just like in any other discipline, the short answer is to build a strong foundation and then concentrate on what you enjoy.
And, of course, every industry is subject to change – none more so than technology. Therefore, an ability and eagerness to learn and upskill should never be far from your mind, wherever you are in your career.
Brian O’Grady is programme director for Code Institute. He works regularly with an industry advisory council to ensure that courses align with employers’ demands and tech trends.