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".

clojure

edit

erlang

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