Old School Programmers vs. New School Programmers

Hi all,

I’m trying to put together an article for my site comparing old school and new school programmers. I’m looking for any stories you may have about working with the other and what traits you consider each to be. Which do you consider yourself?

I’ve been programming for about 14 years now, even though I’m only 24. I definitely consider myself a new school programmer. I never used punch cards or anything like that.

I learn lots of programming languages (and pick up new ones regularly). It seems that old school programmers are much slowly to add languages to their repertoire.

Old school programmers seem to stick to “their old ways” and are resistant to change, while new school programmers seem quicker to adopt new technologies (like Cloud hosting).

Old school programmers seem to take it slower and are more careful with their choices, while new school programmers seem to work more rapidly (but tend to make more little mistakes).

  • What do you guys think?
  • Do you think my statements are accurate?
  • What do you consider yourself?
  • Do you work with new school or old school programmers?
  • Any stories of the two clashing, or the two working together?

Thanks all!

With punch cards, one mistake and the entire program has to be redone or rescanned. Or even later, on computing environments in the 80s and 90s, dial-up was still about the only choice, so software was rarely sent over the Internet since it would take hours to download. Instead, discs tended to be used to distribute software. Either avenue cost a significant amount of money–either in discs or phone charges for bandwidth.

With today’s software and bandwidth, a quick change and update release addresses the issue without much extra cost added. So, a small error won’t cost much to address.

This way of thinking seems to be common in other fields as well so I believe them to be quite accurate. In photography, one will commonly see debates of Film Vs. Digital(Old school Vs. New School) Or even the debates over B&W Photos vs Photos with Spot Color(B&W with one color showing). The Old School Photographers would call this Trend Vs Tradition. (Using this as an example because I used to work for an Old School Photographer and I feel it somewhat relates)

B&W = Tradition
Spot Color = Trend

The Old School Photographer would admit how he doesn’t touch Spot color because It’s a trend that has come and gone and is now coming and will go agian. Where as New School thinks that it’s the sweetest thing since sliced bread.

So are Old School Programmers inclined to stay with what they know because they’ve seen others fail or because “Old Dogs can’t learn new tricks”?

Is it a matter of Old School Programmers have seen many other methods come and go while their methods they’ve stuck to have remained the test of time? Whereas New School, are more inclined to trying anything new to be the first or to pioneer a up and coming movement.

(All of my views of course are my own opinion and observation. Since I’m just new to programming previously specializing in Web Design and Graphic Design, I’m also intrigued on this topic.)

Great stuff guys… keep it coming.

I hadn’t thought about the punch cards and slow software releases being one reason why old school programmers were more careful, but it makes complete sense. Thanks!

I have no idea which I am really… I take characteristics from both camps I guess. Mostly new school using your descriptions though!

What do you do that would make you old school then? I think I take things from both as well, but I definitely think most of my stuff falls into new school.

I think one “old school” thing I do is I still rely on efficient algorithms. More and more I see people writing code and they just loop through everything. “Oh, I have 1,000,000,000 entries… I’ll just run through a loop to find what I’m looking for”, whereas I still go back to old classics like good ole’ binary search. =p

I haven’t tended to learn that many languages. It’s something I did a lot more when younger, but now I tend to stick to what I know well. I’ve looked at Python, Ruby etc, and just found myself not interested in learning them.

Definately old school – but coming at it from a bit different perspective than many. I have obvious mental blocks that seem to prevent me from even grasping how visual programming works for example – and my solutions to problems are typically different from what everyone else comes up with.

I think a lot of that comes from how I learned – I learned machine language on a Cosmac Elf before I ever even heard the term “assembler”… and while the first ‘high level’ language I ever used was BASIC on a Trash-80 Model 1, I never really did anything useful there and learned “real” programming from the Penguin. No, not that Penguin – Ever watch the Blues Brothers? The Catholic Nun that taught my heathen hebe tuchas how to program was a dead ringer, right down to the METAL yardstick. A lot of my code formatting habits were formed way back then – “INDENT” THWACK “DE-INDENT!” THWACK – I think a lot of these kids today could stand to go through that.

