DEV-000: The Complete Introduction to Development
What is this course about? What can you get out of it?
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
After learning this course, you should be ready to develop large projects with hundreds of thousands of lines of code. And, you will have a good understanding of the fundamental concepts, design choices and tradeoffs that underlies the developer's world. You won't get to know every language, every framework and every piece of syntax; but you will know where to look for answers, what you should checkout and how to solve problems with Google and ChatGPT.
The course is NOT complete yet; new sections are being added continuously.
Who might find this course helpful?
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 "true developer".
How to learn programming and development?
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.
What is the right way to take this course?
This course is organized into modules. For those completely new to programming and development, it is recommended to learn each module in order, so that you can get a complete and systematic understanding of the developer's world.
However, the modules are not strictly dependent on each other, so if you already have some experience, or if you're only interested in certain aspects of development, feel free to find the modules that interest you the most and skip the rest.
Next Steps
Take a look at the course outline and pick a module to start with!