Live data from Hacker News

All Programmers Are Self-Taught

jgneuf.wordpress.com

21–30 of 86 posts

Re: All Programmers Are Self-Taught

#21
post #18

Actually, according to this article, "All programmer’s are self-taught." Unfortunately, some are also self-taught in grammar and punctuation. (I had to. My snark quota is done for the day.)

Sorry about that, fixed now.

Re: All Programmers Are Self-Taught

#22
post #10
post #3

Carnegie Mellon is quite a stronghold of this. They don't teach much coding -- they hand you the books, give you projects and grade the results. If you produce workable code, mostly you win :-) It's telling that CMU is considered such a great tech school. Even the best don't know how to teach programming (yet?).

On the contrary, I don't really think that it is the University's job to teach "programming". University traditionally focuses around teaching the skills to do research. Higher level skills such as analysis and problem solving. Consider learning history. It is expected that you "know" how to write an essay. You may be critiqued on it, but it is not the primary motivation for your study of that subject. My personal op…

The CS undergrad curriculums that I have been a part of (on the student and teaching side) were designed so that people with no prior exposure to CS or programming could succeed. For that reason, the introductory class taught programming. Sure, they (we) tried to instill general CS concepts along the way, but the fundamental task was to teach the students how to think algorithmically, how to use that skill to solve a particular problem, and, yes, how to use the particular tools we chose (that is, the language, compiler, editor or IDE).

To do otherwise is to require that incoming students already know how to program. That is, I think, indefensible. If students want to test out of the introductory course, fine. But it must exist, just as the intro to physics course must exist for physics majors.

Re: All Programmers Are Self-Taught

#23
I'm not sure I agree. Yes to a certain degree, I think that programmers are self-taught, but I think like most things in life, most of the learning comes from your peer group. Working on a project in a small team with other motivated developers is a much more enriching learning experience than doing solo class projects or teaching yourself some new technology.

Re: All Programmers Are Self-Taught

#24
I disagree with this post. There are professors out there who do in fact teach code style in a very hands on and personal manner. Chris Riesbeck [1] at Northwestern University has made a great system to teach good coding practices in a number of languages. Many of my fellow alumni have learned good coding practices from him. Its an inside joke to talk about "Riesbeck crying" when messy code is written.

[1] http://www.cs.northwestern.edu/~riesbeck/critiquing.html

Re: All Programmers Are Self-Taught

#25

I agree with the premise. However, the whole world runs on sloppy, inelegant, and downright ugly code. I strive to write pretty code but the truth is it doesn't matter that much. Just getting it done and out the door counts for so much more.

Just getting it done and out the door counts for so much more right now. It matters far less in a day, week, month or year when you or the next guy has to maintain it.

Though now that I reflect for a second I have to acknowledge that it's all that matters to the stakeholders, and not necessarily to the coders (nor future maintainers).

Re: All Programmers Are Self-Taught

#26
post #17

I'm not sure I can fully agree with the idea that programmers are self-taught in the sense of writing good code. I'm a student at the University of Waterloo, and in the courses in 1st and 2nd year a sizeable chunk of the marks depends on readability/documentation and such. We have coding guidelines and we lose marks for not following them. Needless to say, this doesn't mean most students at Waterloo write good, well-…

No personal reflection, but what "good code" means in a professional context is quite a bit removed from student assignments.

There are just some things you'll never learn, for example, until you have to interact daily with code you wrote a year ago.

Re: All Programmers Are Self-Taught

#27
I think CS departments should offer at least one course that spends a little time focusing on writing quality code.

The Software Engineering course I took at university was a pretty good introduction to "programming". One of our required texts for the course was Code Complete by Steve McConnell. We were required to read all the chapters that focused on programming style.

Re: All Programmers Are Self-Taught

#28
Programming is unusually accessible compared to other skills. If I wanted to learn how to raise farm animals, where would I start? A person needs only a few common things to try programming: an off-the-shelf computer, maybe a book, and these days an Internet connection. After that, they require only the traits common to any other hobby, such as free time and enough imagination to figure out what is going to be built. (I'm glazing over a few details of course, such as the fact that knowing how to type would certainly speed things up.)

Programming is also an unusually marketable hobby skill. With many hobbies you can invest a lot of time and effort and produce beautiful things, but that's liable to only gain you praise; in programming, it can gain you a really good job. This is a pretty smart investment: for a modest expenditure yourself you might net a high income so it should not be surprising if people often teach themselves.

Besides, when I hire someone I like seeing evidence of side projects that reveal a certain passion for doing good software work. I wouldn't hire an artist or designer without seeing a portfolio either, and software has a lot of things in common with art and design.

Re: All Programmers Are Self-Taught

#29
I agree that coding is generally not "taught" in lectures or recitations, but, like the article says, we learn from other people -- other people's code, their comments on our code, etc. In fact, I feel like that may be the only way to learn how to write good code and isn't something that can easily be self-taught.

Working with and learning from other people is way more effective (than just writing code) in figuring out how to identify good and bad code. And I think formal CS education usually gives people the right tools (like algos, design patterns, data structures, etc.) to understand and work with others.

Re: All Programmers Are Self-Taught

#30
I agree. As a third year undergrad also I've noticed that the focus on the code itself has diminished to almost zero from CS 101. At least in that course my professor mentioned a few things about code quality and design like DRY, loose-coupling, etc. My data structures professor's sample code which he would give out had single capital letters as variables, single lowercase letter variables, and awful and inconsistent indentation. I understand that it's data structures and not an open source project being maintained by the professor, but there were students in the course who barely had any experience programming outside of school. My guess is that the professor's neglect for any sort of code conventions will carry over with those students.

My school does offer a class called "Production Quality Software" but it's a graduate course and if you want to take it as an undergrad you only get 3 credits.

IMO the situation is not good.

Post reply on HN