Live data from Hacker News

What skills do self-taught programmers commonly lack?

quora.com

131–140 of 161 posts

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

#131
Some programmers are really engineers or scientists who solve their problems using computers. Even though they usually had some programming class at the university, they never had a formal CS education.

But then again, they know a heck of a lot about some specific problem space, be that audio algorithms, weather forecast or nuclear fission reactions.

This is one area where CS graduates are just about useless. Without knowledge of the problem space, those programming skills still won't solve the problem.

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

#132

Earlier quoted context omitted.

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 .

[deleted]

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

#133
I started programming at the age of 8, and went on to study CS at the age of 20. So, I count myself a self-taught programmer with a Master in computer science, and I have an opinion:

The formal education didn't teach me any skills I couldn't have picked up on my own.

It did however, teach me to ask questions I didn't know existed, lovely abstractions and a lot of useful theoretical concepts. Instead of constantly being surprised by things like "oh, wow, Java's static classes are really similar to python modules of free functions", I can clearly see that they are both manifestations of the same idea, but shaped differently by the language design. This makes it much easier and quicker to pick up new languages and technology.

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

#134
post #73

Earlier quoted context omitted.

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…

There are indeed. However, without courses to direct you to them, many self-taught programmers don't realize that they should be reading them, or watching the lectures.

The problem isn't one of ability to learn. It's just that it's hard to figure out what you should be looking at.

I am a partially self taught programmer. I did take several courses in university to get a minor in computer science. These clued me in to the holes in my education. Otherwise, I might have figured it out eventually, but it would have been harder.

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

#135
Quite simply they lack the education, this is different to knowledge, which, I'm sure they do not lack, otherwise they would not be competing at the same level for the same jobs.

Education can lead to an acquisition of knowledge, but it is by no means the only way of acquiring it (experience for example is another way).

Knowledge is what employers look for, and it is a better indicator of ability than education - especially for non-grad positions.

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

#136

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…

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.

Speaking as someone who was self-taught, spent four years getting a formal CS education, and then has 16 years post-college professional experience, I don't think you probably missed much. I think the only really practical thing I learned in school was big-O notation, and you can probably pick up the essentials of that in about one day of moderate studying. I can't recall ever learning a data structure more complicated than an AVL tree in school, and I think that was in an extra directed-study class. (If you've not heard of an AVL tree, that's not because they're terribly tricky -- it's because they're now nearly obsolete.)

Mind you, a lot of the stuff I learned studying CS at college was interesting. It just hasn't been particularly relevant to my career. My math classes (I had a double major in CS and math) have actually been much more professionally useful.

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

#137

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.

Computer science and programming are such vast fields I think everyone must be oblivious to things that others find crucial.

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

#138

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…

[deleted]

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

#139

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 think you've actually got no clue how complex and hard the average database/object driven application can become. Nor do you seem to have any idea what is actually entailed in a large CRUD application.

You claim that GMail isn't complex. Jeezus, a tiny % of programmers are capable of recreating that well. Or Microsoft Office! Go get the source code to OpenOffice and say that again. Think about the problem a bit harder and you'll realise it's a freaking compiler that's far more complex than most programming languages.

Far, far, far, far more complex than Dropbox.

I bet the hard bit of Dropox was the seamless UI integration with the OSes and not the routing of data. The data routing was probably solved in an afternoon. That was probably the fun bit.

You seem to have no clue about what is actually hard in programming. Hard problems, pffft.

It's as if I went to projecteuler.net and looked at some code and went 'oh, look, implementing algorithms is easy. Any A-level maths student could do that...'

Graphic designers generally aren't capable of programming or maintaining a large CRUD app, and when they try what usually happens is that some professional has to come and gradually rewrite the whole thing. Without breaking anything. That's hard.

If they are capable then they usually call themselves a programmer, and rightly so. And if they wanted to solve the 'hard' problems, they could. They'd just have to learn about a different area of computing. And I'm mightly jealous of them for having mastered two hard subjects instead of just one.

So next time you want to declare that 90% of programmers could be replaced by people with no programming skills, go look at some source code and then shut up.

Post reply on HN