Programming from Scratch
Learn to program from scratch.
In this book I assume no prior knowledge of programming. We work through some core concepts using everyday knowledge as a springboard. Quickly moving on to learning real programming languages as a way to make those concepts concrete.
Author Note
Nothing more than notes and ideas at the moment.
Contents
How to…
1.1 …read this book
1.2 …get the most from this book
1.3 …manage your workspace
Setting Up Your Environment
2.1 VirtualBox
2.2 Vagrant
2.3 git
2.4 Installing the host tools
2.5 Setup Files for the Course
What this book is about
3.1 Concepts Over Specifics
3.2 Why Lua, Python, and Bash?
3.3 Art, Craft, or Science?
3.4 Coding, Programming, and Software Engineering
3.5 The Essence of Programming
Core Concepts
4.1 Cohesion
4.2 Coupling
4.3 Abstraction
4.4 Separation of Concerns
4.5 Scope
4.6 Context
4.7 Contingency
4.8 Entropy
4.9 Parsimony
I Coding
The Obligatory Hello World Program
5.1 Hello World in Bash
5.2 Hello World in Lua
5.3 Hello World in Python
5.4 Hello World Review
Variables
6.1 Python Variables
6.2 Lua Variables
6.3 Bash Variables
6.4 Variables Review
Special Variables
7.1 Command Line Arguments in Bash
7.2 Command Line Arguments in Lua
7.3 Command Line Arguments in Python
7.4 Special Variables Review
Functions
8.1 Parameters and Arguments
8.2 Functions in Python
Flow Control
II Programming
Requirements
A vi
B Naming Things
Bibliography
1.1 …read this book
1.2 …get the most from this book
1.3 …manage your workspace
Setting Up Your Environment
2.1 VirtualBox
2.2 Vagrant
2.3 git
2.4 Installing the host tools
2.5 Setup Files for the Course
What this book is about
3.1 Concepts Over Specifics
3.2 Why Lua, Python, and Bash?
3.3 Art, Craft, or Science?
3.4 Coding, Programming, and Software Engineering
3.5 The Essence of Programming
Core Concepts
4.1 Cohesion
4.2 Coupling
4.3 Abstraction
4.4 Separation of Concerns
4.5 Scope
4.6 Context
4.7 Contingency
4.8 Entropy
4.9 Parsimony
I Coding
The Obligatory Hello World Program
5.1 Hello World in Bash
5.2 Hello World in Lua
5.3 Hello World in Python
5.4 Hello World Review
Variables
6.1 Python Variables
6.2 Lua Variables
6.3 Bash Variables
6.4 Variables Review
Special Variables
7.1 Command Line Arguments in Bash
7.2 Command Line Arguments in Lua
7.3 Command Line Arguments in Python
7.4 Special Variables Review
Functions
8.1 Parameters and Arguments
8.2 Functions in Python
Flow Control
II Programming
Requirements
A vi
B Naming Things
Bibliography