Learnit/All Software Engineering Content

From Wikiversity
Jump to navigation Jump to search

Concurrent Programming[edit | edit source]

Selected stuff (Books)[edit | edit source]

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 | edit source]

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

Platform and language specific stuff.[edit | edit source]

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

Distributed Programming[edit | edit source]

Video Courses[edit | edit source]

  • 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 | edit source]

Machine Learning and AI[edit | edit source]

Algorithms[edit | edit source]

Operational Systems[edit | edit source]

LearnIt/Operational Systems

Linux[edit | edit source]

User[edit | edit source]

  • Linux Fundamentals, Prof. Dan Alberghetti [link]

Admin[edit | edit source]

User Space API[edit | edit source]

Kernel[edit | edit source]

Drivers[edit | edit source]

Networking Protocols[edit | edit source]

Video Courses[edit | edit source]

Programming Languages[edit | edit source]

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 | edit source]

clojure[edit | edit source]

F#[edit | edit source]

erlang[edit | edit source]

go[edit | edit source]

Haskell[edit | edit source]

java[edit | edit source]

javascript[edit | edit source]

lisp[edit | edit source]

ocaml[edit | edit source]

python[edit | edit source]

ruby[edit | edit source]

scala[edit | edit source]

scheme[edit | edit source]

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

Swift[edit | edit source]

Databases[edit | edit source]