How do you start a career in computer programming?
We asked experts to provide useful insights to help you learn more about how to enter this profession.
Founder & CEO, Latticework Insights
Don’t major in Computer Science
In our 20+ years of experience, we’ve seen that the best programmers almost always come from a liberal arts background like art history or philosophy, not a computer science or engineering background.
Programmers need life experience, an appreciation for design, and patience working with other humans.
Computer Science degrees prepare you for the abstract, the ideal, and the highly performant. In other words, things that never occur in real life.
To build deep relationships with people outside of engineering departments, take on lots of side projects and force yourself outside of your comfort zone, and expose yourself to design.
Good programmers need enormous amounts of practice…with actual programming
And the best way to learn to write good code, to build massive systems, and to analyze giant databases, is to do it constantly. College is just simply too short of a timeframe to become skilled enough in any of these areas.
You simply need to do it, and do it, and then keep doing it.
Taking classes is a good thing, but so is teaching yourself a new programming language or framework. In fact, take a project that you and your team have built and deployed to perfection, and then try rebuilding it in your free time with a totally unrelated language.
Don’t attend meetups, get speaking gigs at meetups
One of the best learning experiences you can hope for is to put your best ideas into a public forum, and then to get shot out of the sky. Seriously.
Pick a topic you feel confident about, force yourself to articulate a strong point of view on it, rehearse it until it comes naturally and authentically, and then prepare to get your ideas chewed up by the audience. It’ll be amazing.
Be a full-stack human being
Databases can do very little without a front-end. And machine learning & statistics packages need dynamic, interesting human beings to train models and explain insights.
You stand to learn a ton about being a good programmer from people that don’t understand anything about programming, since those people will often be the judge, jury, and executioner of all your work. Go take them out to drinks. Lots of them.
Believe in yourself
Reflect on your natural tendencies, personality, and what makes you tick and imbue your work with those characteristics. And be patient, it’s going to take time, so enjoy the journey.
Software Engineer | CEO, Uvietech Software Solutions, Inc.
Pick a field within computer programming and start from there
Computer programing is a very large field and the key to success is identifying an area or niche and starting from there in your journey. That niche could be Web development, or game development or some other area, but pick one area of focus, first and then build from there.
The reason why you need to do this is that it can get very overwhelming when you are starting out and faced with the enormous amount of knowledge that you will need to learn in order to call yourself a computer programmer.
By narrowing your focus initially, you can acquire some skill sets that allow you to start to build tangible products. This will increase your confidence and faith in your abilities and inspire you to keep learning even more.
A computer programmer is not defined by what ‘they know’ but by what they build.
Personally, I fell in love with the internet in my teens and started my programming career with tutorials online to build websites before graduating to doing more sophisticated computer programming.
Commit to lifelong learning
New developments, programming languages, libraries, tools, and computer programming patterns evolve and emerge at a very rapid pace in the field of computer programming.
To succeed in the long term, you need to commit to lifelong learning. What you know today can be obsolete in the next six months to a year.
You will need to commit to be a self-starter and take ownership of your development. You will often need to buy books, watch training videos and take courses on a regular basis to keep up with new developments.
You can go to a school to learn computer programming but there is no curriculum or syllabus that will cover everything that you need to know, and sometimes by the time you graduate a lot of that information may be obsolete.
You will need to fill in many of those gaps yourself and commit to doing this for the duration of your computer programming career.
Learn the foundations of computer science
Not every computer programmer studied computer science at school. In fact, some of the best didn’t even have any formal training in the field.
However, this is not to say that they did not learn or absorb – in one fashion or the other – the basic principles of computer science and programming that a good computer programmer needs to have to produce work of outstanding quality.
Learning about things like Data structures and Algorithms, memory management, computer operating systems, computer hardware, etc. will help you to be a better programmer.
Find good books, or video courses on places like Udemy, YouTube, Udacity, etc., and learn about these theoretical foundations of computer programming and you will find your skills will level up very quickly.
Computer programming is work that requires laser focus and attention to detail. A misplaced comma or missing semi-colon can bring your program crashing to the ground.
To succeed at computer programming you will need to learn how to eliminate distractions when you need to work and how to focus on the computer screen for longer amounts of time.
Becoming a computer programmer is easier than it looks like. Programming is all about logic. That’s all about learning how to think logically. We call it algorithm. This is the name of programming logics’.
A programming language is not like a speaking language. For example, if you are a native English speaker and wish to learn french, you will need to study a lot of new specific rules.
On the other hand, learning your first programming language can be a time-consuming – but not tough – job. Getting used to your second or third language is much easier, as you have already learned algorithms.
Firstly, you need to study algorithms
There are great videos with less than 60 minutes on Youtube for you to start learning. I can suggest Joseph Dugan’s explanation here:
Then, you can make an online course to learn to program
For example, Edx has some free and great online courses. I can recommend C language to start. It’s not the easier programming language, but it’s a very complete one. When you learn C, you will have the ease to learn any other language in a short time.
I can recommend especially this course from Petra Taylor and Remi Sharrock for beginners. It’s free, and if you prefer, allows you to include a valid certificate for $49.
During the course – or even after it – you can look for online programming interpreters to start writing codes and testing. I can suggest Tio, which is a great tool to quickly run your codes and see instant results.
Jerold M. Stratton
Computer Programmer & Founder, Astounding Scripts |
Author, 42 Astoundingly Useful Scripts and Automations for the Macintosh
The way to become a programmer is to program
I learned to program using BASIC on a Radio Shack TRS-80 Model 1. When other kids saved to buy a used car at sixteen, I saved to buy a used computer. I’d never used a computer before, never seen one except on television.
In those days, everyone who owned a computer was expected to be a programmer. It was how you got your computer to do anything. There were books filled with programs to type in. I stayed up late typing other people’s code and learning from it.
There were also magazines that printed computer programs for readers to type in. I read these, and also sold to them. My first sale, to Hobby Computer Handbook, emulated a Mattel handheld baseball game. My brother had one, and I wanted one. It was a problem that could be solved by programming, so I wrote a program. I used the money from the sale to buy more memory for the Model 1.
Constant practice is also helpful
If there is an experience that made me a computer programmer, it was my second job after graduation. It wasn’t meant to be a programming job. We were scanning all the works of Sigmund Freud, cleaning up the errors that the great Kurzweil optical scanner—the size of a washing machine—made as it converted pages of German text to computer text. We took sheets of paper, scanned them into computer text, cleaned the text, and shipped the disks to Canada and the rest of the team.
Cleaning the errors was extremely repetitive. The scanner made the same mistakes, the same kind of mistakes, over and over. And I had to fix them, over and over, in a very early version of WordPerfect.
A perfect problem for programming. But that was before the Internet and the ability to download free programming tools quickly. For reasons that seemed like a good idea at the time, we chose not to purchase any language or computer time on a minicomputer and did all of the work on a simple IBM PC.
But we did have WordPerfect. Back then, no programming language did everything or even enough. Programming was about making do in an environment of scarcity.
Nowadays, you could specialize in Swift for iOS/macOS, or Python, Perl, Ruby, or C++, and use that language in any environment for any problem. Macintosh and Linux come with most of these languages built-in. But back then you had to be willing to adjust the language to the task at hand or the task to the language. So it wasn’t completely crazy to decide to write a program in WordPerfect’s macro language.
But it was crazy enough. At the time, in the version we were using, WordPerfect’s macros couldn’t even use variables. I’m sure its macro language has since grown into a fine programming tool. They all did. The difference between macros and batches and scripts and even compiled code is much, much smaller today.
At the time, though, this seemed like an insurmountable problem. Variables are a fundamental part of programming. If you cannot store and isolate data how can your program act on different data?
However, WordPerfect did have multiple documents. It did have a search. And it could branch based on the success or failure of a search.
That’s a variable. When I needed to store text and branch based on what the text contained, I had the script place the text in a new document and search for the comparison test.
It worked. It worked and meant we could produce clean text faster and more reliably. I have never used WordPerfect again. Learning to program in WordPerfect was not a helpful skill later in my career. But learning to do the impossible was. Schools and books will tell you what is impossible. But only experience will tell you how to do the impossible.
In Tassajara Cooking, one of my favorite cookbooks, Edward Espe Brown says that “The way to be a cook is to cook.”
He’s right. And the way to be a programmer is to program.
Utilize online resources
More than that, though, the internet has become more helpful than any resource available in the past. There are paid resources like Linux Academy and Linda and free tutorials on YouTube that cover nearly every language.
Join a community of programmers
More so, however, the community of programmers is incredibly helpful. If you get stuck while working a tutorial or when trying to develop on your own, websites like Stack Overflow allow you post questions to the community which is almost always answered quickly and with explanations.
Once you have learned a language, look for a junior-level position
You can get these without a college degree and you’ll gain work experience that you can use to advance without one. This alleviates a lot of the risk when choosing this career path.
Reinder de Vries
Senior iOS Developer, LearnAppMaking
I’ve been a professional software developer for over 10 years now, and I can’t emphasize enough the importance of making mistakes! Learning a new skill like programming means you’ll make a lot of mistakes, which leads to new insights.
View problems as learning opportunities
Yet, I see so many beginners only looking for the right answer to a particular programming question, without wanting to dive deep to find out how an aspect of programming really works. Encountering a problem that you don’t know how to solve is an opportune moment to learn more, to improve your skill, and to grow as a developer.
Another bit of advice that’s helped me learn to code, and master new languages, is to spend at least an hour a day on programming. You’ll build a habit that way, and the momentum will keep you motivated to learn more. It may sound odd, but having fun with programming is addicting!