Skip to content
← All articles

The 3 things you need for programming

Read on Medium ↗

At this point in time, not using the internet or digital devices at all is hard to imagine.
So to keep up in today’s fast-moving digital world, you should gain some technical knowledge. One skill that can give you an advantage in these modern days is programming.

If you have the goal of learning how to program, you might be overwhelmed by the question of where to start. So here, I will give you some tips about what you need for programming.

The things you need can be divided into three main categories:

1. Hardware
2. Software
3. Skills

Let me explain:

1st — Hardware

If you want to take programming seriously, you need some kind of computer with a desktop operating system. It doesn’t really matter whether you use a laptop or desktop PC running Windows, MacOS, or Linux.

These days, it is possible to do some programming work on a tablet or even a smartphone. The capabilities of these devices can be enough to learn the programming basics if you don’t have access to a desktop computer, but for advanced tasks, you will run into problems quite soon.

Also, you’ll most likely want an actual keyboard to be able to write code quickly and comfortably.

Which computer should you use?

With the reason why you should use a computer out of the way, let’s get to what computer you should use.

First of all, there aren’t really any limitations or requirements for a computer you should use to start learning programming. You can basically use every computer you have around you. Simple coding examples will run on nearly every device.

Only if you want to dive deeper into a specific field of programming might you have to meet certain requirements. I don’t want to go too much into detail here, but let me give you an overview of a few examples:

Web Development

If you want to do web development, you might not need the best-performing machine, even for advanced projects. Websites should be able to run on a wide variety of devices, including those with little performance. Therefore, the tools used for development don’t have to be the most powerful as well.

Mobile Development

For developing mobile apps, you should calculate for a bit more performance. While most mobile apps aren’t very resource-intensive, the development tools might be.

Mobile apps are commonly developed and tested using virtual mobile devices on your computer. These virtual machines are what need the most performance because now your computer has to borrow some of its performance to simulate the virtual device.

You can still develop mobile apps using a weaker computer by connecting a physical smartphone or tablet to your machine, but using virtual devices is much more practical.

I also want to point out that you have to use a Mac to develop native apps for Apple devices.

Game Development

The requirements for this type of development depend a lot on what type of game you want to build and which platform you want to build it for.
Overall, you will probably need a bit more of a powerhouse as your computer of choice than for the last two development types.
Mobile games might not need much performance, but if you want to develop them for gaming PCs or consoles, you need some more because the devices also come with a higher level of base performance.

2nd — Software

Probably even more important for a software developer than the hardware used for programming is the software that is used to develop new software.

As bizarre as this sounds, programming these days is mostly just stacking some new software parts on top of an already quite large stack of existing software. In most cases, you don’t interact with your hardware directly.

If you want to develop a mobile app, for example, you won’t start by developing your own operating system. For another example, when creating a website, you rely on existing browsers and their capabilities to display your site.

Choosing the right software for development can give you an advantage in connecting your own software to the existing software stack.

Terminal

The terminal is a tool you definitely want to use and master as a programmer. It enables you to interact with your computer in the most direct way possible. By typing commands in a text-based interface instead of clicking around in a graphical user interface, you can save yourself a lot of time on certain tasks.

There are a few different types of terminals, mostly depending on the operating system you are using. They differ in the commands you can use to do certain things.

Just do some research about which terminal suits your needs the best and start using it for more and more tasks incrementally. There is also a lot of room for customizing a terminal so it can work the way you want it to, even better.

Git and GitHub

Git and GitHub are such complex topics that I won’t even try to explain everything you can do with them. I will still give you a brief introduction to why you should use it.

Git is a so-called “version control system”. The main thing it does is allow you to keep track of the changes throughout your whole development process and enable you to go back to an older state whenever you want. It’s also used to have multiple versions of your software in parallel, for example, a stable and a beta version.

GitHub is a system built on top of Git that allows you to sync your Git version control to the cloud. This is used to backup your data, work from different computers, or work with other people on the same codebase.

Browser

If you want to do web development, this one is obvious. The browser allows you to display your website and gives you the option to analyze it with its built-in development tool or additional plugins. The tools provided by the browser itself and the available plugins differ from browser to browser, so keep that in mind when choosing a browser.

But even if you don’t want to do web development, you will definitely need a browser more often than you might think. Why? Because you will struggle a lot. But that is part of the process of programming. One of the main tasks of a programmer is problem solving (more on that later).

You will often come to the point where you don’t know what to do next because you don’t know everything, but you don’t have to. That is what documentation is for. Most tools you will use have a fairly good explanation of how to do certain things on their website. And if they don’t, there are very big communities online, such as StackOverflow, for example, where you will probably find someone who can help you with your problem.

That is what every programmer needs a browser for.

Code Editor or IDE

Let’s come to what you need for actually writing code. As previously indicated, writing code is only one part of the process of programming. But it is still the most crucial one to get your program running.

Software is actually just a collection of (programming language-specific) text files with your lines of code inside. So to write and edit your code, you need some sort of text editor.

You could essentially just use whatever program you want where you can write text inside; yes, even writing code inside Microsoft Word would work, but you more likely want to use a text editor made for programming. These text editors come with some helpful features, like highlighting different parts of your code syntax in different colors or automatically checking if you made a typo.

If you want to step up your coding experience even more, you can use an IDE, which stands for “integrated development environment”.

At its core, an IDE is also a text editor, but with more project-specific tools built around it. While you can use a text editor for all sorts of programming, there are individual IDEs for different types of projects.

For example, if you want to develop a native iOS app, you can use Xcode, which comes with a virtual iPhone device. If you want to develop a native Android app, you can use Android Studio, which has a virtual Android device built in.

3 — Skills

This might be obvious, but if you have the most powerful computer with dozens of programs installed and you want to create the next Facebook, you still need to know how.

I don’t want to start teaching the basics of programming here. I just want to mention some general skills you should develop to be a good programmer.

Especially if you want to study computer science, you should have or develop somewhat of a mathematical understanding, because studying computer science is quite math-heavy.

But even if you don’t want to study computer science, you should be capable of logical thinking and be able to understand some of the mathematical foundations of some programming principles.

As mentioned earlier, a big part of programming is problem solving. You should be able to quickly research information and find a solution to the problems you come across.

Therefore, you should be able to write Google queries as precisely as possible to quickly get the results you need. You also want to be able to read developer documentation and get your needed information out of it. It’s also helpful to have a system to take notes about information you need regularly and don’t want to look up every single time.

You don’t have to know everything; you just have to know how to quickly get information if you need it. You don’t have to memorise the whole syntax of every programming language you come across; it is even better if you know how to work with its documentation.

Nevertheless, you should know how to write code, meaning you have to understand the fundamentals of programming, which are fairly similar in most programming languages.

What’s also helpful is learning not just how to write code yourself but how to read others code as well. If you understand how other people’s code works, you can use that code. You don’t have to develop from scratch. Instead, you can save yourself a lot of time by building your software on top of existing code.

I hope I can help you on your programming journey. Learning programming is a challenging process, but a step well worth taking. So keep going, and don’t forget to have fun doing so.