Getting into programming can seem like a daunting task when you first start out and you may find yourself in deep waters. But I hope I will calm you writing this: you will be good at it one day if you have patience and perseverance. Like most other skills it is not taught over night, but is learned through continuous training. There are many different facets of programming and software development: backend, frontend, databases, devops, everything in between and more. In this post I try to focus on writing code and making things work, which is the first step.
The tips that I share in this post are from my own experiences, how i learned to code and I heard and saw others learn to code.
You do not need to be good at math
People seem to believe that you need to be "super good at math" in order to learn how to code and be a programmer. That is not the case in most scenarios, for making websites you need little knowledge of math but for making drivers for GPUs you will need a lot. Most job postings that I see are not for making drivers, but creating software to support the business. I also have years of experience making websites and backend systems and I have rarely had to use any high level math (whatever that is).
What is needed in order to be a great programmer is great analytical skills. 1) understanding requirements and 2) provide software to accommodate these requirements. Both are learned by doing, observational learning (watching others work) and what I like the most - collaboration with others. Knowing your programming language is also a valuable asset. When you start learning to code you start by getting to know one language, however over time you will learn many more. You may master one or two and be intermediate in several others.
Do you want to make it your career?
Back in 2016 I wrote a blog post on the traits of great developers which included:
- Keep their skill set up to date
- Understands the domain they work in
- Works as a mentor
- Is a problem solver and has patience and persistence
- Is humble
- Has experience
The above traits are great in most professions. So what am I trying to tell you? You can likely become a great developer if you just put in the time it takes, however there is much more to it than "just" programming and writing code. Understanding what to write, making it maintainable and being able to present your work are big parts of the job as well. You will not just sit in a dark room all day writing code, there will be days where you do not even get to write code.
How to get started writing code
Alright enough about work, soft skills and what it requires to become a developer. Let us look at the ways you can get started.
Choose a programming language
If you do not feel like starting your own website you can also start by coding an app for your phone. What I found when I started programming is that it helps to have something visual to look at. This way you can see that your code is making a difference, which is a great motivation to keep going. I made a lot of games when I started out, Pacman and Game of life for example, which is another option. Choose a language that supports and is available for what you want to do. It makes no sense to choose C# if you want to make an Iphone app for example.
Find a good IDE
So you got your programming language, now you need to find an integrated development environment - which is a fancy way to say "coding tool". Most programming languages have their own go-to tool. Many these days use the tools provided by jetbrains. An IDE makes it easy for you to compile/build your code and run your application. They can seem a bit over-complicated when you first start out as most of them have an extensive list of features. Do not get intimidated by all the buttons and menus.
Find a tutorial
Having chosen a programming language and an IDE you are now ready to start coding (okay you need to install the IDE first). If you have no one to show you how to get started and teach you to code, I would suggest that you start looking for tutorials. There are so many tutorials out there and you can find one for almost anything. These can be written tutorials or Youtube videos where you can follow along.
If you search for something like "Getting started coding using Java and Intellij Idea" you will find a lot of great videos and sites. The same applies to "How to learn C# with Visual studio" or "Learning to code with unity". There are so many great resources out there that can help you get started.
Learn the fundamentals of your language
This will likely come as a part of your tutorial, but you need to learn the basics of the programming language you are studying. Such as: what is a loop? What are the different data types? How do you write reusable code? This might seem simple and you will learn a lot as you go, but without this it will be hard to get started - as you do not understand the basics.
You may also try out some online coding games where you can find small challenges, where you for example need to create some basic algorithm to solve a task. These are great for getting to know your programming language and challenge yourself.
Setting a goal
So what do you want to use your upcoming programming skills for? Do you want to create your own website? Write your own game? or make small tools to help you at work? Whatever it is, you need something to work on. Many open up their code editor, write
"hello world" or prints the result of
2 + 2 then close it and never look back. Without a goal or having an idea of what you want to create you will likely not get very far. As mentioned I like to write games and I made my own website as well (not this one). As mentioned previously having something "visual" that you can show others and yourself is helpful.
Having something you want build makes you come back to try and finish it. Normally I would advise people to set a time limit on your goal - so that you get it finished - however this might discourage you. In programming you often get stuck on the little things such as a misplaced comma or a missing forward slash in a URL.
Google your error messages and master Google
If you are going to make a career in programming you will learn how to master "Googling" your error messages. There are many sites out there with a lot of answers on how to fix errors that you might be getting - sites such as stackoverflow.com. Programming is all about collaboration, we all need help once in a while when we get stuck and there is absolutely nothing wrong with asking for help. Most of the time you can just copy paste your error into Google and you will find your answer and if not, try one of the large development communities. There is nothing worse than feeling "stuck" when you start out.
Take a break
If you feel stuck or overwhelmed take a break from development. Most developers think about how they should tackle their software development problems even when they are away from the keyboard. This can be while driving, in the shower or just before you fall asleep. Our brains are fascinating and made for solving problems, we simply cannot help ourselves, so we keep on trying to solve our problems even when they are not in front of us.
Even if you are not thinking about programming when you are away from your computer, you will hopefully have a more clear head when you return to your code and ready to give it one more try.
Whether "a break" means that you will be away for ten minutes or a day is up to you, however if you wait a week or more you will likely need to familiarise yourself with the code base again.
Read a book
Some people are good at learning from books and likes to follow long written tutorials. Others are more into finding resources from here and there and patching them together. If you are into books, here are some examples that I have found which can get you started:
Disclosure: Bear in mind that some of the links in this post are affiliate links and if you go through them to make a purchase I will earn a commission. Keep in mind that I link these companies and their products because of their quality. The decision is yours, and whether or not you decide to buy something is completely up to you.
HTML and CSS: Design and Build Websites by Jon Duckett
Java: A Beginner's Guide, Eighth Edition by Herbert Schildt
Ruby: Programming, Master's Handbook: A TRUE Beginner's Guide! by Code Well Academy
The Joy of PHP: A Beginner's Guide to Programming Interactive Web Applications with PHP and mySQL by Alan Forbes
Head First Design Patterns: A Brain-Friendly Guide by Eric Freeman, Bert Bates, et al.
The Pragmatic Programmer by Andrew Hunt
The Complete Software Developer's Career Guide by John Sonmez
That is it
I hope this post on how to get started programming has helped you get an idea of what you are going into. If you feel something is missing on this list, please write it down in the comments below. Happy coding!