I’ve been programming for about 14 years now, even though I’m only 24. I definitely consider myself a new school programmer. I never used punch cards or anything like that.

Only the ones who fall behind… As I’ve said for twenty years, the day you think you’re done learning is the day the rest of the world leaves you behind. I mean I’ve gone from raw machine language to ROM Basic, to actually having an assembler, to Modula, then C, over to DiBol, Fortran, Pascal, Javascript and then PHP as the languages I use… Languages I’ve TRIED include Perl, LISP, Ruby… and I’ve rejected a lot of those as unsuited to my purposes or just outright inefficient or nonsensical.

A lot of times I don’t think it’s so much being stuck in your ways, as recognizing that many of these “newer” languages are little more than sick fads or worse, trips backwards in the time machine to other failed languages. Ruby for example I tried, and rejected outright; I’ve not seen a language that needlessly convoluted since Prolog… Frankly IMHO if it wasn’t for RAILS, Ruby would have remained the stillborn also-ran nobody gave a flying fig about that it was it’s first DECADE of existance. To me Ruby is a ugly language who’s structural rules are more prone to cause errors than prevent them… But then I have a dislike for untyped languages, case sensitive languages, languages where case changes scope, or just the needlessly convoluted handling of repeat/while type loops… and people find this “easier”?!? I’ve already learned a grossly inefficient and error inflicting interpreted language in the form of PHP – why would I want to use one that’s WORSE?

I don’t know if that’s actually being a stick in the mud, or simply rejecting something because it sucks compared to what I already have.

Again though, are they resisting change, or resisting bad ideas? People who’ve been at it longer are usually more qualified to say “this is a REALLY bad idea”… It also depends on the task – I know lots of yung-uns from the 2600 club that wouldn’t “shtup the cloud with Jack Thompson’s Internet connection”… ENTIRELY for security concerns. On the other hand, I know a lot of older programmers who’ve been pushing for distributed computing for decades and are jumping up and down for joy over it finally being a reality. After all, that was part of the original purpose of the precursor to the Internet; DARPANet – sharing computer resources.

A lot of it is also “the right tool for the right job” – I’ve seen old and new programmers fall into that; “What do you mean I shouldn’t use javascript for that” ranks right up there with “what do you mean I shouldn’t write an entire application in BASH?”. Programmers of all levels of experience fall into that trap from time to time – you learn a new language, think it’s neat – then try to shoe-horn it into being the solution to every problem. See the people who use jquery to change a link to red on hover, or the people who try to write web applications using Visual Basic.

Experience – taking the time to FIND those little mistakes often costs more – having to go back to fix those mistakes costs WAY more and results in basically getting egg on your face. That’s what I said above about common practices many new to coding often say “I don’t need to do that”, “what’s the point”, etc… Especially simple things like consistent formatting and verbose names – when you hear someone call that “arbitrary formatting” you can usually rely on said individual having ten times as many errors…

… and frankly, old school programmers tend to LOOK like they’re going slower, but like the tortouise and the hare they tend to get there faster with a better result. The people who vomit up code any old way (gray matter or greenhorn) usually end up spending so much longer debugging it’s a miracle they ever produce anything useful – and if they do it usually ends up costing a hell of a lot more in the long term.

Though I think that’s really what it comes down to in a lot of ways – the flashy “here and now” vs. the “yeah, but what’s it going to cost us in the long run”. ANYONE can barf up something flashy, have people go “wow” and then have the work fade into obscurity in a month or two… It takes time, effort, concentration, talent and planning to build something that has decade-plus long runs of success. Basically, if you’ve never heard of the band T-Rex…

