Live data from Hacker News

What skills do self-taught programmers commonly lack?

quora.com

71–80 of 161 posts

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

#71

A few things: - Renowned CS programs spend less time than you think teaching you how to actually program. Programming is simply a tool to teach things like theory, algorithms, mathematics, logic, artificial intelligence, operating systems, graphics, and so on. I actually took a class on programming C++ and it was one of those independent self-teaching classes. :) - I think one needs to differentiate between programs…

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 programming, understanding what "amortized" means (e.g., in the context of quicksort's performance) is also important.

Somebody out of school may naively think that quicksort is always good as it's O(log N) or (if they never took an OS class-- and OS classes are, unfortunately, optional in some universities) not fully understand why their code is burning up 100% of a single core in a 8-core machine and leaving the other 7 idle.

On the other hand, I can agree that asking questions which are only answered from memory (i.e., either you know the trick or you don't) that will only be in a recent graduates page cache (e.g., remembering all the rules of a red black tree, or a dynamic programming solution to a classic problem) but can -- and should -- be looked up, doesn't make sense (if I see you implementing a balanced tree in a project without at least cracking CLRS open and looking at existing implementations, I'll have a chat with you...)

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

#72
I'm a self-taught programmer also, as many others have mentioned. I believe a CS degree can certainly be a launching point for people passionate about programming and computers. I actually did a year of CS before switching to a humanities degree. Part of it was I got a little scared off by some of the complex algorithms that came in the second year and I didn't have a good foundation. I ended up teaching myself PHP and VB.net.

In my profession, I ended up becoming a "technology guru", including some development. But as the only developer I never have had anyone else to lean on for expertise or support.

I think that for a self-taught programmer, having (good) mentors is probably a far more effective way to learn real-world development skills than a CS degree. I feel, for myself, that I would thrive in a development team where I could learn for co-workers and receive criticism and correction for my work.

Without that outside influence, it's hard to know if what I'm doing is really the best or even a good way of doing it.

I think every developer needs a mentor, and that's what I feel I missing most.

(P.S. Does anyone out there want to be my mentor? I am looking for a technical co-founder for a startup idea I'm working on)

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

#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 run across when self-teaching.

That said, the list in the article is not an especially good one. It might as well have said "The Basics", as far as I'm reading it.

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

#74
"The difference between the university graduate and the autodidact lies not so much in the extent of knowledge as in the extent of vitality and self-confidence." -M. Kundera

“[T]here are known knowns; there are things we know we know. We also know there are known unknowns; that is to say we know there are some things we do not know. But there are also unknown unknowns – the ones we don't know we don't know." -Donald Rumsfeld

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

#76
Interesting how people here took the question in such a negative tone. This list is actually useful for a novice self-taught programmer, like humbledrone said. As a self-taught lots of times I felt like I was missing something when I read programming stuff. Of course I didn't stay still I just went learn what I was missing. A list like that could have come pretty handy than. (ok I could look at some CS courses syllabus too)

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

#78

This is a most frustrating and poignant question. I am a self-taught programmer. That being said, I'm not lacking in any desire or ability to teach myself. In fact I am quite active about it and not just in programming. Sitting on my bookshelf is a current set of AoCP and the companion, Concrete Mathematics. I keep journals of my thoughts, progress, and notes about excercises. I converse with knowledgable people on u…

Very true! I have met many university trained people who have not kept their skills up to date and couldn't keep up with the dedicated autodidact.

That's an important thing to note. Becoming a master programmer takes more than 4 years. If you don't learn outside of school you are doomed.

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

#79
post #3

The list they've put together it long enough that I would expect nearly everyone to be missing a few. Compilers and Machine learning are probably the two that you don't see in self-taught people much. The ones you do see it in generally go to university shortly after having been self-taught anyway. Most of the other things on the list you learn if you deal with particular programming languages. And a university degre…

I'm self-taught and after a few years in industry, decided to go back to school so I could really accelerate my learning.

I know more than most of my fellow students, due to the few extra years of experience and personal effort, but I definitely had blind spots. It isn't even entire categories of things, but rather little pockets here and there in individual classes.

I have learned a lot, but deciding to get a math BS alongside it has helped the most. I've taken this experience in school as one to soak up as much hard information as possible, so if my personal efforts are any indication, I can see why the combo ends up with a better skills list than either alone.

I've come to really value the stuff that is taught in universities (at a decent enough school anyway). I suspect the longest lived impact of all of this is an ability to read and consume a higher level of information (journals, etc) on a broader variety of topics. It beats blogs, more often than not.

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

#80
post #49

How many of these things can one really be missing and still call themselves a programmer? I'm self taught myself. Pointers? Really? You can learn pointers in about 20 minutes.

It's interesting, but it seems some people need a lot more work when learning pointers than others. I struggled with operator precedence issues when I first encountered pointers, but didn't have a problem with the concept itself. But I know people who never really managed to wrap their minds around it.
Post reply on HN