Hacker News new | ask | show | jobs
by freehunter 3387 days ago
>Many of the best programmers I know never even went to college...they are just interested in the subject and taught themselves.

The problem with that is, college teaches a lot of things that are not directly related to core technical competencies. It's very easy to learn programming on your own these days, sure. But it's a lot harder to learn public speaking, finance, management principles, marketing, college-level reading and writing, technical writing, time-management, political science, biology, physics, and all of the other stuff that you're taught in college.

Going to a university or a college, I think, is still a very important thing. It's not worth the money right now, which I hope will change, but I know a lot of smart people who didn't got to college, people working in many different diverse fields, and it's almost always possible to tell who did and who did not go to a university. Do you want to be laser-focused on just being a programmer, or do you want to have marketable skills outside of a pure technology focus?

To put it simply: it's easy to learn how how a computer works and how to program it to work for you. It's much harder and takes much longer to learn how the world works and how to make it work for you. For 99% of the corporate/enterprise jobs people will end up working, being the best programmer is the world is far less important than every other skill you learn in college. If we do away with traditional universities, we need to find a way to replicate that other type of learning.

8 comments

> To put it simply: it's easy to learn how how a computer works and how to program it to work for you. It's much harder and takes much longer to learn how the world works and how to make it work for you.

I would argue strongly that university DOES NOT teach anyone how the world works. Wet behind the ear college grads are worthless in most "blue collar" professions, for example. If you get a degree in English Lit, what do you know about the "real world" that a peer who has worked construction for 5 years doesn't know???? How much more knowledge about the "real world" does a journalism major know than a military veteran?

The first two years of "learning" at American universities are generally filled with bullshit pre-requisites that serve almost no purpose in the "real world!" The last two years are more specialized but hardly teach shit about the "real world."

Wet behind the ear grads are useless in white collar organizations too. College doesn't teach you about your job, it teaches you about the wider world. Being a military vet is an admirable use of your time, but the picture it paints of the world is very different than that of a university education. Likewise, I wouldn't want to debate a construction worker about the proper building code for a multi-occupancy building, but I'm willing to bet one semester of finance would far outweigh the knowledge that construction worker has about why the building is being built like it is.

You make good points about getting a broader picture, but the notion that the military or blue collar jobs are the "real world" is false, IMO. That's one aspect of the real world, it is far from a broader picture of it. University is supposed to present the other side, a far deeper picture of the other side.

And for the record... what I'm talking about is the pre-reqs. I'm specifically saying those pre-reqs are not bullshit and are the most important part of a university education. I just want to be clear on that. Job training is better left to an internship/apprenticeship.

Finance and marketing and math and science and English classes are the real benefits of college that you can't replicate on a construction site.

> College doesn't teach you about your job, it teaches you about the wider world.

Playing devils advocate for a second...

How does college teach you about the wider world? By taking a bunch of tests on subjects being taught by TA's (if you are lucky) or professors that sometimes struggle with English?

Or

Cramming for tests and writing papers you don't want to write is learning about the wider world?

Find me the Engineering major that would rather take 2 semesters of humanities|Literature|etc or graduate sooner!

Find me the doctor students that wish undergrad was a like 2 years shorter! Fuck it, make it 4 years shorter and call it a day! Strait to med school if you have the aptitude.

> but I'm willing to bet one semester of finance would far outweigh the knowledge that construction worker has about why the building is being built like it is.

One semester of finance is craptacular, you wouldn't learn much. Better if you had said Accounting... but most students don't pick accounting. You would do far better listening to Dave Ramsey for a month, IMO. Seriously, where in the bulk of College majors outside of Finance can I find the requirement to take a finance/accounting/econ classes? I'll answer, NO WHERE!

The fact that you bring up finance is interesting because fully half of the Colleges today would go bankrupt if their students knew ANYTHING about money! Why would they go into such crazy debt for what they get in return? The subset of college majors that actually have promising career futures ahead of them are miniscule in comparison the "majors" offered at universities.

