📚 Resources
Looking for a compendium of online programming-related resources? You’ve come to the right place!
For especially cool resources, I’ve put a star!
Contents
🍎 Learning to Code
General: Do it Yourself
- Codecademy ⭐
- Free Code Camp
- W3Schools (HTML, CSS, JS, Python, Java, SQL, XML, and more) ⭐
- Awesome YouTube Channels (data science, AI, ML, CS)
- Crash Course: Computer Science
- Association of Women in EECS at Berkeley: Technical Skill Development
- Code.org
- edX: Computer Science
- Coursera: Computer Science
- Udemy: Development
- LinkedIn Learning
- Note: Some universities may provide access to this for free
- Free Programming Books
- Big R
- Coupon Follow: Save Money: Learn to Code From Home (thanks Brooke and Stephanie!)
- Loadview: Coding Websites and Apps for Students (thanks Avery!)
General: Classes
- Girls Who Code ⭐
- Code 4 Tomorrow
- MIT Missing Semester of Your CS Education (practical software engineering skills, e.g. bash, Git, Vim) ⭐
- College Compendium (audit university CS classes)
- Treehouse
- See About for links to UC Berkeley class material
Python
- MIT: Computational Thinking using Python ⭐
- Python Like You Mean It (Python, NumPy)
- Future Coder
Java
- FTC 9656 Omega: Learn Code (Java, bash, Git, GitHub) ⭐
Web Development
- The Odin Project ⭐
- MarkSheet: a free HTML and CSS tutorial
- Tutorial: Intro to React ⭐
- Fullstack Open Course
- Web Development at Berkeley: Introduction to Full Stack Development
- Screeps (gameified JavaScript)
- SpaceTraders API (gameified APIs)
- Bitburner (gamefieid Netscript, a subset of JavaScript)
AI, ML, Data Science
- Stanford: Machine Learning ⭐
- DeepLearning.AI: Deep Learning Specialization or this link ⭐
- Kaggle Courses
- AI4All
- A visual introduction to machine learning
- Crash Course: Artificial Intelligence
- AWS: Machine Learning
- Google: Machine Learning Crash Course
- Frank Andrade: A Complete 26 Week Course to Learn Python for Data Science in 2022
- Intro to Machine Learning Workshop Slides, hosted by ML@Berkeley, the Society of Women Engineers at Berkeley, and the Association of Women in EECS at Berkeley
- Christoph Cemper / AIPRM: A Kid’s Guide to Artificial Intelligence and Machine Learning
Terminal-Based Text Editors
- CS 61A: Vim ⭐
- CS 61A: Emacs ⭐
- Albert Wu: Vim
- Albert Wu: Vimrc
- vim.so (interactive Vim exercises)
- Vim Adventures (learn VIM while playing a game)
Git, GitHub
- GitHub Learning Lab
- Albert Wu: Git
- The Net Ninja: Git & GitHub Tutorial for Beginners
- FTC 9656 Omega: Learn Code (Java, bash, Git, GitHub) ⭐
- Learn Git Branching
- Atlassian: Git ⭐
Other
- qBraid (quantum computing)
- Computer Science Visualizations (sorting algorithms, Halting Problem)
- Code.org: How the Internet Works
- Runestone Academy (open source, interactive textbooks)
- Learn Crypto
- The Deadlock Empire (gameified concurrency)
- Schemaverse (gameified Postgres)
- Cisco Networking Academy
- Computer Science Visualizations: udiprod on YouTube
- Ruby Koans
- Awesome Regex
💻 Writing Code
Desktop Apps
- Visual Studio Code ⭐
- Atom
- Sublime Text
- JetBrains IDEs (IntelliJ for Java, PyCharm for Python, and more)
- Android Studio (Android development, Java)
- Eclipse (Java)
- Spyder (Python)
- Thonny (simple Python IDE)
In Browser
- Replit (collaborative browser IDE) ⭐
- Codepen (HTML, CSS, JS)
- JSFiddle (HTML, CSS, JS)
- Glitch (write full stack web apps)
- Google Colaboratory
- Scratch
- code.cs61a.org (made for UC Berkeley’s CS 61A course; allows you to write code for Python, SQL, and Scheme. Also has nice SQL visualizations and linked list visualizations)
📖 Documentation and Reference
General
- Devhints / Rico’s Cheatsheets
- Dev Resources (basically like this page but more)
- W3Schools (HTML, CSS, JS, Python, Java, SQL, XML, and more)
- Codecademy Docs (community-driven collection of documentation for popular programming languages and frameworks)
- Learn X in Y Minutes
Java
Python
Web Development
- W3C Cheatsheet (HTML, JS, CSS, SVG, XPath)
- HTML Reference - A free guide to all HTML elements and attributes ⭐️
- MDN Web Docs: HTML elements reference
- HTML Character Entity Reference Chart
- CSS Reference - A free visual guide to CSS ⭐️
- CSS Tricks ⭐️
- How to Center in CSS
- React Docs ⭐️
- Hawk Ticehurst: The Mega Full-Stack Web Development Resource Guide
- Web Development at Berkeley: Dev & Design Resources
- Berkeley Codebase Resources (web development, Git)
- Public APIs
Command Line
- List of Command Line Commands (bash)
- Linux man pages online (bash command manuals)
- Linux Bash Commands
Git, GitHub
- Git Docs ⭐️
- Roger Dudler: git - the simple guide ⭐️
- Oh Shit, Git!?!️ ⭐ (undoing stuff with git)
- Git Command Explorer ⭐️
- GitHub Basic writing and formatting syntax
- Omar Sharaki: Git Commands to Live By
- UltimateGitResource
Regular Expressions
- Regex101 (test regular expressions) ⭐️
- RegExr: Learn, Build, & Test RegEx ⭐️
- StackOverflow: Reference - What does this regex mean?
Time Complexity
GitHub Pages
Other
- Choose a License (guide to different types of open source licenses) ⭐️
- Markdown Guide ⭐️
- Make a README ⭐️
- Basic Editing in Visual Studio Code
- VimAwesome (cool Vim plugins)
- Michael Sambol YouTube Channel (concise and easy to understand data structures videos)
- Composing Programs by John DeNero (online textbook used in UC Berkeley’s CS 61A course)
- Computational and Inferential Thinking: The Foundations of Data Science, 2nd Edition by Ani Adhikari, John DeNero, David Wagner (online textbook used in UC Berkeley’s Data 8 course)
- Computer Security by David Wagner, Nicholas Weaver, Peyrin Kao, Fuzail Shakir, Andrew Law, and Nicholas Ngai (online textbook used in UC Berkeley’s CS 161 course)
- Veridical Data Science: The Practice of Responsible Data Analysis and Decision Making by Bin Yu and Rebecca L. Barter
🤝 Recruiting
General
- cscareers.dev ⭐️ - “The platform for landing your first software engineering job” according to their website
- cscareers.dev Discord Server - Channels to check out leetcode problems by company, talk about your recruiting process, share salaries, etc.
- If you are part of the Association of Women in EECS at UC Berkeley, check out the AWE Resources Portal ⭐️ (not linked here because it is internal only)
- Web Development at Berkeley: Industry Resources
- Steph’s Guide to Landing Internships
- Cram
- Rebecca’s Recruiting Advice
- Forage (job simulations)
Technical Interviewing
- Leetcode ⭐
- HackerRank
- CodeSignal
- Neetcode ⭐
- BinarySearch (collaborative)
- Pramp (mock technical interviews)
- AlgoExpert
- Cracking the Coding Interview by Gayle Laakmann McDowell (book)
- Instructions for the interviewer (good reference for what interviewers are thinking)
- Tech Interview Handbook
- Online Assessments and interviews guide
- Interview Bit
- Interviewing.io (mock technical interviews)
Job Postings and Cool Programs
Note: Some companies have “talent communities” you can join or job alerts you can sign up for if you want notifications about open positions or if you want to drop your resume.
- AngelList (startups)
- AnitaB Technology Jobs (women in tech)
- Outreachy (provides internships in open source to people subject to systemic bias and impacted by underrepresentation in the technical industry where they are living)
- Include (inclusive recruiting)
- Idealist (tech for social good, volunteering)
- SimplifyJobs: Summer Internships
- SimplifyJobs: New Grad Positions
- SWEList (sign up for notifications when either SimplifyJobs GitHub repositories get updated)
- Girls Who Code Summer Immersion Program (teaching opportunity)
- If you’re part of Girls Who Code, they also have an email job blast
- MLH Career Lab
- Startup Search
- Break Through Tech (programs for women and non-binary students in tech)
- ColorStack (programs for Black and Latinx students in tech)
- Girls Make Games (video game development programs for women in tech)
- Dev Employ
- EdSurge (EdTech job postings)
- Work At A Startup (Y Combinator job postings)
- theFreshDev (internship and entry level tech job postings)
- Hardware FYI (hardware resources and job postings)
First/Second Year/Minimal Experience/University Programs
Note: Generally, large companies with career pages on their websites may have an “early career” or “university” subpage which contains these types of programs! The list below is by no means exhaustive.
- Google STEP (first and second years)
- Meta University (formerly Facebook University)
- Twitter Early Career (Twitter Academy, First Flight, Early Bird, Take Flight, DevelopHER)
- Dropbox Launch
- Pinterest Apprenticeship & Development Programs
- Uber Career Prep Program
- EY Student Programs
- Jane Street Programs
- Summer of Bitcoin
- Palantir Path
- NVIDIA Ignite
- Square Code Camp
- Duolingo Thrive (second years)
- Girls Who Code
- Summer Immersion Program (for high schoolers)
- Self-Paced Program (for high schoolers)
- Work Prep
- Leadership Academy
- Lyft Early Talent Access (ETA) Program - Summer 2022
- AnitaB Apprenticeship Pathway Program (for underrepresented groups in tech)
- Myntor (high school jobs/internships)
Fellowships
- MLH Fellowship
- Coding It Forward Fellowships (US government)
- Has an email job blast anyone can sign up for
- Kleiner Perkins Fellows
- X-Force Fellowship (security, US military)
Coding For Fun / Practice / Fundamentals
- Kaggle (machine learning competitions, datasets)
- Codewars
- Codingbat (Java, Python)
- CodeCombat (Python, JavaScript)
- CodinGame (coding challenges, but game-ified)
- Vim Golf (complete Vim challenges and try to do them in the fewest number of keystrokes)
- Kattis (programming problems)
- Nand Game (computer architecture game)
Compensation, Salary, Negotiation
- Candor: Salary negotiation strategies everyone in tech already knows — but you don’t
- Emile Petrone: Financial Advice
- Ten Rules for Negotiating a Job Offer
- Levels.fyi
- Glassdoor
- AngelList Startup Salaries
- LinkedIn Salaries
- Salary.com
- Payscale
- UC Berkeley Career Center Survey
🤠 Community and Misc
Hackathons
Blogs
- Edward Angert: Emacs, Nano, or Vim: Choose your Terminal-Based Text Editor Wisely
- Adam Towers: How to Customize Your Terminal and BASH Profile from Scratch
- Git shell coloring
- Steven Jeuris: CamelCase vs underscores: Scientific showdown
- Li Haoyi: How to conduct a good Programming Interview ⭐
- Pamela Fox: CS content inclusivity guide ⭐
- Fable Tales: Questions for a prospective employer about on call (1/3)
- Fable Tales: Questions for a prospective employer about on call (2/3)
- Kevin Lin’s Blog (CS education blog)
- Abby Brooks-Ramirez: when finding yourself in college, be careful not to lose yourself
Asking for Help
- Gordon Zhu: How to be great at asking coding questions ⭐
- The XY Problem
- StackOverflow: How do I ask a good question?
- Amy Hoy: Help Vampires: A Spotter’s Guide
- Mattia Maldini: The Plague of Help Vampire Hunters
Misc
- GitHub Education ⭐ (get the student developer pack (aka a bunch of free stuff) here!)
- r/csMajors
- r/cscareerquestions
- HTTP Status Dogs (HTTP status codes + dogs. because why not?)
- Embed like Gist
- Terry D. Johnson: Advice for first year undergraduate engineers
- Hacker Typer (feel like a hacker without being one)
- Google Site Reliability Engineering Book
- Overleaf ⭐ (in-browser LaTeX editor. If you sign up with @berkeley.edu, you can get free Professional plan. They also have documentation to teach you how to use LaTeX)
- Detexify (draw math symbols, get LaTeX syntax)
- Mathpix (draw math symbols, get LaTeX syntax and more)
- RapidTables Binary, Octal, Decimal, Hexadecimal, ASCII Converter
- IEEE-754 Floating Point Converter
- Advent of Code
- carbon (generate aesthetic screenshots of code)
- Dev Resources
- Slackmojis ⭐
- Discordmojis ⭐
- Coolors.co ⭐ (generate color palettes)
- JS is Weird
- neal.fun
- UCSD Professor Philip Guo (A professor’s website organized by Taylor Swift eras)
- Variations of motherfuckingwebsite.com
- UC Berkeley Pedagogy Blog