Programming Tutorial
Jump to navigation
Jump to search
There are a lot of "learn to code" sites out there, but I'd like to do a learn software engineering.
I think the way to build this is to have the first part done through a web page and some youtube videos. Once we get to the more advanced stages, I can use git and each segment can be a branch.
Modules
- Intro to Course
- Intro to development (HTML)
- Intro to Coding (JS)
- Command line setup
- Objects (Python)
- Testing
- Big O (sorting)
- Basic Data Structures
- Object Patterns
- Basic Models
- Server Programming
- Large Scale Projects
Things to Cover
- The command line
- TCP networking
- Crypto
- Regex
- Modulus math and tricks
- Servers
- Time
- Source control
- Programming standards
- Graph theory
- unit testing
- Algorithms, data-structures and their costs
- O notation
- Array
- linked list
- queue
- stack
- tree
- hashtable
- sorting
- flood algorithm
- memoization
- Philosophy of programming
- Code is for people
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
- find
- grep
- sed
- awk
- 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