Photo by Christina @ wocintechchat.com on Unsplash

LEARN PROGRAMMING

Can Programming be Self-Taught?

The Hitchhiker’s Guide to DIY Computer Science

4 min readNov 22, 2021

--

12 year old me didn’t know a lick of math. He played Xbox 360 everyday and had basically zero technical skills. I remember my mom taking me back to school and having me try out the fifth or sixth grade. When the teacher made me cry in front of the class for not knowing my multiplication, she didn’t take me to another school for another two years. Least to say, I was on the brink of being downright stupid, and I really needed something to turn my life around.

I started hacking on Xbox, and after downloading mods, I experimented with putting sketchy software on my mom’s old notebook to ban other players at my will. I was power-hungry for some reason. First, I had to enter my username and password to login to Xbox Live so they could do the ban… sorta strange.

Anyways, I lost my account to hackers and never made another one. I sold my Xbox because I got so interested in the software that stole my account information. With the money, I bought a newer computer. I watched videos on how to make software using Visual Basic and Windows Forms in Visual Studio 2010. Change this window, enter this code, and press the green run button. That’s the bottom line to making viruses.

After making those connections between the projects, Visual Studio, Visual Basic code, and the interface of the windows I was creating, I was really beginning to grasp this concept of “programming.” So I started doing my own projects.

I first experimented with some features of Visual Studio, trying out the weird types of projects available… none of them made any sense. With experimenting, I was beginning to draw the boundaries of my understanding of this editor that magically allowed me to make things. I also picked up on the naming convention of PascalCase and learned some things using Google Search.

I began my first programming project and recorded it as a “speed creation.” It was a graphical calculator software made for Windows Forms. You enter the first number, the second, select your type of operation, and press calculate. It will tell you the most recent calculation and adds it to a list of previous results. I posted the video on YouTube. The video includes my favorite song at the time, I think.

The code was primitive.

But, maybe this is a lesson to any of you struggling to find an excellent way to learn: look for something you find fun in programming. Perhaps it’s making yourself weird websites or drawing things in Processing.JS. Or, maybe making games and apps on your favorite operating system. Try out a few game engines like Godot and Unity.

Because I was not formally taught programming, I had a lot of gaps in my education that I struggled to fill. One of them was the understanding of how programming languages work, AKA compilers. After about 2–3 years of self-taught programming, I finally realized what a compiler was and how one worked. I have an outstanding story here to read about them if you want to know as well:

Teaching yourself programming does not need to take 3 years or longer. Here are three things you should absolutely do if you are going to be teaching yourself programming:

  • Find a friendly programming community on the internet and ask them any questions you have. Forums, mailing lists, Discord, Matrix, and Telegram chats. You name it, there’s a programming group there. Tell them you’re trying to learn programming and see what they recommend. I promise they like to help.
  • Pick a perfect course on YouTube or Udemy. Just make sure your buddies from your programming community agree with it. ;) And it would be a good idea to buy a textbook about your favorite programming language if you would read it.
  • Make this fun for you. You can’t get to feeling overwhelmed. Nobody knows everything. Pick one thing you like and explore it. It can’t be a waste, because everything we learn is a key to something we couldn’t understand before.

Understand that there are about three levels of programming skill: the beginner, intermediate, and advanced. I was a beginner in programming for years longer than I would have been if I had taken a course in college. But that’s because I didn’t find an article like this one. I didn’t aim to make professional software; I just made what I could or wanted to make.

Frank Berger, a 20+ year software developer, says beginners plan while coding, use lots of trial and error, focus heavily on the language being used, are prone to rewrite many times over, and want the program to just work. Intermediates focus on structure and frameworks, prefer hyped and sexy languages, plan ahead in small steps, are prone to over-engineer, and want to get everything right and proper at the cost of money and time. The advanced can plan ahead in large steps, choose the right language or framework for the job, can see early architecture problems in a project before they become problematic, and aim to use the least time and money to finish a project.

A year of a computer science class in college will only get someone to a beginner level of work. Someone teaching themselves programming can reach the intermediate level in maybe eight months. It really comes down to that list I gave you earlier: use your communities, follow some good educational material, and experiment and push your limits.

--

--

Luke Wilson

Licensed healthcare provider and entrepreneur. I write about business and programming.