Thinking that listening to a radio program is exactly the same or better as a college course is the kind of thing you hear from people that haven't actually gone to college.

This isn't to say you are yourself less intelligent but perhaps you lack perspective?

> Thinking that listening to a radio program is exactly the same or better as a college course is the kind of thing you hear from people that haven't actually gone to college.

I've gone to college I agree with the GP that most gen. ed. college courses are mostly useless. Just the way they're structured usually means you never get a good picture of what you're learning and why. Instead, you usually learn to do a bunch of exercises, with little context about what the point of the exercises are.

They also introduce you to a lot of topics you may not have studied on your own, and give you the opportunity and resources to take them as far as you'd like. I spent a lot of years in universities and I never met a teacher who wasn't willing to spend at least some time with an interested student, or point them in the direction of materials for additional self-study.

Certain classes (particularly the calculus series and chemistry) were pretty exercise-laden but I don't remember anything else that wasn't somewhat obvious what the purpose was, or really many classes beyond science/math/foreign languages with much exercise-type homework. It's obvious with language classes why you're doing rote memorization. Calculus is pretty clearly an engineering weed-out gauntlet, and I have no idea why university chemistry is universally terrible. The context of humanities courses (kept separate from the occupational relevance) was usually obvious. Want to learn what different kinds of buildings are called? Take an architecture history course. Etc.

Mostly I remember undergrad classes as a bunch of 19 year olds who did about 2/3 of what they were assigned, and most of them took zero initiative. Sure, the first floor of the library was packed at night, but there aren't any books there. The stacks were basically ghost towns, and that is where the real learning goes down.

One finance class? Unless we are talking about someone majoring in finance, I don't think one class will get you very far. Look at the classes required for the finance major at USC, for example[1].

Uhh... ok, if you want to do finance for a corporation or similar, great! I don't see much there about managing personal finances... do you? Perhaps if we had more personal finance and less about leverage, in the USA at least, we wouldn't have the crazy debt problems we have. Perspective.

Real world is managing both personal and professional. College isn't great at either.

[1]http://www.marshall.usc.edu/faculty/fbe/curriculum/undergrad...

Did you go to college? I ask because when I went, I had two semesters of accounting, one finance class, both macro and micro economics, and a personal finance class. All of which were required for my Computer Systems degree. You could also take more as electives if you wanted to go deeper.

Your definition of "real world" is extremely limited.

Depending on the construction worker's experience he may or may not know a heck of a lot more about what works and what doesn't on the job site.

Any engineering intern can run some numbers and write a spec. Whether that spec will be easily implementable or whether it will encourage corner cutting in certain cases is a different story. Specs (building requirements, part design, etc) written up by people with little or outdated experience with building the finished product is probably the single biggest time waster in blue collar industries.

Think about that next time you encounter something designed with enough clearance to swing a wrench but not enough clearance to swing a wrench with a hand on it.

"Depending on the construction worker's experience he may or may not know a heck of a lot more about what works and what doesn't on the job site."

Absolutely. And military veteran knows a heck of a lot more about how army works. Neither of them knows enough about building statics nor how to evaluate whether ground is good enough to hold tall building. Neither of them knows about history of country the war was in, something you would expect from journalist.

People that do x know more about x then people who dont, but that does not make construction job reasonable choice if you wants to be architect.

Neither of them was forced to learn hundreds of pages of stuff every semester, something that makes college graduate more likely to be able to learn similar amount of similar difficult stuff again. Part of it is selection bias, but part of it is that good college makes you used to having to learn a lot.

I don't know why you're singling out Humanities degrees, as if STEM degrees are chock full of "real world" knowledge. Many STEM degrees have very clear job positions to enter but "job preparedness" and "real world knowledge" are not synonymous.

I would expect a journalism major to be very good at media literacy which I consider important real world knowledge a construction worker or someone in the military would not develop over the same period of time.

