5 ms·
Is there something from a CS program that can't be learned from studying half a dozen books (or maybe a couple more)? Because that's what "self-taught" means,
by hnfong 3y ago
Is there something from a CS program that can't be learned from studying half a dozen books (or maybe a couple more)?
Because that's what "self-taught" means, and unless you can identify the things specifically that can't be practically learned by a determined person without going through a 4 year CS program, you're basically making things up to retrofit to your bias.
I don't know why so many people seem to believe that foundational CS knowledge can only be gained through doing a CS degree. The Internet was built by "computer people", and computer related resources were among the first things to be highly available and easily found on the Internet.
Maybe what you claim are true in a "literal" sense but I doubt it's very useful. Basically what you're saying is that assuming a person's that did not have a CS degree has a CS skill level X, then if they spent 4 more years studying CS they would presumably have a skill level > X. TBH at the highest levels I'm not sure whether this even holds, since once you get to a certain point, the depth of your knowledge and skill has to be complemented with some breadth as well. Often interdisciplinary knowledge brings new insights.
- peterfirefly 3y ago> Is there something from a CS program that can't be learned from studying half a dozen books (or maybe a couple more)? Yes ;) -- you can't teach "Stanford", "MIT", or "Harvard".
- screye 3y agoIsn't this sort of true though ? Not just the prestige, but the really strong networks you build. It helps you be 'I know a guy who knows a guy' distance from VCs, experts and hiring managers at top labs. A lot of my close friends went here, and they're able to catch up over phone with people who leave my linkedin requests on 'pending', and this is with folks who've achieved exactly the same as me at the same age. It is a force multiplier beyond comprehension.
- ipaddr 3y agoIf your purpose is creating a strong network, becoming a CEO and leveraging relationships later in life you don't go to those schools for computer science. What a waste of an opportunity. Go into business and meet important people. Or go into the arts so you have time to join social clubs. Going to those places to get a VC to email you more easily is better achieved by getting into an yc or some other incubator.
- busterarm 3y agoAlso, given what I've seen in this business, you'll have much better luck if you're a rich kid from NOVA who went to TJ.
- wonnage 3y agoIf we’re using “determined person” as the bar, then someone who commits 4-6 years paying tuition to get a BA or MS CS certainly seems more determined than a self taught person who spent maybe 3 months at a boot camp? Not saying that it’s fair, college costs too much in the US, and employers overindex on good schools. but I don’t get the argument that a self taught person should be treated equally hiring-wise
- hnfong 3y agoThe original context was "advice for young programmers", and although I don't think getting a CS degree is top of the priority list, it's at least a important and good thing to have. But this: > I don’t get the argument that a self taught person should be treated equally hiring-wise .. this is a totally different question. If two candidates performed at the same level in interviews/tests/whatever, and one of them has a CS degree while the other does not, IMHO the proper interpretation is that, assuming that their performance scores in the hiring process reflects candidates' actual abilities, is that the candidate without the CS degree is a better learner (of CS related topics). Put it another way, if a person who only spent a couple months in boot camp performs on a similar level as a CS graduate in interviews, it really means the former learns at a terrifying speed, and has huge potential. It also helps that many people like you would prefer to pass on the candidate without the formal qualifications, so there's even less competition for the candidate even though they at least have the same level of technical ability. This line of reasoning depends heavily on whether your interview process can actually gauge the technical ability of the candidates. If it can't, _then_ assuming the one with a CS degree has better skills is more reasonable. But at that point, you might want to fix your hiring processes instead of arguing this point.
- wonnage 3y agoI don’t think you can conclude anything other than the candidate passed your interview.
- screye 3y agoI'm glad you asked me. I happen to have self-learned undergrad level CS myself before moving on to do an ML focused masters. There were a bunch of challenges I had self-learning that were made so much easier during my masters. For one, self-learning just damn hard. Staying motivated to put in self-guided 8+hours everyday without natural peers, external structure and good external evaluation is just hard. You can sustain it for spurts, like 1 summer or in my case 1 whole year, but it erodes your mental health. It is never clear when a topic is especially important. I can't go to office hours to clarify certain doubts. I can't take on especially daunting tasks that I could with a group of peers together. Worst is that env setups themselves lead to you getting stuck doing accessory work, instead of focusing on the main topic you do want to learn. Honestly, finding top quality coursework (MIT OCW is gold), assignments and notes was trivial. It was everything else that was really hard. My self-learning tendencies didn't magically go away when I started my masters. I still leveraged all of them and I still do. But, it did solve a lot of my the challenges that came with being self-guided.
- tomjakubowski 3y ago> For one, self-learning just damn hard. Staying motivated to put in self-guided 8+hours everyday without natural peers, external structure and good external evaluation is just hard. You can sustain it for spurts, like 1 summer or in my case 1 whole year, but it erodes your mental health. Learning for learning's sake, or because you want to get a job as a dev: that I can see being a grind, with motivation being difficult to find. But if you have a idea for a product, and you want to make it concrete - the motivation is easy. I think most of the self-taught developers I know (myself included) started that way: they wanted to make something, and so they learned how to make software on the fly, while building their thing.
- mcguire 3y agoWell, let's see. UT Austin's degree requirements are https://www.cs.utexas.edu/sites/default/files/images/BS%20Checklist.pdf https://www.cs.utexas.edu/sites/default/files/images/BS%20Ch... and course descriptions are https://catalog.utexas.edu/general-information/coursesatoz/c-s/ https://catalog.utexas.edu/general-information/coursesatoz/c... That's about 16 required classes including Linear Alg., Statistics, A Child's First Programming Class, Data Structures, Discrete Math, Algorithms, Architecture, Operating Systems, plus another 8 of your own favorite upper division electives (CS 340 and above).#,## Then there's the question of what you mean by "studying". Just reading the books isn't really going to work. That's 50 semester hours---weekly class wall-clock time---and the ol' rule of thumb was 3 hours studying per hour of class time###, for 15 weeks or 3000 hours. But you might be able to do it in less. So, it's doable, certainly. A formal degree program has two advantages: 1. Having somebody to advise you on what's important and what's not. Not all of the chapters of SICP are equally meaningful, and having someone who already knows this shit and can say, "pay attention to this chapter, it's important," or "skip those exercises, they're not worth it," or even "forget that section, it's outdated; here's a paper" is quite useful. 2. Feedback. Even if you have the answers to the exercises, having someone to look at your crappy program or broken proof#### and tell you "you are missing this, try that instead" will speed up understanding considerably. And that's aside from answering questions and making a second pass through some material when you're sitting there staring like you've been hit with a captive bolt gun. It's significantly more efficient to get to understanding than working on it yourself. And then there's the requirements for things that you would not, yourself, choose: Spanish? !@$&%){ Calculus? Those damn writing requirements? Ethics and leadership? You touch on this yourself: many of the self-taught people I've seen have been depth heavy with little breadth. Which brings me to another point. Those computer people who built the internet typically already had degrees in physics, math, EE, or something else. And, they also tend to have that depth to breadth problem. (Then there was the afternoon I spent explaining to a former Aerospace Engineer (and quite good programmer) why string = string + character was so slow. And why it wasn't slow on that other implementation.) # This has actually been dumbed down since I went through in 1986-1990; it used to also include a full class on formal logic, automata theory, and basic electronics. So, hmph. But then I didn't take physics, chemistry, or biology, so yay. ## Stay away from CS 340. It sounds like fun, but it seems to be taught by Warren Hunt... ### Hahahahaha, wheeze... Ah, weekend nights in the computer lab... #### They're the same thing, remember? :-)*