This course is for everyone who wish to learn about computer science and programming methods. You may be a student, engineer, or scientist from another domain who wishes to transition into tech. Regardless of your age, background, or experience, we encourage you to follow this course. You can take this course even if you don't know any programming language yet. You can start right now!
Software engineering is a rapidly growing field, and there is a high demand for qualified software engineers. If you are interested in a career in software engineering, now is the time to start learning the skills you need to succeed. At start you will feel like an impostor here if you don't ever open a programming book. Don't ne warried, at the end of this course you will feel like a pro. Some of the benefits:
You will learn the most important topics in computer science and programming, including fundamental concepts of programming, web design, and operating systems. We also have an optional short article for hardware enthusiasts that will provide you with the knowledge and skills you need to build your own computer.
Not all Engineers are the same. You can follow topics that covers most useful things. You can study: web-design, software architecture, databases design or operating systems depending on your goals. Remember, fundamentals never change. Learn the fundamentals first before diving into advanced topics.
# | Topic | Description |
---|---|---|
01 | Programming Concepts | Fundamental concepts of computer programming |
02 | Numerc Algebra | Numeric algebra and type systems used in programming |
03 | Programming Paradigms | Logical approach for describing and solving problems |
04 | Programming Languages | History and evolution of programming languages |
05 | Prompt Engineering | Introduction to AI internet services |
06 | Data Science | Introduction to statistics, and machine learning |
07 | Web Design | How to create static web pages using HTML & CSS |
08 | Operating Systems | Explain usability of different platforms |
09 | Developer Tools | Integrated development environments and code editors for software development. |
10 | Data Structures | The way we can organizing data in memory so that it can be manipulated. |
11 | Algorithms | Integrated development environments and code editors for software development. |
12 | System Design | Explain system design concepts and principles |
13 | Software Architecture | Higher level design principles of software design |
14 | Design patterns | These are reusable solutions to common software problems. |
15 | Tech Stack | Explain features and purpose for a web tech stack and alternative stacks for APPs |
16 | Project Management | Explain project management methodology |
17 | Version Control | Explain how to save & maintain code |
18 | Open Source | How to contribute to open source projects |
19 | Software Testing | Explain software testing methods and terminology |
20 | Database Systems | Introduction to database systems |
21 | Database Design | How to design a relational database |
22 | Cybersecurity | Introduction to encription, networks and firewals |
23 | Cloud Computing | Introduction to cloud computing |
24 | Crafting Compilers | Explain how to create a programming language |
Understanding hardware fundamentals is essential for anyone interested in engineering and technology. This includes knowledge of electricity, electronics, devices, cables, connectors, and industry standards. In next section, we've compiled articles to help you learn the basics of computer hardware. You'll gain the skills needed to set up your own home network and prepare for a career as an independent tech professional.
You can take this quiz only once. After first try, you can request support on Discord. An instructor can review your answers and reset your score so you can try this exam a second time. If you fail a second time we assume you have not follow the class properly so you should repeat the class.
We have set-up an Open Source project for this course. You can contribute on our Discussions on GitHub. We appreciate any reported issue to improve our tutorials. You can suggest new topics and provide links to resources that could bee useful to study. Your help is appreciated!
Read next: Programming