Learnit/All Software Engineering Content

Concurrent Programming edit

Selected stuff (Books) edit

There are too many platforms and languages with multithreading support. Let's first of all bring here the books which matter, rather than yet another boring platform-specific manual.

  • "The Little Book of Semaphores", Allen B. Downey [get free] -- good for acquiring an intuition on solving of basic (and not so basic) synchronization problems using old good semaphores.
  • "The Art of Multiprocessor Programming", Maurice Herlihy, Nir Shavit  [amazon] -- this book is mostly dedicated to the lock-free synchronization and other advanced topics rather than basic synchronization methods.
  • Any good book on condvars?

Frameworks? edit

OpenMP, MPI, TBB, TPL, Cilk, Cilk plus, OpenCL, PPL, ParaSail, GCD, fork/join, AMP, CnC, PBB, ArBB, PPL

Platform and language specific stuff. edit

  • Concurrent programming in Erlang, Future Learn [link]
  • Bartosz Milewski - Parallel and Concurrent Haskell [link]

Distributed Programming edit

Video Courses edit

  • Seif Haridi. Distributed Algorithms. [video]
  • CS 436: Distributed Computer Systems, University of Waterloo [video]
  • Cloud Computing Concepts, University of Illinois, coursera.org [link]

Functional Programming edit

Machine Learning and AI edit





Algorithms edit





Operational Systems edit

LearnIt/Operational Systems

Linux edit

User edit

  • Linux Fundamentals, Prof. Dan Alberghetti [link]

Admin edit

User Space API edit

Kernel edit

Drivers edit

Networking Protocols edit

Video Courses edit

Programming Languages edit

This page is either for interesting languages or interesting resources. Please no yet another "learn smth in # days". Good introductory courses are still welcome. Preferably, no materials for beginners like "smth as your first language".

C# edit

clojure edit

F# edit

erlang edit

go edit

Haskell edit

java edit

javascript edit

lisp edit

ocaml edit

python edit

ruby edit

scala edit

scheme edit

  • Video Lectures by Hal Abelson and Gerald Jay Sussman [link]

Swift edit

Databases edit

LearnIt/Databases