loading...
Cover image for What are the basic courses/topics a software developer should learn to start their career?

What are the basic courses/topics a software developer should learn to start their career?

charliedevelops profile image charliedeveloper ・3 min read

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 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. 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).

Get your head into databases by learning SQL - SQLZOO is a great resource I found useful when learning. Sequel Pro 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 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), get comfortable using the command line and try and do some research on an agile working methodology such as Scrum (potential employer will be impressed).

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

Finally research “software developer technical interviews” and have a go at some free online aptitude 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

Posted on by:

charliedevelops profile

charliedeveloper

@charliedevelops

A fullstack developer and coding trainer based in the South West, UK

Discussion

markdown guide
 

As someone who's recently made a total career switch into the field - I don't think that more dynamic languages like PHP are necessarily more user friendly than more strongly typed languages. In fact, I find the compiler to be a great source of feedback when I'm trying something weird. So I'd definitely put C# (with ASP.NET Core for web development) on the list of candidates for a first back-end language.

 

Thanks for the comment! I would agree that like everything learning to code isn't a one size fits all kinda thing and each person has a preference, particularly when relating to feedback about the code being written. As someone who started with PHP but feeling myself more naturally drawn to Javascript recently I really appreciate the foundation in programming it has given me, but totally get that its not the only language that can provide it.

 

Wow! That hit me rock-solid! I appreciate the note about procrastination. I have been that "loving the idea of doing software dev" for a while now because I knew I couldnt just dive into learning different subjects and have a nice learning path. These kinds of articles, though, really help a lot to transition people from loving the idea of being a software developer into being actually one!

 

its great to hear that this article might be able to help, best of luck - stick at it and remember to help people starting out when you make it as a developer! :)

 

Ohh how I wish my current work industry have this kind of really good and supportive community! I will def look back at this one day and give back to fellow aspiring devs along the way! Have a great day :)

 

Laracasts, while Laravel focused, has an amazing Object Oriented Bootcamp along with a great library of beginner to advanced PHP tutorials. It’s not free, but it has definitely been worth the lifetime membership that gets offered every once in a while.

Great article! Hope to see other developers add to it.

 

Thanks Christi, great suggestion - Jeffrey Way does a brilliant job with Laracasts and definitely worth a look if considering paid for resources. We had a laracasts subscription at work a few years ago and its great for following along with.

 

Operating systems, object-oriented programming.... that's about it as far as required courses go.

Now, for classes I actually recommend: databases, programming languages (which teaches you how to create a language and parser, etc.), and automata theory (which I took instead of algorithms because it was more relevant to my interests).

 

Thanks for the response, automata theory sounds intense but intriguing! short of just googling it - would you recommend any free online resources that would serve as good starting points to find out a little more about it?