In our ever-growing digital world, technology dominates almost every corner of our lives. From browsing Spotify playlists to asking Alexa what the capital of Finland is, software is everywhere, and hence programming education is being pushed more so every day. However, it's not always clear where and how one goes about starting to read and write these modern-day hieroglyphics.
In this article, I hope to give you a brief introduction into the purpose of different programming languages, and what integrated development environments are; helping you start your journey from amateur to tech magnate.
Why learn to program?
Programming has a multitude of different uses and with technology getting evermore ubiquitous, it's becoming more motivating than ever to jump on the programming bandwagon.
Learning to program is a bit like learning the alphabet; initially, it can be quite confusing as you don't understand how all these letters correspond with one another, however, with time, you begin to put the pieces together and creates syllables, then words, then entire sentences. Eventually, you're able to go even further and create pages upon pages of paragraphs rich with information.
It's not an easy path, but with due time, you'll be able to develop mobile/desktop applications, play around with fun scripts, make video games, make websites, etc. It's an incredibly creative hobby; giving you the freedom to make whatever you want.
Choosing Your Language
When I started getting into programming, I thought learning as many languages as possible would pave my path to success. The problem with this philosophy was that I didn't really understand how time-consuming it is to truly master a language.
Programmers are constantly learning new things even after years of interacting with a language. It would be my advice to you to stick with just one language initially before you start experimenting with others.
Luckily, there are a lot of parallels between many programming languages, so learning one will make learning a second much easier.
Python is a popular scripting language, meaning its real strength is how it allows for the ability to create small programs that don't need to utilise complex programming paradigms and instead want to be written quickly and succinctly. Due to the language's syntax and lack of abstraction, it's incredibly beginner friendly and is often used in education to seamlessly ease students into programming. Its more simplistic nature and availability of tutorials online make it a very solid choice for the complete beginner.
C# is an object-orientated programming language* (OOP language) with very close links to Java, so learning C# will make learning Java effortless due to the parallels between the two (and vice-versa.) C# is a popular language when it comes to game development due to major game engines like Unity and frameworks such as Microsoft XNA utilising the language. Hence, I recommend learning starting here if you're looking to start making games.
- An object-orientated programming language allows for ideas/information to be represented as "objects;" an abstract programming paradigm. These languages are different to scripting languages which are generally simpler to understand. OOP languages are less beginner friendly, however, they are much more powerful in what they can achieve.
Java is, essentially, a programming behemoth. It's widely used in industry and continues to reign as one of the most popular languages to learn. It, like C#, is an OOP language, so it can be slightly daunting to beginners. However, due to its widespread popularity, tutorials are not difficult to find, so it still stands as a solid choice for beginners.
C++ is another OOP and is generally seen as being harder than C#/Java as it includes many features that are absent from the prior two. Amidst its difficulty, it creates incredibly efficient programs and helps give learners a strong understanding of the inner mechanisms of computers. I wouldn't recommend this to an absolute beginner unless you're up for a hefty challenge.
Integrated Development Environments
By now, you should have a basic understanding of some of the different programming languages. Great, so, now what? How do I get started with actually writing code? This is where an IDE comes in.
IDE stands for integrated development environment which, in layman's terms, is simply software you download on your computer in which you can write and execute code in. IDEs are usually (but not always) specific to a language, so you may have to download multiple IDEs if you plan on working in multiple languages.
The IDE you use is mostly down to personal preference, however, some possess some handy features that can aid development. For a beginner, some of the most useful features are IntelliSense (which is similar to predictive text), line numbers, error checking (similar to spell check), hassle-free setup, and a nice and easy to use user interface.
Below are some links I've added that you can visit to download different IDEs.
Python - IDLE
This is the default Python IDE. It features an incredibly simple design, however, lacks some nice features like IntelliSense, error checking, and unfortunately, it doesn't display line numbers. Yet, its simplicity makes it attractive to beginners.
Python - PyCharm
PyCharm is a slightly more rigorous Python IDE possessing many of the features IDLE lacks. You sacrifice simplicity/minimalism for a better ease of use.
C#/C++ - Visual Studio
Visual Studio is an excellent C#/C++ IDE developed by Microsoft that has pretty much all the features you can ask for. I honestly wouldn't recommend anything else.
Java - Eclipse
Eclipse is one of (if not the) most popular Java IDE. It, again like Visual Studio, has pretty much all the tools you need.
Java - IntelliJ IDEA
Made by the same developers as PyCharm, IntelliJ IDEA is a nice clean alternative to Eclipse with much of the same functionality.
I hope this article has been useful in giving you some idea of how to get started programming. There's a lot more I'd like to cover, however, it's getting pretty long at this point.
Once you've got your IDE setup, I'd recommend browsing some online tutorials as to where to go next. There are many YouTube series that teach these languages from the grounds up, so you should be good to go from there.
I may do a follow-up article, giving a more comprehensive answer to this question, going more in detail about how to improve, good resources, and some tips, but for now I hope I've given you some sort of skeletal foundation.