So, you want to get into software development?
First of all, good choice! I know it seems a pretty daunting area to get into, but hopefully this blog post will point you in the right direction. I’ll discuss how best to choose a programming language, then how to learn it, and then what to do next. I’ll try to embed these steps into more general comments about good learning practice; hopefully this doesn’t sound too patronising, but we developers can be a particularly stubborn and ambitious bunch. This is great if you can turn stubbornness into resilience and ambition into self-motivation, but you must be prepared for things to go wrong! When learning a programming language, your primary teacher is going to be yourself, and as teacher and pupil you’re going to need a lot of patience.
Find your language
The first thing you’ll need to do is choose a language. Some online courses promise to teach you multiple languages at once, which might seem tempting if you’re in a hurry, but this will almost inevitably lead to frustration. The concepts and mechanics of a single programming language can get complicated very quickly, so trying to take on more than one is not a good idea.
Nowadays, there are lots of languages in use. Personally, I ‘d say that the four you should approach first are Python, C#, Java and Java Script. Of these, I found Python the most straightforward. However, there are other factors to consider when you’re making the decision. Think about what type of software you want to write: some languages are better for designing apps; others are designed to run server-side. Most industries will have their favoured languages (although these are subject to change!) There’s lots of information on which languages are best for what, and here’s a brief overview to get you started.
Learn that language
Another key thing to think about is the level of support that’s available to you. Here’s where ambition and stubbornness can slip into arrogance. No matter how intelligent you are or how naturally you take to programming, sooner or later you will get stuck and you will need help. Some learning resources can be expensive and time-consuming, but it’s definitely an investment you should consider. If it’s really not an option then here are some pretty good (free) introductions to Python, C# and the Javas.
Once you’ve learnt the basics, practice practice practice! Write using the skills and concepts you’ve learnt, and try to explore things laterally. At this stage, you don’t need to worry about elegant code – it’s more important to learn how different functions and concepts work together.
Only when you’re really comfortable with the first language should you branch out to a second. There will be similarities and differences, and you’ll learn a lot about the benefits and limitations of the previous language(s) with every new one you learn.
Apply
Now let’s turn all of that learning and practicing into an end product. What interests you – you should have a better idea now than when you first started. Which language suits you best? Develop software that you’re proud of.
Start to build up an online portfolio of your work. It’s good to show a bit of variety to demonstrate the range of what you’re capable of, especially if you want to keep your options open. If you know that you want to go into a specific area of software development, then obviously most of your portfolio should have a focus on that, but you can still get creative with ways to show off extra skills you’ve amassed.
One skill in particular that you’ll want to demonstrate is your ability code with others. When you land your first job in software development, chances are you’ll have to work on a few group projects. This is why it’s important to write ‘clean code’ – i.e. coding by the book. Shortcuts may have helped you in the past, but they may not make sense to others, especially if you’re not there to explain it to them. Coding with peers can be really beneficial too – their way of explaining things might finally make a concept click.
GitHub is definitely the best platform to share and show off your work. Make an account and get a feel for it. It’s an industry standard, and will help you no end when applying for jobs or pitching your services as a freelancer.
Hopefully this post has illuminated some good first steps to take into the world of software development. It will be difficult and frustrating at times, but there are tonnes of support and resources to help you along the way. The toughest part will be balancing your drive with your patience!
Let us know your thoughts. Are you looking for a career in Software Development? Get in touch!