How to become a software developer in 12 weeks
This a 12 week programme of free online software development courses, activities and lessons for someone who wants to become a software developer. It’s a route through some of the best resources on the web.
Who is it for?
The programme is for someone with little or no software development experience - a young person who doesn’t want to go to university or an older person who wants to switch careers and become a software developer.
There are few prerequisites. It helps if you’re the kind of person who enjoys thinking logically and puzzling out problems. It also helps if you’re good at working on your own.
What do you learn?
Web development. You want to get to the point where you can - with confidence - start applying for web development roles. The reason we chose web development as the way into software development is simple - web development is still where most of the software development jobs are.
We picked JavaScript as the core software development language. There are other great web development languages (PHP, C#, Python etc), but JavaScript is a good starting point for your journey into web development because:
-
It requires no special software - you can run the JavaScript you write in a web browser.
-
The syntax is easy - it’s a great way to learn about standard programming things like arrays, loops and if-else statements.
-
You can also use it server-side with a technology called Node.js - so you can use JavaScript to create sophisticated interactive web applications that talk to databases and support thousands of users.
-
Right now there are job vacancies out there for Node.js/JavaScript developers.
Here is the top level view of what you will learn is you stick to the program:
-
Coding Fundamentals - basic ideas that are common to all programming languages.
-
Server side programming - how to build interactive web applications with Node.js and Javascript.
-
Databases - the traditional relational database is where most server side web applications store their data.
-
Web Front End - introducing HTML & CSS and the basics of website design.
-
A Project - put it all together and create something that becomes a valuable tool in your job search.
A final word about the approach before you start
Self propelled online learning comes with a massive challenge. There are times when it is hard to stay motivated, particularly if you’re doing it completely on your own. We’ve tried to design the programme to make it easier to stay motivated. The software developer training programme includes video, interactive materials and high quality reference resources.
The software developer training programme - step by step
The programme is 4 modules and a project.
You can do the project after the modules, but it would make more sense to begin to generate some ideas for the project, do some planning and perhaps make a start on the project as you work through the modules. We can’t stress this enough - the best way to become a software developer is to start writing code. You will make rapid progress when you start looking for solutions to problems in your project.
We think you can do the material in the modules in about 12 weeks if you put in around an hour a day. The project will take you a bit longer, but if you choose carefully and pick a project you enjoy, you should find it easy to put in the extra hours.
Project Ideas
Search on Google for ideas or think about the things you already do. Can you find a project idea in a hobby or is there something you could do in your current job?
Here are a few ideas, but spend some time and look for other ideas.
Easier | Medium | Bigger Chalenge |
---|---|---|
Simple online maths calculator | Time tracking web app for remote workers | Appointment booking system for hairdressers |
A simple To-Do list. Add/edit/delete items. Mark items when done. | Health related website - user can upload weights, calculate BMI and see results on a chart | Parents evening booking system for schools |
Simple online quiz - answers auto marked | Online product catalogue, shopping basket and payments | Contract tracking web app - simple, role based customer relationship management |
Module 1 - Programming Fundamentals & Javascript
Section | Resource | Description |
---|---|---|
Intro | What is JavaScript? | 50 minutes JavaScript overview |
Core | The Modern JavaScript Tutorial | This is a really comprehensive course and you can skip some of the later, more advanced topics. The first 5 sections up to and including Data Types are definitely worth doing. |
Other Good Stuff | JavaScript for Cats | Another nice introduction. Maybe read a couple of times before starting ‘The Modern JavaScript Tutorial’. |
Module 2 - Node.js and server side development
Section | Resource | Description |
---|---|---|
Intro | Learn Node in 1 Hour | Just over an hour intro to Node.js |
Core | Node.js Tutorial. Also, Node.js Tutorial: Learn in 3 Days | Introductory series of Node.js lessons with plenty of working examples. |
Other Good Stuff | Learn Node.js - Full Tutorial for Beginners | This is a longer video tutorial, but it can be watched over a week in parallel with the ‘Node.js Tutorial’. |
Module 3 - Databases
Section | Resource | Description |
---|---|---|
Intro | Relational Database Concepts | An older video, but still a very good introduction to relational databases - the foundation of most interactive web applications. |
Core | Node.js MySQL | How to use JavaScript and Node.js with the free MySQL relational database. |
Other Good Stuff | Using MySQL with Node.js and the mysql JavaScript Client | Another nice, clear overview. |
Module 4 - Web Front End with HTML & CSS
Section | Resource | Description |
---|---|---|
Intro | TML Crash Course For Absolute Beginners | 1 hour intro to front end web development with HTML & CSS |
Core | [Intro to HTML/CSS: Making webpages | Computer programming](https://www.khanacademy.org/computing/computer-programming/html-css) |
Other Good Stuff | The Best HTML and HTML5 Tutorials | Good, short overview. Read and digest in 10 minutes. |
Module 5 - Putting it all Together: Web Application Development with Node.js and Express.js
Section | Resource | Description |
---|---|---|
Intro | [Express/Node introduction - Learn web development | MDN](https://developer.mozilla.org/en-US/docs/Learn/Server-side/Express_Nodejs/Introduction) |
Core | Express.js & Node.js Course for Beginners - Full Tutorial | Learn how to develop a web app from scratch using Node.js, Express.js, PostgreSQL, and Bootstrap. |
Other Good Stuff | Setting up your web dev environment with Node and Express | Another good overview of web development with Express. |
What next?
Start applying for jobs. Infact, there’s no reason why you can’t start doing this before you finish.
Make a list of all the software development companies in your home town. Do some extra research and find the name of someone important at the company (check the About Us page on their website). Write to them - don’t email. Send them a letter and tell them what you’ve done. Mention your project and include a CV.
Related Posts
How to become a software developer without a degree in computer science
The hardest part of software development - identifying and prioritising business requirements
Sheffield Apprenticeships - local branding, open data and fast software development