Sage-Code Laboratory

SC 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 beginners who wish to learn about computer science and programming. You may be a student or engineer or scientist from another domain, who wish to transition into tech. Optimum age for this course is between 18 to 50. If you are older, you should do something else.

GoLang Fundamentals

SE vs CS


You will learn the most useful topics. First 5 articles are mandatory for any developer, before learning any programming language. Next articles between number 6 and 10 are necesary to pass Sage-Code quizzes. Last articles after 10 are optional, for system engineers and computer enthusiasts.

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