I don't think what he means by real world corresponds to what you think it means.

It's likely that he meant things like policy making, some basic economics, knowing how democracy works, being able to recognize fake news, being able to figure out (faster) who you need to talk to about a problem (be it a person, or an institution), being able to state a hypothesis, gather evidence and update your beliefs, better understanding of systems and what makes them function and a plethora of other things. The pattern here being that these things are very general, allowing the person to do do anything they want, and be able to get better faster.

I am dumbfounded by your answer. As if, college grads have a lock on being smart and figuring things out... You see, other people can do that too. The fact is, most Americans have a really good chance to work for someone who is not a College grad.

How many small business owners do not go to College? I'll answer for you [1].

[1]https://www.sba.gov/sites/default/files/Issue%20Brief%202,%2...

I don't claim only college grads are smart/good at figuring things out, just that they are more likely to be.
College is as real place as factory. The construction worker does not know all that much about parts of real world that are not his immediate surrounding.
Honestly, just data structures and algorithm skills seem starkly lacking among the autodidactic programmers I've known. An in-order traversal of a tree data structure is not hard, you just have to know how to do it, in concept if not able to immediately write the code out on your screen.
> just data structures and algorithm skills seem starkly lacking among the autodidactic programmers

remove autodidactic from the sentence and it is still true.

Even with formal schooling you forget all the stuff you don't use weekly within a semester of last using it.

I think one condensed class on algorithms and data structures could have replaced the three I took if the low level CS classes had emphasized thinking about time complexity and planning before you code. If you're used to thinking about "I only have X resources, what's a not crap way to get Y done" then learning specific data structures and algorithms as you need them is second nature.

I don't think that's true if you learnt it properly the first time. I can still solve a quadratic equation, and I learnt that more than ten years ago and definitely haven't used it since.

I think there's a general rejection of knowledge, and software development has a continue cycle of reinventing the wheel because a large number of developers have no formal training. This something we are now celebrating instead of looking down on.

On the front page today there's separately a 'America needs to reject degree qualifications' and 'How do we get a certified certificate for developers'.....

At least you remember that they exist, and have a rough idea about how they work, which is more than someone who never took the courses. They probably could have condensed the courses and stuck with a few basic proofs instead of the more rigorous proofs I had to do.

The main reason they didn't is because those topics are mostly settled and unchanging, which means they don't have to rewrite a new course every few years. There are easily 5-6 courses I'd rather have taken but some of the most useful topics were too cutting edge to make it down to a Bachelors program in most Universities. The curse of a cutting edge field I guess.

Fairly true, but uni grads seem to do better at both and just general programming. There are definitely lots of people from both camps that are interviewing for programming jobs that can't actually write code.
College definitely forces you to learn a breadth of topics in whatever field. There's also a lot to be said for being out of "the rat race" and devoted to learning. It's hard to study 40 hours a week if you're working 40 hours a week. It's even harder to study when rent is due and you're about to be fired from your job (as a 'for instance')
The only thing people need to learn, whether with a formal instructor or on their own, is opportunity and reason. That's where society fails, the system is designed to hoard and dole it out from the top. If you want people to learn you have to enable them to stay on the edge of what they know. Programming isn't "easy" to learn on you own, its easy with a computer and an internet connection to keep your self on that edge. Any time you are forced to interact with people there are political barriers in place. That's where the failure of the system is, it prevents people from staying on the edge and getting to the next step by denying them opportunity and reason.
And they learn that too. Maybe they just havent needed these yet and still manage to be called some of the best engineers.
To be honest, I didn't find the extra "things" that my university taught outside of my Computer Science program to be of value. I took two public speaking classes, multiple business courses, and plenty of other general education courses. You can sit in a classroom for years and learn theoretical ways to be better at public speaking or how to grow a business, but that won't make you a good public speaker or successful entrepreneur. The experience of running a business or speaking in front of a large crowd is what will force you to improve those skills. If you never have to run a business or speak in front of a large crowd, then those theories are quite useless.

