So You Want to Get into Software Development, What Do You Want to Get Into?

If you're here, you're interested in breaking into the field of computer science. Maybe you have an idea of what you want to do, maybe you don't.

I'll start by saying that if you're coming with a clean slate, it'd be useful to look into the jobs that you'll like.

Software Development is not all just typing on a keyboard in a dark room while listening to the soundtrack of the most recent Tron movie. There's SO many different concentrations with so many specific responsibilities within that.

For instance, there's obviously the generic role of a Software Engineer where you're generating the code. Within that are many different disciplines. Let's get more specific.

When it comes to web development, there's generally two varying types of devs. Back End Software Engineers tend to deal with code that goes on in the background behind the scenes with databases and servers. Basically The Matrix. They would program the code that takes your user information from your browser at signup and store it. Front End Engineers deal with code that you are most likely to see in a browser. The code that works behind the scenes to talk to the components managed by the backend. FEs develop the signup page you navigated to.

Do you think video game developers would touch web development, technologies such as HTML, Javascript, and CSS that people experience in a browser?

There's also a portion of roles in SW dev that focuses on testing, purely validating the integrity of the code (Quality Assurance Engineer). You could be a Network Security Engineer and fight off hackers!

There's the badass Operations/Development Operations (or devops) Engineers / Site Reliability Engineers (Google has a whole book about them) who work to make sure that the hardware, software, and support and automation tools are working in unison to operate as smoothly as possible. They're the people who constantly monitor the system as a whole. Some of these engineers are on call overnight in case there are any issues. They make sure apple.com is never, ever down.

Separate from the traditionally dorky stuff, there's software design. Being able to write code that is specified in such a particular way that testing, understanding, and modifying it is as easy and organized as possible. Design is such a huge deal, and the contributions of Software Engineering Architects ensure that teams of developers who are working separately to effectively build a car can put the parts together in the end, do the equivalent of starting the engine, and not having anything blow up.

We can even go 100% away from keyboards. There are Project Managers who ensure that the team of developers are working as efficiently as possible, ensuring that they are focusing on the right tasks. There's even a Technical Project Manager whose job is to help keep watch over the ship. It's the TPM's responsibility to be able to convey important details and ideas between management and development.

The traditional route of a Software Developer seems to be management or design, or as a Lead Engineer where you're the person making decisions of what to code and how to do it. The one whose knowledge saves so much time since his/her past experiences being burnt have come in handy.

Getting a little closer to the keyboard but more towards artistic design and human cognition, there's Front End Designers who work on the layout and overall look of the page. Creating mock ups and samples of pages to ensure that the user can navigate/use the product with ease requires more artistic sense than technical, doesn't it?

There's User Experience Designers. You know why OK buttons are green and cancel buttons are red? Why the Xes on computer windows are not in the middle but on the top left or right? Again, the emphasis on human cognition is a skill that is quite far from writing code but just as closely related.

Hopefully you've gotten just a glimpse at some of the different fields that exist within Software Development. I recommend trying to get an idea of what some of these positions are. Even just a few minutes. Google is your friend.

There are certifications, online courses (both free and paid), youtube videos, tutorials, and even tutors/coaches who are available for you to meet your goals.

Just as there are many different ways to "get there" there are many different ways to "get there". The most reliable resource in the past used to be a college degree, but as you probably know, an increasing number of companies have and are starting to accept people without them. cough cough Google cough. When it comes down to it, it's all about getting the job done. This doesn't mean you won't be turned away if you don't have a college degree, but who wants to work for people/companies like that anyways?

Everyone has to start somewhere, which is why Bootcamps and Universities start at the very bottom: learning how to write some freakin code!

The next post will provide a guide on the first steps that can be taken to get there. Today, take the time to explore.