4 ms·
It's possible to learn most things through self-study. But the vast majority of people will only learn the parts that they find fun and interesting. They gener
by learc83 7y ago
It's possible to learn most things through self-study. But the vast majority of people will only learn the parts that they find fun and interesting.
They generally won't wrestle with the tough sections in a systemic fashion, the way you are forced to in a decent CS program.
For most people (even most professional developers) the only practical way to gain the equivalent knowledge you'd get with a CS degree, is by getting a CS degree.
I worked for years as a self taught professional developer before going back btw, and I've hired/interviewed many boot camp graduates, self taught programmers, and degree holders.
- ssully 7y agoLike whatshisface said above, quality self-study is rare. As you point out, people will learn what is fun/interesting, but I will also add that they will just learn what they need to get whatever job done. I have a friend who does webdev (mostly Wordpress, some Drupal) who did not have go through a CS program, though he took a few web dev classes in college. He goes good work, but he has a very loose grasp on fundamentals. He showed me a side project he was doing (a web based clicker game) and after looking at the code, I suggested he try adding some classes to reduce his code reuse. After explaining the basics (and some quick research on how classes work in Javascript), it kind of blew his mind. He never used classes before in his code because he just had no reference point.
- leowoo91 7y agoI agree on difficulty of self study by remembering my student days, simply I was asking the lecturer about why we have to study some of uninteresting CS topics. They were quite boring but really got their benefit in the long run.
- mattmanser 7y agoWe've all seen the utter messes that recent CS graduates have made with classes, unnecessary inheritance and over complicating problems, while being unable to do fundamentally basic logic, you must know the opposite problem is equally true. CS majors who cannot program applying academic theory without understanding. I'm old enough to remember graduates rolling their own sorting algos, or building classes 6 levels of inheritance deep. While simultaneously creating massive if/else nesting, with tons of duplicated code, unable to understand how to use basic ideas like functions and recursion, even though I'm sure they probably had a whole one lecture on the subject, mixed in with whole modules on pointless compiler lectures. Because that's what their CS degree taught them. How both CS graduates and non-graduates really learn is by seeing what other programmers do in the industry, or by making their own mistakes.
- eloff 7y agoNo, you don't need a degree. All you need is a resolution to learn the things that you're missing. I covered C++ in all its hairy glory, assembly, SIMD, data structures and algorithms (implementing them, not just using them) and concurrent and lock free algorithms and data structures. Some of the data structures I created perform better than anything in the published literature - but I couldn't be bothered to write papers. I might do them as an in depth blog post one day. I went way beyond what any CS grad does, and it cost me nothing in money and less time than a CS degree. If you're motivated you can beat a university CS education - it's actually really not that high a bar. I agree with you that most people won't do that. I was home schooled so I have a different attitude about learning than most people - and that's made all the difference. But is fundamentally a problem of motivation and goals, you don't need university for either.
- UncleMeat 7y ago> some of the data structures I created perform better than anything in the published literature - but I couldn't be bothered to write papers. You can probably imagine why many people wouldn't believe you. "My work is amazing but I am too lazy to publish it" is a peak stereotype for self-educated people. My prior on this being ignorance rather than genius is super high. And if it is true that you are a once in a generation genius who could outpace the research community then your experience is completely useless for others, given that you'd be so much smarter than a typical person who is doing self-education and trying to get a job.
- eloff 7y agoIt's not really that hard. For example I made a queue that outperforms the lynx queue. My fundamental instinct after reading that paper was that there's no way faults out perform bounds checks in a modern, speculating out of order CPU. I ran some tests and yes my instinct is correct. Maybe the result wouldn't hold under peer review for some reason, I just tested a few more ideas / criticisms with a colleague and moved on. I don't personally benefit from trying to publish the result and I have enough demands on my time. I'm not a genius, unless you count an online IQ test I took in my early twenties, but I'm deeply skeptical of those. It's true I'm well above average though, so perhaps my experiences don't generalize. I don't believe that though. I still think it's motivation and goals that count.