Ask HN: Resources for CS and software eng for a sharp middle school dropout?
I have an adult friend who wants to learn about CS, mainly for fun but also to improve professional prospects. She dropped out in (American) middle school. She's incredibly sharp but suffers from math trauma and general anxiety about school and academia -- so denser texts, stuff that assumes significant math preparation, and traditional classroom settings or resources intended for those aren't ideal.
She responds very well to videos, shorter written resources, interactive and project based work. The problem we've been finding with videos is that lots of the codefluencer stuff that comes up in a naive YouTube search seems to be either straight up wrong garbage, highly superficial, or expects lots of math preparation.
Any suggestions are appreciated. So far she's doing well with CS50 video lectures and Khan Academy
Also interested in resources for people mentoring folks learning CS/software eng -- that's the position I'm in!
13 comments
[ 0.25 ms ] story [ 38.5 ms ] threadFor instance, a side interest in restoration and manipulation of images and TV shows got me into vapoursynth, which got me into Python and ML.
I'm very familiar with both resources -- the former is how I learned to code, and I actually took the second class in person at Berkeley. But I have a math background, and mostly don't have math trauma anymore
This is for a person with math trauma who dropped out in middle school. The goal is to get her comfortable with the ideas and methods of CS, at least enough that she'll eventually be ready to tackle deeper resources like those one day if she wants to. I think introducing those at this stage would be overwhelming and disheartening.
I do like those resources for folks with more traditional backgrounds and preparation though
Good news: most software engineer not taking derivative or vector calculation like full calculus or linear algebra taught in CS program.
but you need ability to reason about basic maths if your program has any computation at all.
khan academy is good for the math. dont really need much more.
The big advice is to eventually start uploading your code to GitHub, so you can get your first entry-level job and start getting real-world experience. (Which is also educational, and beefs up your resume.) You can even do that with your final project for CS50.
The other general advice I always got was to learn one language really well. (Which gives you a sense of how far a language can stretch.) So I was also going to recommend the "Head First" books, which have lots of pictures with funny captions while giving a nice succinct summary of how a language works (with exercises).
- chatgpt plus.
- curiosity.
there’s never been a better time to learn than now!
www.edx.org/course/introduction-to-computer-science-and-programming-7
For the Math side, I do recommend: https://schoolyourself.org
Hope that helps
Like what? Which youtuber? Which channel? The blacklist is so vague that I think helpers here need more examples to narrow down the scope.
Also which portion of software engineering? There are absolutely somewhere do not require any math, but that means ChatGPT is also invading in those labor intense areas because everyone can do it.
And it does seem that programming and some actionable amount of CS can be learned in some months. Maybe the same is true for lawyering and medical practice but I doubt it
Anyway, I find this attitude mostly to be condescending and pointless gatekeeping. It turns out that a CS degree doesn't imply that someone is a strong problem solver, architect, communicator, leader or has deep technical skills, as a college dropout who barely graduated from high school who has now mentored lots of folks with CS degrees
But in software we work in teams, and most lines of code get checked over. Most companies expect to be hiring juniors, who, even if they have 4 years undergrad, still have no idea how actually to build software in practice. It's a team effort.
And frankly, at most places, the CS has only a minor bit of overlap with the day to day. I spend more time with juniors flailing trying to understand how Kong and Docker relate than I do with people writing O(N^2) algorithms. Tech has infinite minutia, has endless tech-specific problems we run into. We don't have to train people to be able to take care of anything, to be able to stand alone: we just need to support & guide people who are set up to learn & explore. There's so much twiddling bits until the things start working as desired that experts and novices both have to go through, and just pounding into people's head the idea that it's a journey, that you have to keep going, that you need to look for data (and showing them new ways to read data out) counts more than background, in my view.
It's worth noting that while doctors and lawyers have a long amount of training expected, it's possible to become a registered nurse or any of a variety of paralegal roles in under a year. Unlike these professions, we rarely expect devs to emerge into the professional world fully formed & capable of autonomously leading.