Live data from Hacker News

What skills do self-taught programmers commonly lack?

quora.com

101–110 of 161 posts

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

#101
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…

Err, as fhars poster pointed out quicksort is not an amortized algorithm, I should have used a better example. It is, however, a good example of an algorithm with a worst case running time of N^2.

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

#102
post #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.

Okay, there are some gigantic generalizations being made here, both in this post and others. I'm currently a senior at a liberal arts school, majoring in CS. Of the 10 or so CS majors in my class, I'd say half are also "hackers" in that they spend significant free time programming outside of class, for work and for fun. All of these people know at least one of {Ruby,Javascript} (Ruby happens to be less popular around here than Python since the latter is taught in intro classes). Not coincidentally, these people are also at the top of the department and are having the most success applying to grad school AND jobs.

I guess my point is that the hacker/academic distinction is not necessarily as broad as one would think reading some of these comments, and that many of us CS types think of ourselves as hackers as well as academics.

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

#103

I'd say that programming falls into two categories. I don't quite know how to describe them, so here are two examples: 1) Your average database/object driven application. There is user input. This translates pretty directly to output. There may be some interesting algorithms in between, but it's pretty much UI programming. 2) Solving difficult problems. A logistics routing application. The bulk of the code is based o…

I don't think "average database/object driven applications" constitute the majority of programming, and I strongly suspect that Microsoft Office is not as trivial as you say :-) See Joel's article on the "five worlds of programming": http://www.joelonsoftware.com/articles/FiveWorlds.html Each "world" has intricacies that people from other worlds aren't aware of, and there are likely more worlds than just these five.

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

#104

Earlier quoted context omitted.

I'm in the same boat and also worry about it to a certain extent. However, 7 years of getting paid to write software has mostly given me more confidence. Also, I know a lot of really smart people (a lot smarter than I) who studied Computer Science and couldn't program their way out of a paper bag.

When I found out many "programmers" can't solve fizz buzz, I felt a lot better. Have you read anything that really knocked you on your ass in terms of practical usefulness?

I'm not 100% sure that fizz buzz is really the indicator that people make it out to be ... I mean, it doesn't really test software design skills, or the ability to design a complex system with loosely coupled objects.

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

#105
It doesn't have any meaning, at least for me. If your aim, when you started to learn, was to follow a CS course (say, MIT courses), then you are going to have an equal knowledge. If your aim was to build your first web site and do HTML/CSS/JS and PHP stuff, then you are going to learn it and do it.

You cannot know everything anyway, no? And CS courses differs from an university to another. The benefit of being self-taught is that you choose the materials yourself and you are enlightened when you study it.

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

#106

Earlier quoted context omitted.

When I found out many "programmers" can't solve fizz buzz, I felt a lot better. Have you read anything that really knocked you on your ass in terms of practical usefulness?

I'm not 100% sure that fizz buzz is really the indicator that people make it out to be ... I mean, it doesn't really test software design skills, or the ability to design a complex system with loosely coupled objects.

Fizz buzz is very simple. It's easy to communicate, implement and test, there's nothing fiddly about it. It's the entry level indicator and requires no prior knowledge, other than the ability to turn a simple, stable specification into software.

If you can't do fizz buzz in your chosen language, then it's highly unlikely you can do anything more complicated.

It doesn't test your ability to do any kind of high-level design. It just tests whether you can program at all.

The ability to do high-level design is only important in one of these two situations:

1) The position you are hiring for only involves doing high-level design and not doing any programming.

or

2) The position does involve programming, and the person you are hiring is a competent enough programmer to do fizz buzz.

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

#107
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.

And the ability of seeing the bigger picture (I know it sounds enterprisey, but that's how I see it). I can still remember our 1st year Physics professor telling us, a class of nerdy CS kids, about how familiarity and a deeper understanding of the field you're writing your programs for is way more important than pointers, data structures etc.

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

#108
It's really interesting to see that so many HN readers describe themselves as "self-taught programmers". I would describe myself as that as well, despite just graduating from university last year with a Software Engineering degree (at my university, Software Engineering is a four-year degree that's essentially a superset of a Computer Science degree).

I think the use of labels in this instance are not helpful. A person who hasn't touched a piece of code before they enter university is unlikely to magically become a great programmer in the course of three or four years. Indeed, my first-ever submission to HN was spurred on by a bit of disgruntlement at the quality of some of my peers (http://news.ycombinator.com/item?id=1902687 - not much in the way of discussion :).

My opinion on what you might get with a degree that you would be less likely to get without formal study: > More study of development processes and tools (this might apply more to SE than CS) > More study of the broad theory of computation > Earlier exposure to team programming (this comparison is clearly with "self-taught" programmers that aren't working in the industry) > Much, much more cruft that you're not really interested in :)

I'm personally glad that I studied SE at a tertiary level. It balanced out my other degree, it was a good way to meet other like-minded folks (and to compare my own skills against them), and perhaps most importantly I was exposed to a lot of stuff that I feel I wouldn't have sought out on my own. That said, I would feel it the height of presumption to "look down" on a programmer with a lack of degree. I know firsthand that a piece of paper does not make you a good programmer, and vice versa. The real determinant of how good a programmer you are is how good a programmer you are.

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

#109

Earlier quoted context omitted.

When I found out many "programmers" can't solve fizz buzz, I felt a lot better. Have you read anything that really knocked you on your ass in terms of practical usefulness?

I'm not 100% sure that fizz buzz is really the indicator that people make it out to be ... I mean, it doesn't really test software design skills, or the ability to design a complex system with loosely coupled objects.

The capability to complete fizz buzz is necessary but not sufficient.

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

#110
I did a CS course and it was pretty heavy on maths and theory - and although you had to do a lot of coding to pass there wasn't much effort made to teach you the pragmatic elements of real world development.

University CS courses are terrible at being vocational training - but they are absolutely the best place to be if you are interested in research and the theoretical underpinnings of the subject - which are pretty vital if you want to go on and do posgrad work (which I did).

Post reply on HN