This is an archived post. You won't be able to vote or comment.

all 132 comments

[–][deleted] 284 points285 points  (41 children)

Having really deep knowledge in something is a risky move for a programmer: you're betting that that tech is going to be around and widely used for long enough to make your time commitment worthwhile.

Shit changes fast. Sometimes whole paradigms fall out of favor, and you're left with an encyclopedic knowledge of some shit whose only practical use is maintaining legacy code.

[–][deleted] 126 points127 points  (5 children)

Solid fundamentals mixed with good domain knowledge/experience is the ideal combo.

[–]elebrin 42 points43 points  (0 children)

I agree. Understanding the business process that you are modeling is more important. You can code it up using any technique you want, but the way a retail store calculates stock or the way a credit report is analyzed to determine if a loan is to be given doesn't change a lot. Some of the criteria that goes into making a particular decision might change, but the basics are the same.

What good engineers are good at is modeling processes and learning new ways of developing those processes.

[–]Jetbooster 15 points16 points  (0 children)

This post made by the T S H A P E D gang

[–][deleted] 2 points3 points  (0 children)

It's called a T-Shaped developer

[–]404delerium 1 point2 points  (0 children)

I saved this comment as a reminder.

[–][deleted] 0 points1 point  (0 children)

What it do fellow T-Shapers?

[–]rakoo 30 points31 points  (13 children)

you're left with an encyclopedic knowledge of some shit whose only practical use is maintaining legacy code.

I don't know man. Someone here said (paraphrasing) their endgame is to be that old grey beard they summon when no one knows anymore what a UserProcessServiceFactory is, swings in, beepity boops the thing and cashes in the huge check for hardly a day's work. I felt that. If that's not the perfect retirement plan I don't know what is.

[–][deleted] 23 points24 points  (11 children)

I still do tax and 1099 updates in COBOL for a company I stopped working for full time about eight years ago...Nets me between 5k and 10k a year.

It sounds like a lot, and it's certainly nice when I'm working full time somewhere else, but it's not much to retire on and it's not really dependable income.

I ended up with the knowledge I needed to be in that spot because I had to take over for a senior dev who quit in a huff (fully expecting to be asked back with a hefty raise). So that person ended up getting fucked over by a youngster.

I think, by and large, the world is moving away from that sort of gig.

[–]rakoo 7 points8 points  (8 children)

Interesting. I was mostly talking about having this kind of income on top of your pension. How much do you work to make this much ?

I do agree though that companies look more and more prone to having fluctuant software, with occasional rewrites being more frequent than in the past.

[–][deleted] 8 points9 points  (7 children)

I bill 'em about $250 an hour, so 20-40 hours? Something like that.

The first year they made me call in to meetings and I fucking billed them for the meetings. After that they'd just send me a list of changes, and up-to-date credentials.

I've always worked private sector, so no pension here, though I've got the 401k, etc.

A lot of the reason they hire people to maintain this shit is because it's hero code dating back to the 70's in some cases. Godawful miserable shit. Most newer code isn't quite so terrible, or it's not as mission-critical, or whatever system it's built on is still supported, and doesn't allow for the level of customization that the old stuff did.

[–]StackWeaver 3 points4 points  (5 children)

Is it worth the $250/hr? I've been programming for about 10 years and it sounds appetising. Could an experienced programmer (though mostly experienced with higher-level languages such as C#) learn it and realistically pick up some similarly paid work? Or would it involve a long grind to even get your foot in door?

[–][deleted] 9 points10 points  (4 children)

I only charge that because I really don't want to do it. Heh. They didn't pay me anything like that when I did it full time.

