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

clojure

[edit | edit source]

erlang

[edit | edit source]

Haskell

[edit | edit source]

javascript

[edit | edit source]

ocaml

[edit | edit source]

python

[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]

LearnIt/Databases