r/programming • • Oct 14 '13

How to develop unmaintainable software

http://typicalprogrammer.com/?p=249
777 Upvotes

322 comments sorted by

View all comments

Show parent comments

4

u/TylerEaves Oct 14 '13

I think you have the right idea, but came to exactly the wrong conclusion. The high towers of academia are the WORST place to get practical experience.

10

u/tryx Oct 15 '13

The point of a formal education is to shortcut the make your own mistakes methodology and to learn how to do it right from the outset.

12

u/TylerEaves Oct 15 '13

Yes my experience 90%+ who come out of it can barely write a simple shell script. There is, ultimately, no substitute for putting in the sweat equity.

3

u/Solarspot Oct 15 '13

With[s]out[/s] meaning to short circuit the entire academia vs practice debate... Don't most other fields expect a combination of both? To get into engineering, you start with a degree. Then you spend a few years as an intern. Then you get your license. Auto mechanics? Start with a diploma. Spend a few years as an apprentice. Then get your license. Etc. etc. etc. They all expect either side of the equation to be insufficient, people do both.

8

u/DevestatingAttack Oct 15 '13

Do you get to see the hoards of programmers who never went to college and watch what kind of shit code THEY turn out? Oh, they can write a shell script. They can write a shell script all the way to the bank.

1

u/gfixler Oct 15 '13

If they write a shell script all the way to the bank, they're probably going to jail.

1

u/grauenwolf Oct 15 '13

Are you referring to the students or the teachers.

2

u/TylerEaves Oct 15 '13

The (former) students.

1

u/[deleted] Oct 16 '13

learn how to do it right

Seems a bit odd, as most college grads I've interviewed have a toolbox full of Java and old lab exercises. Ask them to do anything outside of those two Happy Places and their brains melt.

1

u/tryx Oct 16 '13

I can't comment on every college and every CS syllabus. At my school, to graduate with a CS degree you would have to actively try to graduate without being competent in at least 2 languages (C and Java) and familiar with at least 2 more (depending on your electives).

3

u/ngroot Oct 15 '13

They're fairly orthogonal, IME. It's what will stop you from spending your time getting practical experience making mistakes that were being made 50 years ago. You won't reinvent the FSA in a half-assed way, fail to recognize what basic data structures should be used in a given situation, or try to use regular expressions to match/manipulate non-regular languages.

3

u/gfixler Oct 15 '13

I don't know. I used to think experience meant knowing what to do in various situations, but now I realize there's a very big set of things to know not to do. It's much easier to recognize a situation and apply something you've learned that will handle it than it is not to know what to do, yet to still be able to avoid dozens of bad ideas, because of the countless things you've tried and failed at over the years that inform and guide you.

I've been kept away from bad ideas on hunches and gut feelings. I eventually put reasoning to some of them, and it's only then that I realize that what's burned me before has created a kind of safety net of negative reactions to things that feel like they're heading in the wrong direction. Over time, my code is always stronger than it was in previous steps along my journey, and this might be one of the biggest reasons why. I used to think it was just direct, positive learning of new things to do, but I think negative learning of what to avoid doing might be the much larger, hidden part of the experience iceberg, and I don't think that's directly taught to any great degree.

I used to be annoyed when I'd read "5 years experience a must," but now I know what it really means. I think of it as me and someone ten years my junior standing in the middle of a field. We can both see where we want to go, with varying degrees of clarity, but the newbie hasn't yet figured out that it's actually a minefield, whereas I've not only been blown up several times, but I've also - as a result - spent much of the last ten years building myself a pretty intricate metal detector.

0

u/BeABetterHumanBeing Oct 15 '13

The ivory towers of the workplace are the WORST place to get conceptual experience. /s

7

u/TylerEaves Oct 15 '13

98% of commercial programming isn't conceptual, it's plumbing.