Want to Learn to Program? Words of Encouragement!

Because I focus on small projects, I expect some people who reach my posts may be beginners or just thinking about learning to program. This post is for you.

This is not a guide about how to get started, which resources to use, or a list of free or paid websites you can learn from (I will probably post some of those in the future). Instead, I want to give a few words of encouragement. Getting started can be intimidating and frustrating, and impostor syndrome affects most people at one point or another. However, learning to program can also be very exciting and enjoyable. Here are my tips for getting started.

Do not worry about what you don't know

No one knows it all. Sure, some people know more than others, but the truth is that just like in any field, there are some general topics one should be familiar with, and there are specialized topics that people spend years learning. Know that what you do know, no matter how little, is useful, and you may be surprised at how many things can be built with limited knowledge.

Get hands-on experience

A great way to learn to program is to create stuff. Once you learn a little, use that to build something creative and fun. Make it as simple or complex as you like; just have fun while learning. Programming is a practiced skill. It is just like playing an instrument. There is music theory that is useful to know, but you really need to get hands-on practice.

A little knowledge can go a long way

As a beginner, how do you know how much to learn before you create something of your own? The critical thing to understand is that small things can get a lot done. For instance, in many programming courses, you'll first learn to print something to the screen (a "Hello, world!" program). Then, you may learn how to get input from the terminal. For instance, you could ask the user for their name and print it on the screen.

What is you name? Jason
Hi Jason, how are you today?

What can you possibly do with that? Setting aside control flow for a minute, you could tell an entire story that way, something like a Mad Libs story.

Now, throw in an if statement and possibly a while loop; you can then create an entire text-based game. Or a to-do list. Or balance your checking account. Or create a calendar.

Now, throw in an if statement and possibly a while loop, you can then create an entire text based game. Or a todo list. Or balance your checking account. Or create a calendar.

You could do so many creative things with 20 minutes worth of learning about Python. The trick is to do those things. Take every little bit you know and build on it. It is more fun than doing a few exercises; you'll learn it better. As with anything, being well-versed in the basics builds a strong foundation, allowing you to progress faster. The best way to learn the basics is to make your own creations. It is far more challenging and rewarding than a tutorial.

Libraries for everything - building on other people's expertise

For a recent project, I needed to pull data from Excel spreadsheets and load it into other predefined templates. It didn't sound very easy to me, but I knew that I could not possibly be the first person to need to work with Excel. Therefore, I searched for a few libraries and found one that could do everything I needed.

Following the examples in the instructions, I used that library to read the Excel data from several files into my simple program. I manipulated basic data, like adding numbers based on specific field values. Then, I wrote that data into an Excel template that the accountant uploaded into the finance system. I saved them a week's worth of work just by spending 15 minutes learning to use a library written by someone with experience in Excel file formats.

Programmers utilize each other's code constantly (through libraries - not by stealing copyrighted code). As a beginning programmer I felt like I didn't know anything just because I didn't understand how create the libraries that other programmers created. I felt like an imposter using the libraries to do useful things - because I wanted to be a programmer I thought I had to know it all.

But it is just like a programming language. You don't have to know how to create a programming language in order to build an excellent web application. You just use the language someone else made. Creating programming languages can be very difficult. (But don't worry - if you desire to build a language, there are libraries and applications for that, too). Leverage other people's work as much as possible.

One last thing to consider: if the library you want to use is popular, other programmers have already worked out the bugs and added the best features. Using well-tested libraries leads to better, more secure code. So, never shy away from using the tools available to solve your programming challenges.


To sum up:

  1. You don't have to know everything to create some extremely cool programs.
  2. Enhance your learning by building everything you can think of. Spend more time building your own inventions than doing programming exercises.
  3. Leverage prebuilt code in the way of libraries to get your work done.
  4. Have fun and enjoy the process.

Learning to program is worth the effort - even if you never do it professionally. Programming changes your thinking by teaching you how to break problems into bite-size pieces and design elegant solutions.

Coming soon: I would like to put together a list of topics that one should learn to get the basics of programming down. Many courses will teach you the basics, but any one course may only hit some good elements to be aware of. Keep an eye out for that in the future.

Subscribe to Stidd's Journal

Don’t miss out on the latest issues. Sign up now to get access to the library of members-only issues.