This article will guide you through the initial steps of your coding career, including how to learn programming languages. Before delving into the best learning resources, we'll clarify some essential terminology that may initially seem confusing.
Compiler
You might hear this word a lot at first. A compiler is simply a translator between a programmer and a computer. We write some sentences, and the compiler translates them into assembly code, which the computer understands as zeros and ones.
Assembly code
It's an early low-level programming language designed to offer a more human-readable way to write instructions for the CPU.
Syntax
it’s like a set of rules that defines how to write valid code in a programming language.
Every programming language has a compiler that checks the syntax and some other things to make sure the code is ready to be executed by the computer. With time and experience you will know that programming languages syntax is a bit similar.
Terminal
Typically refers to the software program that provides a text-based interface for interacting with the computer's operating system.
rm /usr/test.txt
Example: In this code snippet, I'm telling the computer to delete a file named text.txt from a directory called "usr".
C++ vs. Python: Choosing Your First Programming Language
Next, we’ll discuss starting with two programming languages: C++ and Python. You can choose either or learn both. However, if you opt for both, I recommend starting with C++. It provides a strong foundation in understanding how computers and compilers manage memory and CPU operations. On the other hand, if you’re looking for a quick and practical start, Python is a great choice. It’s highly popular, versatile, and opens up opportunities in numerous fields.
Python | C++ | |
Syntax | Easier to learn | has more rules but also more features |
Popularity | has a huge community with a lot of beginners tend to learn it at first. | Not huge but has a lot of supporters specially experienced ones. |
Application Domain | Web Development, Data Analysis, Data Science,…etc | Game Development, Embedded Systems, Networking, ..etc |
So, let's take a look. We can divide the resources into comprehensive series of articles and complete video courses to thoroughly practice the language.
C++ Resources
Articles:
C++ Tutorial - Geeks for Geeks: it’s one of the best series to learn from it literally takes you to be a full professional we can say it covers 90% of what you would want to learn in C++.
Learn C++ - Tutorials Point: This is also a very advanced series that guides you from A to Z. It includes some additional topics like multi-threading and sockets, which are useful if you are determined to go the extra mile and work with C++ in the future.
I don't recommend this, but if you only want to learn the basics, you can stop reading the articles when they start discussing OOP.
OOP, or (Object-Oriented Programming), is a programming paradigm that revolves around the concept of "objects," similar to real-world objects (companies, real estate, etc.). To be more descriptive, it allows you to define real-world objects in programming languages.
We will be sure to discuss it later in our series.
Videos:
C++ for complete beginners - Udemy: This course is a step-by-step guide that takes you from installing and setting up the environment to explaining OOP concepts.
Learn C++ in 1 Hour - Programming With Mosh: Some might say that YouTube is too outdated for programming tutorials, but that's not true. There are some valuable resources available. This is a quick crash course that helps you learn the syntax with a brief overview.
C++ Full Course - Youtube: There is another excellent video that covers everything you need to start with in C++, including installation and all the fundamentals.
Python Resources
Articles:
Geeks for Geeks - Python Tutorial: This special series contains a lot of useful information and is very beginner-friendly.
Tutorials Point - Python For Beginners: As always, it goes the extra mile with its articles, including some that are important to know at the beginning, such as error handling, multithreading, and some built-in libraries.
Built-in libraries are collections of ready-to-use functions that can save us a lot of time when coding.
Videos:
Programming With Mosh - Python in 1 Hour: a quick and simplified tutorial.
Bro Code - Python Full Course: This special video has done very well with the content. It includes a lot of additional information, such as encryption, API concepts, and teaching you how to create a user interface app with buttons and frames.
Python for Data Analytics - Full Course for Beginners: This is also a great starting point for anyone looking for a job in Data Science or Data Analysis.
Introduction to Python Programming: A somewhat fast-paced course, but still very good.
Friendly advice: If you don't know anything about coding or programming, it's recommended to start learning from videos.
Additional Resources:
Data Structures in C++