What are the basic courses/topics a software developer should learn to start their career?
Tags: beginners, career, learning, webdev
Published: 2018-08-02 08:57:48

---
title: What are the basic courses/topics a software developer should learn to start their career?
published: true
description: An article to share with any aspiring dev with a bunch of resources to get started in the industry
tags: beginners, career, learning, webdev
cover_image: https://thepracticaldev.s3.amazonaws.com/i/byclgva3bjsvu4tfs0ut.JPG 
---

*Note for devs already in the industry: hopefully this article will be helpful to you when you are inevitably asked how to get into programming as a link you can send to the interested person* 

So when starting to train, it is important to be using the correct resources. Luckily in the software development industry there are loads!

Assuming you want to be a full stack developer (know a bit of everything) the best place to start is [Codecademy’s](https://www.codecademy.com/learn) free HTML, CSS and Javascript courses. They are completed online and serve as a great starting point to some of the basics.

From here try and pick up a backend language, I would recommend PHP as that is what I did, but take a look at job postings in your area and see what technologies that they are looking for. [This guys PHP video series is great](https://www.youtube.com/watch?v=-oUXcTz1eEA&list=PL_c9BZzLwBRK-pdEkJHvsqd5yBDxvggbs). I totally understand that PHP won’t be for everyone but one of the benefits is that it sits nicely in between loosely typed languages such as Javascript and strictly typed languages such as C. This means it strict enough to enforce some good coding habits but loose enough to be beginner friendly. Also if you are learning on a mac PHP plays very nicely with the UNIX environment (will take a little arm wrestling to get it going on Windows although it’s getting better).  Youtube videos, books and blogs are the best free places to learn this, coding bootcamps are the best if you can afford it and have the time to dedicate to it (however be very picky about which one you go to as they are not all the same).

Make sure you understand object oriented programming ([OOP](https://youtu.be/SS-9y0H3Si8)).

Get your head into databases by learning SQL - [SQLZOO](https://sqlzoo.net/) is a great resource I found useful when learning. [Sequel Pro](http://www.sequelpro.com/) is my favourite GUI to visualise the databases you are working with and will make your life easier. If you do learn PHP use [PDO](http://wiki.hashphp.org/PDO_Tutorial_for_MySQL_Developers) to link it to your database.

Also try and learn a version control system such as Git ([this video course is a good starting point](https://youtu.be/9GKpbI1siow)), get comfortable using the [command line](https://www.computerworld.com/article/2598082/linux/linux-linux-command-line-cheat-sheet.html) and try and do some research on an agile working methodology such as Scrum (potential employer will be impressed).

Go to [meetup](https://www.meetup.com/) and find tech meetups to do with coding in your area - this is a good way to find a mentor. Maintain an active [Github](https://www.meetup.com/) (For storing/sharing your code), [Stack Overflow](https://stackoverflow.com/) (for requesting/giving help) and [codepen](https://codepen.io/) (like a doodle pad but for code) accounts.

Finally research “[software developer technical interviews](https://www.google.co.uk/search?q=software+developer+technical+interviews&oq=software+developer+technical+interviews&aqs=chrome..69i57j0l5.789j0j4&sourceid=chrome&ie=UTF-8)” and have a go at some [free online aptitude tests](https://www.practiceaptitudetests.com/free-tests/) so that you are not surprised by the interview process (it’s not like other industries).

After all that you should be well placed to have a crack at getting your first gig.
 
Good luck! Remember to enjoy yourself while your learning otherwise you might find yourself giving up, It’s not going to be easy but it’s an awesome job if you can get it.

**A note about procrastination:**

Start right now! There is no time like the present. As someone who has experienced learning to code from scratch I became very aware of the negative impact of procrastination. I used to look at forums for hours, posting questions about what to do and how to do it. The truth is that time could have been spent learning. It’s the difference between loving software development or loving the idea of being a software developer - you must make a choice about which one you want to be and get cracking!

...That being said, if you are going to procrastinate then you should do it right. Here is my current favourite place to procrastinate on the [internet](http://chihuahuaspin.com/)