Live data from Hacker News

What skills do self-taught programmers commonly lack?

quora.com

91–100 of 161 posts

Re: What skills do self-taught programmers commonly lack?

#91

It's interesting that this question implied the negative -- not what's the difference between , not even what are the strengths and weaknesses of , but: > What pieces of the whole are missing? The implication being that without a formal CS education, it is an impossibility to obtain a whole. As if whole matters; how does one obtain whole , anyway? This is a very loaded question and perspective that betrays a serious…

As a self-taught programmer myself, I confess this is exactly how I would frame the question. I'm constantly worried there's something crucial to which I'm oblivious.

So do something about it. Between the Internet and possibly some nearby university (where you could sneak in and find out exactly what books all their classes require of the CS students), you'll have access to 99% of the same relevant things you'll need to "come up to par" with the so-called college trained programmer. Wikipedia beckons. Amazon (both as bookstore and cloud hosting provider) beckons. Your terminal beckons. Etc.

Re: What skills do self-taught programmers commonly lack?

#92
After digesting the Quora thread some more, I think it's yet another "bait" question -- meaning, one not seriously asked, because both (a) it's loaded, and (b) the answer(s) are obvious and no need to discuss among serious people with reasonable intelligence.

For example this:

>> And as a follow-up, where can said self-taught programmers find good resources on the above subject matter?

Come on. In 2011, where could one possibly find good resources for the above. Let me rack my brain... Hmmmm.... Maybe.... rhymes with Internet? Rhymes with Google? Rhymes with bookstores? I don't know. I give up. I wish I had a PhD in CS so I had the formal education needed to figure this one out. Thank goodness for Quora! (Wait, that's part of the Internet. I missed the class.)

Seriously.

Re: What skills do self-taught programmers commonly lack?

#93

I thought it was strange that Functional Programming ranked high. In my experiences CS depts are pretty mixed, in some schools it's essential, but in many others it's all but ignored. Additionally when I list out all the people I know who are big into fp on twitter or else where, at least anecdotally, it seems to be pretty heavily skewed towards the self-taught. I have a mixed background (self-taught then back to sch…

Odd indeed. Javascript and Ruby are quite FP (At least in the lisp sense of FP) and they are predominantly hacker languages, meaning that they are used more by self-taught programmers than CS graduates.

Re: What skills do self-taught programmers commonly lack?

#94
Peeling back the clearly insulting bias in the phrasing of the question, I do believe in programming as a craft. By that I mean that it's possible to become pretty good at it by just screwing around on your own, but you're fooling yourself if you think that you don't have something to learn from the academy.

To use an analogy, I think of myself as a decent carpenter, but I'm always blown away when I watch "This Old House," because Tom Silva is always busting out really great shortcuts that make things like scribing molding to the wall look really easy. I'm sure he invented some of those tricks on his own, but I'm also betting that he learned a lot of them from his days as an apprentice carpenter to someone older and wiser.

I think it's definitely possible to get such an education without ever setting foot in a school, for example by working closely with a skilled mentor, but I do think it would be hard to naturally stumble upon all of these key areas without someone laying out a self-study plan for you.

Re: What skills do self-taught programmers commonly lack?

#95
post #71

Earlier quoted context omitted.

One more thing: This is why I always find it sort of useless during tech interviews to ask someone who's been out of school for a long time the difference between a thread and a process or the difference between sorting algorithms. It's like people couldn't think of an original question that might actually be of some use to the actual job you'd be doing.

> ask someone who's been out of school for a long time the difference between a thread and a process Quite the contrary: if you're in the industry, the difference between a thread a process should be very hot in your page cache. Understanding why ``system("cd ..");'' won't work is pretty vital. As for sorting algorithm, you should at least know the big-Oh for a good sorting algorithm. In many specialties of programmi…

But "amortized" is irrelevant in the context of quicksort, as it is not an amortized algorithm. You may hit an unlucky streak and get the worst case of O(n^2) behaviour on every call. An amortized algorithm on the other had would guarantee that while each individual operation on a data structure may hit the worst case, it will always (and not just in the average case) average out over many operations on the same data structure.

Re: What skills do self-taught programmers commonly lack?

#97
post #88

Earlier quoted context omitted.

I'm inclined to disagree. The converse -- what skills does a programmer who has never left academia lack? -- strikes me as perfectly valid. And surely there must be some benefit to taking four (or more) years out of your productive life to the study of programming? But I say this as a self-taught programmer, so perhaps it's just that I'm envious of those who've had the benefit of a formal CS education.

The ability to get shit done.

I don't think you can come up with a stereotype for that.

I've seen just as many people with real-world experience that have trouble "getting shit done" -- because getting shirt done is hard for every human being on this planet.

That said, many people coming from academia do suffer from disappointment with the state of the industry, where boring projects are the ones that generate immediate revenue.

Re: What skills do self-taught programmers commonly lack?

#98
post #73

It's interesting that this question implied the negative -- not what's the difference between , not even what are the strengths and weaknesses of , but: > What pieces of the whole are missing? The implication being that without a formal CS education, it is an impossibility to obtain a whole. As if whole matters; how does one obtain whole , anyway? This is a very loaded question and perspective that betrays a serious…

As a mostly self taught programmer, I disagree. I think this is an extremely relevant question. There are fields of CS that are generally not encountered when learning programming, in spite of being relevant and often useful. Formal verification and proofs, the lambda calculus, language theory, and other "hard CS" subjects which have real world applications (well, in some fields, anyways) are also relatively rare to…

There are many good books and even videos of courses for those things you mention.

You can also join courses of interest if you've got a good university around you; as I haven't seen teachers objecting to outsiders participating in their course.

It is true that effort is required without immediate gratification (so it is hard to learn such subjects on your own), but it is feasible, because if the "hard CS" fields you mention don't peak your interest, I doubt they would've had an impact on you if you attended a CS college. Just go and learn, keeping in mind that it may take a while and you need to keep doing it.

Re: What skills do self-taught programmers commonly lack?

#99
post #8

My hypothesis is that a CS education would be most useful after you have already spent 5-10 years in industry. Unfortunately for most people life just isn't structured in a way to allow for full time education later in life.

self taught programmers lack talent and the ability to get accepted into a good CS program

I am a self-taught dev and I dropped out of a Comp Sci double-major because I found it frustrating, slow and boring.

Re: What skills do self-taught programmers commonly lack?

#100
post #95
post #71

Earlier quoted context omitted.

> ask someone who's been out of school for a long time the difference between a thread and a process Quite the contrary: if you're in the industry, the difference between a thread a process should be very hot in your page cache. Understanding why ``system("cd ..");'' won't work is pretty vital. As for sorting algorithm, you should at least know the big-Oh for a good sorting algorithm. In many specialties of programmi…

But "amortized" is irrelevant in the context of quicksort, as it is not an amortized algorithm. You may hit an unlucky streak and get the worst case of O(n^2) behaviour on every call. An amortized algorithm on the other had would guarantee that while each individual operation on a data structure may hit the worst case, it will always (and not just in the average case) average out over many operations on the same data…

Doh, screw up on my part. You are completely right. An amortized algorithm would be something like a dynamic array (std::vector or ArrayList) in this case, which is doubled every time it hits capacity.
Post reply on HN