The issue I have with the requirement of a college degree that so many companies impose is that the degree proves nothing other than that the applicant can go through a long drawn-out process of getting a degree. It says nothing of their competency. I've interviewed multiple candidates for software engineering roles that had a bachelors or masters degrees in Computer Science, and more often than not, they can talk for hours about theories behind programming concepts or data structures, but when given a fairly trivial coding challenge, they fall flat on their face. When I graduated college, I was one of those people, but luckily I recognized that quickly and spent countless hours learning new languages and frameworks until I felt I could build a fully functional piece of software by myself.

In my experience, I often prefer candidates straight out of a short vocational computer science program or self-taught programmers to work on my team. Going 4+ years before actually putting concepts into practice is way too long. There are plenty of unaccredited programs that only take a few months and often churn out much more competent candidates than a four year uni program.

tl;dr: People spend way to much time talking about doing things rather than doing things.

On the flip side, I've met a lot of programmers who decide to install Mongo or Redis to solve some data storage problem, and that works okay for a while, but they never stop and think what kind of data they actually have, how they're going to commonly access it, or what kind of trade-offs they're willing to make. This causes problems down the line (currently dealing with some right now) that could have been avoided entirely with a little theory.

I would argue that a bachelors or masters in computer science was not designed to produce programmers, in the same way that a degree in physics doesn't let you start building bridges. On the other, it's also hard to build bridges without physics.

>To be honest, I didn't find the extra "things" that my university taught outside of my Computer Science program to be of value. I took two public speaking classes, multiple business courses, and plenty of other general education courses.

I don't think you would get great values in those public speaking and business classes. I personally agree that people who want to do those things better just start doing it (although, the article tells a different story about the cook). Introductory science courses (which I would otherwise not being able to learn on my own) were certainly worth the price I paid for. I was in a public university and those 3-credit hours courses used to cost me about 800 USD per. There are not many other things that I could better spend my money - I think those are of great value (Although the MOOCs have shown that the price point for really good basic education could be set much lower, but with some trade-offs.)

>Introductory science courses (which I would otherwise not being able to learn on my own) were certainly worth the price I paid for.

Out of curiosity, why do you think you would not be able to learn introductory science without spending $800 on a uni course?

The other day a person asked on HN - he stated he taught himself to program, but feel insecure because he feel he can never be a legitimate programmer, he even doesn't know how to deal with pointers. I find myself the same way before I went to college -- I tried to program in Pascal with a college level textbook and couldn't gasp the idea of pointers. Not until college do I understand what pointers are -- after only 5 minutes of lecture from my professor.

I had a lot of a-ha moments in college like that. That is to say, the example above is for something I knew that I didn't know, there were many a-ha of something I didn't know I didn't know. Science courses are often dense and not everyone can easily gasp ideas in the textbooks or online resources without help. I wouldn't know to look up and study chaos theory, game theory, and many other interesting ideas without a primer in college. Plus, being able to interact and ask and see as things progress when the professor explains the problem is quite worth the money to me. Again, MOOC can provide some of those, but with trade-offs (I can't interrupt the professor to ask something everyone understands, but I don't). MOOC was not an option when I went to college though.

>t's very easy to learn programming on your own these days, sure. But it's a lot harder to learn public speaking, finance, management principles, marketing, college-level reading and writing, technical writing, time-management, political science, biology, physics, and all of the other stuff that you're taught in college.

Am I insane, or really bad at programming? Because with the exception of biology and physics, the other things you mentioned are significantly easier and more intuitive to learn on your own compared to say, computer science concepts and math.

Computer science is hard and I don't know any good place online to learn it for free. Picking up a Rails tutorial, on the other hand, is free and very very easy.

I would say that real, fundamental computer science is one of those things that universities are better suited to teaching. Other comments seem to agree with that.

