├── README.md ├── databases.md ├── machine-learning.md ├── notes.md └── web-development.md /README.md: -------------------------------------------------------------------------------- 1 | ### Overview 2 | 3 | This is an opinonated guide for people who want to self-study the basics of Computer Science, in order to build solid foundations and avoid getting wiped by LLMs. I added some specializations path of my interest after you're done with the basics, in case you're interested too: [Web Development](https://github.com/Lesabotsy/bootcamp/blob/main/web-development.md), [Databases](https://github.com/Lesabotsy/bootcamp/blob/main/databases.md) and [Machine Learning](https://github.com/Lesabotsy/bootcamp/blob/main/machine-learning.md). 4 | There is a discord server [here](https://discord.gg/tkQ23SqG) if you're looking for a community of self learning people. These being university courses, they won't stay online forever, make your own backup with [yt-dlp](https://github.com/yt-dlp/yt-dlp) for videos, and [wget](https://www.gnu.org/software/wget/) for websites. Now about the courses: 5 | 6 | - CS 61A concentrates on the idea of abstraction, allowing the programmer to think in terms appropriate to the problem rather than in low-level operations dictated by the computer hardware. 7 | - CS 61B deals with the more advanced engineering aspects of software, such as constructing and analyzing large programs. 8 | - 15-213 provides a programmer's view of how computer systems execute programs, store information, and communicate. It enables students to become more effective programmers, especially in dealing with issues of performance, portability and robustness. 9 | - CSCI 0220 gives you the tools to explore interesting questions and convince yourself and others of their answers. You'll be introduced to new worlds of ideas and ways of thinking. We'll learn about Set Theory, Logic, Number Theory, Combinatorics, Graph Theory, and Probability. 10 | 11 | 🥼 Labs | 📹 Videos | 📕 Books | [📝 Notes](https://github.com/Lesabotsy/bootcamp/blob/main/notes.md) 12 | 13 | ### Prerequisites 14 | 15 | - [ ] Fluency in english 16 | - [ ] High school mathematics [📕](https://www.cambridge.org/highereducation/books/maths-a-students-survival-guide/D12E61923C2E86012D1D430BE5737AE0#overview) 17 | - [ ] Some discipline 18 | 19 | ### Courses 20 | 21 | - [ ] [UCB - CS 61A - Structure and Interpretation of Computer Programs](https://cs61a.org/) 22 | - [ ] [UCB - CS 61B - Data Structures](https://sp21.datastructur.es/) [🥼](https://github.com/orgs/Berkeley-CS61B/repositories) [📝](https://github.com/lesabotsy/bootcamp/blob/main/notes.md#cs-61b) 23 | - [ ] [CMU - 15-213 - Introduction to Computer Systems](https://www.cs.cmu.edu/afs/cs/academic/class/15213-f15/www/index.html) [📹](https://scs.hosted.panopto.com/Panopto/Pages/Sessions/List.aspx#folderID=%22b96d90ae-9871-4fae-91e2-b1627b43e25e%22&maxResults=50&sortColumn=10&sortAscending=true) 24 | - [ ] [Brown University - CSCI 0220 - Discrete Structures and Probability - Spring 2024](https://cs22.io/) [📹](https://www.youtube.com/playlist?list=PLPV0yK61XQvbn-lyV__bqK9XcQsxD_pWA) 25 | 26 | ### Tips 27 | 28 | - Use a GNU/Linux distro. I suggest [Fedora](https://fedoraproject.org/), with [Distrobox](https://github.com/89luca89/distrobox) so that all your development environments are in separated containers. You will have to install lots of stuff, this will prevent conflicts and filling your computer with things you only need temporary. 29 | - Use a simple text editor with syntax highlighting (like [Helix](https://helix-editor.com/)) so that you type everything, without the help of autocomplete or LSPs. They are good for productivity, they suck for learning. Things will stick better if you type and force yourself to remember what to type. 30 | - When stuck take a break. Only look at solutions if it's taking days to solve. These courses are known to be hard and are supposed to be hard. 31 | - Build stuff. It does not have to be a novel thing. Pick something that's already been done, identify the main functionality and start from there. You can iterate or jump to something else when done. Some recommendations: a text editor, a version control system, a database, and old school video game like Snake or Pacman. 32 | 33 | ### FAQ 34 | 35 | #### How long is this going to take? 36 | Count 200 to 250h per course. 37 | 38 | #### Will I be ready for a job after completion? 39 | Yes, but make sure to build a portfolio and start networking along the way. Getting a job is matter of who you know, more than what you know, if you don't have a degree. 40 | -------------------------------------------------------------------------------- /databases.md: -------------------------------------------------------------------------------- 1 | - [ ] [CMU - 15-445 - Database Systems](https://15445.courses.cs.cmu.edu/fall2024/) 2 | - [ ] [CMU - 15-721 - Advanced Database Systems](https://15721.courses.cs.cmu.edu/spring2024/) 3 | - [ ] [CMU - 15-799 - Special Topics in Databases: Query Optimization](https://15799.courses.cs.cmu.edu/spring2025/) 4 | -------------------------------------------------------------------------------- /machine-learning.md: -------------------------------------------------------------------------------- 1 | - [ ] [UCB - Data 100 - Principles and Techniques of Data Science](https://ds100.org/fa24/) 2 | - [ ] [UCB - CS 189 - Introduction to Machine Learning](https://people.eecs.berkeley.edu/~jrs/189/) [📕](https://mml-book.github.io/) 3 | - [ ] [CMU - 10-414 - Deep Learning Systems](https://dlsyscourse.org/) [📕](https://udlbook.github.io/udlbook/) 4 | -------------------------------------------------------------------------------- /notes.md: -------------------------------------------------------------------------------- 1 | #### CS 61B 2 | 3 | - Gradescope password: MB7ZPY. 4 | -------------------------------------------------------------------------------- /web-development.md: -------------------------------------------------------------------------------- 1 | - [ ] [Aalto University - Web Software Development](https://fitech101.aalto.fi/courses/web-software-development/) 2 | - [ ] [University of Helsinki - Full Stack Open](https://fullstackopen.com/en/) 3 | - [ ] [Aalto University - Designing and Building Scalable Web Applications](https://fitech101.aalto.fi/courses/designing-and-building-scalable-web-applications/) 4 | - [ ] [Aalto University - Device-Agnostic Design](https://fitech101.aalto.fi/courses/device-agnostic-design/) 5 | --------------------------------------------------------------------------------