3D source code of a webpage, open in programming editor's application window. Several planes with data floating in 3d space - central one in focus. Digitally generated background, expressing the technologies behind the internet. Webpage making illustration.

Want to Learn How to Code?

Sérgio Tenreiro de Magalhães, PhD

Want to learn how to code? Think slowly!

We live in a society under constant change, with technology playing a major role. Computational systems are everywhere and affect almost every job, so you might have decided that it is time for you to learn how to code, but you do not know how and/or where to start. If that is the case, this post is for you.

First things first: let me begin by pointing out that I didn’t say “computers,” but rather “computational systems.” Computational systems - which are as complex as a self-driving car or as simple as a smart power outlet - are everywhere. They all need software to operate and they perform tasks that computers cannot do. Smartwatches, robots, drones, gaming consoles, and more are all examples of computational devices that are not computers. Their development requires the design skills and programming expertise of software developers, which is the reason why there are so many job postings for professionals with coding capabilities.

Now, back to your plans. You have decided that you want to learn how to code. As you start thinking about that, a few questions might pop into your head: how hard is it? Which language should you learn first?

I’ll get to those questions, but first I would like to address two critical factors: passion, and mindset.

Determine if Coding is For You

Will you love coding?

Passion should be the driver for any professional decision that you make. Yes, being a software developer pays well, and there is high demand for software developers in the job market right now. The U.S. Bureau of Labor Statistics indicates that the current median pay in software developing careers is more than $110,000 per year, with the job outlook projected to grow 22% until 2030. The high salaries and job growth associated with software developing careers are not going to decrease, especially as society and technology continue to progress and advance. However, you will need to love what you do to be happy.

Coding is extremely rewarding, but also very demanding. If you decide to become a software developer, expect that you will spend many hours at your desk, writing instructions that will only result in an outcome when you complete your work. For some, that reward at the end is priceless. For others, it is frustrating to spend so much time working without seeing tangible results. You won’t know if you love coding until you actually try it, but if you enjoy jigsaw puzzles, car restoration, or knitting, that’s a good indicator. These are all activities where you invest a lot of time in your project, where you need attention to detail, and you progress slowly toward the final product.

  • Ask yourself: Do you believe, based on this information, that you’ll love coding?

Can you think slowly, one step at a time?

Thinking that computational systems are smart is a common misperception. They are not. They are just very fast. To understand this better, think of a simple task, like filling a bathtub. For a human, filling a bathtub is not very complicated. We use our hands to manipulate the objects, and our eyes and our skin to receive information about what we are doing, such as the water level and the water temperature.

Programming a computational system to fill a bathtub would be a far more complicated task. You would need to tell the system to open the faucet at a certain level, and then measure the temperature of the water to decide if the position of the faucet is correct, or if it needs to be adjusted. You would need to make sure that the temperature never gets to a point where it will damage the sensor, etc. Oh! I forgot to tell the system to close the water drain! So, you get the picture.

A computational system needs a step-by-step description of what to do in every situation. Then there are security aspects that we also need to consider (what we call the non-functional requirements). What happens if the faucet gets stuck and you can’t close it? You open the drain. The system will not know that unless you account for that risk and include instructions for that in your code.

All this to say that programming requires you to think differently. I’ve been coding for nearly 30 years and teaching students how to code for almost 20 years now. My experience is that the biggest challenge you will face when you start learning how to code is to change your mindset in order to think slowly, one step at a time.

  • Ask yourself: Can you be meticulous, and think slowly, one step at a time?

If you answered yes to these two questions, it is definitely the right time for you to learn how to program computational systems. Now, you probably have even more questions. I’ll do my best to anticipate them.

Answers to Common Coding FAQs

Which language should you learn first?

Honestly? It doesn’t matter. Just make sure that you start with a real programming language. We often see websites and blog posts designating HTML, CSS, XML, or SQL as programming languages. They are languages that computational systems use, but they are not programming languages, and they shouldn’t be confused with one.

A good programming language to start learning is Python. Python is a powerful language, supported by the Python Software Foundation, that is already very popular, and is growing in popularity. You can use it to create any type of program, and it is very strong in fields such as data science/analytics, cybersecurity, robotics, and digital forensics. The reason why this is a good first language to learn is that, when well coded, Python is easy to read, which helps you learn by example. If all you are looking for is a sense of how computational systems operate, then your best option is probably to take a course in Python.

