Whether you are looking to learn a new skill that will open up new opportunities in the IT job market, have a cool idea for an app and want to put in practice yourself, or are just curios to learn what the fuss is all about, you should continue reading. If being a programmer 15 or 20 years ago meant that you were a geek with no social life, today the situation is slightly different. Things change, technology evolves, people’s perception adjusts to the current.
Yesterday’s geeks are today’s superstars, the makers of the apps, portals and technologies that we all love and use today. By now, most of them have already cashed in big time and are still collecting royalties, and many more cool startups are still on the rise. And that’s no wonder, looking at the figures, almost 10% of Fortune 500 companies are tech companies and tech related jobs are expected to grow 22% through 2020 (US).
For those of you who still are unclear what a computer programmer does, in simple words a computer programmers turn concepts into reality. Namely a programmer creates the instructions, or code, to make a software program function. Programmers may create software to be run on personal computers, tablets, smartphones or automated systems used in manufacturing. There are two camps: applications programmers and systems programmers. Applications programmers create and upgrade software applications and customize programs to fit a certain context, whether it is a taxi app or translation software for a mobile phone. Systems programmers create operating systems, like the ones on your phone or computer. They take a holistic approach to how different applications work with the computer. Applications programmers sometimes bring in systems programmers to make sure their programs will be compatible on an operating system.
So what does it take to be a computer programmer? As it turns out, not that many prerequisites are required, and it all depends on the programming language you choose or career path you want for yourself. Some people may think that math skills are important, but there are lots of great mathematicians who are mediocre programmers, and lots of great programmers who are certainly not mathematicians (and probably never expected to be).
Many people want to know if they have what it takes to be a good programmer. However, there’s no simple, check-these-boxes answer to the question, but there are some helpful traits that you may have or that you can develop. Programming is more of a designer’s task, to be a good programmer, may imply having an eye for style and good design. I don’t mean the type of style that governs where you put pieces of code. What I really mean by style is that you have to have a good sense for discriminating between “good” and “bad” approaches to attacking problems. It means taking a big problem and breaking it in smaller problems that are easier to crack – “divide and conquer”.
There are also other soft skills that are important in addition to knowing a programming knowledge. Computer programmers must be detail-oriented. When it comes to writing and debugging code, even one misplaced character can cause a program to malfunction. Being a critical thinker is essential, as there are usually multiple ways to approach a programming problem, some more efficient or elegant than others.
Programmers are also focused and patient, since they may be tasked with writing line after line of code for long periods of time or conducting several tests to properly evaluate the quality and performance of a program. Because computer programmers are often required to write code based on a client or employer’s request, it’s important that they be active listeners and strong communicators. Lastly, an understanding of how people typically use computers helps when designing user interfaces.
There are a lot of flavors to choose from and a lot of career paths, each with it’s own difficulty levels, each with it’s advantages and disadvantages. If I were to drill it down to it’s very core, I guess it comes down to how much effort you want to invest into this. Or how much money you want to gain by writing code, the better you are the more money you will make.
The best way is to be your own teacher, and learn everything yourself, but having some external help always helps. Below I have made a short list of free websites that are ideal for getting your code on.
|Code School||HTML5, CSS, CSS3, jQuery, Ruby, Ruby on Rails, iOS||Code Interpreter, Screencast, Progress Saver, Forum||Intermediate – Hard|
|Udacity||Web Development, HTML5, Python, Java, Computer Science, Algorithm, AI||Code Interpreter, Screencast, Progress Saver, Forum||Intermediate – Nightmare|
|Khan Academy||Programming Basics, Canvas Drawing, Animation, User Interaction||Code Interpreter, Screencast, Progress Saver, Project, Discussion||Easy – Intermediate|
|Scratch 2.0||Visual Programming||Visual Editor, Project, Forum||Easy|
|SQLZOO||SQL||Code Interpreter||Easy – Hard|
As a last thing, I think a very important key ingredient is fun. If you don’ have fun while doing it, than it means you are doing it wrong. Even today’s tech superstars started out only by writing the simplest programs, just for fun: