how to do: higher quality software
4 min read
Table of contents
You are probably a software developer, or you want to be and maybe you are not formally trained but you want to create better software. In this case, you are now in the right place.
What is it?
First of all Engineering: is a scientific field that involves taking the scientific understanding of the world and using it to invent, design, and build machines, mechanisms, processes or devices to solve problems and achieve a goal."
We can apply some of the Engineering methods to software production. In this case, we can say this definition: "Software engineering is the systematic design and development of software products and the management of process required for software production. Its primary objective is the production of higher quality programs that meet specification, on time and in the budget"
As a software developer, you can work independently on your project. You learn a programming language and go ahead programming by yourself. To work on a larger project you need a team. To get a job, you need to learn more than a programming language. That is you need to learn some Software Engineering.
In my course, I cover diverse topics of Software Engineering and then I have a quiz that you can take to consolidate your skills and show other people you are qualified. I will endorse you on Linkedin if you follow my course and pass my quiz. Next is a list of topics I will try to cover. This is part of the Sage-Code Laboratory research and teaching program.
Logic & Boolean algebra
Software design patterns
Software quality attributes
Software life cycle
Server-side programming languages (Ruby, Python, PHP, Node.js)
Web frameworks (Ruby on Rails, Express.js, Django)
Databases (MySQL, PostgreSQL, MongoDB)
Android app development
iOS app development
Hybrid app development (React Native, Ionic)
Natural language processing
Bash command line
Continuous integration and deployment
Infrastructure as code
Containerization (Docker, Kubernetes)
Cloud services (AWS, Azure, GCP)
Data storage optimization
System design principles
Computer architecture design
Digital Signal Processing
Web application security
Security analysis and testing
Planning and scheduling
Resource allocation and management
Processes management (Agile, Scrum, Waterfall)
Test planning (unit testing, integration testing, acceptance testing)
Quality assurance (code reviews, code analysis, testing strategies)
These articles are not perfect and are provided as is by me. I'm not a native English speaker and I do many typos and grammatical mistakes. Sage-Code is a GitHub organization you can join to contribute to my tutorials. You need to be a software instructor or developer to modify the articles, fix errors or create new articles and publish them.
Clone this: GitHub Repo
If you are not an instructor or developer in the Sage-Code organization you can still make a fork and PR to contribute. Before you make a PR make sure the HTML file is valid. This is a great way to increase your GitHub reputation as an open-source developer.
This course is available on Discord. We connect to a voice channel and I share my screen working or presenting Software Engineering topics. I use diverse programming languages and tools you can learn after you read my articles.
Join: discord invitation
Take the quiz
You can take the quiz now or later but you need a Google account to do so. We do not publish your results but you can ask for feedback on Discord if you take less than 100 points. You need at least 50 points to be considered a Sage-Code developer.
Take: my quiz
You can post comments below and ask questions or provide feedback about your experience learning Software Engineering. We are curious if our course was useful for you.
In the future, we will improve our articles, stream and record videos. Activate Twitter notification or watch the Twitch calendar to be notified when I stream live so you can participate in chat.
Disclaim: Please note that this is not an exhaustive course about Software Engineering but just an overview, and there are many more sub-domains and topics that we study in our course.
Free course: Software Engineering
Did you find this article valuable?
Support Elucian Moise by becoming a sponsor. Any amount is appreciated!