Hacker News new | past | comments | ask | show | jobs | submit login
Online courses vs. colleges for software engineering (raahul.me)
212 points by cplat 25 days ago | hide | past | web | favorite | 165 comments

My friend dropped out of college. My girlfriend is in college. I was talking about how she has a few years left and he starts shaking his head. "I just don't get it. So long and for what? To get a job?"

When he dropped out of engineering school he went to manage a restaurant. Made good money. Then started to build a house. Quit that too. He almost had occupancy on it and said, "I'm done. I'm out."

That's also what college is about. If you come to me looking for a job and didn't go to college, why? Did you drop out? Why? Do you not think learning is important? Do you not understand sticking it out until you have accomplished the goal?

Do you give up before you are through?

Not only that, but of course, I meet folks all the time who think "you don't need a degree to be a programmer." Sure. You don't need a degree to put Ikea furniture together either. I don't need programmers. I write programs to write programs. I need folks who know how to think... for themselves and learn and go out and find knowledge they need to solve problems and then solve the problems.

Until they are done solving the problem.

Not until they've given up.

No, I don't give up when the going gets tough. That's not why I dropped out.

I dropped out because it simply was not feasible to go any farther: I could not juggle full-time undergraduate pure math at Berkeley while working multiple low wage jobs in the SF Bay Area plus all the other responsibilities and commitments I had accumulated at 27, along with the stress of being able to afford my next meal, let alone rent.

I failed math thru high school. Barely graduated. Worked in grocery stores thru my 20s. On a whim I bought myself a trig book and self taught to calculus before deciding to go back.

After dropping out I taught myself to code. Night after night I learned SQL, built shit in Python and node and tinkered with Heroku and AWS and Docker while trying to fill gaps in my CS knowledge by reading SICP and the algorithm design manual.

The job hunt process was pretty brutal and lasted about a year and a half. Rejection after rejection after rejection. Take home projects to work on and technical interviews to study for after work when I was exhausted from super demanding physical jobs that time and time again wouldn't pan out

Finally I got hired into a remote position at a great company, and left the bay for a place where life is slower, cheaper, and less crazy making. Now I'm going back to school on a part time basis at a local university.

There are so many stages between where I was a few years ago and where I am now where I could have given up, and where I think a lot of folks do. You don't really read those stories in manic Medium articles about learn to code success stories, how one guy (with a trust fund and a credit card and a network of ivy league grad friends) learned to code and got offers from every FAANG. I don't blame the ones who give up.

And I think if you have access to financial resources, and have friends who have them too, it's also much more straightforward, or at least less frustrating and painful, to finish school, and get a job that will pay you fairly.

But otherwise it's a tough road to walk, one that's physically and emotionally exhausting, and I suspect the level of commitment involved to walk it isn't too different from that needed to graduate with a degree. I wouldn't know tho -- that's not me (yet)

Dropping out of college wasn't quitting for you, it was simply a reality of life. I also was not able to get my degree at first -- it took me 22 years of working my ass off to finish my BSCS, and a few more years to finish my "starter career" in the military, get my MS, and get a job in software engineering like I always wanted.

Kudos for finding your own path. Your drive and determination will take you far in life, much farther than if you had just went with the flow, went to college, and followed the normal script.

Thank you for sharing!

I've been writing code since I was 10. Everything I learned about software was knowledge I went out and learned on my own time, through my drive to become a better and better engineer.

In the middle of my senior year I got a job at a startup that demanded so much time I felt it was better to pause college, and the hard work I've done since has paid off tremendously. I am going back to school, but there is nothing I regret about leaving initially, there is nothing I am learning that I didn't already study on my own time.

For every story about engineers who dropped out and got a menial job and had no ambition to become a better engineer, there are stories of engineers who had that ambition from the start and the degree became a nuisance. You shouldn't hold it against them until you know why they chose the path they did

I believe the poster you're replying to addressed this point:

> If you come to me looking for a job and didn't go to college, why? Did you drop out? Why?

You, clearly, dropped out because you had an amazing opportunity that you jumped on, not because you decided you were "done with it" and aren't capable of seeing things through until they're done.

I think the important question is "why?" -- for basically any career decision!

> If you come to me looking for a job and didn't go to college, why?

There is an obvious and common answer to this: college is expensive, both directly and in opportunity cost of not working. It's an expense that few people can easily afford without significant family support or loans.

