I Want to Be a Software Developer – Introduction
Note: This series of posts is not going to teach you how to be a software developer (although we will point you in the right direction for some of the excellent resources we like). This is a series that hopes to set you off in the right path. Anyway back to the blog…
The number of specialities in the world of development and the terminology used can make taking the first step in learning to develop a daunting task. When we interview for apprentices (people with little to no development experience) after asking why they want to be a developer we often follow up with why haven’t you started to learn? The most common answer: “I didn’t know where to start.”
A quick suggestion before we jump into some more detail, unless you want to do something that has a defined language, for example IOS Apps are written in the Objective-C language, then getting started in your quest to learn is more important than what you learn. Of course you can refine that approach by thinking about some things we list below but the real reply to “I didn’t know where to start” is “anywhere, just get started”.
What are the specialities and which do I choose?
In this blog (in fact in this series) we are going to concentrate on Web Applications – This is software that is designed to run on a server and usually be accessed through a web browser. There are many other categories, such as Mobile Apps, Game Development and Installed Application Development (for example applications you install on your PC).
We have chosen to concentrate on Web Applications because it is arguably the most accessible way to get into development (it is also our speciality!). If you have a PC/laptop and a text editor you already have the bare minimum of what you need to get started
I want to be a Web Application Developer, is that my speciality?
First of all, good choice! In answer to your question, no, not even close. In this field of development there are loads of specialities, for example Front End Development (the bit that runs in the browser) can be broken down into coders, graphic designers, user interface experts, user experience experts and many more on top. Some of those can even be broken down into more specialities.
In all honesty, unless you work for a very large software development company, a lot of developers would class themselves as Full Stack Engineers. It is certainly what a hobbyist would need to be but even in small and medium sized development companies software developers would be expected to know about all the software stack. Where there is a team of developers it is often that a developer will be an expert in one, possibly two parts of the stack, and will have good but less knowledge of the rest of the stack. Each developer would hopefully have a different expertise and across the whole team you have expertise in the whole stack, but everyone can work on other parts of the software.
Another side note here on what Full Stack actually means. It is a combination of all the components needed to run a web application, consisting of the hardware (typically a server), the operating system (e.g. Windows, Linux etc), the server software (e.g. Apache, Windows Server etc), the database (e.g. MYSQL, MSSQL etc), the back end language (e.g. .Net, PHP etc) and the front end languages (typically HTML, JavaScript, CSS).
Where do I start in the Stack?
There is no wrong answer to this but the most popular point of entry into Web Application Development is the Front End. Typically HTML & CSS and later adding in JavaScript and all sorts of frameworks that speed up development once you know the basics.
Why should I start with HTML and CSS?
Well, every web application that has a user interface, no matter how simple, will most likely use these two. Even if you intend to be a server side coder you would be expected to have a pretty good knowledge of these.
The other big reason is that there are less choices to make. HTML and CSS are standards that form the building blocks of nearly every web application and website online today.
Finally ease, HTML and CSS are both relatively easy to pick up and don’t require you to set up anything on your PC to get started. If you have a PC, a browser and a text editor (which you almost always will have pre-installed on your PC already) then you are good to go.
Where and how should I learn HTML and CSS?
That’s for the next in this series of blogs. We will cover learning resources, more helpful tools, where to get answers when you get stuck and add in JavaScript and some frameworks to the learning mix.
If you can’t wait, you can get a decent overview of HTML and CSS by working through the tutorials on Codecademy (If you have trouble finding what you need then in the navigation bar, click Catalog and under By Language click on HTML & CSS). The tutorials are interactive lessons done in your browser. A lot of the site is behind a subscription paywall (we haven’t used the paid for tutorials so can’t comment on their value), but there is enough that is free to get started with.
Again we will cover a lot more learning resources next time. If you decide to wait for that or jump straight in, have fun with the learning!