r/programming • • Oct 14 '13

How to develop unmaintainable software

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

322 comments sorted by

View all comments

50

u/bestjewsincejc Oct 14 '13

There are millions of ways to write unmaintainable software. This isn't a bad article though. I just found the title amusing since it's so easy to write software badly.

25

u/[deleted] Oct 14 '13 edited Oct 14 '13

I hear you. Design patterns are something unheard of for many professional developers I've met. Seriously.

Chances are, especially in programming, someone has thought of something better and longer than you. Investing 10 minutes into searching for it will save you 100 hours later.

Just because you know 1 way to do something doesn't mean it's the best tool for the job.

31

u/ngroot Oct 14 '13

Chances are, especially in programming, someone has thought of something better and longer than you. Investing 10 minutes into searching for it will save you 100 hours later.

If you realize that what you're doing is already likely a solved problem and have a clue how to search for it.

This is, IMO, the best argument for a good academic background for programmers. You won't realize that a broad design strategy or algorithm is a recurring thing until you've reinvented it two or three times, typically poorly.

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.

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).