Barack Obama, Mark Zuckerberg, and Bill Gates all say it is important to learn how to code. But should you? Maybe you are young and is wondering what you are going to do in your life. Maybe you already how a job which bores you to death. You might want to create something, but are afraid that it might be too hard. Let’s explore some of the reasons why you would start to code and create apps.
You get to be creative
One of the most exciting thing about programming for me is that I am able to have an idea in my head and create something thousands or maybe million people can use. And this can all be done only be using a simple text editor! There are also a lot of small wins you get while you are creating apps. There is often something new to learn, some challenges you solve which make you feel a sense of mastery.
Back in the old days when you created code, it could take hours or days before the code you wrote could be prepared and ready for you to see the result on the screen. But now, if you are doing web development, you will see the result of your work while you are typing, which is very exciting.
There is a high demand for people with programming skills
Nowadays we are hearing that a lot of people risk losing their jobs in the near future because computers can replace them. That is because computers have become so smart, that they totally can replace a person’s job. Soon we don’t have to drive our own cars anymore! The reasons why we want computers to do the job instead of people are quite obvious:
- You don’t need to pay wages to computer programs.
- Computer programs are happy to work on weekends.
- Computers are never tired at the end of the day and won’t do mistakes (as long as the program is built correctly)
Luckily for programmers, this means there are job opportunities for years to come. These automated computer systems I am talking about is just programs. And you know who create those programs? You guessed it! Programmers.
Work from anywhere
When working on creating applications, you only need a mac or pc. You can have meetings with Skype, so there is no reason you need to work in a boring office 8 hours a day. There are more and more job listings where you can work remotely. So if you want to, you could sit on the beach and code while sipping on a martini. (Just don’t tell your boss about the martini part). Or you could just work from home so your dog doesn’t have to be home alone all day.
Be your own boss
You can also start your own company. There are no expensive machinery or equipment you need to buy. If you are creating web applications, you can buy a domain and web hosting for a few dollars and publish your app there, and suddenly millions of people have access to your app. Same if you launch an app in Apples iTunes or android play store. There are millions of people with a smartphone nowadays who can just download your app. These are exciting times! I read that Facebook has 2.2 billion users! That is just crazy!
Another option is to work as a freelancer. This is where businesses hire you for a project they have. They may hire you for a few months. In this scenario, you don’t have the same security if you are employed by a company since the projects usually don’t last for a long time. But as long as you are doing a great job, you will after a while have a lot of good references which will help you get other work.
It is very important here that you are not shy about asking for a much higher salary than you usually would in a corporate job. It might be time between projects where you won’t get new work right away, so you need to have saved up some cash, so you can sustain yourself. The other thing is, there are pensions and insurances you don’t have while you work on your own, so take that into consideration.
You don’t have to go to school
Don’t get me wrong here. You should definitely get a computer science degree if you can. But it is not a must. A few of my colleagues didn’t even finish high school, and now they have a high paying developer job. That is because they found great enjoyment in programming, and was eager to learn.
Most companies who are hiring developers are not really interested in your education, but more interested in what you have done. If you have created a few projects in your spare time which you can show for, the person that might hire you would think a few things:
- That you are very passionate about programming, and therefore will just get better and better over time.
- That you won’t just “grind away” at this job just to get the paycheck at the end of each month.
In my opinion, if you think it is fun to code, then you will be a good developer. As simple as that.
The salary is good
In United States average salary for a developer is about $80.000. And for some senior developers, it might be up to six figures. If you are a skilled freelance you can even go higher. Considering the ever-growing industry and the high demand for developers, this will just rise higher.
Where do I start?
You might be saying: “OK, OK. You’ve convinced me! Where do I sign up? Where do I start learning about this programming thing you are talking about?”. There are tons of different programming languages out there, and it is easy to get overwhelmed. I will cover in another post what many of these languages are and what the strengths and weaknesses are.
The thing with programming languages is that if you know one language, it’s not that hard to learn another. See, there are fundamental concepts in programming which are universal for almost all the programming languages. So as long as you can get your head around these concepts, you can easily transfer this to other languages. Like in a normal language, let’s say English. If English is your native language, you will learn in school concepts like verbs and nouns. The same concept is found in Spanish and French. But how you say it is different. In programming, we would call this different syntax.
Why are there many different programming languages? Would just one suffice?
A very good question. The thing is, different languages have different strengths.
- Some languages are excellent in browsers.
- Other languages have their strengths in desktop applications.
- There are languages which are specialized in handling databases.
- Some languages are more difficult, but you have more flexibility. For instance, make a program run as fast as possible. While other handles some things automatically, but you lose performance.
The main point is to choose the language which can solve what you are trying to do the best way. Since computers now are much more powerful today than it was in the eighties, it is less often you need to optimize so much for speed.
There are also a lot of similar programming languages which does more or less the same thing but handles things in different ways. Often there is no best language, but it comes down to personal preference. This often results in flame wars in various forums. My suggestion is to just watch some tutorials and try them out. Choose your favorite and stick to it.
Didn’t you say you would tell me where to start?
Sorry about that. Got a little sidetracked there. There is a wonderful site called w3schools. This is a totally free resource with a bunch of tutorials from many different languages and frameworks. What I like about this site is first and foremost, that everything is free. The info there is short and concise. And you can try to program right there in the browser.
Even though I have a few years experience as a software developer, I often browse through some of the tutorials there, just to get a refresher.