Learnit/All Software Engineering Content

From Wikiversity
Jump to navigation Jump to search

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