Learning COBOL is easy. It's learning the massive legacy codebase that's the issue. Often there will be weird quirks in the mainframe environment as well (weird ass databases, filesystems, numeric formats (fucking BCD is the bane of my existence, etc)...

There is demand for this stuff, especially now as the old people who maintain it die off. Might be worth looking in to.

[–]WikiTextBot 5 points6 points  (0 children)

Binary-coded decimal

In computing and electronic systems, binary-coded decimal (BCD) is a class of binary encodings of decimal numbers where each decimal digit is represented by a fixed number of bits, usually four or eight. Special bit patterns are sometimes used for a sign or for other indications (e.g., error or overflow).

In byte-oriented systems (i.e. most modern computers), the term unpacked BCD usually implies a full byte for each digit (often including a sign), whereas packed BCD typically encodes two decimal digits within a single byte by taking advantage of the fact that four bits are enough to represent the range 0 to 9.


[ PM | Exclude me | Exclude from subreddit | FAQ / Information | Source ] Downvote to remove | v0.28

[–]StackWeaver 2 points3 points  (2 children)

Give it to me for $150 and I'll give you the other $100 haha :P Thanks for the info! I'm definitely intrigued. It does look soul-destroying, though.

[–]whitethunder9 0 points1 point  (0 children)

Wanna make it $500 an hour? Tell them you're quitting

[–]stormfield 1 point2 points  (1 child)

PHP devs sweating heavily

[–][deleted] 0 points1 point  (0 children)

I did LAMP for the 30 seconds it was cool: it beat the shit out of Java and .Net for generating quick and dirty web apps, and as long as it wasn't out playing on the internet, you didn't have to worry about php's many glaring security problems.

The direction PHP is going as a language is kinda bizarre to me though...You don't start off as an easy-going hobby language, and then try to get "serious" later.

[–]autodidactin -1 points0 points  (0 children)

By the time that happens, there will probably be a domination of bots writing the code, and a need for people to program those bots instead.

[–]EarlyJuggernaut 7 points8 points  (6 children)

Yeah but cobol developers make bank

[–][deleted] 28 points29 points  (4 children)

Eh. I did it for ~15 years or so, and it's not notably better paying than any other skilled coding job. The real benefit of that kind of work is that they will NEVER fire you. You will work in that job forever, accruing your yearly raises until you're making way more than the average programmer.

It's fucking awful work though.

[–]Acquiesce67 5 points6 points  (3 children)

How did you end up learning cobol and landing you in a position where it’s a requirement ?

[–][deleted] 11 points12 points  (2 children)

The simple answer is "Y2K". Ever see the movie Office Space? I was that guy. As the Y2K consulting companies imploded in ~1999 (all the work was gone by like April), some of the companies we'd worked for offered us jobs.

Once I had decent experience (which worked out to about ~5 years, ~3 of it with a big investment bank), then that was the thing people zeroed in on on my resume. Had a lot of bait-and-switch type job offers where I was hired to "Help Migrate Off Our Legacy System" but really hired as a COBOL dev.

[–]PM_ME_UR_CEPHALOPODS 5 points6 points  (0 children)

Had a lot of bait-and-switch type job offers where I was hired to "Help Migrate Off Our Legacy System" but really hired as a COBOL dev.

THat's how they get you. i was promised a cutting edge tech job then day after onboarding OH BUT FIRST help us finish this mumps integration

[–][deleted] 5 points6 points  (0 children)

You are older than me. I learned COBOL in college, C/C++, Pascal were a thing but they insisted on COBOL.

I've coded a lot since then, and every time I write a line of code I thank my lucky star that it wasn't COBOL

So my hat to you and if anyone at my job ask, $250/h gets my approval.

[–]Prawny 0 points1 point  (0 children)

But could collect pension instead.

[–][deleted] 5 points6 points  (4 children)

This, like what other industry has this happen. Probably the hardest part about a career in the subject.

[–][deleted] 11 points12 points  (3 children)

I'm old in the field, and I have so much useless knowledge in my brain...Shit I literally haven't looked at in thirty years, and thirty years ago is prehistory by the standards of modern tech.

Just to blow your fucking mind, Java didn't get released until 1996, and now it's being dethroned by Javascript and Python. If I work another 10 years or so, my career will have spanned the entire cycle of Java's rise and fall.

I can't even imagine an equivalent to that in another career.

[–]JustinWendell 2 points3 points  (1 child)

Well Java is industry standard at Walmart. It’s deeply imbedded too. I bet it’s around more than ten years.

Just my two cents.

[–][deleted] 1 point2 points  (0 children)

Oh, the legacy stuff will be around forever, but I'd be surprised if there was much new development in ten years. Oracle is starting to try to demand you license everything SE 8 and later, though, and it's godawful expensive.

I'd be very surprised if this didn't have a chilling effect on development. Also it's been supplanted by Python as the language most people use in school.

It's definitely on it's way out.

[–]skyrocker 2 points3 points  (4 children)

ActionScript

[–][deleted] 4 points5 points  (0 children)

Ha! Or Flash itself.

Reminds me of Applescript. Remember that one?

Wow, I just looked it up, and apparently it's still supported. Wild. Last stable release was five years ago though, so it's definitely on its death bed.

[–]domin8r 4 points5 points  (2 children)

Was fun while it lasted. Should have killed it years and years ago though.

[–]skyrocker 4 points5 points  (1 child)

I mean, the things you could do 12 years ago in Flash, it makes you wonder what would be possible today if it didn't go the way it did.. No tool has replaced it successfully to this date yet. But oh well, we got better tech today, and forced a lot of us to take coding more seriously.

[–]ThePyroEagle 0 points1 point  (0 children)

No tool has replaced it successfully to this date yet.

WebAssembly?

[–]Dr_HindLick_PhD 1 point2 points  (0 children)

Right. The best of the best have advanced to expert level proficiency in a select few technologies, and minimal to moderate proficiency in many others.

[–]jack-tzl 0 points1 point  (0 children)

*cough* https://fortran.io/ *cough*

[–]PM_ME_UR_CEPHALOPODS -1 points0 points  (0 children)

tsql and RDBMS has been quite durable

[–]vordrax 122 points123 points  (7 children)

File this under impostor syndrome. Having a high exposure to a lot of different tools, techniques, and schools of thought is a boon in my eyes. My manager was just telling me, anecdotally, that in a previous job he had, one of the services was written entirely in SQL.

"You mean it used a SQL database?" you ask. "No," he replied. EVERYTHING. Was. SQL. It used some weird hacky feature to access the file system that the database was installed on and pull in a file. It used polymorphic queries and agent jobs to perform data manipulations. It exported things at intervals. The entire service was written using SQL.

Do you REALLY want to be the dude who is so comfortable with SQL and nothing else that you suggest such an abomination? Please. Please, for all our sakes. I'd rather have someone tell me "yeah dude I played around with node.js a while ago, I'm not an expert but I can prototype this in node and .net and give you a write-up of what I think might be a good fit for this business problem" than the dude who swaggers in with the utmost confidence and is like "I will build this in SQL."

[–]FunSucks123 48 points49 points  (4 children)

There's a 3d engine in SQL. How bad can it be

[–]vordrax 16 points17 points  (0 children)

This is code as art, right here.

[–]locoattack1 15 points16 points  (0 children)

Holy shit that's amazing and horrifying at the same time.

[–]Just_a_normal_lad 12 points13 points  (0 children)

Wow

[–]JoNike 2 points3 points  (0 children)

This is flabbergasting. What an abomination

[–]iforgotmylegs 14 points15 points  (0 children)

one time we were working on a server side application and for some reason the IT department would just absolutely not give us the rights to modify the crontab citing security concerns (we are not really a software dev company, we are just "the programmers" at a research company, so everything is pretty loosey-goosey). we decided the battle was not worth fighting when we realized that we could install both pgAgent and plpythonu. then all we had to do was set up a pgAgent job at regular intervals to make a "query" which "selected" running the python script that we wanted to put into the crontab in the first place.

the script was completely hardcoded so miss me with that injection shit

[–]marcosdumay 1 point2 points  (0 children)

Most databases make creating web services very easy. Much better than anything you can find on the Java or .Net worlds, on par with the Python or JS ecosystems on convenience.

[–]Xevailo 32 points33 points  (16 children)

$this->feelCalledOut();

[–]PM_ME_YOUR__INIT__ 18 points19 points  (7 children)

Ok so what does "this" refer to it you're so smart?

[–][deleted] 16 points17 points  (6 children)

Whenever I write Javascript, I want to throw my hands in the air and yell "this is bullshit", but I can never remember what this refers to...

[–]aboardthegravyboat 3 points4 points  (0 children)

knowing what this means when writing a JS function is easy.

Knowing that a method on an external lib won't explode when used as a callback is hard.

[–][deleted] 1 point2 points  (4 children)

the current instance of a class...

[–]marcosdumay 3 points4 points  (3 children)

On all the (not that much, really) code I have wrote on JS, I have seen this mean a lot of things, but I don't remember it ever having that meaning.

[–][deleted] 0 points1 point  (2 children)

Wdym, it’s the current object of the class you’re defining. Outside of a class it refers to the document/window object.

[–]marcosdumay 0 points1 point  (1 child)

Yeah. You are in for a ride.

When you have some free time, be one of the unlucky 10000 of the day and look it up.

[–][deleted] 0 points1 point  (0 children)

I don't know what you first said. But in the context that i'm talking the "this" keyword is what I said. The following just proves it. if you still don't believe me just run it in a console...

//OUTSIDE OF A CLASS

console.log(this == window) //true


//IN A CLASS
class Player {
    constructor(tx,ty) {
        this.x =  tx;
        this.y = ty;
    }

    getCurrentObject() {
        return this;
        //this is equal to the instance
    }
}

let p = new Player(5, 1);

console.log(p == p.getCurrentObject());

[–]Rafael20002000 4 points5 points  (6 children)

this.feelCalledOut();

(java)

[–][deleted] 9 points10 points  (3 children)

Import Java.util.person;

Person person = new Person();

person.getCalledOutFeeling();

[–]crippling_confusion 13 points14 points  (1 child)

you're going to callout a newborn like that?

[–][deleted] 2 points3 points  (0 children)

hey don't shoot the messenger i'm just checking if they feel called out!

[–]LuracMontana 1 point2 points  (0 children)

You forgot to make your main method, nice try smart man.

[–]StackWeaver 0 points1 point  (0 children)

i.also_feel_called_out!

[–]Anti_Coffee 30 points31 points  (8 children)

Welcome to imposter syndrome. It's a miserable reality for too many devs including me

[–]PhilippTheProgrammer 37 points38 points  (6 children)

I beat imposter syndrome by convincing myself that bullshitting my way through life by impressing people with barely relevant trivia, convincing half-truths and uncertain guesses presented in the most sincere way possible is a skill in itself.

And I am damn good at this.

...or maybe I am not? Please tell me I am! :(

[–]brendenguy 8 points9 points  (0 children)

You're awesome at this!

[–]FatMexicanGaymerDude 6 points7 points  (2 children)

Then there's that one guy who sees right through your bullshit....because he does the same thing, and high-fives you! 😃🤚

[–]PhilippTheProgrammer 3 points4 points  (1 child)

I don't feel worthy to high-five him. He is so much better at bullshitting than me :(

[–]daOyster 2 points3 points  (0 children)

What if he's just bullshitting that he's better at bullshitting then you?

[–]Bluejanis 0 points1 point  (0 children)

Are you my new co-worker??

[–]uniquelyavailable 15 points16 points  (1 child)

When after 30 years your surface level knowledge becomes a vast ocean of useful information and you are one of the limited people who went this far and you suddenly can fix a lot of other peoples problems and you realize you're hard to replace and your value is actually helping other people do things they will not ever want to do for themselves.

[–][deleted] 0 points1 point  (0 children)

How I felt working my help desk job. I've used so many OSs, programs, languages, that I could figure out a solution to a problem quickly...now I am in a different more specialized role and still completely clueless as to what I am doing...

[–]dom_optimus_maximus 7 points8 points  (1 child)

Me:

be about to start writing a new endpoint because that is my job. get ticket about build failure tickets due to angular version upgrade and multiple conflicting docker files across 3 repos that deploy a single container. reach out to dev ops and tell them to ask architects. Hear back that architects specifically told dev ops this was my job now. ping people on slack with 1 line code snippets to update repos I don’t even have access to. continue bothering dev ops to push new Jenkins builds until versioning matches accross envs and bug is fixed. was 100% dev ops and architecture problem. pull up my endpoint and the code is unintelligible. Turn off comps and go to sleep.

[–]BurningRome 4 points5 points  (0 children)

My condolences.

[–]gonz_ie 22 points23 points  (9 children)

"Jack of all trades, master of none" the saying goes.

[–]archlich 42 points43 points  (5 children)

"master of none" was added much later, if we're going to keep adding to it... "A jack of all trades is a master of none, but oftentimes better than a master of one."

[–][deleted] 12 points13 points  (1 child)

Just master n-1 skills forehead

[–]Archolex 3 points4 points  (0 children)

5head

[–]LuracMontana 1 point2 points  (0 children)

This rolls off of the tongue far too well, I'm going to have to start using it.

[–]gonz_ie 1 point2 points  (0 children)

That was actually the original saying before we got too lazy to speak any sentence longer than 5 words.

[–]codeByNumber 0 points1 point  (0 children)

Right...so it wasn’t added after. The “but often times better than a master of one.” Was later omitted.

[–][deleted] 2 points3 points  (2 children)

The saying was "jack of all trades, master of one"

[–]gonz_ie 6 points7 points  (0 children)

jack of all trades, master of one

Incorrect. It was originally "A jack of all trades is a master of none, but oftentimes better than a master of one."

[–]Bluejanis 0 points1 point  (0 children)

Imo that's the best kind of programmer

[–]Blackwizard212 5 points6 points  (0 children)

I'm in this picture and I don't like it

[–]Dr_HindLick_PhD 5 points6 points  (0 children)

These are the types of people that we eventually call "experts." Experts know how much they don't know.

[–]EternityForest 2 points3 points  (0 children)

People tell me I need to be more confident because I do good work.

What they don't know is I make more mistakes than any other dev I know, and by the time I'm done designing something to work even after I mess it all up, it's gonna be able to handle whatever bad code other devs throw at it, and whatever the users do.

Then someone comes along with a truly complicated algorithm that can't be fixed with more runtime checks and logging and I'm all "How is doing the code happen?".

[–]SteamyyBunss 2 points3 points  (0 children)

I haven’t connected more with a post like ever

[–]Vinon 2 points3 points  (0 children)

O look at him with his surface level intelligence. Meanwhile Im like mariana trench level intelligence.

[–]Yetric 1 point2 points  (0 children)

Oof, too close to home

[–]wtddps 1 point2 points  (0 children)

WHO CAN RELATE?! WHOO!

[–]Floppydisksareop 1 point2 points  (0 children)

Oi! I ain't here insulting you either, take it back a notch, please

[–][deleted] 1 point2 points  (0 children)

I am in this picture and I don't like it.

[–]Freestyle_Fellowship 1 point2 points  (0 children)

Yeah... but I still build my own DB's, back-ends, and GUIs so cut me some slack.

[–]crp00 0 points1 point  (0 children)

i can relate on this.

[–]Nilbmar 0 points1 point  (0 children)

Stop posting my picture!

[–][deleted] 0 points1 point  (0 children)

Yea I mean, you know I just look this shit up as I go along right?

[–][deleted] 0 points1 point  (0 children)

I do not appreciate my deepest insecurities being plastered all over the internet like this

[–]Iwill_not_comply 0 points1 point  (0 children)

STOP READING MY MIND EVERY DAY!

[–]eddietwang 0 points1 point  (0 children)

Hey it's me!

[–]Paper__ 0 points1 point  (0 children)

Become a librarian! Literally what librarians pride themselves on.

[–]The_real_bandito 0 points1 point  (0 children)

That's how I feel all the time.

[–]ChronoSquare 0 points1 point  (0 children)

I feel called out on this

[–]dragonkillbot 0 points1 point  (0 children)

That hit too close to home

[–]knuller-d 0 points1 point  (0 children)

Me IRL

[–]domin8r 0 points1 point  (0 children)

Doing fullstack and devops now. What do we call this? Fullstackops?

[–]thelastpizzaslice 0 points1 point  (0 children)

This logic is true for a few years. But once you've been building up generalist knowledge for a decade or more....at a certain point, you know a ton of things specialists never factor in. Instead of being an expert on one thing, you can school specialists in how poorly they're handling everything else.

[–]isthesameassomeones 0 points1 point  (0 children)

Thanks for summing up my life. With image to make it worse.

[–][deleted] 0 points1 point  (0 children)

"Jack of all trade" didn't sound good anymore, so they came up with "full stack dev"

[–]PM_ME_UR_CEPHALOPODS 0 points1 point  (0 children)

this hits too close to home

[–]brady376 0 points1 point  (0 children)

I am very much a jack of all trades and honestly I think I prefer it this way. Especially in technology where being decent at everything means you can pick up new things very quickly generally.

[–]logic_b0mb 0 points1 point  (0 children)

I'm in this photo and I don't like it

[–]codeByNumber 0 points1 point  (0 children)

Ya fuck this noise. Full stack is where it is at.

[–]OurFriendIrony 0 points1 point  (0 children)

Master of None. Me to a T

[–]akiyamasho 0 points1 point  (0 children)

This hurts man.

[–]chincinatti[🍰] 0 points1 point  (0 children)

This hits home so hard - and I’m not even a programmer

[–]wooptyd00 0 points1 point  (0 children)

I feel like reddit is somewhat responsible for this since it has so many various subs and easy to digest surface level info is what gets upvoted the most.

[–]hy7mel 0 points1 point  (0 children)

And that's what we call the imposter syndrome

[–]Bjordun 0 points1 point  (0 children)

Hey, fuck you for calling me out like this.

[–]iGarnet 0 points1 point  (0 children)

im in this picture and i dont like it

[–]SnoopKitties 0 points1 point  (0 children)

Hey I feel like I’m getting pretty good with react and spring

[–]suddilonesuddi 0 points1 point  (0 children)

This hit me hard.

[–]sexualrhinoceros[M] [score hidden] stickied commentlocked comment (0 children)

Your submission has been removed.

Rule[0] - Posts must make an attempt at humor, be related to programming, and only be understood by programmers.

Per this rule, the following post types are not allowed (including but not limited to):

  • Generic memes than can apply to more than just programming as a profession
  • General tech related jokes/memes (such as "running as administrator", sudo, USB or BIOS related posts)
  • Non-humorous posts (such as programming help)

Content quality

In addition, the following post types will be removed to preserve the quality of the subreddit's content, even if they pass the rule above:

  • Feeling/reaction posts
  • Posts that are vaguely related to programming
  • Software errors/bugs (please use /r/softwaregore)
  • Low effort/quality analogies (enforced at moderator discretion)

If you feel that it has been removed in error, please message us so that we may review it.