This course provides a complete introduction to programming, computers and software development and covers various topics such as:
- Programming Languages
- Terminal & Unix
- Concurrency
- Software Design & Project Development
- Computer Hardware Fundamentals
- AI Aided Development & AI Application Development
The goal of this course is to provide a complete introduction to the developer's world, so that you have a good idea of what programming looks like, where you should ask for help and how you can start and develop a project.
The course is NOT complete yet; new sections are being added continuously.
This tutorial is for those who:
- Are completely new to computers and want to learn programming;
- Already have some familiarity with programming and wish to learn more and become a "qualified developer".
Although this course aims to provide a broad overview of the developer's world, it is by no means a "look-no-further" course, and simply browsing through the course contents will not make you a good developer.
Development is not only a skill but also a quality, and a mindset as well. To truly master programming and development, coding is indispensable.
As such, you should do a lot of coding and practice as you follow along with the course. As for me, I would recommend learning a framework such as Unity or Flutter so that you can create "exciting things" (such as games and apps) as you learn to code and find coding more fun.
With the advent of GPTs, programming languages (and basically anything) have become much easier to learn. As long as you know what you're looking for, you can always find the answer easily by consulting GPT (most of the time). Therefore, this course does not include a tutorial for any specific language; it only introduces the common concepts that are found in almost all programming languages, and you're encouraged to learn how those concepts maps to specific syntax in different programming languages by Googling or asking GPTs.
Personally, I believe that harnessing the power of AI is a very important skill for developers in the 21st century, and I would encourage you to use GPT for anything you can imagine, either for debugging, illustrating programming concepts or recommending frameworks and libraries.
This course is organized into modules. You don't need to take all modules sequentially; just find the modules that interest you the most. However, some modules might depend on others.