Programming Tutorial
There are a lot of "learn to code" sites out there, but I'd like to do a learn to program.
Things to Cover
- The command line
- TCP networking
- Crypto
- Regex
- Modulus math and tricks
- Servers
- Time
- Source control
- Programming standards
Layout
- Intro
- Programming, software and computer science
- Beyond writing code
- Outline
- Environment
- Coding : JavaScript
- Browser Intro
- Hello World
- Variables
- Strings
- Numbers
- Bools
- Math
- Operators and assignment
- Conditionals
- If
- Switch
- Loops
- for
- while
- break
- continue
- Functions
- Scope
- Arrays
- Objects
- Prototypes
- Command Line
- Why it's powerful
- VMs
- Bash/Cygwin
- Virtualbox
- Docker
- AWS
- basic navigation
- basic tools
- Python
- Overview; language differences
- Command line args
- HTTP servers
- basic server
- requests
- ajax
- jQuery
- Thinking with Ints
- Numbers as data
- mod tricks
- C++
- Overview; language differences
- Speed
- Pointers
- Deep OO
- Inheritance
- Abstract classes
- Patterns
- Listener
- Facade
- Big O
- Overview; language differences
- Data Structures
- Add, remove, find, sort
- Arrays
- Lists (C++ Vector)
- Linked Lists
- Tree
- Stack
- Queue
- Map
- Go
- Concurrency
- Threads
- Channels
- Mutex
- OO Reduction
- Go, C++, JavaScript
- Concurrency
- Working with Time
- Why it's hard
- UNIX time
- Examples in languages
- Regex
- Why
- Basic matching
- Advanced matching
- Best practices (it IS hard to read)
- Servers
- What it is
- AWS (hosted)
- Virtual Box (local)
- RasPi
- SSH
- Keys and Accsss
- permissions model
- FTP
- Lamp Server
- MySql
- command line
- phpMyAdmin
- Apache
- PHP
- MVC
- Laravel
- MySql