But that’s reflected across all of society these days. As Peter Schiff said we’ve gone from a nation of savers to a nation of debters, and the whole world is going that route on credit. “I want it NOW, who cares if I have to file for bankrupcy next year or spend a third of my income in interest payments” has become something of a rally cry… That President Odumba actually called credit “the lifeblood of the economy” is such a perfect example of people’s ignorance of what’s really tanking the economy… I lack the words in polite company.

Across the board we’re seeing that – “I want it flashy and now, who cares about the long term costs”. You’d almost think we were back running on Reaganomics… at which point somebody get me two Manhattans, a key of coke, and dust off my power suit.

I don’t get this whole topic in the first place. Seems like an attempt for either side to shoot down the other with fictional generalizations at best. What do you even mean by “old” and “new” school are you referring to age say like 30 years in the industry vs. 5? In that case your more or less talking about two different schools of through web vs. traditional desktop programming. Both are really completely different and the things that hold most important in one may not really hold true in another. In addition, the limitations, requirements, etc are different. Its just not fair comparison considering the the level that technology and requirements differ. Personally, I enjoy web development because there always seems to be a level or creativity involved. That said I don’t think I would enjoy desktop programming nearly as much because its rather uncreative. For example half the sh*t deathshadow60 just said almost put me to sleep. Does that make me less, I don’t think so I just quite frankly don’t need to know those things and have no desire. I focus on things I enjoy and learning about the limitations of decades old technology is not one of them, yawn. Call me a tool for not learning Fortran, Pascal or w/e other worthless language but that just isn’t what I enjoy nor want to do. When I’m 30 years older I’m sure I will have the same attitude as many of the older people in the industry, hell I kinda feel that way about HTML5, but that is a different matter. I am partially responsible for maintaining a internal template language written using C and half the time that makes me want to jump out the window.

I think that’s why much of my post talks about seeing the stereotypical behavior for one group out of the opposing side.

That’s the problem with sweeping generalizations – or to use the proper term for it; Glittering generalities.

'tis true that. Been noticing that myself – part of what I mean by inefficient code with the ‘just throw more hardware at the problem’. I mean, I came across some “new” code the other day where the original coder was actually doing a Bubble sort! My brain went “what is this, 1978?”

Thinking on this more – I don’t think the ‘old school’ is so much stuck in it’s ways, as it is simply a matter of watching the greenhorns make the exact same mistakes we did 20 years ago. I know for myself, that’s what rubs me the wrong way about a lot of the stuff I see – it’s the new guys making the same mistakes we learned better than to do decades ago.

But as I say, we all have to start somewhere… and the only way to actually learn to do anything is to screw it up a few times. I don’t care who you are, starting out we all make mistakes from false assumptions, incomplete information, and that the people around you are pretty much screwing it up too.

Thanks guys, those were great responses!

I’m not really sure why I want to write this article… I think it’s more because I’ve started started working with more “old school” programmers than normal. I’m actually trying to break down the stereotypes, which deathshadow just gave me a lot of insight into. I think a lot of times the two sides don’t see eye-to-eye, and I’m curious why.

There are obviously differences between new programmers and old programmers, I’m just trying to figure out what are the real differences and what are just stereotypes that one side has for the other. Like I said, I consider myself mostly new school, so I’m sure I have -incorrect- stereotypes about the other side.

