2017-01-10 18:40:25 +01:00
|
|
|
|
# Reading list
|
|
|
|
|
|
|
|
|
|
Here you can find a list of relevant resources that you may find useful for
|
|
|
|
|
learning new skills, or polishing the ones you already have.
|
|
|
|
|
|
|
|
|
|
The topics cover a wide variety of topics, from basic Python coding to
|
|
|
|
|
general developing guidelines.
|
|
|
|
|
|
|
|
|
|
Feel free to create a pull request in Zulip's [GitHub repository](
|
|
|
|
|
https://github.com/zulip/zulip/) with any interesting books, articles or
|
|
|
|
|
videos you would like to see in this list.
|
|
|
|
|
|
|
|
|
|
Some titles have been shortened for organizational purposes.
|
|
|
|
|
|
|
|
|
|
## General programming/IT
|
|
|
|
|
|
|
|
|
|
*Book* - [Clean Code: A Handbook of Agile Software Craftsmanship][] *(Not free!)*
|
|
|
|
|
|
|
|
|
|
[Clean Code: A Handbook of Agile Software Craftsmanship]: https://www.amazon.com/Clean-Code-Handbook-Software-Craftsmanship/dp/0132350882
|
|
|
|
|
|
|
|
|
|
*Books* - [Free programming books list][]
|
|
|
|
|
|
|
|
|
|
[Free programming books list]: https://github.com/vhf/free-programming-books
|
|
|
|
|
|
|
|
|
|
*Blog* - [Free Code Camp blog][]
|
|
|
|
|
|
|
|
|
|
[Free Code Camp blog]: https://medium.freecodecamp.com
|
|
|
|
|
|
|
|
|
|
*Blog* - [Idle Words talks transcripts][]
|
|
|
|
|
|
2020-03-27 01:32:21 +01:00
|
|
|
|
[Idle Words talks transcripts]: https://idlewords.com/talks
|
2017-01-10 18:40:25 +01:00
|
|
|
|
|
|
|
|
|
*Tutorial* - [HTTP Can Do That?!, by Sumana Harihareswara (PyCon 2016)][]
|
|
|
|
|
|
|
|
|
|
[HTTP Can Do That?!, by Sumana Harihareswara (PyCon 2016)]: https://youtu.be/HsLrXt2l-kg
|
|
|
|
|
|
|
|
|
|
*Video* - [Minimum Viable Documentation, by Matthew Lyon (WriteTheDocs 2014)][]
|
|
|
|
|
|
|
|
|
|
[Minimum Viable Documentation, by Matthew Lyon (WriteTheDocs 2014)]: https://youtu.be/bEZcodengwk
|
|
|
|
|
|
|
|
|
|
*Video* - [NoOps, by Kelsey Hightower (DepOpsDays 2016)][]
|
|
|
|
|
|
|
|
|
|
[NoOps, by Kelsey Hightower (DepOpsDays 2016)]: https://youtu.be/ajT90pC3ris
|
|
|
|
|
|
|
|
|
|
*Video* - [The mind behind Linux (TED interview)][]
|
|
|
|
|
|
|
|
|
|
[The mind behind Linux (TED interview)]: https://youtu.be/o8NPllzkFhE
|
|
|
|
|
|
|
|
|
|
*Tutorial* - [Learn code the hard way][]
|
|
|
|
|
|
|
|
|
|
[Learn code the hard way]: https://learncodethehardway.org
|
|
|
|
|
|
|
|
|
|
*Tutorial* - [What happens when...][]
|
|
|
|
|
|
|
|
|
|
[What happens when...]: https://github.com/alex/what-happens-when
|
|
|
|
|
|
|
|
|
|
*Article* - [An Interview With Linus Torvalds][]
|
|
|
|
|
|
|
|
|
|
[An Interview With Linus Torvalds]: https://techcrunch.com/2012/04/19/an-interview-with-millenium-technology-prize-finalist-linus-torvalds
|
|
|
|
|
|
|
|
|
|
*Article* - [Effective Learning Strategies for Programmers][]
|
|
|
|
|
|
2020-03-27 01:32:21 +01:00
|
|
|
|
[Effective Learning Strategies for Programmers]: https://akaptur.com/blog/2015/10/10/effective-learning-strategies-for-programmers/
|
2017-01-10 18:40:25 +01:00
|
|
|
|
|
|
|
|
|
*Article* - [Readme Driven Development][]
|
|
|
|
|
|
2020-03-27 01:32:21 +01:00
|
|
|
|
[Readme Driven Development]: https://tom.preston-werner.com/2010/08/23/readme-driven-development.html
|
2017-01-10 18:40:25 +01:00
|
|
|
|
|
|
|
|
|
*Article* - [Systematic Debugging][]
|
|
|
|
|
|
2020-03-27 01:32:21 +01:00
|
|
|
|
[Systematic Debugging]: https://akaptur.com/blog/2013/07/24/systematic-debugging
|
2017-01-10 18:40:25 +01:00
|
|
|
|
|
|
|
|
|
*Paper* - [Floating-Point Arithmetic][]
|
|
|
|
|
|
|
|
|
|
[Floating-Point Arithmetic]: https://docs.oracle.com/cd/E19957-01/806-3568/ncg_goldberg.html
|
|
|
|
|
|
|
|
|
|
## Python
|
|
|
|
|
|
|
|
|
|
*Video* - [Intro to Python for beginners, by Jessica McKellar (PyCon 2013)][]
|
|
|
|
|
|
|
|
|
|
[Intro to Python for beginners, by Jessica McKellar (PyCon 2013)]: https://youtu.be/rkx5_MRAV3A
|
|
|
|
|
|
|
|
|
|
*Video* - [Breaking the rules, by Jessica McKellar (PyCon Sweden)][]
|
|
|
|
|
|
|
|
|
|
[Breaking the rules, by Jessica McKellar (PyCon Sweden)]: https://youtu.be/C0fnHhY9UOc
|
|
|
|
|
|
|
|
|
|
*Video* - [Build & break a Python sandbox, by Jessica McKellar (PyCon 2014)][]
|
|
|
|
|
|
2020-03-27 01:32:21 +01:00
|
|
|
|
[Build & break a Python sandbox, by Jessica McKellar (PyCon 2014)]: https://pyvideo.org/pycon-us-2014/building-and-breaking-a-python-sandbox.html
|
2017-01-10 18:40:25 +01:00
|
|
|
|
|
|
|
|
|
*Video* - [Cache me if you can, by Guillaume Ardaud (PyCon 2014)][]
|
|
|
|
|
|
2020-03-27 01:32:21 +01:00
|
|
|
|
[Cache me if you can, by Guillaume Ardaud (PyCon 2014)]: https://pyvideo.org/pycon-us-2014/cache-me-if-you-can-memcached-caching-patterns.html
|
2017-01-10 18:40:25 +01:00
|
|
|
|
|
|
|
|
|
*Video* - [Loop like a native, by Ned Batchelder (PyCon 2013)][]
|
|
|
|
|
|
|
|
|
|
[Loop like a native, by Ned Batchelder (PyCon 2013)]: https://youtu.be/EnSu9hHGq5o
|
|
|
|
|
|
|
|
|
|
*Video* - [Modern Dictionaries, by Raymond Hettinger (SF Python)][]
|
|
|
|
|
|
|
|
|
|
[Modern Dictionaries, by Raymond Hettinger (SF Python)]: https://youtu.be/p33CVV29OG8
|
|
|
|
|
|
|
|
|
|
*Video* - [Python Language, by Guido van Rossum (PyCon 2016)][]
|
|
|
|
|
|
|
|
|
|
[Python Language, by Guido van Rossum (PyCon 2016)]: https://youtu.be/YgtL4S7Hrwo
|
|
|
|
|
|
|
|
|
|
*Video* - [The Mighty Dictionary, by Brandon Rhodes (PyCon 2010)][]
|
|
|
|
|
|
2020-03-27 01:32:21 +01:00
|
|
|
|
[The Mighty Dictionary, by Brandon Rhodes (PyCon 2010)]: https://pyvideo.org/pycon-us-2010/the-mighty-dictionary-55.html
|
2017-01-10 18:40:25 +01:00
|
|
|
|
|
|
|
|
|
*Article* - [Static types in Python, oh my(py)!][]
|
|
|
|
|
|
2020-03-27 01:32:21 +01:00
|
|
|
|
[Static types in Python, oh my(py)!]: https://blog.zulip.org/2016/10/13/static-types-in-python-oh-mypy
|
2017-01-10 18:40:25 +01:00
|
|
|
|
|
|
|
|
|
*Guide* - [The Hitchhiker’s Guide to Python!][]
|
|
|
|
|
|
2020-03-27 01:32:21 +01:00
|
|
|
|
[The Hitchhiker’s Guide to Python!]: https://docs.python-guide.org/
|
2017-01-10 18:40:25 +01:00
|
|
|
|
|
|
|
|
|
## Java/Android
|
|
|
|
|
|
|
|
|
|
*Course* - [Android Development for Beginners][]
|
|
|
|
|
|
|
|
|
|
[Android Development for Beginners]: https://www.udacity.com/course/android-development-for-beginners--ud837
|
|
|
|
|
|
2017-06-01 11:15:19 +02:00
|
|
|
|
*Blog* - [Java Tutorials for Beginners][]
|
|
|
|
|
|
2020-03-27 01:32:21 +01:00
|
|
|
|
[Java Tutorials for Beginners]: https://www.geeksforgeeks.org/java/
|
2017-06-01 11:15:19 +02:00
|
|
|
|
|
2017-01-10 18:40:25 +01:00
|
|
|
|
## JavaScript/ECMAScript
|
|
|
|
|
|
|
|
|
|
*Tutorial* - [clean-code-javascript Software engineering principles][]
|
|
|
|
|
|
|
|
|
|
[clean-code-javascript Software engineering principles]: https://github.com/ryanmcdermott/clean-code-javascript
|
|
|
|
|
|
2017-06-01 11:15:19 +02:00
|
|
|
|
*Course* - [React native and redux course][] (*Not free!*)
|
|
|
|
|
|
2019-10-15 23:02:21 +02:00
|
|
|
|
[React native and redux course]: https://www.udemy.com/course/the-complete-react-native-and-redux-course/
|
2017-06-01 11:15:19 +02:00
|
|
|
|
|
2017-01-10 18:40:25 +01:00
|
|
|
|
*Slides* - [TypeScript vs. CoffeeScript vs. ES6][]
|
|
|
|
|
|
2020-03-27 01:32:21 +01:00
|
|
|
|
[TypeScript vs. CoffeeScript vs. ES6]: https://www.slideshare.net/NeilGreen1/type-script-vs-coffeescript-vs-es6
|
2017-01-10 18:40:25 +01:00
|
|
|
|
|
2019-03-28 20:55:05 +01:00
|
|
|
|
## TypeScript
|
|
|
|
|
|
|
|
|
|
*Tutorial* - [TypeScript handbook section on base types][typescript-handbook]
|
|
|
|
|
|
|
|
|
|
[typescript-handbook]: https://www.typescriptlang.org/docs/handbook/basic-types.html
|
|
|
|
|
|
|
|
|
|
*Book* - [TypeScript Deep Dive][]
|
|
|
|
|
|
|
|
|
|
[TypeScript Deep Dive]: https://basarat.gitbooks.io/typescript/
|
|
|
|
|
|
|
|
|
|
*Guide* - [TypeScript Declaration Files Introduction][]
|
|
|
|
|
|
|
|
|
|
[TypeScript Declaration Files Introduction]: https://www.typescriptlang.org/docs/handbook/declaration-files/introduction.html
|
|
|
|
|
|
2020-08-11 01:47:54 +02:00
|
|
|
|
## Git/version control systems (VCS)
|
2017-01-10 18:40:25 +01:00
|
|
|
|
|
|
|
|
|
You may want to take a look first at our [Git and GitHub guide][].
|
|
|
|
|
|
2019-09-30 19:37:56 +02:00
|
|
|
|
[Git and GitHub guide]: ../git/index.md
|
2017-01-10 18:40:25 +01:00
|
|
|
|
|
2020-08-11 01:47:54 +02:00
|
|
|
|
## Computer science/algorithms
|
2017-01-10 18:40:25 +01:00
|
|
|
|
|
|
|
|
|
*Blog* - [GeeksforGeeks][]
|
|
|
|
|
|
2020-03-27 01:32:21 +01:00
|
|
|
|
[GeeksforGeeks]: https://www.geeksforgeeks.org
|
2017-01-10 18:40:25 +01:00
|
|
|
|
|
|
|
|
|
*Book* [Introduction to Algorithms][] (*Not free!*)
|
|
|
|
|
|
|
|
|
|
[Introduction to Algorithms]: https://mitpress.mit.edu/books/introduction-algorithms
|
|
|
|
|
|
|
|
|
|
*Blog* - [Setosa data visualization and visual explanations][]
|
|
|
|
|
|
2020-03-27 01:32:21 +01:00
|
|
|
|
[Setosa data visualization and visual explanations]: https://setosa.io
|
2017-01-10 18:40:25 +01:00
|
|
|
|
|
|
|
|
|
*Course* - [Algorithms, Part I][]
|
|
|
|
|
|
|
|
|
|
[Algorithms, Part I]: https://www.coursera.org/learn/algorithms-part1
|
|
|
|
|
|
|
|
|
|
*Course* - [Open Source Society University][]
|
|
|
|
|
|
|
|
|
|
[Open Source Society University]: https://ossu.firebaseapp.com
|
|
|
|
|
|
|
|
|
|
*Course* - [MIT CSAIL 6.828: Operative Systems Engineering][]
|
|
|
|
|
|
|
|
|
|
[MIT CSAIL 6.828: Operative Systems Engineering]: https://pdos.csail.mit.edu/6.828/2016
|
|
|
|
|
|
|
|
|
|
## Community experience
|
|
|
|
|
|
2017-01-30 19:24:59 +01:00
|
|
|
|
*Book* - [Producing Open Source Software][]
|
|
|
|
|
|
2020-03-27 01:32:21 +01:00
|
|
|
|
[Producing Open Source Software]: https://producingoss.com/en/
|
2017-01-30 19:24:59 +01:00
|
|
|
|
|
2017-01-10 18:40:25 +01:00
|
|
|
|
*Article* - [Advice on Starting And Running A New Open Source Project][]
|
|
|
|
|
|
|
|
|
|
[Advice on Starting And Running A New Open Source Project]: https://www.harihareswara.net/sumana/2016/08/04/1
|
|
|
|
|
|
|
|
|
|
*Article* - [How to ask good questions][]
|
|
|
|
|
|
|
|
|
|
[How to ask good questions]: https://jvns.ca/blog/good-questions
|
|
|
|
|
|
|
|
|
|
*Article* - [Notes for New FLOSS Contributors][]
|
|
|
|
|
|
|
|
|
|
[Notes for New FLOSS Contributors]: https://www.harihareswara.net/sumana/2016/10/12/0
|
|
|
|
|
|
|
|
|
|
*Article* - [To be mentored][]
|
|
|
|
|
|
|
|
|
|
[To be mentored]: https://trueskawka.github.io/zulip/outreachy/blog/2017/01/02/to-be-mentored.html
|
|
|
|
|
|
|
|
|
|
*Article* - [To mentor][]
|
|
|
|
|
|
|
|
|
|
[To mentor]: https://trueskawka.github.io/zulip/outreachy/gci/blog/2017/01/03/to-mentor.html
|
|
|
|
|
|
|
|
|
|
[List of good projects for new contributors][]
|
|
|
|
|
|
|
|
|
|
[List of good projects for new contributors]: https://github.com/MunGell/awesome-for-beginners
|
|
|
|
|
|
2020-08-11 01:47:54 +02:00
|
|
|
|
## Competitions/camps
|
2017-01-10 18:40:25 +01:00
|
|
|
|
|
|
|
|
|
[CodeForces][]
|
|
|
|
|
|
2020-03-27 01:32:21 +01:00
|
|
|
|
[CodeForces]: https://codeforces.com
|
2017-01-10 18:40:25 +01:00
|
|
|
|
|
|
|
|
|
[Free Code Camp][]
|
|
|
|
|
|
|
|
|
|
[Free Code Camp]: https://www.freecodecamp.com
|
|
|
|
|
|
2020-08-11 01:47:54 +02:00
|
|
|
|
## Massive open online courses (MOOC) platforms
|
2017-01-10 18:40:25 +01:00
|
|
|
|
|
|
|
|
|
[Coursera][]
|
|
|
|
|
|
|
|
|
|
[Coursera]: https://www.coursera.org
|
|
|
|
|
|
|
|
|
|
[edX][]
|
|
|
|
|
|
|
|
|
|
[edX]: https://www.edx.org
|
|
|
|
|
|
|
|
|
|
[MIT OpenCourseWare][]
|
|
|
|
|
|
2020-03-27 01:32:21 +01:00
|
|
|
|
[MIT OpenCourseWare]: https://ocw.mit.edu
|
2017-01-10 18:40:25 +01:00
|
|
|
|
|
|
|
|
|
[Udacity][]
|
|
|
|
|
|
|
|
|
|
[Udacity]: https://www.udacity.com
|