Live data from Hacker News

What skills do self-taught programmers commonly lack?

quora.com

51–60 of 161 posts

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

#51
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 that teach programming as a trade and a CS program at a top school. I imagine the experiences are quite different. Much like there would be a difference between someone who learned from Learn C++ in 21 Days vs the hallowed Abelsson and Sussman (Alyssa P Hacker anyone?).

- I think most lower division books can be read by anyone and they would glean the same amount of knowledge. In fact, I would say there isn't much difference if someone went to somewhere like OpenCourseWare and learned it themselves.

- I think you'll find more difficulty at the top end. While it's possible that self-taught programmers would do these exercises, if I ever meet one I'll bow down before him. I'm talking about classes like CS 162 Operating Systems (http://inst.eecs.berkeley.edu/~cs162/sp11/) or CS 170 Efficient Algorithms and Intractable Problems (http://inst.eecs.berkeley.edu/~cs170/sp11/).

- With that said, I personally rarely (if ever) use the things I learned in these classes. Perhaps if I wanted to write my own language, my compilers class would be useful. Or maybe if I got really deep into machine learning, then my AI class would have been more use.

So, I guess with that said, it's really about what doors were open to me on matters that, even when taught, seemed impossible to understand. Doing it self-taught is just that much harder unless you're the guy from Good Will Hunting.

All in all, I'd say that for the majority of people who are not that specialized (like web developers) it doesn't make much of a difference. The people for whom it made a real difference went on to do research in a specific area and are the ones who are hired for some specific knowledge they have (eg. classification algorithms, machine learning algorithms, security, complex statistical models).

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

#52
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

[deleted]

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

#53

Earlier quoted context omitted.

I didn't know you were self-taught — I wasn't projecting, but literally confessing my agreement toward the bias you described. As to the parent, envy is typically felt from a position of disadvantage or inferiority.

Missed the connection between your reply and the second paragraph of your parent on first read. I responded initially to your combination of comments with that oversight in mind -- connected inferiority to inclined to disagree to me -- so I owe you an apology. Forgive me.

No worries, thanks for talking it out with me.

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

#54

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.

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

#55
The best programmers I know are self taught. This is because they have a passion and hunger to learn and improve. This is what it takes to be a good programmer. I've met many people that have a CS degree because they simply didn't know what else to do while in school.

You are not vetted by final exams, you are vetted by creating something of value.

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

#56
post #11

There's a much wider range of ability among self-proclaimed self-taught programmers. Some may be "self-taught" to the level that they have completed and understood the entire Art of Computer Programming (those released already, anyway). Some may be "self-taught" to the level that they can write a couple for loops in PHP and Javascript. It's a hard question to answer because "self-taught" spans too wide a range of ski…

I agree with your point of view, but TAOCP isn't really a work to be completed , and I'm willing to wager that anybody who says they have completed it flipped through it and put it back on the shelf.

I agree. I meant to offer a point of contrast (perhaps a little extreme).

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

#59
post #22

I thought "category theory" was a very strange thing to include in the list, so I searched down and found this equally strange comment: "I wish I had time to spend a year learning category theory to better understand how to structure things to be compositional". This is akin to saying, "I wish I had time to spend a year studying fluid dynamics so I can learn how to fly a plane".

More like: "so I could learn how to make a plane"

Exactly. The pilot is the user, get it?

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

#60

Earlier quoted context omitted.

In fairness, once pointers clicked for me, a heaping pile of computing made sense. I banged my head on x86 assembly for a few weeks when I was 14, went back to C and got pointers, then reapproached assembly later and was delighted at how easily it fell into place. It's my personal belief that a firm grasp of C and any processor's assembly -- protected-mode Intel is a can of worms, there's easier architectures like AR…

I wasn't disagreeing with the importance of pointers at all. And I agree strongly that a firm grasp of C and assembly is extremely valuable. My disbelief was with the notion that self-taught programmers wouldn't understand pointers. I was saying that the only way you could get away without knowing pointers would be if you'd avoided programming in asm/C/C++/etc.

Which lets face it, is pretty common nowadays with all the scripting languages.

In all honesty, for a while i felt like i was lacking knowledge compared to my fellow coworkers, but after a while in the job, there is one truth that i only believe: you are either a natural programmer or not, and that's where the difference will be.

I never took real CS courses, i have a degree in Software Engineering, but was basically just how to write software for administration in .NET, design databases and write proper SQL. Never learned C, ASM, algorithm, data structures or stuff like that at school. But i still get a better understanding of those things that most CS graduate i know...

School will not make you a good programmer, if you are good it will help, but you could have probably achieved the same level of knowledge and skill without it.

Post reply on HN