If being old school is looking at “trending” new languages and getting rid of them, I think I’m old school in that way as well. I don’t like Ruby or Perl for many of the reasons DS mentioned. However, I do try out new languages and adopt them (for example, I hesitated a bit, but picked up C# once it became pretty steady and now use it quite often).

If I’m not mistaken, it sounds like most of you (like me) mostly work in very very small groups or solo. Do you employ any formal workflow models (agile, waterfall, etc.) or is it just kind of ad-hoc and in your head (even if you use the waterfall model, but you never really record it).

Thinking on this more – I don’t think the ‘old school’ is so much stuck in it’s ways, as it is simply a matter of watching the greenhorns make the exact same mistakes we did 20 years ago. I know for myself, that’s what rubs me the wrong way about a lot of the stuff I see – it’s the new guys making the same mistakes we learned better than to do decades ago.

I think you may have hit on an important note. I do see a lot of stuff and I think “I used to do it that way until I realized this way is better”. Even looking back on code I wrote a year or two ago I’m like “what was I thinking?”

Thanks everyone.

I’ve said it a few times on these forums – I consider that the mark of a good programmer. If you aren’t disgusted with your own efforts of just a year or two past, you may be in the wrong business.

There is ALWAYS room for improvement and there is ALWAYS more to learn… and ALWAYS a better way of doing things. Remember, we’re talking an industry where from a hardware perspective 3 years is obsolete and 5 years is the scrap heap… the software isn’t THAT far behind on that.

I’m a student Software Developer and I consider myself “new school”, even though I use older languages such as C/C++. My favourites are C# and PHP, though :slight_smile:

Interesting thread!

Generally speaking, new school programmers, whatever that might boil down to for each of us reading this, usually make comments like “I’ve been programming for about 14 years now, even though I’m only 24.” I don’t say this to be mean or offensive, samanime, and I sure as hell don’t say it to start any flame crap… But it’s just true. Old school guys don’t go around waving their prodigy cards because they don’t care about points or approval of others and it’s mostly because they just don’t care–not in a lazy or snobby way, but as in “it’s just a job” way. I hope you see what I’m trying to explain here…

To me, the major differentiating factor between what might be considered an old school programmer versus a new school programmer boils down to whether something is considered a passion / obsession versus whether it’s just considered a job (as I mentioned above). Every old monkey I’ve worked with left the cliche crap out the back door and just worked each day instead of meeting over at a coffee shop on a Sunday to circle jerk over new jquery addictions or CMS crap they’ve done that they want to post Craigslist ads about for some marketing campaign they’re cooking up with their friends.

(And yes, it’s been a long week for me so far. My sincerest apologies for the bluntness. I’m on a new diet too which is making me a bit cranky…)

Anyway. you can be a new school kid and still program the hell out of an old fart with 100 years of experience, but it’s the personalities that are worth writing about. I’ve worked with both seasoned web and mainframe guys and no matter the technology or closet bondage each might have, they’re still predisposed of a life outside of work and programming–which is awesome. But again, this has just been my experience.

One more thing worth noting here is that the older guys / gals often seem to mistakenly refer to stuff in their own institutionalized manner that would often lead book-trained greenhorns to think they don’t know what they’re doing. But that’s the irony! Each shop is different and one shop’s workers might refer to jquery as “jquery” while another shop’s people might just call it “javascript.” I currently have a boss who can program the hell out of Oracle and SQL in general. He’s great with Linux, can do anything he could ever need with Web Services, etc., but has no understanding at all about the differences between HTML, (X)HTML, CSS, or XML (XML in that he can’t understand how it relates to markup). It’s weird like that with the older people.

Generally speaking, new school programmers, whatever that might boil down to for each of us reading this, usually make comments like “I’ve been programming for about 14 years now, even though I’m only 24.”

… I agree. =p

I think that’s pretty much the first time I’ve mentioned that fact around here (except maybe in “am I too young to program” threads), because it’s not something that’s that important to me. I just brought it up to establish a kind of baseline for myself. =p

Thanks for the insights. =)

If there’s any technical differentiations to mention in any of this (sorry if this has already been mentioned; I don’t have the time to re-read all the posts), I’d say that those with lots of scars tend to care less about syntactical perfection. For example, I’ve had bosses who just copied and pasted scripts without caring where a certain curly brace is. While this works for them, it makes me cringe… I can’t stand sloppy coders, but to them, it’s just code–not art.

Grreat comment, Wolf. Do you consider that a trait of “new school” or “old school” programmers?

I’d say old school for no other reason than how those people came from a generation where standardization was just beginning to develop into what it is currently.

Anyone else have any opinions, stories, or comments to share before I start compiling all my information?

Come’on, I know we all love sharing our opinions. :wink: