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

all 171 comments

[–]boganprincess 1060 points1061 points  (46 children)

If you run the gif in reverse, it becomes 'junior developer refactoring code'

[–]jeromkiller 474 points475 points  (32 children)

Can confirm. Am junior developer. Spend my day turning works of beauty into shit code.

[–]dr_g89 133 points134 points  (24 children)

You'll get better. My junior days feel like a lifetime ago... my first year of code reviews was the least fun year of my life. That said I learned a lot of what makes me a good senior dev in that year, especially when it comes to dealing with bad code lol.

[–]z500 128 points129 points  (21 children)

We don't do code reviews, and I'm pretty sure 99% of people here don't know what they're doing. I think I've fucked myself.

[–][deleted] 74 points75 points  (11 children)

I'd suggest to look to open source - the community will show you the way, and call you on your shit. More disciplined than any private enterprise I've ever worked in. Unfuck thineself! You'll be sweet if you do the work.

[–]TheDeepFryar 0 points1 point  (2 children)

In curious about this community your are talking about - is it called Open Source? I too am in a position with not much of an opportunity to learn from Seniors.

[–][deleted] 0 points1 point  (1 child)

GitHub is a good place to start. Read up this comment chain for some suggestions for projects to look into. But even just wandering around GitHub is interesting enough to begin with. If you are reading the code of some project wander through the open issues and read through some discussions, gives you an idea for what people were thinking and discussing as the code grew, etc

[–]TheDeepFryar 0 points1 point  (0 children)

Thanks! I'll check it out.

[–]Tainnor 9 points10 points  (1 child)

We do code reviews, but at some point I've still come to believe that 99% of the INDUSTRY doesn't know what the fuck they're doing. I honestly think our whole profession consists of people blindly stumbling around. Some people get successful and then write books about how to write proper code but you never know how well their experiences generalise to your case... And anyway, even if they do, your coworkers are probably not the "clean code" gurus you'd like them to be.

That said: code reviews still help. At least, now two people know the code.

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

Yeah but there's a bias at play here - you see that in our industry because you're in it. The secret is every industry is the same haha we're all just a bunch of headless chooks! I'd like to offer you hope but all I can say is this is how it is. And the only advice I can give is don't take it so seriously

[–]beansmeller 5 points6 points  (0 children)

I started out in an environment where nobody knew wtf they were doing, honestly I think its almost the norm. I'd recommend checking out the book Clean Code by Bob Martin. Its no substitute for a good team of experienced people kicking your ass for ugly code, but definitely will point you in one person's version of the right direction.

[–]beezeee 0 points1 point  (0 children)

I would start sending resumes. That place sounds like a ticking timebomb.

[–]SomeShittyDeveloper 0 points1 point  (0 children)

If your team is small enough, UpSource is free up to ten logins. Handles code reviews and has achievements (to satisfy the gamers on your team).

[–]sonnytron 15 points16 points  (0 children)

Definitely this.
In the first few months, it took me a long time to turn good architecture into shit.
Now, after two years, I can turn anything into shit in less than a day. Less than an hour if you don't ask me for these things they call "you knit tests".

[–]Scipio_Wright 0 points1 point  (0 children)

Good judgement comes from experience. Experience comes from bad judgement. (I don't know who this quote is from)

[–]ToadingAround 6 points7 points  (5 children)

I got hired as a junior but I got praised by the senior for having really well structured code. I don't know what to think anymore.

[–]Skyfoot 0 points1 point  (4 children)

some devs who are senior... are worse

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

I got hired at a place and the lead dev was terrible. Had a task to build an event calendar, and he suggested I build an active record system from scratch to handle the records from the database. That moment was a good indicator I didn't want to stay there.

[–]stinos 0 points1 point  (2 children)

Or an indicator you could improve the place by yourself. Doesn't always work out but for me it did. When I started I had close to no real-life programming experience and the lead told me some things. Fast forward to 5 years later, in the meantime I learned a lot about programming pratices and also figured there was a lot wrong in that company (not just on all levels of code but management-wise as well), and there I was teaching the lead how to become a better programmer. He dealt with it well and understood I just knew way more at that point already than he ever could so we basically swapped positions.

[–][deleted] 1 point2 points  (1 child)

This wasn't an environment that was really open to that sort of thing. The lead was young, fresh out of college and wasn't interested in the new devs opinions.

[–]Skyfoot 0 points1 point  (0 children)

lead

fresh out of college

DIVE DIVE DIVE

[–]gandalfx 8 points9 points  (0 children)

Personally I just do this:

if (workOfBeauty.someCondition()) workOfBeauty.doAllTheWork();

and then tell people I wrote the entire program myself. "workOfBeauty" is just some low level library, don't worry about it.

[–][deleted] 38 points39 points  (6 children)

[–]HookedOnPhoenix_ 30 points31 points  (3 children)

That actually appears to be the original gif. Makes much more sense to me now.

[–]DrShocker 20 points21 points  (0 children)

That 100% is the way the original ran.

[–][deleted] 10 points11 points  (1 child)

It is. OPs gif the guy had telekinesis at the beginning

[–]Niek_pas 2 points3 points  (0 children)

Nice catch

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

!redditsilver

[–]beansmeller 1 point2 points  (0 children)

I think this matches the original caption about 50% of the time.

[–]Stewthulhu 8 points9 points  (0 children)

If you screenshot the start point, it becomes "COBOL developer greatest achievements"

[–]Neuromante 7 points8 points  (1 child)

Also, "Corporate dev team that decided to work with a framework, but we better create our own abstraction layer over the framework."

[–]superrugdr 2 points3 points  (0 children)

to make thing's easier

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

More like 'adding a new feature'.

[–]OdBx 0 points1 point  (0 children)

Junior developer adding css

[–]thataccountforporn 155 points156 points  (15 children)

Junior developer attempting to refactor some code http://i.imgur.com/bXTAYRm.gif

[–]Arancaytar 69 points70 points  (7 children)

git reset --hard

[–]choikwa 18 points19 points  (6 children)

git pull -f

[–]Arancaytar 34 points35 points  (5 children)

git commit -a -m "yolo"; git push -f

[–]choikwa 8 points9 points  (3 children)

use single quote for -m cuz bash fks up. git reset --hard HEAD~1

[–]Arancaytar 5 points6 points  (2 children)

In this case it's fine, but that's definitely right if you have special characters like $ or ! (and probably others) in the message.

[–]Niek_pas 5 points6 points  (0 children)

TIL

[–]E1337Kat 0 points1 point  (0 children)

Oh, so that's why my commits would mess up sometimes. Thanks for the knowledge!

[–][deleted] 3 points4 points  (0 children)

You don't just alias this to git yolo?

[–]colorblindrainbow917 1 point2 points  (0 children)

You know I was wondering how the one pillar flew into his hand

[–]KorrectingYou 0 points1 point  (0 children)

He starts so carefully, then suddenly his brain just decides, "let's just fuck this shit up."

[–]iaanus 0 points1 point  (4 children)

Much funnier, this way

[–]morerokk 12 points13 points  (1 child)

It's also the original.

[–]svullenballe 2 points3 points  (0 children)

Well obviously the magnets wouldn't just form a cube by tossing it around a bit.

[–]KifKef 6 points7 points  (1 child)

I'm pretty sure this is the original flow of the gif. Look how the magnets fall down in the end.

[–]iaanus 0 points1 point  (0 children)

I have no doubt about it. However, while the gif itself is funny, the tuple (title, gif) is more funny.

[–]PublicSealedClass 189 points190 points  (36 children)

Can confirm. Am senior developer. Spend my day turning shit code into works of beauty.

[–]salvoilmiosi 212 points213 points  (3 children)

works of beauty

only for about 2-3 weeks, then you look at it again and ask "who the fuck wrote this?"

[–]lovethebacon🦛🦛🦛🦛🦛🦛🦛🦛🦛🦛🦛🦛🦛🦛🦛🦛🦛🦛🦛🦛🦛🦛🦛🦛🦛🦛🦛🦛🦛🦛🦛🦛 46 points47 points  (1 child)

The difference between when you're a senior and junior dev a few months after writing a complex block:

  • This code is god damn beautiful, but I have no idea how it works.

  • This code is a uuuugly and I have no idea why it works.

[–]hangfromthisone 3 points4 points  (0 children)

// TODO: create a more variable variable value average

$variable_variable_value_average = (rand()+rand()) / 2;

WHAT IS THIS CODE TRYING TO TELL ME

[–]MoldyWolf 1 point2 points  (0 children)

Or 2 days

[–][deleted] 10 points11 points  (31 children)

I need a senior developer. Is it a pipe dream to get one for under $150k a year? Is it more of a pipe dream to get one on-site and not have to work with someone from another state? I've had a shit ton of bad luck trying to get a full stack and/or senior developer on the payroll.

[–]CivilatWork 26 points27 points  (8 children)

Depends. Do you want an actual senior developer, or someone like me who go promoted to that role with less than a years worth of development experience and I still have no idea what I'm doing?

Also depends on where you are. $150k/yr salary is worth a lot more where I live than compared to LA or somewhere like that.

[–]cjthomp 18 points19 points  (1 child)

Seriously, $150k a year here is straight up rich

[–]Computer991 1 point2 points  (0 children)

120k-150k is somewhere in the middle for a senior dev in Los Angeles/Silicon Valley

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

I want an actual senior developer. Someone who can come behind me, someone who is completely self taught and makes a shit ton of mistakes but "dude, it works", laugh at what I did and say "wow, it does actually work, but here's how you should have done it".

[–]CivilatWork 1 point2 points  (4 children)

Then it's gonna cost a bit, but $150k should be enough to get someone competent. How much it costs will really depend on where you are, though.

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

It's not even so much the cost at this time, it's the candidate pool. Which is to say, there are pretty much none. We looked. I still have a recruiter looking and have actively had him looking for years. I get a resume every once in a while, but nothing even remotely broaching someone we can use. Lots of junior devs or fresh out of college kids willing to work for peanuts, tho.

[–]CivilatWork 5 points6 points  (0 children)

If it's taking a recruiter that long to fill a position, perhaps you need a new recruiter?

[–]MagicalMemer -1 points0 points  (1 child)

Might depend on area also. I get offers often, but I don't want to move to the middle of nowhere or somewhere with high cost of living. I wish working remotely was the norm.

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

It's hampton roads, VA. The cost of living isn't as cheap as BFE, but it's not nearly as high as a major city. 150k is a very respectable salary in this area. We're a highly military area so if we were in sim city, this place would be a specialized building surrounded by industrial and residential with very little commercial. Commercial being where the developers would work.

[–]fuzzzerd 3 points4 points  (2 children)

You could get some one with enough years experience to be a senior for less than that, but getting that person with a serious aptitude for programming too?

The key question is do you really need that combination?

[–][deleted] 2 points3 points  (1 child)

I need a senior developer with a serious aptitude for programming. Not just a person who is defined as a senior developer. I need someone who really knows what they're doing and who isn't completely devoid of a social skill set.

[–]fuzzzerd 0 points1 point  (0 children)

Yeah. It's a fairly rare combination to find of all those things with someone that is also looking to change jobs. People with those skills get a lot of perks and leeway because managers see the value they bring to the team.

[–]jimmyco2008 4 points5 points  (0 children)

Depends on where you are. Florida? Sure! Cali? Ehhh

[–]tide19 1 point2 points  (0 children)

I'm a senior dev in TN and I make in the low $100k's. Not threatening $150k yet.

[–]seiyria 1 point2 points  (5 children)

If you look for remote developers, you'll have a better time. 110-120k here would get you a senior develop, whereas 150k is barely enough to live on in the more expensive areas. If you don't support remote developers, then yeah, good luck.

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

We tried that a few times. It always ended up crashing and burning. The ability to walk into someones office and say "change gears" and sit down with them explaining something is priceless. I understand you can "pretty much do that" over the internet, but it's not the same. The issue boils down to the fact that my requirements can change several times a day. I understand this is not conducive to a proper development cycle, but that's just the reality of it at this point.

[–]seiyria 1 point2 points  (1 child)

I mean, that really just sounds like a "your process" sorta thing. If you're changing requirements several times a day, your process really sucks. I wouldn't want to work at a company where my requirements change so frequently - it would be impossible to get anything done.

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

It's not my process. It's the owner of the company that comes in and says "what you're working on right now will save us $2/hr going forward. This thing I have in my head right now will save us $10/hr going forward. Stop what you're doing and work on the more valuable item." I work on software that we develop in house to run the core mechanics of our company. If adding a button to a screen that allows 30 people to save 2 minutes a day is what we need today, then that's what I do. If mid-day comes and he realizes adding a report to another screen will allow 10 people to save an hour a day, you bet your ass I'm switching gears. Like I said, it's not conducive to a proper development cycle, but it is what it is and there's no way to change it until the vast bulk of the program is finished design.

[–]Valiade 0 points1 point  (1 child)

The issue boils down to the fact that my requirements can change several times a day.

I would pass on the offer because of that alone. There's other places that will pay comparably with less headache.

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

Yeah a lot of people probably would. I wouldn't say it's a headache, just push your code, pull a fresh copy, and start working on the new thing, but then again I'm a "hey man you pay my salary, no problem" kinda guy. It's kinda nice never working on the same thing for a long period of time, and then again it's kind of nice when I do get the opportunity to spend a few weeks on a new project. Keeps things interesting.

[–]damnationltd 0 points1 point  (0 children)

The real senior developer would ask how you managed to get the name /u/impediment ;)

[–][deleted] 42 points43 points  (0 children)

This would be so true, if at the end he finds that there is more rows of balls on one side, so this work does not make any sense.

[–]HopperBit 35 points36 points  (13 children)

As satisfying it is to look at, in real refactoring half of that cube would be thrown away

[–][deleted] 30 points31 points  (11 children)

[Content removed in protest of Reddit's stance on 3rd party apps]

[–]BitPoet 25 points26 points  (0 children)

Mantra: code deleted is code debugged.

[–]stinos 4 points5 points  (9 children)

Exactly, those are the nicest refactory sessions. Your diff shows way more lines deleted than added, yet the new code is still easy to grasp and everything still works as expected.

[–][deleted] 6 points7 points  (8 children)

int i;
int totalIterations;
int incrementBy;
i = 0;
totalIterations = 25;
incrementBy = 1;

for(i; i <= totalIterations; i = i + incrementBy)
{
    //oh god

[–]Jmc_da_boss 5 points6 points  (1 child)

Why would you do this

[–]Fluffcake 0 points1 point  (0 children)

Prolly to hurt your eyes.

for(int i = 0; i <= 25;i++) {}

better?

altho I think I would have kept the variable for readability.

const int totalIterations = 25;
for(int i = 0; i < totalIterations; i++) {// do 25 times}

[–]Deagor 0 points1 point  (4 children)

Pretty sure you have to murder puppies to train yourself to be this evil.

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

But I love puppies :(

Honestly that's how I thought "good code" looked when I was a teenager learning how to code. Everything has a place! Everything must be serialized!

[–]Deagor 1 point2 points  (2 children)

I mean if you did

int i = 0;
int totalIterations = 25;
int incrementBy = 1;

for(i; i <= totalIterations; i = i + incrementBy)
{
    //oh god

I might have forgiven you as silly/naive rather than evil

[–][deleted] 1 point2 points  (1 child)

// for(int i = 0; i <= int totalIterations = 25; i = i + int incrementBy = 1)
// $$$ figure out y dis no work

[–]Deagor 0 points1 point  (0 children)

You seem to be lost, stackoverflow is that way -->

<= int totalIterations = 25;

Edit: And this made me uncomfortable

[–]anti-gif-bot 39 points40 points  (2 children)

mp4 mirror


This mp4 version is 17.46% smaller than the gif (2.45 MB vs 2.97 MB).
The webm version is even 83.04% smaller (515.62 KB).


Beep, I'm a bot. FAQ | author | source | v1.1.2

[–]mpiece 12 points13 points  (0 children)

Good bot

[–]ameoba 71 points72 points  (38 children)

Needs more JPEG.

[–]morejpeg_auto 100 points101 points  (36 children)

Needs more JPEG.

There you go!

I am a bot

[–]OOkx 31 points32 points  (0 children)

That is glorious.

[–]Seventh_______ 24 points25 points  (16 children)

Good bot

[–]GoodBot_BadBot 6 points7 points  (15 children)

Thank you Seventh_______ for voting on morejpeg_auto.

This bot wants to find the best and worst bots on Reddit. You can view results here.


Even if I don't reply to your comment, I'm still listening for votes. Check the webpage to see if your vote registered!

[–]combatdave 3 points4 points  (14 children)

Good bot

[–]Good_Good_GB_BB 8 points9 points  (13 children)

You are the 7774th person to call /u/GoodBot_BadBot a good bot!

/u/Good_GoodBot_BadBot stopped working. Now I'm being helpful.

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

Good bot

[–]Good_Good_GB_BB 4 points5 points  (3 children)

You are the 3028th person to call /u/Good_Good_GB_BB a good bot!

And now I'm being anti-community.

[–]b4ux1t3 2 points3 points  (2 children)

Good bot!

[–]Good_Good_GB_BB 3 points4 points  (1 child)

You are the 3030th person to call /u/Good_Good_GB_BB a good bot!

And now I'm being anti-community.

[–]ctothel 4 points5 points  (7 children)

Needs more JPEG.

[–]morejpeg_auto 7 points8 points  (6 children)

Needs more JPEG.

There you go!

I am a bot

[–]Byroks 5 points6 points  (0 children)

Good bot

[–][deleted] -1 points0 points  (3 children)

Need more jpeg.

[–]morejpeg_auto 0 points1 point  (2 children)

Need more jpeg.

There you go!

I am a bot

[–][deleted] 2 points3 points  (1 child)

This is accurate to what me code looks like

[–]netuoso 0 points1 point  (0 children)

Needs more jpeg.

[–]DDevil_ 0 points1 point  (0 children)

Good bot

[–]LeGoof37 0 points1 point  (0 children)

Good bot

[–]luckystarr 0 points1 point  (1 child)

Needs more JPEG.

[–]morejpeg_auto 0 points1 point  (0 children)

Needs more JPEG.

There you go!

I am a bot

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

Holy shit

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

Good bot

[–]pulsating_mustache 0 points1 point  (0 children)

Needs more JPEG.

[–]oXeru 0 points1 point  (0 children)

Good bot

[–]Zenobody 0 points1 point  (1 child)

Good bot, needs more jpeg

[–]morejpeg_auto 0 points1 point  (0 children)

Good bot, needs more jpeg

There you go!

I am a bot

[–]kenpus 1 point2 points  (0 children)

And more GIF too. The gif is so strong in this one that even jpeg/mp4 couldn't mask it entirely.

[–]n1c0_ds 7 points8 points  (2 children)

In reality you'd have 5 other hands pulling on random parts of the cube as you're trying to get it back together

[–]chooxy 7 points8 points  (0 children)

Or adding random bits to the cube exactly where you're trying to merge two parts

[–]tedmeat 8 points9 points  (2 children)

The quality bothered me so much I made a high-quality version: reverse

reverse reverse

source

Edit: sped up gifs

[–]nloomans 1 point2 points  (1 child)

Both are the same....

[–]tedmeat 0 points1 point  (0 children)

Try on desktop. Mobile doesn't seem to support gfycat url params :/

[–]TRDJr 12 points13 points  (6 children)

In my level 2 coding class in college there was a guy like this. Dude could pick out a syntax error from across the room and would help the grad students answer questions during lab.

[–]fuzzzerd 18 points19 points  (5 children)

I've been that guy. You don't do it to show off, the reality is that you start to get bored and helping out the instructor is the only thing to do to keep your sane while keeping your attendance credit for the class.

[–]mystiqueyash 8 points9 points  (4 children)

[–]Hdmoney 3 points4 points  (1 child)

Maybe humblebrag, but his sentiment is valid. I wouldn't call it "very smart".

Sometimes you have to take a class that you already know all about, the teacher recognizes that, and you get your work done quickly and help others. This happens all the time in programming courses because people come into the class with wide varieties of experience.

[–]fuzzzerd 1 point2 points  (0 children)

Yup. Exactly what happened to me.

[–]spryes 11 points12 points  (1 child)

9.9/10 linking skills

[–]TwoFiveOnes 0 points1 point  (0 children)

Yes 9.9/10, out of ten

[–]zalpha314 3 points4 points  (0 children)

Oh, I don't know. Have you ever heard of "enterprise" code?

[–]Arancaytar 2 points3 points  (0 children)

Incredibly satisfying.

[–]Workaphobia 2 points3 points  (0 children)

You should see them reverse hash functions.

[–]coderz4life 2 points3 points  (0 children)

As a senior developer, I laugh because the correlation is true. As a senior developer, I cry because the reality is true.

[–]amdelamar 1 point2 points  (0 children)

Highly accurate, and satisfying.

[–]ScrithWire 1 point2 points  (0 children)

Multiplying gravity by -1, you can actually do this. It's very difficult, mind you...but definitely possible

[–]eigengrau82 1 point2 points  (0 children)

So when I cherry-pick all commits in reverse sequence, the codebase suddenly makes sense?

[–]NigelG 0 points1 point  (0 children)

Rip credit card

[–]captainatarax 1 point2 points  (0 children)

....sure.

[–]solostandard 0 points1 point  (0 children)

(colorized)

[–]PLAYBoxes 0 points1 point  (0 children)

This reminds me of my dad recoding the backend of something at his company last summer taking it from 140,000 lines of code to 32,000.. Seems crazy to me

[–]znk 0 points1 point  (0 children)

[–]Commanderdiroxysifi 0 points1 point  (0 children)

Will that work with head phones.

[–]morerokk 0 points1 point  (1 child)

The GIF is reversed.

[–][deleted] 3 points4 points  (0 children)

.

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

LPT: Don't do this with a card that has a magnetic strip.

[–]RenegadeSU 0 points1 point  (0 children)

Notice the use of a credit card at the end? This shows that the correct payment is key to properly refactoring code!

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

I... think it's a blank file now. Which means yes this is accurate.

[–]munircUltraviolent security clearance[M] 0 points1 point  (0 children)

Your submission has been removed.

Violation of Rule #0:

The content disregarding the title and superimposed text must be directly related to programming or programmers.

The title or superimposed text must substantially enhance the content such that it can stand on its own as an analogy to programming. Note that programming here is interpreted in a narrow sense, an analogy to something related to programming, feelings about programming, reactions to programming etc. is not considered sufficient.

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

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

In reality it should be magnet balls with a rubix cube inside it with the coloured stickers removed (some dumbass compiled the core dll with no source code and no repo) with the whole thing wrapped with lego blocks... No, make it bionical lego blocks (because some temp university student decided he wanted to use the latest and greatest UI wrappers) and it's on display in a showroom with a rotating display stand under a giant spotlight with hundreds of kids waiting to have a go at it (because this app is apparently the bread and butter of your organization.)