How to stop being a PHP developer and become a software engineer
How to stop being a PHP developer and become a software engineer
MVK for PHP programmer
PHP
SQL
html / css
javascript
http
memcache, nginx, *nix, frameworks
Frameworks
Hipsters are coming
What if PHP6 will be fancy?
PHP 6
So what should I learn?
Berkeley University
Dreifus model of skill aquisition
novice
advanced beginner
competent
proficient
expert
GET vs POST
I have no idea (using “register_globals”)
$_GET vs $_POST
URLs vs forms
http methods
http request with headers
Step outside of PHP world
MATH
Have you seen my math teacher?
Discrete mathPretend there’s nothing between 1 and 0
Probability
Combinatorics
Optional math
Formal languages and automata
Number theory
Computational geometry
How to learn math?Practice
Data structures
array (real one)
list
dictionary (map, hash)
set
stack / queue
heap
tree
graph
Fancy data structures
skip lists
self-balancing trees
tries for compact string representation
b-trees
bloom filter
Learn python
This slide uses 25th frame to make you learn Python. Obey.
Algorithms
Big O notation
Sorting
Searching
Graphs and paths
Books & courses
Computer architecture
Integers and floats
year 2037
your math teacher was lying: 0.1 + 0.2 !== 0.3
Memory hierarchy
CPU, I/O, asm
Books & courses & curiosity
OS design
Real OS
Scheduler, processes, threads
Compiling vs VMs
Books
Computer networks
Physical and link layer
copper cables, optics
wi-fi, bluetooth, mobile
Network layer (IP)
Transport layer
TCP and UDP
Application layer
DNS, mail, http, RTP
CDNs, streaming
Computer networks
Network security
symmetric key
public/private key
certificates
digital signatures
MAC
Network security
Books & courses
MVK for software engineer
Math
Algorithms & DS
Hardware and architecture
OS design
Computer networks*
OOD
testing
tools
compilers
application architecture
etc.
New language every year
asm*
C
Java
python
Learn functional language
Be curious
Break things
Build things
Keep learning
Thank you