and learning how to code by myself in general
in my first semester of college, i started a (very) casual learning group because i wanted to learn how to make things from scratch extremely fast. for context, in high school i was really only comfortable with baseline HTML/CSS.
we met up during late nights in houses, libraries, and CS classrooms learning everything from git, the difference between props and state, NextJS, understanding technical documentation, etc. in retrospect, it was incredibly helpful for becoming a better engineer. and i really want to continue it this upcoming fall at berkeley! so i’m writing this to compile a few things i’ve learned after running one for 1 semester and picking up good coding practices yourself.
some topic ideas for next semester:
- advanced cuda/wrangling clusters. cuda is hard man. getting the basics down is cool but expert level cuda is something else.
- get good at c! systems 😈
- get even better at react (typescript, debugging more efficiently, thinking in react)
i’m sure everyone is familiar with how difficult coding in best-practices is hard to learn, especially solo. it’s too easy to pick up bad habits. coding is also a different type of skill because it comes down to whether you can actually do it (grifting is hard to do).
essentially: during the first few weeks of self-learning react, i was brute forcing my way through react’s library and youtube tutorials (which was only possible because i intentionally limited my courseload for 4 months and basically was locked up in the library). that worked okay but after getting to the advanced stuff, getting stuck was more frequent and stack overflow could only teach so much. i felt like i was missing context on today’s programming practices. as in what are the most relevant libraries, how to best spin up a back-end, how do i write clean code ... what is worth spending time on?
then i realized there are some things you can only get through a verbal conversation. the Internet is great, but 1 on 1 is where the good stuff is shared. much more back-and-forth is possible, and that’s when you get to the nitty-gritty tips that are extremely helpful. learning groups enable this.
plus, learning with friends allows you to get a very fast feedback loop with small, tricky edge cases. you also get practice teaching others concepts you learned a few days ago!
set-up and tips
- in the first few weeks, keeping the group extremely small was a very big factor to its enjoyment. it should be FUN at the end of the day. 3-5 maximum. ideally, you all know each other a little beforehand. nice to have a mix of different skill levels.
- if possible, meet up at apartments over libraries and classrooms. i slightly prefer evenings-late night cause i feel like people are just more relaxed at this time.
- frequency of meet-ups is important! every week is great. once you stop for a few weeks, the group is basically dead 🥲
- everyone might be at different skill levels, so a possible format is publicly stating what you’re working on and then branching off into solo work times. then, whenever troubleshooting something you have a group you can ask. this doesn’t necessarily replace looking things up yourself on stackoverflow (as that’s still a very good skill to have), this is more for when your head starts to hurt and you have exhausted your current solutions.
- minimize chatGPT and github copilot (except for CSS lol i hate flexbox). makes it WAY too easy. need to struggle to engrain the code in your head longterm.
- going through a common course could also be beneficial. i really liked the odin project as it made you do a lot of heavy lifting yourself, and doesn’t handhold through the curriculum.
i think another important thing for me to realize early was to figure out what skills were possible to learn by googling as they come up vs. which skills are just extremely helpful down the line and thus should spend a good chunk of time learning ( i.e. being very comfortable with git and Github, understanding your terminal and common error messages, putting stuff on an actual IDE, no shortcuts like Replit)
at the end of the day, i don’t think react learning groups can be super helpful at scale. this probably wouldn’t work as a widespread campus advertised event, more of a lowkey with-close-friends type thing. the more people attend, the higher the stakes for people to look smart. it’s very important to have a comfy environment where you can ask a lot of dumb questions like “what is CORS?” and “how do I manage my git branches”???
let me know if you have any thoughts :) my email is chloe chia at berkeley dot edu