I fell in love with programming after I started working, and have spent the last 7 years automating everything I can in my job. I'm confident in my ability to solve problems, but I'm missing a solid understanding of the fundamentals.
I already have a BS in Materials Engineering, and I have mixed feelings about returning to university. Tuition has doubled since I graduated, and I'm perfectly capable of teaching myself. The authors of teachyourselfcs.com have some strong opinions on CS masters degrees, though I would consider it if I found a topic that really called out to me AFTER I had built those fundamentals.
I have plenty of savings, but I'm worried that my effort will be wasted if it doesn't come with an exclusive piece of paper at the end. Will it be an obstacle, or am I worried over nothing?
Alternately go to the Recurse Center. They exist for people like you and make their money by helping you get a job afterwards.
Or you could "just" learn in public and chronicle it. Make a Twitch channel or livestream on YouTube. Do enough that people you don't know personally will vouch for you for a FAANG interview. Do three months of Leetcode and go to a few meetups and someone will do that.
I'm not sure the diploma is a huge deal, as long as you have some industry experience (sounds like you do) and can demonstrate your skills. Having some references who can vouch for you is good to have, too.
I'm currently trying to learn all of this and wish I had completed my CS degree since you have peers going through the same thing, and a professor for office hours. I find it a little difficult to get through on my own, but I hope to get far enough to participate in PL.
By all means take courses. But before you quit to just take time off and self educate, read the long threads on here about what it is really like out there in tech hiring.
Be prepared not only to be good at programming, but great at tech interviewing which is not the same.
For anyone who wants to learn how to draw, check out drawabox: https://www.drawabox.com. The guy started out just wanted to share the basics and now I think he makes a living through that site.
EDIT: I should also add that I know drawabox is off topic, but it is IMO a great example of where education might be going. Carefully constructed resources and advice for self-motivated learners, and a patreon to support it. The people at teachyourselfcs.com can learn from this site.
While it is true that programs are cash cows and there is both potential debt and opportunity cost, you can learn a lot if you pick the right courses, such as well-taught graduate systems courses with a serious project component.
I have often wished that software I've seen, both commercial and open source, had been written by people who had a better understanding of computer systems, especially operating systems, databases, distributed systems, etc..
It's all through EdX, so still a cash cow for them, but reasonable for the student.
Also helps with the kind of decision paralysis and tendency to wander off course I’ve often experienced when doing the aggregating myself.
This syllabus has been instrumental in keeping me focused over the course of a year+
Computer engineering on the other hand... much more practical ;)
Knowing what something is isn't science, it's just being educated. Figuring out a new type of semiconductor or new sorting algorithm is science, and even that sometimes isn't. Something that I threw together one night that hasn't been peer reviewed isn't science, it's just engineering.
Obligatory SMBC: https://www.smbc-comics.com/comic/2011-02-17
You can learn a lot in a well-taught graduate systems course with a serious project component.
The website has been blocked as per order of Ministry of Electronics and Information Technology under IT Act, 2000.
Ask HN: Thoughts on teachyourselfcs.com? - https://news.ycombinator.com/item?id=23731364 - July 2020 (1 comment)
Teach Yourself Computer Science - https://news.ycombinator.com/item?id=23588896 - June 2020 (265 comments)
Teach Yourself CS Updated - https://news.ycombinator.com/item?id=23054988 - May 2020 (1 comment)
Teach Yourself Computer Science (2020 update) - https://news.ycombinator.com/item?id=23045295 - May 2020 (1 comment)
Teach Yourself Computer Science - https://news.ycombinator.com/item?id=17581589 - July 2018 (81 comments)
Teach yourself computer science - https://news.ycombinator.com/item?id=17332944 - June 2018 (1 comment)
Teach Yourself Computer Science - https://news.ycombinator.com/item?id=13862284 - March 2017 (237 comments)
"Don’t be a boilerplate programmer. Instead, build tools for users and other programmers. Take historical note of textile and steel industries: do you want to build machines and tools, or do you want to operate those machines?"
gReaT resource.
I just wanted to say this is exactly the kind of welcoming, positive resource that made the software industry feel so welcoming when I came back to it after a decade long hiatus. Its not perfect but it really seems like its never been so easy to find the resources you need to become not just a proficient developer but a fully engaged software engineer.
I'll be forwarding this to all my past, present and future graduates. Thank you for posting and for all the work that went into assembling this. :^)
Also if anyone has any other good resources for helping to shape new minds in the industry and make responsible / capable engineers please let me know!