Filtering by college degrees is filtering by family wealth more than anything else (or otherwise someone's willingness to get into debt).

> Filtering by college degrees is filtering by family wealth more than anything else

I assume you have the US in mind? This is less true in the many developed countries where education is free and/or programs exist to cover living expenses during studies.

This is true in theory, but I live in a city where tuition to a Top 15 college is $400 per semester, almost nothing.

Yet, people who need to cover their own living expenses have a far smaller success rate, need to drop out more often or need to pause studies to work.

Programs to cover these living expenses exist, but they are limited, and not everyone who is not eligible for these can easily cover all expenses.

This still sounds US related? E.g. many European states will give you a no-questions-asked loan to cover both (reasonable) tuition fees and your living expenses.

When access to education is considered an actual right, living expenses tend to be included in the conversation (as you just pointed out). Unlike merely incidentally affordable education.

Even with education loans, some people can't afford it, because they have to support the family financially now and you lose that opportunity when you're at university.

We've gone from discussing the original point ("Filtering by college degrees is filtering by family wealth more than anything else" is a US centric view: yes or no?) to discussing the efficacy of state bursaries for college education. It's not an inconsequential topic, but it's not the original point anymore.

I don't think the posted is making any discussion of efficacy here, but is simply stating that there are people (non-US) who have to make the economic choice not to attend school, so filtering by degree even outside of the US is problematic.

Unless there is convincing data otherwise it would still be a filter for wealth. If a college degree provides opportunity then the wealthy will arrange for their children to have college degrees.

As an unrelated observation, the effect known as Berkson's Paradox would probably trigger along the way which is an interesting and little-discussed factor in this sort of thing. Two factors for getting in to college being wealth/connections and intelligence/ability.

Link for the lazy: https://en.wikipedia.org/wiki/Berkson%27s_paradox

> Unless there is convincing data otherwise it would still be a filter for wealth. If a college degree provides opportunity then the wealthy will arrange for their children to have college degrees.

As a counterexample: Dutch universities can’t select for students (for most studies), and annual fees are ~€2k annually (regulated). There will be some bias towards wealthier backgrounds that are more able to invest that money and time, but compared to the US/UK systems I expect it is minimal.

This is not unique, I think systems in the Nordics and Germany similar.

In Australia, our entry to universities is dependent largely on a grade resulting from our schooling. The grade is based on two parts: in school assignments/tests and a large end of school exam block. The thing is that the assignment/test part scales based on how well the average student from your school/class went on the final exam.

Wealthy students get the best grades since their parents send them to expensive schools designed to maximise this system. They then get into the "best" universities.

> Dutch universities can’t select for students

What do the Dutch do if there are 10k spots available in a given university and 20k people apply?

Unlikely that this kind of growth suddenly happens. Growth of +\- 20% can usually be handled (eg booking a larger room for the lectures). So studies can usually grow their teaching base as needed.

Exceptions happen: eg the popularity of CSI lead to a huge boom in people wanting to study forensic sciences. IIRC they were allowed to limit the seats for those studies back in the day.

Similarly, dentistry and doctors have a fixed amount of seats. They have a lottery that is biased based on your high school grades.

Overall I think this system has the better outcomes ‘on average’, but that the true top students are not challenged as much as they would be in a more selective system such as the US/UK

They would probably have their government fund building more univiersities and training / encouraging more people to become professors?

Just like that?

I didn't know that the Dutch had unlimited money. Weird that the portion of the population with degrees (44%) is comparable to the US (46%).

There are human beings in developing countries, and the problems with filtering by degree are exactly the same or worse. Family wealth, health and privilege dictate whether you even get the chance to afford the price and the opportunity cost of college.

My family could afford neither, and I don’t know what I would do if it weren’t possible to work in my favorite field without a god forsaken degree.

> Filtering by college degrees is filtering by family wealth more than anything else

I'm not sure it's wealth as much as filtering by situation. My family was not and still isn't wealthy. Quite the opposite in fact. I was fortunate enough to be born near a local college so I could live with my parents while going to school, and working 30 or so hours/week to pay tuition.

I definitely didn't have the 'college experience', but I graduated with almost no debt.

I got my first programming job when I was a sophomore in college through people I met there. A couple different companies asked me to put college on hold for a semester in order to work more, but I'm glad I said no. College is not the only path, especially today. But, it was the best path for me.

I dropped out of college. Then I wrote more than 20 books about computer science (and various other topics), maintained a programming language for about 10 years, and finished many other long-term projects against lots of resistance.

Sometimes it is a good idea to give up, sometimes it is not. It is not a function of the individual, but a function of the circumstances.

Dropping out of college can actually be a very smart decision. There's an opportunity cost to being in school, and if you can do what you want to do without it, better to not waste all that time and money and get maybe get the other benefits elsewhere.

I've hired dropouts who had a good reason, and were otherwise qualified. I'd do it again. But there are plenty of people who drop out because they can't make it, because we idolize founders who dropped out, etc. And it's not automatically an admirable thing if you don't know why you're dropping out.

Yes, success on your level, without college, is possible. However, your experience is very much an outlier. Someone that is internally motivated, has goals & direction (even if they change) will often find a way to a professional career. That is not the situation for a vast majority of students though. I think if someone gets to college and says, "I know what I want to do, and it doesn't require this", then there's no issue with getting out of there. Heck, you could always go back. Most students I see leaving college though have no direction and immediately enter low paying jobs with few better prospects on the horizon.

On the other hand, colleges do need to really rethink their education model. I fully believe in the value of a core or liberal arts education, it provided useful analytical & communication skills, but there needs to be a significant pivot towards more concrete marketable skills. At the community college level, there is an excellent degree type for this: The Associates of Applied Science, or AAS. It has some, but reduced humanities requirements and focuses much more on career skills of the chosen area, all of which have specific, immediately accessible job opportunities. The really unfortunate part of this degree, however, is that is very hard to build upon later at a 4 year school to finish a bachelors if you so choose: the credits either don't transfer or transfer as electives, not requirements towards a degree. Again, a major pivot is needed for traditional 4 year schools.

Marketable skills are easy to learn, it's the thinking behind the learning that is tough to get. HOW to think is much more important. And I'm not at all sure that that can be taught.

'Common sense ain't so common' is a trite aphorism, but very true.

I think "how to think" can be taught at least a little bit. In mathematics you learn a very formalized method of finding (usually) the single correct answer. In the humanities, with textual analysis, you learn a different type. But it does take practice, and adequate instructors. And of course the average person will never come to it quite as well as someone with the natural aptitude. I occasionally teach a course in informal logic, which is a sort of cross section between rhetoric and logic as applied to both argument construction, deconstruction, & analysis. I definitely see students progress along the way, starting with clumsy stumbling and proceeding to address new novel problems with decent aptitude.

Definitely can vouch anecdotally, that dropping out of college, is a weak signal, after all the solid content you have published[0].

I read your Practical Compiler Construction combined with Elements of computing systems [2] and that was a great combo!

[0] https://www.t3x.org/index.html

[1] https://www.t3x.org/reload/index.html

[2] https://www.nand2tetris.org

My experience in undergrad was that more often than not people who dropped out did it because they didn't want to put the work into school. An acquaintance of mine told me he was dropping out because school was "too much work". I'm not saying that dropping out of college is a bad thing, but the reason why one drops out of college is telling.

I didn't give up, the school I was attending had completely crap computer science program. The networks class was a HTML/CSS and PHP website. The other schools in my area for computer science is better but way too competitive, as in, could only accept 100 students a year, a school of 20,000 people attending. The only way for me to get going in learning is to learn on my own based off of online courses, tutorials and projects. What I did on my own was better and more relevant compared to the school I was going. I'll show my dedication to completing a problem by the projects I've completed, certificates I've achieved and the online courses I took on my own time. If anything, that should say to a hiring manager that I took responsibility of my own career and went above and beyond, that's an employee you'd want imo.

Why leave college? Could not afford it, did not enjoy it, thought more could be accomplished outside of it, etc.

There are many reasons beyond just weak character for why someone would not go to college and it's not up to you as an employer to make that judgement call on someone's personality until you've dissected their real reasons for leaving.

This is something that takes a lot of time, way longer than an interview has to offer, so it's best to not make assumptions.

> Did you drop out? Why?

Did you not drop out? Why?

That's a genuine question I have of any interviewee. What was their thinking behind studying for 3–10 years at universities vs developing themselves through other avenues?

For someone with a master's degree, I'd like to witness their critical thought process. Their problem finding skills. Their ability to research outside their own field. Nothing would be a bigger red flag of mediocrity than someone who has spent several of their best years having gained no more than what mere vocational training would.

I never consider having a degree a "plus." It is only a plus if one has something to show for it.

If you think about it, formal education for many professions works a bit like a cast system.

It acts as a social filter preventing a large number of people from persuing a given profession that they otherwise could do just because their parents couldn't afford to rent a flat to their kid in another city for several years.

I don't think that there is any relation between the type of education that someone has (online vs formal) and a personal characteristic like perseverance.

There could be many people that could not afford formal education, learned online and are still perseverant. The two things are unrelated it just sounds like prejudgement.

I think there is some truth in both what you and GP are saying.

Speaking from personal experience, my team has hired college dropouts who have turned out to be some of the best learners and problem solvers we've got. I have also interviewed candidates who seemed to be under the impression that their Ivy League degree entitled them to the position despite having no experience working on "real-life" projects to speak of. Candidates should never be discounted on the basis of not having a college degree. If they've got a strong application, the interviewer should be able to determine the rest of these more qualitative things over the course of a conversation.

On the other hand, if done right, college can be a place where some very intense, sustained personal growth can take place at a level which cannot be rivaled by supplanting it with e.g., taking a series of online courses. Taking advantage of the resources around you (seeking mentorship, research experience, forming study groups with colleagues, doing co-ops, etc.) can help put you far ahead of a person who pursued a self-study route in the same period of time. I agree that it is unfortunate that college is financially unviable for a lot of people who have a lot of potential. However, I don't necessarily agree with the people who allege that college is nothing more than paying for a piece of paper so that you can get a job.

This only applies in places like the USA where college is expensive. In places where is not expensive, the barriers are much lower. Perseverance is important and can be measured, in part, by how people go about completing long term projects like getting a degree.

It's not just the price of the tuition. For example, in Europe a lot of the tuition is very cheap, but if you don't live on the same city as the college is, many can't afford to pay to have a child to live for years in another city, plus pay the frequent trips home, and all the other expenses that come with it.

> I don't need programmers.

But lots of people do need programmers.

These "is college necessary" posts suffer the same problem as "why are programmers making 200K right out of school" posts. The job title covers everything from hacking out WordPress plugins, to leading a team building an MVP, to building large distributes systems, to designing the software that goes into medical devices and autonomous vehicles.

Some programmers really do need a CS degree with at least a few years of math and a couple years of physics. Sometimes programmers need to know a minimal amount of PHP and JavaScript. The job title captures a huge range of actual jobs.

> Sometimes programmers need to know a minimal amount of PHP and JavaScript

I'd say that covers the majority of programming jobs. The problem, though, is that the are a vast number of people who can meet that bar and salaries are bound to collapse to reflect that at some point. What happens to them then?

> salaries are bound to collapse to reflect that at some point.

I don't don't, I've been hearing people make this claim for a decade now. Hasn't happened yet.

Quite the opposite, people keep saying this, yet salaries continue to skyrocket.

Maybe basic programming skills are just really valuable, and when people learn them, they become able to do much more productive work?

I don't know about that. I think salaries for web developers without some differentiating skill set have collapsed, or were never really that high to begin with. The average salary coming out of my undergrad's CS dept is about $60K.

Programming salaries are now very bimodal.

"I don't need programmers. I write programs to write programs."

I call BS. I'd be impressed if you could even write metaprogram to answer your own interview questions.

I remember reading about a guy who wrote a neural network to solve FizzBuzz in an interview which is as close to metaprogramming as it gets, I think.

He didn't get the job though.

This is actually a very fun tensorflow tutorial. Thanks for linking to it!

Their loss. Think of all the programmers he could have replaced!

Not all people are like your friend, not all colleges are like your girlfriends, and most importantly not all career trajectories benefit highly from a college degree. My wife for example, her degree gets her a poverty level salary in the states, whereas in Switzerland, Germany, Sweden, she makes near 6 figures. Going to school for CS, and having to take all the other dumb shit that will never, ever help you in any real world CS job, is why the alternatives are coming to a rise.

Interesting - can you let us know what degree is that? I would think in general, it is the reverse.

My guess would be something related to teaching?

I guess this line of thinking might be reasonable when hiring young people, where college is still a recent memory.

I dropped out of college. There were a number of reasons, but really it just boiled down to the fact that I was not a mature adult at 20 years old. I was enjoying my life and my freedom living alone (arguably too much!). I don't regret any of it. I started learning to code about 3 years later and worked my way into doing it professionally.

At almost 40 now it feels absurd for me to be judged based on my 20 year old self. I know I'm biased here but, if anything I feel like the college you went to and the number of years attended say just as much about your level of privilege and rigidity of your upbringing than it does about your character.

I did one year of uni and found it to be too slow paced and overly pedantic about meaningless rubbish. I decided to just apply for a job since I already know programming pretty well and I got the job and things have been going pretty well ever since

Of course one can do this. On the other hand you'll be forced to learn stuff you'd have skipped otherwise.

Those contents can be an asset in your professional career and that alone justifies to study.

It's not necessary to study CS to become a programmer or even a good software developer but it can certainly help.

If I continued with uni I would have had to learn all the stuff I learned in the years of working full time as a developer.

I'm not convinced you learn any faster at uni than you do on the job. Uni seems like a good way to get started if you have nothing but if you have the chance to take a job that seems to always be the better option.

That sounds like a very different experience than the one I had with studying CS because it had not much to do with the things I learned and needed at work as a Software Dev.

It was about stuff like cryptography on a theoretical level and learning some assembler to understand the basics on a lower hardware level.

That's just two examples of things I'd maybe never have learned just by working at the company.

I didn't say it's faster but then I'm not a big fan of things that move too fast - as neuroscientists know learning works with restructuring the brain and that needs some time.

And I'm happy I didn't start this journey with university because then I might have quit. I learned to program before in a funny way just like you learn how to play with any toy. Think that might have helped to start studying and for me it was a good combination I think.

In the end it's your choice and you'll find your way - I can just say how my path looked like and what was good about studying for me - it doesn't have to be the same for you of course.

College/university is supposed to be about getting an education. For most people it isn't. It is about getting that piece of paper and its clear they learned next to nothing.

I take graduate degrees seriously, because people tend to take those seriously and focus on the education more than the paper at the end. I don't take 4 year degrees seriously at all. If all you've proven is that you can survive with minimal effort for four years before losing patience then you certainly have more potential than the lowest side of a bell curve, but you haven't proven you bring added value.

This doesn't make any sense. Just like you demoted the master's curriculum and all it's requirements to pass the classes on the way, you can say the same thing about the doctorate. You put in a few more years of minimal effort before losing patience to become a professor or having any kind of tenure.

There you go. You haven't proven you bring added value.

As someone who’s getting a Master’s at the moment, trust me, it’s just a marginally harder Bachelor’s degree, year 5 or 6. The main difference between it and Bachelor’s is that people are older on average.

I only have a 4 year degree myself, so perhaps I am giving graduate work greater esteem than my experience allows.

As one of my friends said about their teaching qualification, “P.E. teachers get the same PGCE as everybody else.” There are plenty of other degrees that don’t teach anything valuable and exist purely to provide ammunition in the argument “I should be paid more.” The average MBA student is not held in especially great esteem by their professors either.

Doing research is by all accounts difficult and draining to a ridiculous degree but if you did well in undergraduate coursework graduate coursework is more of the same.

Graduate degrees are pieces of paper too. Masters are shameless money grabs. Most doctorates will kick you out with a degree if you sit around long enough.

>Not only that, but of course, I meet folks all the time who think "you don't need a degree to be a programmer." Sure. You don't need a degree to put Ikea furniture together either. I don't need programmers. I write programs to write programs. I need folks who know how to think... for themselves and learn and go out and find knowledge they need to solve problems and then solve the problems.

I've found university to be somewhat of a bad predictor for whether people think for themselves. It is however from my experience a good predictor for following instructions and follow-through (which, as you mentioned, is not unimportant).

If I see somebody with no degree, but experience, he might also have follow-through though, and often more resolve to solve problems themselves.

I had a university education myself, and while I think it's not strictly necessary for programming, it does give you a good overview of related fields (mathematics, algorithms and maybe others) that often come in handy as part of solving a problem more elegantly or efficiently. And self-taught programmers often don't touch on these topics and have a big blind spot there.

College, for me, was never about becoming educated. I am in a constant state of becoming more educated. College was about getting a job. As soon as I got a job, I dropped out.

College for me was simply a means to earn a living. I am more interested in building my startup but the reality is that unless you have funding out of the gate or a well connected group who will fund you, then it is not realistic. I studied accounting simply because I knew it would be stable and consistent. Once I got my BA, I was out of there ASAP. Forget getting a masters degree, experience is more important once you have your foot in the door anyways.

I did drop out. Learning is important. College is not the only way to learn. I acquire the knowledge necessary to accomplish my goals.

I wouldn't hire; work with; or work for somebody who doesn't know how to manage the risk of Type I/II errors in their heuristic.

That signals to me "lazy thinker".

For folks who don't know what Type 1 and 2 errors mean:

> In statistical hypothesis testing a type I error is the rejection of a true null hypothesis (also known as a "false positive" finding or conclusion), while a type II error is the non-rejection of a false null hypothesis (also known as a "false negative" finding or conclusion). Much of statistical theory revolves around the minimization of one or both of these errors, though the complete elimination of either is treated as a statistical impossibility.


Could you elaborate? How can type I and type II error risks be managed?

The theory is ROC curves [1]. The practice requires that you play devil's advocate with yourself - figuring out ways to disconfirm your own beliefs.

I usually start with the question: 'What data would convince me that I am wrong?' If I can't answer that for myself - I know I have a problem.

[1] https://en.wikipedia.org/wiki/Receiver_operating_characteris...

The replies to this post are amazingly defensive. Did you not get the theme? WHY is the theme. You folks stating your specific case seem to have a "why", and a need to defend yourselves even though you weren't specifically attacked.

Relax, you have done well. You have a good "why". Now consider someone who doesn't have a good "why" and also doesn't have a college degree to at least prove they can complete something. It's not a perfect indicator, but it's an indicator.

Self-taught here. I dropped out of college because I was already making 6-figures and I just didn't feel like doing the school work any more.

I make top-tier money outside of SV, I get to go to all the cool conferences, company-paid international travel. Most of my vacations all the flights are free thanks to the miles.

I might finish school one day, but it's mostly for the piece of paper and 0% for the knowledge. if WGU had a linux-track I would consider that as the path of least-resistance.

I'm on the other side of that fence.

Went to college, did my best until proper graduation. Dug my way into FP and semi advanced topics at the time. No job because I'm not mainstream (and barely insterested by REST and similar).

On the other hand some gigs can accept barely educated juniors, train them for one thing, they get a cute career and raises along the years and by the time they get to my age they're comfy and set (potentially, not every life is bluesky and easy)

There's no clear better path. Even if you consider college academic education, yes we had good classes (DB normal forms, optimizing compilers, computer graphics etc) but we also spent half the time on obviously horrendous 2000s OOP that led the world at the time and will soon be forgotten. So it's not even great on that side too.

>> I need folks who know how to think... for themselves and learn and go out and find knowledge they need to solve problems and then solve the problems.

So, is going to college and earning a degree the only way to do that? In fact most of the college education is not designed with the idea of inculcating learning as a skill, in fact college may be a bit late for that skill and as a consequence/side-effect earn a degree.

Should we reject someone who still can give you the signals (thinking, persistence) one could be looking for, but hasn't attended or dropped out of college?

There could be more optimal ways to learn to think, and solve problems and being reasonable enough in not giving up. Going to college, incurring debt, doing things where the dead end is a degree is not optimal.

> If you come to me looking for a job and didn't go to college, why

How about "because it is really expensive, and not everyone is provided enough to pay for it, or take out the debt, and there are other ways of learning that stuff".

Person have to understand how college help in life

When person do not has clear target or reevaluate target when already in college, dropping is a kind of damage control

And it is ok to drop when you understand that it is a waste of time or effort

And we assume that college, profs and etc is good, which is not always true

I dropped out because I was interested in more advanced topics than the ones my 3rd world college offered, often times I ended up introducing new stuff to the class and lecturing and it just wasn't worth it for me. I had to work to pay for my studies

I didn’t drop out because the going got tough, I dropped out because I needed to make money and was finding I didn’t learn well in a typical classroom. I ended up working tech support and climbed my way up into a Dev role in under 2 years.

Alternatively: fail early and fail often.

Weird comment. You can get a college degree just for showing up.

Do you have a PhD, or did you give up? Do you have a high school degree, or did you give up? Do you still work at the first job you ever had, or did you give up?

Total agreement. College is largely about trading money for status. I have a comp sci degree from a good school, don't see what the big deal is, if I had to do it over again I would have skipped it and just hustled my way into a programming job at 18.

I wish my Computers and Society professor got the memo that you can get a degree just for showing up. Could have skipped that 20 page paper on software patents.

I basically just went to courses and put barely any hours outside classes and got my paper. That's what's meant by just showing up.

Dunno where you went to school (liberal arts college?) but most programs are NOT like that, my degree required 30+ hours a week on assignments outside of class.

I found the material and tests straightforward but you absolutely needed to put in significant time to complete the assignments.

Quite possibly one of the new crop of for-profit schools.

If it's an unaccredited school, then I sure I can see that.

You wouldn't have made through my program that way. Projects were half the grade in moat classes. And you definitely weren't doing those well enough to pass in barley any hours.

I'd already been working for years as a programmer before I went back as well.

> You can get a college degree just for showing up.

Highly depends on the college and major. My CS degree had a ton of out of class homework assignments and projects not to mention the need to study to pass the tests preventing you from coasting by. Add onto that the fact that at least 10 of my math and cs classes were bell curved based and Cs are the minimum passing grade so if you try to coast by, you will need to retake a bunch of classes or switch to an easier major as everyone else is working really hard to not be in the bottom (i had to retake 3 classes myself).

“I don't need programmers. I write programs to write programs.“

This statement seems deliberately obtuse.

The statement seemed anything but obtuse to me; to me it highlights one of the bigger problems that people who hire have, finding someone who is able to "meta up", someone who sees not just problems, but classes of problems and how to systematically classify problems and derive suitable systems that can solve those problems in a generic way. In other words, write programs to write programs (an obvious case of which is a compiler).

The real take away is that structured exercises and projects are both a great way to develop and display your abilities and being able to demonstrate these is more important than holding a credential within the tech industry.

The barrier to entry for most people to tech jobs isn't whether or not they can get interviews, it's whether or not they can pass the technical assessment that's become a standard part of the process. In other industries, GPA, school rank, highest degree earned are hard pre-reqs to inteviews, even for entry-level jobs. That isn't necessarily the case in tech.

I work in a field that falls under the "data science" umbrella and I take issue with a lot of online courses compared to traditional education because almost all of them overpromise and underdeliver and take advantage of naive students that don't know any better. I can't tell you how many applicants I've interviewed that list dozens of online certifications for this and that skill, but can't demonstrate any knowledge of it when asked or assessed.

Just my $0.02, but online tech courses and degrees are akin to the MBAs of a decade ago: exploitive, expensive, and often entirely unnecessary. I would still hold that a technical computer science degree from a 4-year university is worth it, however, for the benefit of being in a collaborative learning environment with peers (Note: That doesn't mean you have to go to Berkeley - I went to a top 50 state school and got the same education and job opportunities as all of my friends that went to top 10 schools, but I graduated with a positive net worth.)

(Disclaimer: I know there are always exceptions to everything. I have generally heard very good things about GT's courses - Udacity's I'm more skeptical of.)

I completely agree. Personally I think some form of online education/self-study hybrid type of system is the future of education simply due to efficiency of such systems. The reality is that there needs to be something more to actually be in the form of credentials. We need something that allows people to display their mastery of certain subjects similar to how accounts have their CPA or lawyers have their BAR exam.

I think that what most of them are missing are testing hard questions and projects without hand-holding. Many of the courses I have taken have been good, but they will just graze the surface of anything approaching harder mathematical questions on tests and projects are too "fill in the blank (function)" rather than requiring critical thinking. I took one Udacity class and I certainly felt like I had been cheated, more cutesy animations and polished videos than real content.

I would use them for an introduction, but would definitely pick up a well recommended textbook after, or do a medium sized personal project after. Although the Coursera Cryptography class I took was just as good as my University one so I guess it really depends.

[OP here] I agree with you. Even if GT's courses, the course material is pretty standard and doesn't actually drastically increase your understanding. It's the assignments that give you the most value, which are similar to Udacity Nanodegree's projects.

Berkeley is a state school.

You're right! I didn't want to delve into it too deeply, but for me and my friends who weren't CA residents the tuition was extremely steep, even after certain scholarships/aid. I think people in the US don't consider their state schools enough when looking into getting a college education. Again, my public school's CS department was ranked top 50, which certainly isn't the worse in the US, but it isn't prestigious either. In the end, the prestige didn't really matter in terms of getting job opportunities compared to my friends that went to much higher ranked schools.

I think it really depends on what you're trying to do and learn.

Lots of folks who have taken my Flask course[0] said they learned more about web app development in 10 hours of self paced videos than they did in 4 years of university. Lots of them felt like they finished the course really knowing how to build something, and many of them have gotten hired for work shortly after.

But the course doesn't touch algorithms or any theory around computer science. It's just 10 hours of exposure to building a real SAAS app in stages.

I personally believe experience trumps almost everything and courses can be very good for people who consider themselves self guided learners, because you always have the power to research the theory while treating it as something that's on a need to know basis. Taking a course on a specific subject lets you focus your time on the exact thing you're trying to accomplish and some course instructors also provide free support (I do), so you always have an out or 2nd set of eyes to help get an answer for things you can't figure out alone.

I never went to college but I do sometimes regret missing out on the social / networking experience, but I have no regrets about taking a self guided approach to web development for the last 20 years and I'm happy with how things turned out.

[1]: https://buildasaasappwithflask.com/

Echoing this sentiment of:

Motivated real world exposure > real world exposure > motivated self education > traditional education

As someone who mindlessly "self taught" through tutorials, then did half a bootcamp, then did a MSCS-- none of those things were anywhere near as transformational for me as a dev than my first year as a software engineer.

But of course, building AlgoDaily has probably taught me even more than the many years of work at this point, purely because there's been a strong impetus.

The "need to know" basis is huge. I think with a strong enough "need to know", any method works.

Been looking for something like your course for a while now.

Keep up the good work!

as someone who did not attend college, or all of highschool, but has worked in an engineering role in tech (electrical, electronics, firmware, systems, saas and mobile) for almost 20y, i agree with the thrust of this comment.

i will say that there is an interesting social component on-the-job, especially early on in a (my) career. more than once i had a colleague who would zero in on a gap in theory (almost always algorithms) and talk down to me. in one case i had someone jab their finger at my face and yell (yes...raised, angry voice in a large cube farm environment) "I got my masters from MIT and you dropped out of highschool". The fact that this person was, in the end, completely wrong is immaterial to my point. About a year post-conflict we were (and still are) great and supportive friends.

The issue boils down to a need to "prove yourself" to certain people when you lack an undergrad degree. If you bounce jobs, regardless of reason, the process starts all over again. Someone stepping into most of the environments I've worked in with a fresh BSCi in CS/EE/whatever have not been placed in the same position to justify their existence.

For me, it resulted in a multi-year personal issue of harshly judging engineers with degrees from well-known schools like Stanford, MIT, and so on. I would think to myself "why can't you do this? I dropped out of highschool, learned on my own while working crappy paying jobs as a teenager before getting a shot...mommy didnt send me to a fancy school...i worked my way up from the assembly line to the engineering team" and other such toxic inner monologues. Harsh judgements based on the fact that everyone has a different melange of life experience. Super unhelpful.

As time went on I realized that a papered engineer, especially one who was only a few years out of school couldn't possibly have covered all the things in their coursework...there is enough volume of knowledge it would take decades to learn it all in school...assuming that was all you had to study!

By now I have been around the block so many times that my lack of a degree is less of a barrier, outside of passing the resume-gatekeepers at larger tech orgs. It resulted in my career focus being in the startup-SMB sized orgs. Mostly people seem surprised I didn't go to college, maybe a little amused by the fact they took on a debt load to be sitting next to me.

I hear a lot of "damn, i could have saved so much money". My reply tends to be along the lines of "...yeah...but it took almost 10y for HR to stop trying to low-ball my pay based on my lack of a degree...so i think it may be closer to a draw than either of us realize".

Traditional universities have 3 advantages over online course providers like Udacity, Coursera and Khan Academy:

1. They act as a coach: The professor and your peers expect you to attend lectures. The assignment is due by 5pm on Wednesday. If your performance isn't satisfactory you will be dropped from the course.

2. They get better feedback about their teaching. If half the students can't do the assignment on a particular topic, the professor can schedule catch-up lessons. Watching a group of students struggle with a question can give valuable insights about how to teach that topic effectively.

3. They act as a high-quality filter: Only high-quality applicants will be admitted to the university course, while anyone can pay $10 and start doing a Coursera course. The university also offers the opportunity to become part of a valuable alumni network.

(Some online bootcamps like Lambda also have these advantages because they insist on strict online attendance and are willing to drop students who don't put in the effort)

The 2nd point really resonates with me. I was reading this book called “Ultralearning” and feedback was one of the biggest points mentioned there. People who get prompt feedback can immediately use it to learn from experience. People who don’t have to keep guessing of what they’re doing is right or wrong.

I agree as well. I've noticed that most of my learning simply consists of a series of "trial and error" repeated.

I think most of these points are mostly debatable and can easily be solved through technology. Yes, there are positives to traditional universities but there are almost major negatives. It is simply unrealistic to think the system of massive student loan debts will be sustainable going forward.

1. Online coaching can be provided through video conferencing or similar. An online course perhaps could have the added benefit of allowing students to experiment with a subject. If they need to be forced into staying on track then they're probably not interested in the subject to begin with. They could also come back to the course at a later time when they're more motivated.

2. Adaptive algorithms can solve this problem and do it in real time.

3. A well crafted examination/certification can do the same for less money. See the accounting industry's certified public accounting exams or the legal industry's BAR exams.

Ultimately though, I see a hybrid system being created. If you want to take the traditional class, you can, for a fee. If you can self-study then you do the online course and only pay a much smaller fee plus any supplemental services you buy. Overall everyone wins.

>3. A well crafted examination/certification can do the same for less money. See the accounting industry's certified public accounting exams or the legal industry's BAR exams.

Only four states allow you to take the BAR exam without going to law school (edit: and good luck getting a good job without the law degree). The CPA exam requires either a Bachelors degree or 120 college credits to be taken.

So, in other words, your examples are in fact showing the exact opposite of what you think they do.

You are misinterpreting what I am trying to convey. For CPA exam/BAR exam, the exams are used as a way to verify that you have some level of understanding on a subject. There are multiple parts to actually becoming a lawyer/CPA. The first part is passing the required exams. The second part is meeting all the requirements.

What we need is a way for people to verify their knowledge. Take the exam, if you pass you get the certificate or similar. I am not talking about some sort of full blown professional certificate for every single profession. CPA/BAR exam was just an example obviously.

Is your argument that testing as verification can’t work or that it doesn’t because of social factors?

Outside the US and possibly Canada you can become a qualified accountant by examination and work experience without ever getting a degree in most of the English speaking world.

If you’re saying credentialism exists I doubt many would disagree, but just because a bad system is in place doesn’t mean a good one is impossible.

My argument was that I don't like people giving false or partial facts as evidence for their argument. You're making the mistake of assuming that because I point out the flaws in someone's argument I must disagree with them.

Also peer pressure sometimes can be a good thing. It could help you overcome fear and discover your true potential

Learning complex subjects is often uncomfortable. For me, college was the start of becoming comfortable with feeling stupid while learning. You learn to learn. You learn what parts of learning are normal.

I started college in 2001 as a computer science student and didn’t “finish” for over 10 years because of job (sysadmin for university) and consulting opportunities (travel). I’m glad I finished because it’s behind me and I don’t need to think about it any more. I still have the common nightmare of not knowing where my final exam room is located.

Anyways, I am a big fan of online courses. In early 2000s I had learned and built many PHP sites and started with Rails. There were no classes/courses on PHP or rails!

Fast forward to early 2010s and I find myself watching Stanford’s iOS development courses. I leveraged the knowledge to become a successful mobile app developer consultant.

A few years ago I purchased a handful of online courses on React/Redux. With that knowledge I’ve built a successful Electron JS app available on app stores.

These successes are not because I’m smart. It’s because I have a high tolerance for pain and boredom. When I see a challenge I keep digging at it until it’s solved.

Protip: Watch lectures at 1.5X speed (2X if review). Anything slower and my attention becomes highly distractable.

It’s quite simple really. There are some careers where you can learn and advance far more on your own.

Software engineering is one of them. The amount of tutorials and videos available on the internet far surpasses any curriculum at school.

But on the other hand, anything that requires hands on training that you can’t get at the comfort of your house, like medical or scientific careers, those you probably need to go to a school for.

Further more, in terms of software engineering, I don’t think the school system can ever keep up with the fast pace of the tech world. It’s just a rigid system and too slow for anything fast changing, like the web/app development.

[OP here] You're right. I actually did my bachelors in Electronics and Telecommunications engineering, which can only be done in college because of the expensive equipment required to learn anything of value.

Interesting take. I am a graduate and former TA in OMSCS, and used to work at Udacity building Nanodegrees (worked on ML & AI mostly). My experience is from a different perspective than the article, but I appreciated the differences without disagreement.

What I found in my time in both environments is that Nanodegrees appeal more to students who don’t have access to traditional education (college is too expensive, or grad school requires an undergrad degree, etc.). That makes most MOOC students less experienced, less qualified, and higher risk (in the sense that they mostly don’t have the profile of successful college students). Udacity, et. al., then appear to have a very important role to play in satisfying the need for education unencumbered by academic gatekeeping.

But the _other_ constant undertone in the MOOC community is the “get-rich-quick” crowd who expects a Nanodegree to make them a 6-figure AI engineer in three months at 5 hours per week. The dirty secret is that we already have a fast-paced learning environment that can give you a good crash course on the required core skills to make you a useful apprentice: it’s called “college”. It’s arguable that the typical BS could be abbreviated a bit or focus a bit more on “job-ready” skills. But I think the time required for most people to get there is much closer to a 48-month BS than a 4-month Nanodegree.

The other dirty secret is that no one wants to hire you as a junior developer at SV rates if you don’t have experience and need a visa or want to work remotely in your low CoL hometown. Unless you already have strong qualifications, you’re fooling yourself if you think an ND or Udemy course is gonna help you break into Google as a fully remote worker.

> It’s arguable that the typical BS could be abbreviated a bit or focus a bit more on “job-ready” skills. But I think the time required for most people to get there is much closer to a 48-month BS than a 4-month Nanodegree.

A US Bachelor’s is not 48 months, at most 9 months a year is spent officially studying, the rest is holiday. That would be 36 months. If we pretend the average student treats it as seriously as a full time job, ignoring all research on how students spend their time, we can still cut that 36 months in half, because half of the average US Bachelor is general education with no professional impact. That’d be 18 months.

If we want to look at the real world for examples we can see the UK, where most Bachelor’s are three years, with the extensive breaks and holidays you have in the US, but two year, full time, non stop degrees exist, or at Lambda School, which takes nine months to turn people into software engineers. They also demand more and more consistent work than well over 90% of university courses.

> A US Bachelor’s is not 48 months, at most 9 months a year is spent officially studying, the rest is holiday.

I went to college year round as it was the only way to balance my work schedule. I was a minimal full time student during the typical semesters and took classes all summer.

> because half of the average US Bachelor is general education with no professional impact.

I disagree. The general education is probably what everyone should go to college to learn. Reading and writing (communication) is the basis for almost every single job a person may have. It's also a skill that lasts forever. When I was in undergrad I took random business courses for my electives. I still use and have built upon concepts I learned in economics, finance, and accounting.

> because half of the average US Bachelor is general education with no professional impact

People that talented and motivated about CS should take computer engineering instead; much fewer general education courses are usually required.

Aside from that, there are two obvious ways to turn the general education requirements to your professional advantage: 1) writing courses, since the average developer can't write or put together a logical worth a damn and a lot of writing is needed as they get more senior and 2) foreign language courses, which open up job opportunities if you take the time to achieve basic proficiency.

What is a CoL town?

“Cost of Living”. What I mean is that you may have to be willing to move to where the jobs are rather than expecting to find a local job if you’re chasing a big paycheck or a “hot” field.

I work in the realm of higher education analytics. My comments here pertain to undergraduate students:

For the vast majority of students, online courses are not a good vehicle for learning. Not because online courses are, in themselves, ineffective, but because success in them requires a much higher degree of internal motivation. Without the structure afforded by the traditional classroom experience, a very large number do not engage with the coursework, especially beyond the first week or two. We see a rapid drop off in activity & assignment completion.

This article is about learning, but the context seems to be about landing a job. Software jobs are all about who you know. People who know people get waved past all the red tape. The truer purpose of education is relationships not knowledge. This is why there are high school dropout senior engineers ordering burgers from CS grads. If you're in it for money, you're less likely to build relationships. This is why I'm genuinely concerned for all these people stampeding towards CS. It's gonna be ugly in 5-10 years IMO.

For a new hire, it's more about standing out of average: github projects and all that. At that level connections are same CS grads that can't help much with landing a job. 10 years down the road it's more about connections with people from past gigs. Being a former roommate with someone in college is of no little help: unless that connection has been maintained, it's gone, and even if it's been maintained, that reference is of no help unless you worked together.

For me college was only useful to learn math, while everything I know about programming I learnt myself. Technically, everything I learnt about math I also learnt myself, but there was an important difference: math courses were structured in a particular way, as a sequence of topics that build on previous topics, and I had to pass exams on those topics, while learning programming was unguided. I don't use math at work, but math completely changed the way I think, and that happened during the first year in college. By "completely changed" I actually mean a substantial meaningful change in my thinking process. I believe, that the same result can be achieved by reading and proving all the theorems in the calculus: the end result should be understanding how the notion of integrals is derived from the definition of numbers and the ability to actually derive it on paper (since just understanding often misses small details that change everything).

As for my programming skills, I can safely say they are top 1%, as I can often ignore inquiries from say FB HRs. Yet I learnt everything myself. Without math, and without that structured way of thinking that's required to prove theorems, I wouldn't be able to get to the CS fundamentals, and my CS knowledge would be very shallow. There were a few CS teachers in college, but even then it was obvious to me that they don't know much and they had to cater to the least able students in the group anyway. I don't see a way to bring highly skilled and competent CS teachers to college: those who really know programming and have interest and ability to deal with people, often make 500k+ a year with very relaxed work hours - there is simply no incentive for them to bother teaching CS to (mostly uninterested) kids in college. And those who do teach CS in college as their full time job don't know much about CS, simply because gathering that knowledge is a separate full time job.

Edit: so online courses or college? Neither. You only need a book that thoroughly explains fundamentals and will to go thru it. Not enough will? Then you need a teacher whose only job will be to assess your knowledge twice a year in the form of some exam. Both online courses and college are too slow: I could honestly finish a masters degree in 1 year if I could avoid wasting time on all the fluff.

> As for my programming skills, I can safely say they are top 1%, as I can often ignore inquiries from say FB HRs.

Oh man, I wish this was an accurate measurement of programming skills :D

I think derivation proofs are useful (and definition) but other types of proofs such as correctness hasn't helped me as much.

I like to think of (software) engineering as a craft. Obviously the most effective way to learn something is by doing. The best way to get going and help you jump hoops and level up is having a mentor, or friends to talk to. Master/apprenticeship is old-fashioned but highly effective. All courses I've seen are boring, uninspiring and often ineffective, as it's often hard to relate them to a real problem you might have. Having real problems make you learn really fast.

The conclusion is sound, the assignments reinforce learning through multiple and repeated usage of the various skills needed to complete them. The lectures and notes and readings are there to give a foundation and to be a reference to some extent. However, it's difficult to say that the only useful part of these courses are the assignments...

>The best way to learn is to do your own experiments. Once understood, that understanding lasts a lifetime. Facts can change, but the governing rules, if deciphered, won’t.

I recommend to all software developers that they join the ACM (Association of Computing Machinery). This gives you access to computer science papers which are the foundations and the governing rules. There's also access to Safari Learning which gives you access to the latest books and video courses:


It costs a few hundred bucks a year and I've learned more in reading random CS papers and having access to great books and video courses than paying for many courses.

If you want to create web apps go to online courses.

If you really want to understand how machines work, how strings work.

How distributed computing works

How databases work

How to program efficient string search

How regular expressions work

How to represent problems well for example in graph

How statistics works

How to analyze problems

How to read papers

How to be able to learn anything by your own

And the list goes on and on

It's all in real college University courses no online course would give that to you.

You have to focus on theory of math and cs for a couple of years and stretch and train your mind.

I’m a senior engineer at one of the big tech companies. Sharing that because that’s all I have to back my opinion.

I don’t agree with you. I don’t think you need a four year degree for these concepts. I think many of the concepts you outline are very critical especially as you work on larger and more complex systems. However I’m not even convinced college does a good job at teaching these concepts. College introduce me to some of them but didn’t actually help me build any intuition at all. I regurgitated the things my professor said and that’s how I pass through my courses with straight A’s. I didn’t really understand distributed systems until I worked on them. I didn’t really understand them well until I read about distributed systems not from a textbook but by other people who had worked on them and this was mostly online papers or YouTube videos or conference videos where are companies presenting on their lessons learned.

I think the course of the classes you need for a computer science curriculum such as data structures, algorithms, operating systems, networks, languages and compilers, databases and distributed systems - These can all be self taught. I’m not convinced a four year degree that’s full of fluff with various elective courses adds any value.

You can literally read four books and get all those concepts. You won't be an expert in them, but taking a college course on them won't make you one either.

> It's all in real college University courses no online course would give that to you.

I learned all of what you enumerated online, usually practically applied too. This is not something you have to go to a university to learn.

Granted, I wasn't following a MOOC or a bootcamp - I just kept reading, and digging in deeper, and asking questions and practicing on my own.

Yeah, but you're not representative of most people. And the same applies to those who are in the top 10% and claim college education is useless - they're not representative of most people. Folks who now have a job because they have a college degree most likely wouldn't have one if they didn't go to college.

It's rare for someone to have so much self motivation. School environment forces you to learn those things without the burden of having to be so self motivated.

Yeah, I started off super into self-learning, even before the whole MOOC thing took off. I loved the MIT Open Courseware courses in high school, and I even really liked the central thesis of Illich's Deschooling Society.

Then I started tutoring and teaching. That's when I realized that I'm an extreme outlier. Most people are not particularly motivated and won't put in the hours upon hours of struggle.

The average experience of learning CS in university is just completely alien if you teach yourself how to program as a child. The biggest differences is the emotional labor. There are lots of things that my students would describe as "frustrating" that I have literally never thought of as frustrating (e.g., reading compiler errors). I think it's similar to learning a new language as an adult vs. as a small child.

Ohai HN! I lead product and engineering for services and the project reviews system at Udacity - seeing this post gives me a lot of purpose to go to work on Monday. We are hiring engineers who are passionate about changing education!

Frontend engineer on my team: https://boards.greenhouse.io/udacity/jobs/4320541002

All open engineering positions: https://www.udacity.com/jobs#engineering-it?location=all

Just curious- Would you hire someone with only an online certification in programming to an engineering job at udacity? (As a junior/intern)

Not the OP but I can tell you about my experience. I used to work at Udacity, both on engineering and content creation.

We for sure had engineers who were self-taught / learned using online resources (myself included). In fact, I hold zero certifications related to programming.

Over the years we recruited and employed a handful of engineers who pretty much learned everything they knew about programming through Udacity courses. Frankly, I always felt it was a very supportive environment for non-traditional engineers :)

Very cool. Thanks for responding :)

There was some link a few weeks back about the low completion rate for some online coursework being abysmally low.

This is HN, I would expect a hundred anecdotes from those who have succeeded against the traditional educational system in CS.

But are there studies or other evidence this is more then survivorship bias? Is any study following dropouts, non-BS grads, bootcampers and online students in the industry over time and counting from the total population who registered for CS 101?

> The one thing that most of the colleges don’t do well is teaching you how to apply what you just learnt.

I disagree 100%. That is the primary value I got from college - learning how to not only learn, but break everything down, re-conceptualize it into new things, and build it back up into something productive. We absolutely applied what we learned to our own projects, and I've found those lessons continue to work well a couple decades into my career.

This is very true. I am in college (non-american) and feel very weird because of the way a lot of stuff it taught here. Teaching is a different matter, but it is the grading that makes it worse. Questions asked in exams don't correspond to what is useful as far as I have seen programming on my own. Things I've learnt on my own help me understand stuff but papers are made just to ensure that those who mug up get better grades. It's sad.

I've worked with people with cs degrees and self taught / bootcamp types and the biggest difference between them hasn't been based on their background but their commitment to continued learning on and off the job. Granted I can only judge their ability to do work similar to mine and not incredibly difficult by any stretch.

Are you saying that one group has commitment to learn and one doesn't? Or it's a mixed bag?

It's a mixed bag, the people from either camp who seen exceptional are the ones who are constantly learning

Dropping out of college (or not attending college) for comp sci is great if you can make it work, or if you have the knowledge and discipline to get where you want to go.

However, for many (myself included), it provided a framework that I wouldn't have been able to get otherwise. After I got that framework, then the idea made more sense to me.

Tangential, but somewhat related: At the community college level, there is an excellent degree type that still allows for a small liberal arts core, but focuses much more on marketable skills: The Associates of Applied Science, or AAS.

It has some, but reduced humanities requirements and focuses much more on career skills of the chosen area, all of which have specific, immediately accessible job opportunities. The really unfortunate part of this degree, however, is that it's very hard to build upon later at a 4 year school to finish a bachelors if you so choose: the credits either don't transfer or transfer as electives, not requirements towards a degree. Again, a major pivot is needed for traditional 4 year schools.

In the US, college is very much about being taught - everyone following the professor's lectures through the syllabus step by step, with exercises, quizzes, and tests for course after course. It's my impression that in other countries the student is given broader direction, studies more on their own, attends lectures or not, meets with tutors, and is assessed at the end of the semester. This seems sort of half way between the US college and the US online approaches.

The fully online approach seems good only for those who are natural autodidacts or as a fallback for those who simply can't get through some of the non-CS required college courses.

Another article spewing the same garbage. "You can't learn theory without a college degree." What? Do textbooks teaching theory not exist outside of college? Are there no blog posts teaching theory on the internet?

My self education took about as long as a college degree anyways, but I was able to work the whole time which I think gave me a bit of an edge over most college graduates. Self education can feature as much or as little theory as you decide you want to learn

I didn't learn much about software engineering in my "Computer Science and Media" degree. But somehow I have the feeling it helped me learn stuff in general.

Getting a university degree has been the single most rewarding experience in my life. It gave me opportunity in life. I was born to very poor parents who didn't have high school diploma or degree. We had almost nothing growing up. Getting formal education changed my life. I got internship before graduating with my degree. And I got entry level position immediately after graduating. I started saving to pay off my student loans immediately after that.

I think people are confused here. It is not about going to college, it is about selecting field of study. A plumber don't need to go to college he just need a vocational training by doing hands on. But a mechanical engineer/scientist has to go to college to study something deeper. Udacity and coursera are filling up the gap for college courses, but you need expert professor guidance if you want to do some research.

>> Udacity and coursera are filling up the gap for college courses, but you need expert professor guidance if you want to do some research.

This is definitely not true across the board. I have multiple peer-reviewed published papers (in pretty solid journals) in a field I never formally studied, and am a college dropout to boot.

No doubt there are marginal professors who are just barely capable of doing research by virtue of intense effort by the people who taught them, applying the techniques they learned in grad school for their entire careers. Everyone else ends up reinventing themselves and their research multiple times. Even something resembling explicit education in research is unnecessary. The average medical school teacher is a physician who never got a Ph.D. and most teachers at law schools have the same degree they end up teaching (in the US), the JD, which has no mandatory research component.

A 4 year degree really helps when trying to get an employment visa in a developed country though. e.g. Japan has a 4 year degree or 10 years equivalent work experience requirement.

There was a thread last year where lots of people commented about being rejected for a visa in Europe because they didn't have a degree, despite having multiple years of experience.

I think in your case the combo of Udacity nanodegrees and OMS CS is absolutely perfect. You get overwhelmed by Top 10 academia rigor and flooded by projects, and then jump to cutting edge with Udacity and do cool stuff like self-driving cars. The only drawback would be lack of time to do anything else.

[OP here] Yes, you're right. In my case, I had the fortune of starting to program at a very young age, about 11. I started doing these courses to get on the whole ML/AI bandwagon (although I had been exposed to neural networks in the early 2000s).

The broad understanding I came to was, it's important to make your own conclusions, and not take anyone else's conclusion for granted, whether it comes from universities, courses, or even blog posts like mine. In reality, however, it's difficult to devote that much time to personally research everything. So you should at least do it with the things that matter the most to you in life.

So the author starts with a first paragraph in which his presentation is largely biased in favor of online courses and then a second one in which he reveals that what he calls "college courses" is also an online version of it. The title isn't appropriate.

I'm learning writing code right in my college now and many online courses do provide a lot of basic information in coding like Randomized Algorithm etc. I think if I get all these classes I can learn more than my classes in college in terms of quality.

Raahul, how do you like the omscs program? i am in it as well but worry that it is easier than the on campus MS. Even though I suspect it is easier, I still find the workload very heavy.

It's not easier than on campus. The curriculum is the same, and it's taught by the same professors and on campus head TAs (usually). If anything, it can be more difficult due to lack of interactivity in lectures to clarify things - although on the whole the recorded lecture quality is very good. OMSCS is no joke! If you want to take it, keep in mind it is a top 10 program and the workload and intensity of the classes can be very high. You will learn a lot, but it will also mean personal sacrifices (free time, time with family and friends) to keep up.

I am 4 classes into the program and enjoying it a lot. The surprising thing for me is that a single class seems to consume about 15 hours per week. I have heard that the harder classes, such as AI, IHPC, ML, GA, take 20-25 hours/week. I don't remember my undergrad courses being so demanding but I did not attend a top tier school.

All that said, perhaps for the sharper students these classes demand much less time than they do for me.

Ahh, hi Bryan - I missed that you were in OMSCS. I think I took HPCA with you in Spring. So you should know what I'm talking about after that first exam where a good chunk of the class dropped!

I'm currently in GA and it is tough, probably my toughest class so far - 10 to 20 hours a week is about what I'm doing. I think I would need at least 20 hours/week to pull off an A, but I don't have the time unfortunately. My undergrad, which is a top tier state school, was also on the whole a lot easier. OMSCS is a tough degree - completing it is a big achievement.

I might need someone who has done the on campus version to pitch in. However, I’m assuming that the assignments are on par with the on campus version, and proctored exams almost too.

The difference is in the number of subjects that you can take per semester, and that also adds to the difficulty. Also, I’m not entirely sure but some courses are bound to be labs heavy. Those courses probably are not available on omscs.

FWIW a few of the courses (AI and ML4T that I'm currently taking) have the online and on campus being taught at the same time by the same TAs/autograders. So they are literally the same course in terms of material. It's been interesting. In AI they post the grade distribution for OC vs OL. Medians are similar with slightly lower average for the online section so far.

No matter how you cut it:

Understanding > knowledge

Application development does not need Software Engineering.

Software engineering is mostly project management, with very little engineering content.

If I was a young person I would do this instead of these courses.

Start with leetcode easy and see what I am missing if i am unable to solve that problem. progress all the way to leetcode hard.

Anything else is pure waste of time and would not land you a job.

If the job requires solving anything other than Leetcode problems, you're going to get PIP'ed real quick. Leetcode won't teach you solicit requirements from PM's, how to make network requests, set up your CI/CD environment, deploy your code, configure jest/babel/webpack (if you're doing front end web development). It's useful for demonstrating knowledge of Data Structures and Algorithms, but that's only a small sliver of being able to perform the job function of a Software Engineer.

> Leetcode won't teach you solicit requirements from PM'

You might or might not be able to do this but if you don't leetcode you won't get that job in the first place.

Guidelines | FAQ | Support | API | Security | Lists | Bookmarklet | Legal | Apply to YC | Contact