How to Teach Yourself to Program and Get a Job
So you want to learn how to program. Good for you. Progamming can be a very lucrative and fulfilling career. It’s a career I’m very happy I chose.
One of the beautiful things about programming is that it’s a profession that doesn’t require a degree. It doesn’t even require any formal training. It’s something that you can teach yourself while being locked down during COVID.
But how can you go from, I know nothing, to I’m a full blown programmer? There’s tons of books and online tutorials out there to chose from. Which ones are best for you?
By the time you read this article, your going to know what you need to do to become a programmer and start making money.
What language should you learn?
There are a lot of languages out there to choose from. Often people ask this question because they want to know which jobs are in the most demand, or which jobs pay the best. I don’t believe this should be the criteria that you use to decide.
Instead, you should ask yourself, ‘what do I want to do?’ Do I want to do…
- iOS Development
- Android Development
- Cross-Platform Mobile Applications
- Web Development
- Server-Side (Backend) Development
Knowing what you want to do is important. I’ve worked on projects that I hated because I was doing something I didn’t enjoy. I prefer web and iOS development. And I love working with startups.
“Computer programming is an art, because it applies accumulated knowledge to the world, because it requires skill and ingenuity, and especially because it produces objects of beauty. A programmer who subconsciously views himself as an artist will enjoy what he does and will do it better.” — David Knuthe
You may prefer, backend development where you don’t have to deal with much visually. It’s all up to you.
Just because there’s a big demand for a certain type of developer doesn’t mean that will increase your chances of finding work. With big demand means more people trying to fill that demand.
As long as you learn something that’s relevant to today you will be okay. If you get skilled, you’ll get a job. If you don’t do what it takes to get skilled, you won’t get a job or you won’t get the amount you want.
So first figure out what you want to do, and then find the programming language to do it. This list may come in handy.
iOS Development — Swift, Objective-c
Android Development — Java, Kotlin
Cross-Platform Mobile Development — React Native, Ionic, Flutter, Xamarin
Getting Started With Videos or Written Training
You have two options of how to receive your training. Either you can read, or you can watch videos. The decision of which you chose is up to you. Some people prefer videos, some people prefer reading.
If you don’t enjoy reading, then when you start, you should begin with videos. The beginning stages of learning to program can be boring. You don’t want to add any other difficulties on top of that by using a medium you don’t enjoy.
For paid courses, I would recommend checking out the following.
Check out the topic that you’re interested in learning on each site to see how their pricing compares. The courses should all have reviews. Read the reviews for whatever course you want to purchase first. After reading the reviews you should know the quality of the course.
At some point you need to read
Even if you don’t like reading, at some point you’ll need to read a book or two. Books allow you to get more in-depth in many subjects. Also, many of the authorities in programming have written books. There are many classic programming books, but I’ve never heard of a classic programming video.
You can get away with never watching a programming video in your entire career. You can’t get away with never reading anything about programming.
Do a Few Project Tutorials
You only need to go through a few tutorials. The more tutorials you can go through the better. But it’s not necessary to be go through a ton of tutorials to get the basics.
What’s most important, is not speeding through tutorials. But taking your time to understand everything that you’re doing.
The most common mistake of new developers is their main goal is to finish as many tutorials as possible as fast as they can. But they don’t take the time to understand why they’re doing what they’re doing.
When you’re learning to program, the two questions you should always be striving to answer is why and how. Why am I putting the code in this function? Why am I using these variables? How does this work?
Don’t do the tutorial. Study the tutorial.
Your goal at the end of each tutorial should be to be able to build the same project without the aid of the tutorial. If you can’t do this, do the tutorial again.
“It’s not necessarily the amount of time you spend at practice that counts: it’s what you put into the practice.” -Eric Lindros
By doing this, you master a tutorial. The more tutorials you master, the better your foundation is going to be.
Build Your Own Projects
After you’ve mastered a few tutorials, you should have the basics covered well enough.
At this point, don’t stop doing tutorials, but start doing your own projects along with tutorials.
Here’s a few ideas that you can try
- Build a todo application.
- Build a simple flashcard application.
- Build a portfolio website and host it on your own server.
- Build a simple side-scroller
- Build a calculator
- Build a chess game — This one may be kind of tough so start at your own discretion.
If none of these ideas interest you, think of something cool and build it.
The only thing though, is whatever you start, make sure you finish it. A common issue amongst developers, is we start projects but don’t finish them. When you’re learning, this is a problem.
Building software involves many steps.
- Design and planning
- Writing the code
- Fixing bugs and other issues
- Testing in your production environment
You want to make sure that you’re familiar and comfortable with every step of the process. If you’re weak in one of these areas, it can halt the progression of a project.
Learning to program is about much more then just writing code. You need to be competent in all areas. If not, you’ll always be a weaker developer than you could be.
Starting and not finishing projects is like a carpenter never finishing an entire piece of furniture. If a carpenter approached you and said I build furniture. But all around his house were half-finished benches, half-finished chairs, and half-finished tables, would you give him your money? Nope.
Skill is the ability to go from start to finish. There’s a lot of challenges you’ll face along the way. It’s why many start and don’t finish. Overcome the challenges. Finish the project. And you’ll be learning what’s required to be a great developer.
Keep Building Projects
Building projects is where you increase your skills as a developer. Reading books. Watching videos. Learning new information is great. But learning alone is not enough. You must apply everything that you learn. You must practice what you’re learning.
We learn by practice. Whether it means to learn to dance by practicing dancing or to learn to live by practicing living, the principles are the same.” — Martha Graham
When you apply what you learn, you own it. It becomes a natural part of you. Learning alone won’t do this. Learning alone won’t make you a great developer.
Any time you feel you’re plateauing, build something. The best developers work on a lot of side projects. It’s like any other skill. The best athletes, dancers, and musicians practice more than everyone else. Programming is no different. The more you practice the better you’ll be.
Reach Out For Work
Once you’ve carried out the steps I’ve mentioned above, you’re ready to start looking for work. In this area, you need to be patient. In can take a while before you land your first job. While you’re waiting, keep building up your skills. Keep practicing.
Get a referral
One of the easiest ways to get a programming job is if you know someone who is a programmer. Programmers get a lot of job offers that don’t interest us or that don’t apply to our skillset.
If you know someone who is a programmer, they may know someone who is in need of your skills. Or their job might be looking for a few developers to add to the team.
Getting a recommendation from another programmer is one of the best ways to get work. I still apply this strategy when looking for new opportunities.
Speak to friends and family
Another strategy that works well is reaching out to people you know to see if they’re in need of a website or an app. This is a great way to build your portfolio.
Many people need some sort of programming work done. Let all your friends and family know what you do, and that you’re looking for work. You never know who may bite.
I’ve gotten a few great contracts this way.
LinkedIn is great. Try to take some of their skills test and reach out to a few recruiters. Recruiters get paid when they find a hire for a role. So it’s in their best interest to get you work.
I know there are some people who use services like Upwork to get freelancing gigs. When you’re just starting out you might try something like that. I personally don’t use these types of sites because it’s very hard to get going. Often times you have to take very low paying jobs to start out.
If you’re in the position to do that, then by all means do it. But I never felt it was worth it for myself.
But some people have been able to do very well on freelancing sites, so you should look into at least.
My personal experience getting my first job
My brother is a developer. It was through him that I got my first programming job. At the time, I wasn’t that good of a developer, but I knew my stuff. I could build an app without supervision. But I didn’t have a tract record. Fortunately, because I was recommended by my brother, I was able to get a job. That job got my foot in the door and led to much more work.
Overcoming Imposter Syndrome
Chances are, after you’ve put in the work to learn to program, you’re going to feel like you’re an imposter. You’ll feel as if you don’t really know how to program, but you’ve somehow faked your way through.
How do you overcome this imposter syndrome?
First of all, realize that there are many others who feel this way. And some who feel this way are very experienced developers.
There’s so much to learn about programming that you’ll always feel like you’re just scratching the surface. This can be a good thing. It motivates you to continue learning.
In reality, every developer is an imposter. We don’t all understand everything that we read and that we do. We’re not specialist in every field. We all are learning new things every day.
“Develop a passion for learning. If you do, you will never cease to grow.” — Anthony J. D’Angelo
The attitude that you want to keep learning is what will make you a great developer. And as you continue learning, and working with others, the feeling of being an imposter will start to fade.
You’ll see that in some areas you know more than you realized. As you learn more, and practice more, others will begin to come to you for advice.
You’ll also see that there’s nothing wrong with asking for help. Developers all have strengths and weaknesses. When you recognize that, you’ll try to help where you can, and receive help when needed. Needing help is not a sign of being an imposter.
In fact, one of the marks of a good developer is that he’ll ask for help when he’s stuck on a problem. I have no desire to work with a person who will spend unnecessary time on a problem because he’s too prideful to ask for help. That’s the mark of a weak developer.
This is a great time to learn to program. Many people are at home and looking for something to do. Programming is so unique because it pays well, can be done at home, but yet doesn’t require formal training.
Now is the time to start learning.
There are many self-taught programmers who are having very successful programming careers. You can be one of them. All you need to do is:
- Decide what type of software you want to build?
- Start reading physics books, or books online, or watching videos speaking about the basics of what you want to learn.
- Do a few tutorials
- Start building your own personal projects
- Keep building your own personal projects
- Start searching for work
If you want to learn how to program, or are currently learning and need some help, leave a comment. I would be glad to help anyway that I can. You can also email me at firstname.lastname@example.org.