The point I was trying to make is that college forces you to learn a lot of things that you may choose not to study if you're learning on your own. And those things you're forced to learn end up being more worthwhile than the skills you wanted to learn, whether you realize it or not.

If I waited with learning English till I needed it, it would be too late. I was forced to learn it and benefited from it. If I waited with learning how to write coherent text till I needed it, it would be too late. I was forced to learn it and benefited from it.

I did actually used linear algebra and mathematical analysis on couple of projects and if I did not had math background before, I would not be able to understand what I needed.

I discovered programming at high school. If the teachers did not showed it to me back then, I would not even think about programming as a possible career.

The value of high school and college was in having me to learn things I would not learned otherwise. The things I would learn by myself, I learned by myself.

So true! On the job, almost all of your new knowledge is specialisation on an absurd level of being specific to your job and only to your job. Framework X isn't your specialisation, framework X is the most general knowledge you acquire while on the job. The specialisation is knowing the implementation Y built on top of X and remembering the misconceptions and politics that led to business decision Z which caused module Y to be implemented like it is.

All the education that came before that was to complement that on the job specialization. You start out very general (walking, talking, basic social behavior) and then dive into an increasingly narrow funnel of stuff that is somehow related to your future X,Y and Z that you will learn on the job, but is not not identical with them. Education is for learning the things practice won't teach you (an extreme example: knowing a bit about Plato or Cesar would likely be more relevant to making sense of Z than understanding the halting problem or being good at regex).

It depends a lot on what they mean by programming. Building nice looking small crud app? Technical challenge is rather easy, the hardest is to make it good looking. Making physics simulator or writing eventually connected database first time when they did not existed anywhere else yet is harder.
You're probably holding yourself to too high a standard. If you think about performance before you commit then you're probably doing better than average.
I'd love to see some kind of study that could prove that college grads are on average more rounded people. It's certainly not my experience.
> But it's a lot harder to learn public speaking, finance, management principles, marketing, college-level reading and writing, technical writing, time-management, political science, biology, physics

I took 2 of those courses. first year physics and english course. The english course wasn't even a requirement for CS, it was for math.

I learned more in high school than I ever learned in any of my courses in college (and I was a Literature major at NYU, which is apparently a good school).

Most of my learning in college came from following paths my courses "didn't have enough time to teach."

(I'm a front-end engineer now -- I learned programming on my own on the side!)

> It's not worth the money right now

money is just fictional status points. if we really decide the thing is important there will be money for it.

it's not worth the time right now and that's the larger problem. there's no way to make more time and we spent waaaaaay too much time in school.

>money is just fictional status points

Disagree. For many, money is the literal difference between life and death. Every dollar spent on college is a dollar not spent on food or medicine or safe housing. Time and money, for a poor person, are exchangeable at nearly a 1:1 rate. Most poor people spend all their time trying to get just enough money to scrape by. If they had more money, they would have more time. Since they don't have any money, they don't have any time.

I don't know you or your history, but saying money is just status points indicates to me that you don't know what it's like to not have any money. It's far from fictional, and it's far from status.

My family is middle class, I'm college educated, and have a middle class wage as a software engineer. I'm not wealthy. I spent 4 years in my early 20s in rock-bottom poverty and I know exactly how much of a struggle it is for some people. I've been there before.

Money is still fictional status points. That doesn't change anything about the nature of the thing. It's value is based entirely on social constructs. I call it "status" points because it represents how much "buying power" you are granted by your society. That's a form of social status. It is only very indirectly correlated to how much material benefit you produce. For example, a nurse who saves lives at a hospital ER is paid much much much less than a bank executive who takes phone calls all day. Do you understand my point now?

> money is just fictional status points.

For fictional "status points" it sure has the ability to drastically change your life.

There is a point where money becomes fictional status points, but everyone I've heard say this is a relatively wealthy person, often multi-million dollar net worth. For the majority, money is often more of a limiting factor than time.