Hacker News new | ask | show | jobs
by seoknucklehead 3406 days ago
With everything that's available in documentation, on YouTube, in forums, and in boot camps and other trainings, doesn't it seem like there are much more efficient ways to get the foundational knowledge that don't require four years of expensive college courses?
4 comments

Step one: Find that material organized into a complete lesson plan. Without curation, a library is just a pile of books.

Step two: Package that with a bunch of people (both experienced and inexperienced) who can help with coursework and answer questions when they come up, teams of people to work with, somewhere to live with dozens of others doing the same work, hundreds more learning unrelated things (but who might be useful to you in the future), and you've got something close to a replacement for college.

What about Udemy and Lynda?

Every time I think of all the extra hundreds of hours I spent learning things that didn't help my developer career and that seemed to be distractions, I tend to compare those to courses published online that have precise learning modules that are so helpful.

College just seems like it's so expensive compared to the value you get out of other sources of knowledge.

College is a lot more than learning about software development and computer science. I guess that's what I was getting at. It's expensive, but I don't know any other way to meet the same mix of people and get the same set of experiences. And that's part of the point: If you just want to learn development, college shouldn't be a prerequisite. I'd imagine that some kind of trade school, self-study, or job training would make more sense.
All the material exists in one form or another, but I've yet to see anyone put together a credible "DIY CS degree" online resource.

Some day most (certainly not all) aspects of university education will be supplanted by high-quality universally accessible materials. But it's not here yet.

I think even if that existed, you would still miss one of the most important aspects of college and any other traditional learning environment: the motivational side of having a community of learners and teachers that hold you accountable and help you stay motivated.

I've just started playing with this thesis and published an article about it. I'd love to hear what you think about it: https://medium.com/@arielcamus/learn-to-build-a-backend-with...

Is this a market opportunity? Is there a way to make money producing a high-quality curated list of online resources, plus a series of online tests to prove that you learned it?
Udacity is trying with their nanodegrees.
It does seem utterly inconceivable that getting copiously documented things into the heads of people would be something only accomplishable through an outmoded and expensive educational process. Surely we've come up with something better by now with all the effort being poured into it!

Yet, perhaps there's something about that process. After all, there are aspects to a formal collegiate experience that are not neatly captured by boot camps, fora, YouTube, and documentation. Perhaps some of those aspects, like an instructional environment that values theory, are of nontrivial significance.

Obviously, it's still possible that something better can be done. This may not be the same as a better option having been developed and being on offer, though.

This may or may not scale but I've been lucky to be part of a startup program that roughly matches your description of a "better option". It's a 2-year program; I was, and still am, part of their experimental first class of students. So far I've gone through 9 months of entirely CS study, and I was even placed in an internship working in Mountain View, and without a college degree.

I have never held a dev job before, but I’ve gotten to doing some pretty serious and nuanced coding (all the way down to memory management and writing in C). They’re a really great team of people, their unofficial motto is “Google it”, and RTFM, and their program is called Holberton School.

I really hope it succeeds.

That does sound very promising. I, too, hope it succeeds.

How much time have you spent on set theory or discrete mathematics?

None. At least not on the first 9 months. Mostly it has been about performance, data structures, algorithms, and time complexities.

So far, the first part (9 months) the focus is mostly on practical project-based learning and skills for developers. But we are encouraged to learn on our own. I certainly know about uncountable sets and the Axiom of Choice, but how much do I really need for the problems I am solving on my day to day?

Thank you for answering my question.

Unfortunately, I must inform you that that is the answer I feared. There's a strong tendency for would-be "better options" and bootcamps to discard CS fundamentals and theory in favor of practical education. I am of the opinion that this sacrifices long-term practical utility for short-term utility. While seemingly of obvious benefit to those seeking jobs in the not-so-distant future, this is a penalty that mounts later in careers.

Odds are very good that your entire career will not use whatever tools this program has taught you. Odds are similarly good that your time as a junior engineer won't hinge much on abstract mathematics. But odds are very good computers will run on the same mathematics in twenty years.

Even today more interesting work (cryptography, geospatial, distributed systems, graphics) hinges on the sort of mathematical underpinnings that are generally found in a full collegiate computer science education. Of course, all of this can be learned independently, but most individuals struggle to learn crypotgraphic mathematics in such a way.

So really, it depends a great deal on what you want to do with your career. How much you know about how computers work will do a great deal to determine how much flexibility you have down the line. I have had jobs where reasonably complex synchronization problems involving work-stealing and partial orderings over a network were pretty common, and other jobs where `rails g ...` was the most complex thing I needed to know.

Well, like you said, it really depends on what you'll be doing. Granted, there are different paths one's trajectory will take, and you won't know them in advance.

On the other hand though, I wouldn't presume to write my own cryptographic protocol without having the fundamentals myself. Wouldn't you say that it's actually reasonable to learn this on your own? There are so many options, paid, or free, that can help you with this. You could take a Coursera class, or follow an open source curriculum like someone said in the comments down below.

You did say "most individuals" struggle to learn in such a way, but the argument can be made that individuals studying cryptographic principles are not "most people", which, if not intelligence, shows a special kind of perseverence and dedication that will also differentiate them in self-study. I wouldn't say what you're saying is immediately obvious.

> With everything that's available in documentation, on YouTube, in forums, and in boot camps and other trainings, doesn't it seem like there are much more efficient ways to get the foundational knowledge that don't require four years of expensive college courses?

Sure, but the risk of getting led onto an inefficient, time wasting path that doesn't give you a good grounding in the foundational knowledge is also high.

The skill to evaluate approaches to learning the information and the set of information you need to learn is not something you are likely to have without having studied the information, and there are lots of people with pet theories or financial interest in your actions trying to promote different approaches.