allos.dev logo

15 Aug 2025 ~ 6 min read

What Will You Learn While Reading?


What Will You Learn While Reading the Book & Building The App?

  1. The C# Programming Language
  2. Code reuse via code libraries (APIs - Application Programming Interfaces)
    • We will start creating our first library function in the second chapter when we start writing code
  3. Version Control (we use git and all the source code will be available at GitHub)
  4. User Interface creation using “web tools”
    • The User Interface for DiscoProcs runs cross-platform but all the major platforms (Linux, macOS, Windows) use different types of window managers and each of those uses proprietary code to display the User Interface. But all those platforms support HTML, JavaScript, CSS
    • HTML
    • JavaScript (including ReactJS makes it easier to build HTML components for displaying things like grid views).
    • CSS (including the Bootstrap CSS libraries)
    • We will be using a special library named Photino (see https://TryPhotino.io for more) to build the User Interface using HTML & CSS. Much more on this as we progress through the book.
  5. ASP.NET MVC WebAPIs (that’s a lot of acronyms)
    • MVC - Model View Controller is a way to break up your code to implement SoC (Separation of Concerns)
    • SoC is the code equivalent of not building a microwave oven that is also a refrigerator. If your refrigerator breaks down then you have to swap out your microwave too.
    • WebAPIs are simply functionality that can be called from anywhere via the Internet. A quick, simple example would be providing the clock time for anyone who calls your WebAPI function. User sends in a TimeZone ID and receives the current time in that time zone.
  6. SQL via Sqlite
    • We will store data in a Sqlite database.
    • DDL Data Definition Language (create database tables)
    • SQL (Structured Query Language) (query the database - get and store data)
    • EF Core (EntityFramework core)
  7. File & Folder details
    • Learn to get the list of SpecialFolders (folders where user data is commonly stored on various Operating Systems)
    • Learn to read data from files & write data to them.
  8. Operating System Concepts - As you learn to program this app there are numerous OS concepts you’ll learn along the way (Processes, Files, Folders, environment variables and more)

This is not a complete list of everything we will cover.

Just as it is with cooking, there are a lot of incidentals that we will learn along the way. For example, if you haven’t installed .NET Core SDK (Software Development Kit) on your computer yet, there are numerous things you’ll learn as you do that work.

How Writing A Complete App Enhances Learning

Human Memory Is Contextual

The research on memory shows that memorizing a list of things is very difficult for humans.
The average person can remember somewhere between three and seven items.
Memorizing a long list of random items is similar to learning a bunch of interesting facts and code snippets in a programming language, but never applying them. They’re very difficult to remember.

However, there are humans who can memorize huge lists. How is it possible? Researchers have discovered that these people create context around what they are memorizing. Context means story. So if a person creates a story around what they are trying to remember the brain is engaged and remembers things.

The App We Build Will Be Like A Story

To learn to develop software this book will guide you step-by-step through creating a cross-platform application (runs on Linux, macOS and Windows). The work we put into creating the application will create a “story context” for the esoteric programming language details that you learn. That context will help you remember what you’ve learned. It’s way more fun than reading about how to write a for loop and you’ll have a complete application when we’re done.

Since the code is FOSS (Free and Open Source Software) you can alter the app for your own use, use code from the project in your own apps that you write in the future and use the code however you want.

Create A Complete Usable Software Solution

Creating a complete application is a big challenge to take on, but I will be with you along the way and you will see that there is nothing extremely difficult about learning to program. You don’t have to be a genius to do it.

Not Everything Will Be Easy

Of course, not everything will be easy. There will be some hard things to do that may trip you up. But, I’ll do my best to help you know which things may cause you some grief. That’s what I’m here for: to point out the things that may be difficult and guide you through.

Not False Humility: I’m Not The Smartest Person

I’m really not that smart. I’m average, like most people. I don’t have a college degree but I’ve been employed in the IT Industry with no breaks (never been fired yet 😁) for 35 years. I’ve been developing software professionally since 1999. I’ve used a long list of programming languages and technologies to write that software, and I’ve discovered that you don’t have to be the smartest person in the room to do some cool things.

Secret: The smartest person in the room often goes down the wrong road because they’re convinced they’re right.

If you don’t have to be the smartest person, then what skills do you need?

  1. Curiosity - Desire to learn. Ask a lot of questions (even when you think you know the answer).
  2. Tenacity - Be relentless

If you are curious then you’ll try to understand.
If you’re tenacious then when a technology fails to do what it is supposed to do, you’ll look for an alternate way of getting to the solution and you’ll keep fighting building the solution.


Headshot of Maxi Ferreira

Hi, I'm Roger. I'm a software developer based in Dayton, Ohio. You can follow me on LinkedIn or Twitter, see some of my work on GitHub, or read more about my Open Source password manager (and try it out at C'YaPass web). C'YaPass doesn't store your passwords anywhere (it generates them every time).