Clean Code
code authoring basics: coding and naming conventions
important ‘code smells’
refactoring basics
Computer science fundamentals
Data structures: stack, array, linked list, queue, bag
Basic algorithms: elementary sort
Algorithms complexity basics
Merge and quick sort
Hash tables; hash functions
Priority queue/heap
Union-find structure and algorithm
Version control principles
version control fundamentals, centralized vs distributed
svn basic usage: checkout, update, commit, merge, conflict resolution
git basic usage: clone, branches, merging, push, pull
git comparison to svn
Automation concepts
command-line scripting
powershell scripting
using msbuild for buiding automation
Continuous integration setup and usage (cruise control, teamcity)
overview of other scripting platforms (python, node.js, csipts)
Computer science
Divide-and-conquer algorithms generalization
Graph data structure, BFS, DFS algorithms
Greedy algorithms: Minimal spanning tree, shortest path
Computers and networks
Network fundamentals, OSI model
transport level protocols: IP, TCP, configuration
presentatin level protocols: https
application level protocols: http, ftp, smtp, dns
using utils: ping, nslookup, tracert, telnet, curl
Xml concepts
Xml overview
XPath concepts
XSD concepts
Advanced computer science
strings algorithms: sort, substring search, regular expressions, compression
dynamic programming
nonlinear programming
memory-management (garbage collection)
data indexing
Cryptography
cryptography algorithms: symmetrical, asymmetrical
applications: .net cryptolibrary, crypto++, else?
Trees
binary search trees
balanced search trees: b-tree, red-black-tree, avl