RSS Amplifier

Breaking Stagnation · Feb 12, 2021

The Sovereign Student

0
Sign in to vote or save

Mark Saroufim · Breaking Stagnation

The goal of this guide is to offer an alternative to people who weren’t accepted to top undergraduate programs but still want to pursue a career in computers.

The internet is a great democratizing force and if you’re willing to publicly share your work you can attract hiring managers and recruiters to you.

You’re just getting started, you don’t know that many things, you haven’t programmed all that much and neither have many of your friends or acquaintances. How do you compete against the high prestige folks?

How do you bootstrap a computer science education?

The first thing to keep in mind is that prestige still matters, if you get accepted to a top school you should most definitely attend it if you can afford it. But the second thing to keep in mind is if you don’t get accepted to a top school, then a portfolio is your next best bet.

So how do you build a portfolio?

Typically the way classes are taught in undergraduate is the following

Traditional School Model: Listen to Lecture -> Do Homework -> Listen to Lecture -> Do Homework … -> Do Final -> Pass -> Do more advanced class

But the unschooled model emphasizes cultivating a few interests and going progressively deeper.

Unschooled Model: Read and Listen to many references at once-> Focus on a few topics that interest you -> Summarize them online -> Download relevant OSS projects -> Learn to use them to solve a practical problem -> Pick a Github issue from OSS project and work on it -> Make friends with library maintainers -> Make your own OSS project

Let’s work through an entire example of how a self education in Machine Learning could look like

Read Fast.ai, data science from scratch, 100 page ML book -> Summarize main ideas in a few blog posts -> Download HuggingFace and train it on a custom dataset -> Pick an open issue on their Github and fix it -> Make your own OSS ML project

Once you find a found a few good references everything follows naturally if you’re willing to put in the work. So how do you find good starting references?

The single best way to get good book recommendations is to ask people you admire for their favorite books. For example here are mine which will probably be interesting to anyone studying computer science or machine learning.

I spend quite a bit of time on Twitter looking for experts in niche fields and asking them for their favorite books. People tend to answer this question even if you’re an anon.

If you also show the same people some interesting projects you’ve built they will generally be very receptive because few people take the effort to engage beyond the “Let’s connect or how do I get started”. It’s counterintuitive

Be valuable to people you admire and they will mentor you

X avatar for @HamelHusain

Hamel Husain@HamelHusain

I wanted to find a highly skilled person that I could learn from that was several orders of magnitude better than me. IDK why, but apprenticeship style learning is underrated in the modern age. 🧵👇

X avatar for @marksaroufim

Mark Saroufim @marksaroufim

@HamelHusain @jeremyphoward I'm gonna have to ask you at some point how yours paths ended up crossing - definitely a fav OSS duo

7:42 PM · Jan 14, 2021

22 Reposts · 98 Likes

So if you’d like to bootstrap a computer science education here are the main fields you should study and my favorite introductory books for each.

  1. Programming - build a Discord repl.it bot

  2. Systems - Nand2tetris then Architecture of Open Source Applications

  3. Algorithms - Grokking Algorithms

  4. Operating Systems - OS tutorial

  5. Compilers - Crafting Interpreters

  6. Functional Programming - Purely Functional Data Structures

  7. Computer Architecture - Architecture of Consoles

  8. Networking - Beej guide

  9. Machine Learning - 100 page ML book, fast.ai book, data science from scratch

  10. Databases - Designing Data Intensive applications

  11. Graphics - Ray Tracing in one Weekend

  12. Cryptography/Security - Game Hacking and Bitcoin White paper

  13. Physics Programming - Nature of Code

  14. Numerical Computing & Parallel Programming - MIT Scientific ML class

However, make sure to develop your personal preferences and taste as quickly as possible. Learning shouldn’t feel grindy, it should be fun. So if you don’t like a book just get a new one, if you don’t like a topic even after skimming 5 books about it, odds are you’re better off working in some other subfield. Procrastination is information, success means you’re engaged.

So learn to enjoy what you’re doing, learn to code, write, speak and make friends. Make the leap from a sovereign student to a sovereign researcher.

X avatar for @marksaroufim

Mark Saroufim@marksaroufim

The sovereign researcher * Great conversation with anyone * Builds their own OSS tools * Never gate-keeps * Gets their blog posts cited * Hosts their own conferences * Financially independent * Helps crackpots flesh out their ideas * Learns anything

4:17 PM · Feb 4, 2021

3 Reposts · 30 Likes

If you’re looking for self learning peers then make sure to check out or Discord channel https://discord.gg/drmuTjWZrm

If you enjoyed this post you’ll also probably enjoy http://robotoverlordmanual.com/ specifically these chapters

Thank you Peter Crowe for prompting me to write this.

No posts

Read the original on marksaroufim.substack.com

Comments

Nothing yet. Say the first thing.

    Sign in to join the conversation.