Photo by Max Duzij on Unsplash

How to Start Programming: What I Wish I Knew

Part 1 — What even is Programming?

Joshua Lim
8 min readMar 19, 2023

--

As a 19 year old college student, and someone who has been learning how to program since the age of 13, I’ve seen my fair share of success stories. This series isn’t meant to discourage anyone attempting to get a foot in the door and try the field, nor am I fully equipped as a 19 year old to have all the answers. But, I can share what I wish I knew when I started at the very least to help steer those searching for guidance in the right direction. So as this series progresses, take everything I say with a grain of salt, as technology is always changing and so are demands and requirements for the field itself. If you are someone who is young and looking to major in computer science, or retired and ready to pick up a new hobby, I hope to give you the boost you need.

As I find time to write these articles, I will try to find time to come back and update previous ones with recommendations to past/future posts with clarification or checkpoints for those who may be more experienced than the next. This first article will be fairly light, however, and will clarify some basic knowledge in the realm of developing applications as well as some recommended hardware, software, and other suggestions to get started.

What even is Programming?

As defined by Khan Academy’s Pamela Fox, programming is defined as a “set of instructions that tell a computer how to perform a task.” Most think programming is all 0’s and 1’s, and while they aren’t far off, most developers will never experience any sort of machine language in their lifetime. Machine language is only understood by the computer, typically in forms of binary (0’s and 1’s) or hexadecimal (base 16).

To prevent rambling throughout this series, I will not clarify some of the facts I mention, rather, provide a link to clarify further if you wish to learn more on your own time. Everything that is crucial to moving on in this series I will do my best to describe and clarify before moving on.

You may be wondering, “If computers only understand machine language, and I will probably never program in 0’s and 1’s, how do I communicate the tasks I want the computer to execute?”

What even is Programming… Languages?

That’s right, the answer is programming languages. Some you may have heard of are Python, Java, JavaScript (yes they are different), Swift, and C. However, I am only extremely familiar with some, which I only feel comfortable teaching over the course of this series. You also may have heard of HTML, which is not to be mistaken as anything other than a Markup Language, which we will explain later in this article. Programming languages make it easy for us, as humans, to communicate to machines, such as your computer, in nearly simple English. Here is an example in Python:

# Define a new variable called 'integer' and initialize it to 1
integer = 1;

# Incement 'integer' by 1
integer = integer + 1;

# Print new 'integer' value
print(integer)

Without any knowledge, almost all of you can most likely tell me what this line of code does without having to read the comments (the green lines of code that follow the ‘#’ character). If you are confused, don’t worry as this wasn't meant to stump you. Essentially, we define a variable called integer, which holds the value of 1. Then, we set integer to itself, but we also add 1 to it, increasing its value to 2. When we call the print command, it tells us the value of integer in the console (I will go over what a console is in my next part), and that new value is 2.

If you are still confused, no need to worry, as this article is still trying to familiarize you with the jargon and explanations behind how things work inside your computer. The reason I introduced you to Python so early is because one, Python is known as one of the best languages a beginner can start on when learning how to code. Two, I just proved that you can communicate to a computer without having to use 0’s or 1’s, and it is all English.

However, I have a confession to make. Python and JavaScript are sometimes considered more of a“scripting language”, which is a subcategory of programming languages. While the difference in my eyes is minute, and I may seem naive to some experts who come across this article, there is definitely a time and place for each. Unfortunately, I admit I do not feel comfortable describing those differences, and would rather link an article here that better describes it on my behalf.

Wait, so what are Markup Languages?

Markup languages are more for web development. HTML is not to be mistaken as a programming language (trust me, the community is not happy when it is referred to as one) since it doesn’t actually handle any computing or logic. HTML literally stands for Hyper Text Markup Language, hence the name. Another well known markup language is CSS. While these are not programming languages, that doesn’t mean you will never use them or they aren’t just as important. I started with HTML and Python, then progressed to where I am today. HTML is an interesting language to learn and some would argue crucial as most documentation is written in markdown, a lightweight markup language. In fact, here is a basic example:

# This is a Markdown document title
## Here is a subtitle

You can write plain text too

```
And even section some text off
```

### Every '#' I add, the smaller the title gets

Isn't this cool!

As you can see, markup languages are structured a lot differently than that of programming languages. This code, turns into this:

(Output of markdown above)

Ok so now I know about languages, what software should I use?

You may be thinking, “This is all great Josh, but where do I even write these so-called ‘languages’? Microsoft Word? Google Docs?” The answer is, neither. There are multiple text editors for you to develop in. To save you reading time, I am going to just describe text editors as software that processes languages (programming or markup) into machine language that the computer understands, for us. Here are some I suggest:

Visual Studio Code is a great all-around text-editor that is free, handles almost any language you need, constantly being updated and great support. VS Code is by Microsoft and offers almost everything you’ll need to get started, and is used widely across the programming community.

NOTE: Visual Studio Code (VS Code) is not to be mixed up with Visual Studio, another IDE/text editor by Microsoft.

Xcode is what I personally started on as I began my journey attempting to develop apps for the Apple ecosystem (iOS, iPadOS, watchOS, macOS, & tvOS). Xcode is free and only available on macOS, for obvious reasons, but if you wish to develop for the Apple ecosystem and don’t have a Mac don’t fret, as Visual Studio works as well! (Although I do not recommend it, as I have had my fair share of frustration with it, and prefer VS Code over Visual Studio)

While I haven’t had much of any experience with Android Studio, it is the go-to place for, you guessed it, developing Android applications. Just like the other text editors, it is also free, with great documentation by Google and constantly being updated.

While these are just some of my personal suggestions, these three softwares will be all you need to code for practically any platform. Some other notable text editors that I have heard of but haven’t personally experienced are:

Please note, that while I list the following above, it is most likely I will only use one of the three I suggested, as will most tutorials you find online.

Thanks for the software, but what HARDWARE do I need?

As you probably guess, a computer running macOS or Windows is widely recommended (and while controversial, my personal bias is macOS systems are best for developing). However, if you have a more lightweight laptop such as a Chromebook or older machine, there are also some online text editors, (such as CodePen, or VS Code online), you can use in the rare case any software listed above doesn’t work on your personal computer.

However, as of March 19, 2023, the minimum recommended hardware (and operating system) requirements in my opinion are the following:

  • macOS 12.5 or later
  • Windows 10/11
  • i5 or i7 processor
  • Apple Silicon (M1 or M2 chip, however i5/i7 works too)
  • 8 GB RAM (Memory)
  • 256 GB SSD (Storage)
  • Full HD Resolution 1920x1080 (Desktop or Laptop)

This list will be updated if I feel needed, but if you happen to stumble across this article years from now, make sure to do your research on recommended hardware and software requirements, as it is constantly changing.

One More Thing… (Apple reference!)

Before you go on to read the next article, or start on your own, I want to provide a list of trusted websites and soruces that have helped me learn over the years. It is always good practice to check the validity of the source, the date posted/edited to see relevancy, and ensure all code you are copying or modeling after is safe.

While some are free and some are paid, YouTubers, other Medium writers, and even GitHub are great places to help sharpen and learn how to program.

What Now?

Congrats! You officially understand the (slightly boring) reasoning behind how programming works and what it is! In the next article I will go over basic programming jargon such as variables, functions, etc. I hope you as the reader were able to get something from this article, whether you are a beginner or expert, and look forward to writing more of this series!

Rest of Series:

--

--