Sage-Code Laboratory

Engineering Tutorials

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 any developer or beginner that have little or no knowledge about computer programming. In this class we will prepare you with fundamental know-how that you can use to create design and implement higher quality software and avoid catastrophic defects.


We have selected the most useful topics every developer should know about. First 4 articles are mandatory. Next articles between number 5 and 10 are more advanced but required for Sage-Code certified developers. Last articles after 10 are optional, only for system engineers and computer enthusiasts.

# ? Title Complexity Description
01 Programming Concepts ★★ Fundamental concepts of computer programming
02 Programming Paradigms ★★ Logical approach for describing and solving problems
03 Programming Languages ★★ History and evolution of programming languages
04 Developer Tools ★★ Integrated development environments and code editors for software development.
05 Web Design ★★★ How to create static web pages using HTML & CSS
06 Software Life Cycle ★★★ Explain project management methodology
07 Version Control Systems ★★★ Explain how to save & maintain code
08 Open Source Projects ★★★ How to contribute to open source projects
09 Software Architecture ★★★ Higher level design principles of software design
10 Software Testing ★★★★ Explain software testing methods and terminology
11 Database Systems ★★★★ Introduction to database systems
12 Database Design ★★★★ How to design a relational database
13 Database Management ★★★★ Introduction to SQL and PL/SQL stored procedures
14 Operating Systems ★★★★ Explain usability of different platforms
15 Shell Programming ★★★★ Console commands and system programming using Bash.
16 Crafting Compilers ★★★★ Explain how to create a programming language


?coverage skill level
#= importance ★★★ = orange belt
= started ★★★ = red belt
= basic ★★★ = green belt
= intermediate★★★ = blue belt
= advanced ★★★ = brown belt
= extensive ★★★ = black belt

Hardware fundamentals

Software will not be possible without hardware. This may be your workstation, personal computer, server or mobile device. A good Software Engineer must be familiar with all programable devices. We have put together several high level topics for getting yourself familiar with the hardware. Before taking our quiz, make sure you read this article:


Introduction to Hardware


We have made a short quiz to check if you are prepared to be a Software Engineer. It will take you about one hour to complete. If you take more than 80% points we recognize your qualification and you can claim the Sage-Code Engineer title. Use your Google account to login.
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