As of recently I’ve been asked a lot about how I either became a developer or what my advice would be to get started in programming. So I thought to save myself typing up a massive ever changing story of what i find to be successful, I’d rather just write it out once so I can have a reference to send people too. One word of caution I’d like to go on before we move forward is that I don’t have the “end all, be all” to what is a perfect most successful way to get into programming, but rather a list of what has worked for me in hopes that I can add to your personal journey in the world of programming and computer science.
There’s a lot of different pathways you can personally take when becoming a programmer. If you’re interested in my personal path in my pathway I’ve made a blog detailing my personal journey into becoming a full stack engineer. That being said it’s really important to understand what kind of person you are and what work/life balance you’re currently looking for as a developer.
Some of the more popular roles i’ve seen so far are:
- Front-end Developers
- Backend Developers
- Full-stack Developers
- Linux Admins / Solutions Architects
There’s plenty more Job types that you could potentially define yourself under, but these are the ones I have a little bit of understanding in enough to hopefully get you started.
In all development teams, someone needs to make the “front end client”. What exactly is the front end client? It’s the interface in where the User | Consumer | Clients will be using within whatever software you’re building. It’s important for the Front end Developer to have a clear understanding of what information they’re main system will be providing from the backend and exactly how to dress the markup according to design given to them from the Designer or UI/UX person.
Backend Developers are the Logic behind these software. They provide all the coding done in the engine of any software. Their bread and butter, unlike the front end developers who focus on usability and executing design, is to make the software run as efficient as possible. They are usually masters in their selected OOP(Object Orientated Programing Language). They pretty much build the brains to whatever application you’re currently using. I believe it’s really important as a backend developer to understand Data structures in which also understanding algorithms can really play a huge role.
System Admins / Solutions Architects
System Admins / Solutions Architects are responsible for creating the environments that all these software will live in. They’re responsible for the health of their servers, the maintenance in all their dependencies and plugins. Keeping everything up to date and spooling up new servers to the demand of the software and clients. They set up the test servers and production servers you’ll find all the developers in and they make sure everything is backed up and efficient. This field has a completely different set of subset fields as well. A lot of which you can dive into in resources like aCloud Guru.
Full-Stack Developers are known more or less the jack of all trades. They usually will oversee the development of everything from the Server down to the front end of the software. They tend to be where they’re most needed and usually will help out where the company needs them most. They understand the full development cycle of the software and can be placed in either team to really assist with the development process. As a Full-Stack Developer myself, I can be found either focused on Server maintenance one month and backends of the legacy applications we have deployed. I also manage a huge amount of analytic data that is captured by our software to see exactly how to increase usability and really refine whatever application I’m currently working on.
With all this here i’d like to revise my caution in that these are all high level overviews of these different roles and a lot of these will differentiate from company to company, team to team. It’s more or less your responsibility as an up and coming developer to really dive into what you find interesting. Be fearless and attempt projects way above your knowledge grade. Research and use tools like Github and Stackoverflow and private discord chats to find questions to your answers. The strongest tool you’ll ever have as a developer is to be strong at researching. This job isn’t a process based job. There isn’t a right or wrong method/ answer. There’s only the one that works for the problem in front of you. Remember to always keep breaking building and breaking building your projects till they’re perfect. ( they’re never perfect c; )