Programming Tutorial: Difference between revisions
Jump to navigation
Jump to search
Adamcolton (talk | contribs) No edit summary |
Adamcolton (talk | contribs) No edit summary |
||
| (16 intermediate revisions by the same user not shown) | |||
| Line 1: | Line 1: | ||
There are a lot of "learn to code" sites out there, but I'd like to do a learn to | 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 == | == Things to Cover == | ||
| Line 7: | Line 23: | ||
* Regex | * Regex | ||
* Modulus math and tricks | * 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 == | == Layout == | ||
| Line 14: | Line 49: | ||
** Beyond writing code | ** Beyond writing code | ||
** Outline | ** Outline | ||
** Environment | |||
* Coding : JavaScript | * Coding : JavaScript | ||
** Browser Intro | ** Browser Intro | ||
| Line 24: | Line 60: | ||
*** Operators and assignment | *** Operators and assignment | ||
** Conditionals | ** Conditionals | ||
*** If | |||
*** Switch | |||
** Loops | ** Loops | ||
*** for | *** for | ||
| Line 36: | Line 74: | ||
* Command Line | * Command Line | ||
** Why it's powerful | ** Why it's powerful | ||
** | ** VMs | ||
*** Bash/Cygwin | |||
*** Virtualbox | |||
*** Docker | |||
*** AWS | |||
** basic navigation | ** basic navigation | ||
** basic tools | ** basic tools | ||
*** find | |||
*** grep | |||
*** sed | |||
*** awk | |||
* Python | * Python | ||
** Overview; language differences | ** Overview; language differences | ||
| Line 47: | Line 93: | ||
*** ajax | *** ajax | ||
*** jQuery | *** jQuery | ||
** Thinking with Ints | |||
*** Numbers as data | |||
*** mod tricks | |||
* C++ | * C++ | ||
** Speed | ** Overview; language differences | ||
*** Speed | |||
** Pointers | ** Pointers | ||
** Deep OO | ** Deep OO | ||
*** Inheritance | |||
*** Abstract classes | |||
*** Patterns | |||
**** Listener | |||
**** Facade | |||
** Big O | |||
* Data Structures | * Data Structures | ||
** Add, remove, find, sort | ** Add, remove, find, sort | ||
| Line 62: | Line 118: | ||
* Go | * Go | ||
** Concurrency | ** Concurrency | ||
** Threads | *** Threads | ||
** Channels | *** Channels | ||
** Mutex | *** Mutex | ||
** OO Reduction | |||
*** Go, C++, JavaScript | |||
** | |||
* 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 | |||
[[Category:Projects]] | |||
Latest revision as of 15:35, 23 August 2018
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