Sage-Code Laboratory

Software Engineering

Software engineering is a branch of computer science that deals with the design, implementation, and maintenance of complex computer programs. It consists of systematic application of engineering methods to software production.


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.

CSE Video

▶ Open PlayList


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.


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 details.

# 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

Hardware fundamentals

A good Engineer should understand electricity, electronics, devices, cables, connectors and standards. We have put together several articles for getting yourself familiar with computer hardware fundamentals. You will learn skills to setup your own home computer network and become independent professional enterpreneur.


Introduction to Hardware


We have made a prep quiz to check if you are qualified to be a Software Engineer. It will take you about one hour to complete. If you score more than 80%, we will recognize your qualification and you can claim the Sage-Code Engineer title. Use your Google account to log in.
Engineering Quiz

Engineering Quiz

Privacy Terms: We respect your privacy. We do not list quiz results and do not make your results public. We do not collect e-mail addresses and do not send you unsolicited messages. Your results are stored for a while securely on Google drive for review and support.

Second Chance

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!

Join Discussions

Read next:  Programming