Another amazing language to learn, with a relevant market share, is C++. This language evolved from another important programming language, called C, more than thirty years ago and, since then, it has been in constant evolution.  The latest C++ standard is the ISO/IEC 14882:2020 standard, frequently known as C++ 20, and there is already work in progress to get a C++ 23 version ready. Don’t worry, changes from one version to the next are always relevant but small, and your knowledge will not become outdated by the constant updates.

If you really are considering a career in software development, then you need to learn more than one language and learn them well. My recommendation is that you take a combination of programming courses that will allow you to be comfortable with different languages, and different levels of hardware access. The more access you have to the hardware, the greater the level of control you will have over what the machine is doing. Unfortunately, with great power comes great responsibility, and it is more likely that you will make some mistakes, creating security vulnerabilities in your code. That is why I recommend that you start by learning both Python and C++.

How difficult is coding?

That really depends on your personality, and this brings us back to where we started: do you love to code? And, can you think slowly? If the answer to these two questions is yes, then it is not hard at all to program, as long as you learn it the right way, which means not skipping the fundamentals and focusing on the quality of the code, instead of just wanting to get the fastest route possible to the software output. Cutting corners and saying “it gets the job done” will only take you so far, and once you develop bad programming habits, it is really hard to go back.

Can you learn how to code by yourself?

You can, but you really shouldn’t. There are many online resources that promise to teach you how to code, but learning how to code requires a well-structured and well-thought approach with a lot of support.

When you first learn how to code you can either have a great experience that sets you up for success, or a terrible experience that makes you feel like programming is beyond human capabilities or teaches you how to do some “cool” things without really explaining what choices are best and why.

When you start, you will need well-designed courses and a lot of support from an instructor who really knows how to help you learn and can answer the many questions that you’ll have. And you’ll want to learn more than just the languages. You’ll want to learn how the language you are learning fits in the software development industry landscape, what the foundations of the programming paradigm are that you are learning along with the language, what that language is best suited for, and what alternatives are in the market.

Another thing that you should consider when choosing how and where to learn how to program, is networking. The software development industry is all about networking. From getting assistance with a specific programming challenge to learning about a job opportunity, you want to know people who share your interests and, most likely, have a different background. For those reasons, you want to choose a course/program where you have opportunities to develop those relationships with colleagues and with instructors.

Do you need a bachelor’s degree?

If you want to become a software developer you will need a bachelor’s degree, which is the typical entry-level education required for most coding jobs according to the U.S. Bureau of Labor Statistics. However, if you are not sure if you want to start with a bachelor’s in software development, you should begin your learning experience in an institution that allows you to learn in progressive steps.

Maybe start off with an undergraduate certificate that awards credits you can use when progressing, first to an associate degree, and later to a bachelor’s degree. By choosing an institution that offers all those options, you are making sure that all your work will count toward that end goal, without losing credits in transfer processes.

Champlain College Online’s Software Development Offerings

Here at Champlain College Online (CCO), we offer various levels of programs you can choose from in software development, including our undergraduate certificate, associate degree, and bachelor’s degree. With these different ways to approach your education, the choice ultimately comes down to which program best fits your career goals, time investment, and budget.

Our software development programs all include 100% online courses that can be accessed at any time and in any place with an internet connection. You can expect to take two 7-week terms per semester, with a commitment of three semesters per year until you complete your program of choice. Moreover, our programs are ranked as among the most affordable, and CCO is ranked as among the best online colleges for software engineering.

Interested in getting started here at CCO?


About the Author

Sérgio Tenreiro de Magalhães, PhD

Program Director

Dr. Sérgio Tenreiro de Magalhães is Associate Professor and Chair of Cybersecurity at Champlain College Online.

Prior to Champlain, Dr. Magalhães was a researcher of the Software Engineering and Management Group (SEMAG) of the Algoritmi Research Center (University of Minho) and an Assistant Professor of the Catholic University of Portugal - Braga. He is a member and reviewer of a number of organizations, including the NATO Multinational Cyber Defense Education and Training project and the Editorial Committee of the International Journal of Electronic Security and Digital Forensics.

Dr. Magalhães has a PhD in Information Systems and Technologies from the University of Minho (Portugal). His research interests focus on information security, intelligence, and performance monitoring, and has published widely on security-related topics.

Download Program Guide

Learn what you can expect from our online bachelor's in software development program.

Sunset over Lake Champlain from Champlain College campus in Burlington, Vermont

Download Program Guide

Champlain College will not share or sell personal information. Submitting this form constitutes your express written consent to agree to receive e-mails, texts, and phone messages from Champlain College at the phone number(s) and email address provided in this form.