Learnit/All Software Engineering Content
Appearance
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]- Inroduction to functional programming https://courses.edx.org/courses/course-v1:DelftX+FP101x+3T2015/info
- Category theory foundations https://www.youtube.com/watch?v=ZKmodCApZwk
Machine Learning and AI
[edit | edit source]Under Construction. Please do not introduce your additions/changes until the initial construction phase is finished. |
Algorithms
[edit | edit source]Under Construction. Please do not introduce your additions/changes until the initial construction phase is finished. |
Operational Systems
[edit | edit source]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]- Introduction to Computer Networking, Stanford [link]
- https://www.udacity.com/course/progress#!/c-ud436
- https://www.coursera.org/learn/computer-networking
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]- https://www.youtube.com/watch?v=9uIhawQ1G0I
- http://www.infoq.com/presentations/joe-armstrong-erlang-qcon08
- http://www.cs.kent.ac.uk/ErlangMasterClasses/
- https://www.futurelearn.com/courses/concurrent-programming-erlang
go
[edit | edit source]Haskell
[edit | edit source]- https://compscicenter.ru/courses/func-prog/2015-spring/
- https://onlinecourses.nptel.ac.in/noc15_cs13/course
- Microsoft Channel 9
- Some singular presentations
- A taste of Haskell - Simon Peyton Jones
- Adventure with Types in Haskell - Simon Peyton Jones
- Parallel and concurrent programming in Haskell https://www.youtube.com/watch?v=lqG3mURwUxo
java
[edit | edit source]- https://www.edx.org/course/introduction-programming-java-part-1-uc3mx-it-1-1x-0
- https://www.edx.org/course/introduction-java-programming-part-1-hkustx-comp102-1x
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]- Building Better Apps with Value Types in Swift - Apple WWDC 2015 - https://www.youtube.com/watch?v=av4i3x-aZbM
- Protocol-oriented Programming in Swift - Apple WWDC 2015 https://www.youtube.com/watch?v=g2LwFZatfTI
- Understanding Swift Performance - Apple WWDC 2016 https://www.youtube.com/watch?v=9By9KLs51Dc