Learn Programming¶
Learn Programming is a free book aimed at readers who are interested in software development but have very little to no prior experience.
The book focuses on teaching the core principles around software development.
This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License. The code within this book is licensed under the MIT license.
Download the book in PDF form.
The print version of the book is now available. ISBN: 978-1722834920. Amazon.com link - Amazon.co.uk - Amazon.de - Amazon.ca
2018-09-03: There’s a blog post on the philosophy of the structure of this book.
- 1. The beginning
- 2. Stage 1
- 3. Stage 1.5
- 4. Stage 2
- 4.1. Larger software
- 4.1.1. Introduction to larger software
- 4.1.2. Breaking software down to components
- 4.1.3. Drawing to a screen using SDL2
- 4.1.4. Drawing the schedule screen using SDL2
- 4.1.5. Unix way - sched
- 4.1.6. Unix way - parse_gps
- 4.1.7. Unix way - merge
- 4.1.8. Monolithic way - parsing
- 4.1.9. Monolithic way - scheduled arrivals and GPS data
- 4.1.10. Monolithic way - merging and putting it all together
- 4.2. A fistful of Python exercises
- 4.3. SQL and its relationship with online shops
- 4.4. Final bits
- 4.1. Larger software
- Solutions to exercises
- How does a computer work?
- Ok, but seriously, how does a computer work?
- The basics of programming
- The basics of programming in C
- Quadratic formula in C
- Lots of quadratic equations
- Quadratic formula in Python
- Generating input data using Python
- Regular expressions
- Creating a simple web page
- Making our web page work
- Guessing game in JS
- JavaScript meets algorithms
- C and the stack
- Writing a toy web server
- JSON
- AJAX
- The “start new game” page
- Generating the high score table
- PNG files
- Sudoku
- SDL
- Unix way
- Monolithic way
- Graphs
- Parsing
- Adding data to an SQL database
- Querying SQL databases
- Generating a return form
- Web UI for our return form
- NP-hard problems
- Concurrency
Downloads for the print version:
Lots of quadratic equations
PNG files
Propagation and search
Introduction to larger software
Drawing the schedule screen using SDL2
Graphs
Generating a return form
Contact author: ajsalonen@gmail.com