To acquire all the knowledge I deem necessary to work as a decent programmer, I created a course of electronic- and computer engineering-lite. Because I need income urgently, and because it pushes me to understand the electronics of computers, I want tot start working as a PCD Designer before I fully dive into programming.
A. OPERATING SYSTEM ADMINISTRATION (before working as a PCB Designer)
Essentials of Linux System Administration
Debian System Administration
B. COMPUTER ELECTRONICS (before working as a PCB Designer)
Theory of computer electronics
Mathematics -Essentials
Electronics -Essentials
Computer Architecture -Essentials
Practice of computer electronics
Circuit Design
PCB Design
CAD Electronic Drafting
C. SOFTWARE DEVELOPMENT (while working as a PCB Designer)
Phase 1: (Don Quixote Stage / to be revisited while doing paid work): 2 books totalling 295 + 696 = 991 pages
In the first phase of my learning, I targeted retro development until the feeling dawned on me that I was, like Don Quixote, chasing windmills. I learned a lot from this episode, but it was not the most efficient route for reaching my goals. I have since shifted to contemporary computing, which led me to Phase 2.
1. The C Programming Language, 2nd ed. - B. Kernighan, D. Ritchie, 1988. (295 pages)
The absolute historical C programming classic, written by the grandmasters themselves.
2. C Programming: A Modern Approach, 1st ed. - K.N.K., 1996. (696 pages)
A highly praised textbook, of which the 2nd ed. is still used today to teach students of C programming.