How to start programming with any background

Published on
post image

Introduction

Programming is a skill that is in demand basically everywhere, so asking yourself if you could do this too is a good way to start getting into programming. Because of it beeing in demand this much, the number of resouces that are available online and offline to learn how to code is increasing every day. But it seems like a lot of people just don't find a way to stick to it and think that they just can't do it.

There are thousands of websites that offer free or payed tutorials about programming online. So finding material to go through and learn is not a problem, but instead, even after years we still don't seem to be able to make more people capable programmers. If you take a closer look on the data behind those courses you can see that there are a lot of people who are willing to learn programming, but most of those courses are simply not completed or left with only a couple of minutes put into it. Average completion rates can be as low as 4%. Yes, you read that correct, 96% of the courses are simply not completed.

So, why is that?

Understanding why people stop

Why people stop is an interesting question, because it is a question that is not only about programming but also about the human mind. If we learn something we want to feel like we can achieve something right from the start. We need positive feedback for our brain to be willing to put more effort into learning something. And if it is something that we dont even enjoy we need a reason to go on. That is the reason why we go to school, it's less about learing itself, because lets be honest, how much did you enjoy learning in school? It's more about the journey we take together with our friends. So what this basically means is we need to have some kind of enjoyment doing it constantly or we will stop.

Where to start

Knowing about why people stop is very helpful in defining the path for you to take, to keep you interested and motivated to learn. It is about applying the knowledge you already have in an area where it benefits your daily life, work or routine and helps you create value for youself. If you do this correctly you will enjoy doing little programming tasks while at the same time reducing your stress and workload. These small programming topics may seem trivial at first but over time they will add up and what you learn will add up aswell.

From my point of view the best starting point is something where you can replace small repetetive tasks with a single line of code. This is critical in my opinion as most people can learn how to code but simply don't because they think its complex to learn and you need to do it for years to see results.

So our main concern is to keep you interested and see results right away.

Which language to learn

Now that you know where to start we need to take a look at which language to learn. While this might sound strange at first, in my opinion the language doesn't matter. What matters is that you can learn the concepts of programming and these concepts apply to every other language out there. Of course there are tradeoffs in which language you choose to learn the basics, because it might be easier or harder for you to apply what you learned to other languages. But overall it is important that you don't waste time on the selection of the right language for the task but instead start with the basics and work your way up.

A real world example. Whilst VBA is not the most popular language out there anymore it might very well be the best language to start with for you. Maybe its because you like to work with excel, maybe it's because you use data visualization and you want to be able to create charts and graphs quickly or your boss just wants the latest numbers of the business. Any of those cases could be done using VBA and probably a lot quicker than doing it by hand while at the same time learning how to code.

In short, the language that you choose to learn does not matter too much, what really matters is that you start using it to solve tasks that you need to do.

Anyway, below you can find my personal learning path from VBA to web development.

langs

Mini project ideas

Timesheets

If you work at a bigger company you will probably have a timesheet that you need to fill out every day. Or maybe you just want to keep track of your vacation days or the days until your next vacation. Some companys use excel for this task which would be ideal for your learing curve in my opinion, but the basic rule applies to every time tracking software. Try to find a way to maintain your timesheet based on your current work schedule and the hours you work every day. Something like this: If you open the timesheet your times are maintained automatically. Or formated correctly by the press of a button. Don't try to do something to fix every line of the timesheet for every user. Instead focus on very specific tasks.

Excel tasks

As mentioned before excel is a powerful tool to use, not only for timesheets but also for data analysis. With many companies using microsoft office software for various tasks, you can easily find a lot of tasks that can be done with programming in excel. Microsoft uses a programming language called VBA[^1].

Using something like VBA may feel unintuitive at first but it is very easy to learn and understand once you get used to it. Start with simple things, like coloring a cell conditionally or calculating results. Yes, excel has functions for this as well and oftentimes you will be able to achieve the same thing with excel internal functions as well. But these functions are limited to excel and only excel while the things you will learn using VBA will be useful for every other software as well.

Another great thing about VBA is that you can use it to record your own code. This is very useful especially if you don't know anything about programming, because you can simple do what you always do and let excel record it. After you finish you can have a look at the code and see what excel did. Of course the code generated like this is far from perfect, but it is a good start for you to play around with and add simple lines that you already know.

[^1]: Visual Basic for Applications.

Browser

You use a browser to browse the internet every day. What most people don't know is that you can use it to write your own code, either by writing you own HTML/CSS/JS file to run in your local browser (yes without internet) or by writing lines of code that interact with your current website. This is one of my favirite places to start because you can do what ever you like to get started. You like online games? Then try entering your login data via a third party software. Or try to do it with javascript in the console of your browser. You need to download a lot of stuff every day from specific websites? Great then try to write a script that automates this process for you. I personally love programming for the web, also if some higher level automation tools like puppeteer are not as easy to use.

Command line

Something very programmer like is to use the terminal for tasks. And while this always looks very complex you can also use it to do simple things like checking if a file exists or copy things from one folder to another. Almost everybody working at a larger company has those kinds of tasks. And with some simple commands can save yourself a lot of time. The best place to learn about command line is simply google. For example I googled "helpful command line commands" but you could also google "copy file with command line" or "delete file with command line".

If you want a beginners guide to command line you can read this article.

Once you mastered some of the commands you can use them consecutively by saving them to a file like a .bat file which allows you to run an entire script at once.

My recommendations

  1. Start with HTML It is very easy to learn HTML and programmers will argue that is is not even a programming language. But probably they are correct, but if you think about programming in general sense, then to me programming is making a computer do something and providing structured information to do so. For that reason I think HTML is the best place to start, it has only very basic logic and generates very static output. You can easily understand what it does and how to use it in a matter of houres.
  2. Add CSS Once you know how HTML works you can try to make it look good. CSS is a very powerful tool to do this. It is a language that is used to style your HTML output. Again your code still remains very basic and doesn't do anything but we will get to it.
  3. Add JS Once you know how to style your HTML output you can try to add some logic to it. JS is a programming language that is used to add logic to your HTML output. It is the heart of the web and basically everthing that you see on the web today is made using javascript. Some people will argue that JS is a rather complex language to learn but to people new to the concept of programming I think this doesn't matter, as everthing will be new to you anyway.

Once you did these three steps you should have a basic feeling on how the web and programming works. You will not be a master, not a hacker or a big data analyst, but from here its easier for you to discover what brings you joy and what you would like to focus on learning. Again, the concepts are always the same, you might need to learn a new language or you might want to look into desktop applications. Key is to test new things and see if you like them. If you don't, then learn something else, but don't give up, because there will be a point where you will be able to do everything you want to do.

Sources I recommend

Coding Train - He is a great teacher and helped me a lot in my learning curve. His courses are fun to watch and he is very good at explaining things. He gives a good understanding of what it is like to be a programmer, because he sometimes encounteres some problems that he fixes on camera instead of polishing it up for the viewer. This doesn't set wrong expectations. Definately worth watching.

Affiliate Disclaimer
Disclaimer:
Links on the site might be affiliate links, so if you click them I might earn a small commission.