Details
Joined devRant on 5/13/2016
Join devRant
Do all the things like
++ or -- rants, post your own rants, comment on others' rants and build your customized dev avatar
Sign Up
Pipeless API
From the creators of devRant, Pipeless lets you power real-time personalized recommendations and activity feeds using a simple API
Learn More
-
A young guy I work with burst into tears today, I had no idea what happened so I tried to comfort him and ask what was up.
It appears his main client had gone nuts with him because they wanted him to make an internet toolbar (think Ask.com) and he politely informed them toolbars doesn't really exist anymore and it wouldn't work on things like modern browsers or mobile devices.
Being given a polite but honest opinion was obviously something the client wasn't used to and knowing the guy was a young and fairly inexperienced, they started throwing very personal insults and asking him exactly what he knows about things (a lot more than them).
So being the big, bold, handsome senior developer I am, I immediately phoned the client back and told them to either come speak to me face-to-face and apologise to him in person or we'd terminate there contract with immediate effect. They're coming down tomorrow...
So part my rant, part a rant on behalf of a young developer who did nothing wrong and was treated like shit, I think we've all been there.
We'll see how this goes! Who the hell wants a toolbar anyway?!401 -
As a developer, sometimes you hammer away on some useless solo side project for a few weeks. Maybe a small game, a web interface for your home-built storage server, or an app to turn your living room lights on an off.
I often see these posts and graphs here about motivation, about a desire to conceive perfection. You want to create a self-hosted Spotify clone "but better", or you set out to make the best todo app for iOS ever written.
These rants and memes often highlight how you start with this incredible drive, how your code is perfectly clean when you begin. Then it all oscillates between states of panic and surprise, sweat, tears and euphoria, an end in a disillusioned stare at the tangled mess you created, to gather dust forever in some private repository.
Writing a physics engine from scratch was harder than you expected. You needed a lot of ugly code to get your admin panel working in Safari. Some other shiny idea came along, and you decided to bite, even though you feel a burning guilt about the ever growing pile of unfinished failures.
All I want to say is:
No time was lost.
This is how senior developers are born. You strengthen your brain, the calluses on your mind provide you with perseverance to solve problems. Even if (no, *especially* if) you gave up on your project.
Eventually, giving up is good, it's a sign of wisdom an flexibility to focus on the broader domain again.
One of the things I love about failures is how varied they tend to be, how they force you to start seeing overarching patterns.
You don't notice the things you take back from your failures, they slip back sticking to you, undetected.
You get intuitions for strengths and weaknesses in patterns. Whenever you're matching two sparse ordered indexed lists, there's this corner of your brain lighting up on how to do it efficiently. You realize it's not the ORMs which suck, it's the fundamental object-relational impedance mismatch existing in all languages which causes problems, and you feel your fingers tingling whenever you encounter its effects in the future, ready to dive in ever so slightly deeper.
You notice you can suddenly solve completely abstract data problems using the pathfinding logic from your failed game. You realize you can use vector calculations from your physics engine to compare similarities in psychological behavior. You never understood trigonometry in high school, but while building a a deficient robotic Arduino abomination it suddenly started making sense.
You're building intuitions, continuously. These intuitions are grooves which become deeper each time you encounter fundamental patterns. The more variation in environments and topics you expose yourself to, the more permanent these associations become.
Failure is inconsequential, failure even deserves respect, failure builds intuition about patterns. Every single epiphany about similarity in patterns is an incredible victory.
Please, for the love of code...
Start and fail as many projects as you can.30 -
I put a lot of work into trying to explain to you muggles what I do all day in a way you can understand (it's hard, trust me) and you still reject it as boring nerd crap. I'm sick of it! What if you told me working at that restaurant is "putting water on plates, wiping it off, and putting meat and cheese between slices of bread" and I said "wtf is that, and who cares?" Wouldn't that hurt your feelings, that I didn't even attempt to make a connection with you, friend? That I didn't even attempt to step outside my experience to meet yours? Isn't it equally insulting how far you have to dumb it down, just for me to lose interest entirely? And yes, I know that's not your specific task. That only proves my point further.
And why, exactly? Conceptually, you handle pre-digested poop all day.
_I teach plastic to think._ Sometimes it even thinks better than you do.
How is my job less interesting?
And what's more, why does EVERYONE seem to think so?
How do you expect people like me to keep your iPhones, bank accounts, and self-driving cars working if you alienate us like an alternate species for building those things? I mean really. You people treat us with a disinterest harmonious with homophobia. "Don't ask, don't tell." Except you do ask. And then you condescend as if working with my brain makes me less worthy of your attention than your exciting minimum-wage restaurant job.
Have fun with that, by the way.
Oh, and you're welcome for <object I fixed that wasn't really broken>. Maybe next time, just google it.
I know you won't.24 -
Dear people who complain about spending a whole night to find a tiny syntax error; Every time I read one of your rants, I feel like a part of me dies.
As a developer, your job is to create elegant optimized rivers of data, to puzzle with interesting algorithmic problems, to craft beautiful mappings from user input to computer storage and back.
You should strive to write code like a Michelangelo, not like a house painter.
You're arguing about indentation or getting annoyed by a project with braces on the same line as the method name. You're struggling with semicolons, misplaced braces or wrongly spelled keywords.
You're bitching about the medium of your paint, about the hardness of the marble -- when you should be lamenting the absence of your muse or the struggle to capture the essence of elegance in your work.
In other words:
Fix your fucking mindset, and fix your fucking tools. Don't fucking rant about your tabs and spaces. Stop fucking screaming how your bloated swiss-army-knife text editor is soooo much better than a purpose-built IDE, if it fails to draw something red and obnoxious around your fuck ups.
Thanks.62 -
Boss: “Do you think you can work on Saturday? We really need the help.”
Me: “Yes, of course.”
Boss: “Great, thank you.”
Me: “I’ll probably be late, though, as public transport is slow on the weekends.”
Boss: “Okay, when do you think you will be at the office?”
Me: “Monday”.17 -
When people tell me their problems I immediately start coming up with solutions when really they just want sympathy.15
-
Today in algebra I got bored and wrote "<hand>" on the back of my hand and "</hand>" on the top of my wrist, I feel proud of myself and I also question why I do things like this.4
-
!rant
I'm at a club and browsing devRant whilst my friends are getting drunk.
I guess I'm really an introvert and a huge nerd.3 -
@dfox
!rant, it's the Feature request
Possibility to post `a code snippet with monospaced font` would be usefull.
Or even
```
def multiline_code():
from 2 to Inf:
"Lines of code"
```
Sth like in markdown.9 -
So, I wasn't invited to the caffeine-and-sugar-back-patting orgy (4+ hour meeting, I kid you not), despite the fact I've poured a shitastical amount of time and energy into the stuff they were talking about, and I actually accomplished a lot of useful stuff too (not that they would know, most (including the boss) have shown little to no interest)...
Telling it like it is, which I did at previous occasions, would probably have ruined all the positive energy.
Oh, am I glad I'm quitting (I got a new, better job at a company that seems to know what they're doing). -
Always put yourself out of your comfort zone. Always. It's the main source of both anxiety and personal growth. Don't think that you're a fraud because you can't understand the new stuff right away, how else would you learn? Looking back you should always be impressed on how much you've covered, but still have anxiety of what's to come.4
-
The new IT lady of my previous company told me this:
"Hi, the Internet is not working"
"ok, did you make any recent changes to the router?"
"I didn't touch the router. I removed the switch in between so the internet should still work"
"You removed the switch"
"yeah but I didn't touch the router so what's the problem blah blah blah"
🙄7 -
For anyone who has watched black mirror, our profiles being incremented on here reminds me of their system on the show. We even get rewards for having higher ranks7
-
At one of my former jobs, I had a four-day-week. I remember once being called on my free Friday by an agitated colleague of mine arguing that I crashed the entire application on the staging environment and I shall fix it that very day.
I refused. It was my free day after all and I had made plans. Yet I told him: OK, I take a look at it in Sunday and see what all the fuzz is all about. Because I honestly could fathom what big issue I could have caused.
On that Sunday, I realized that the feature I implemented worked as expected. And it took me two minutes to realize the problem: It was a minor thing, as it so often is: If the user was not logged in, instead of a user object, null got passed somewhere and boom -- 500 error screen. Some older feature broke due to some of my changes and I never noticed it as while I was developing I was always in a logged in state and I never bothered to test that feature as I assumed it working. Only my boss was not logged in when testing on the stage environment, and so he ran into it.
So what really pushed my buttons was:
It was not a bug. It was a regression.
Why is that distinction important?
My boss tried to guilt me into admitting that I did not deliver quality software. Yet he was the one explicitly forbidding me to write tests for that software. Well, this is what you get then! You pay in the long run by strange bugs, hotfixes, and annoyed developers. I salute you! :/
Yet I did not fix the bug right away. I could have. It would have just taken me just another two minutes again. Yet for once, instead of doing it quickly, I did it right: I, albeit unfamiliar with writing tests, searched for a way to write a test for that case. It came not easy for me as I was not accustomed to writing tests, and the solution I came up with a functional test not that ideal, as it required certain content to be in the database. But in the end, it worked good enough: I had a failing test. And then I made it pass again. That made the whole ordeal worthwhile to me. (Also the realization that that very Sunday, alone in that office, was one of the most productive since a long while really made me reflect my job choice.)
At the following Monday I just entered the office for the stand-up to declare that I fixed the regression and that I won't take responsibility for that crash on the staging environment. If you don't let me write test, don't expect me to test the entire application again and again. I don't want to ensure that the existing software doesn't break. That's what tests are for. Don't try to blame me for not having tests on critical infrastructure. And that's all I did on Monday. I have a policy to not do long hours, and when I do due to an "emergency", I will get my free time back another day. And so I went home that Monday right after the stand-up.
Do I even need to spell it out that I made a requirement for my next job to have a culture that requires testing? I did, and never looked back and I grew a lot as a developer.
I have familiarized myself with both the wonderful world of unit and acceptance testing. And deploying suddenly becomes cheap and easy. Sure, there sometimes are problems. But almost always they are related to infrastructure and not the underlying code base. (And yeah, sometimes you have randomly failing tests, but that's for another rant.)9 -
Worst meeting I’ve been in?
Transitioning from an old system, the CEO said “We will transition on June 30th of next year or … heads … will … roll.”
Everyone knew what ‘heads will roll’ meant.
I wasn’t particularly worried because 90% of my work would be completed by December, the rest would be completed by the users (data transfers, etc.). Realistically, no reason we couldn’t transition by April or May.
June 15th comes around – CEO calls a meeting (managers, VPs, kind of a big deal) because we’re nowhere close to turning on the new system. Needless to say, I was a bit nervous, but my part had been done since November. I worked late nights, weekends, early mornings…I killed myself making sure the system was 100% ready.
CEO starts asking the different managers about what is taking so long…
Mgr-1: ”Well, we aren’t easily able to map our old customer records into the new system. The new system is too hard to use and taking a long time.”
Mgr-2: “We can’t reconcile until the customer records are in the database.”
Mgr-3: “We can’t proof the purchase orders until the customer accounts are reconciled.”
The ‘waiting on him/her’ excuse went around the room.
At this point, couple of the VPs look over at me …I felt like I just turned white …oh crap…I’m going to get fired because all these –bleep-holes just threw me under the bus.
CEO listens…nods…looks at my boss..
CEO: “OK, move the due date out 6 more months. Have your team help out in any way they can. I want this new system working correctly no matter how long it takes. If we need to move the date again, we just do.”
Part of me was relieved, other part was looking for a flame thrower. I worked myself to the bone, risked my marriage (in hindsight, I was not a nice person to her during that time), probably had an ulcer, and these sorry excuse for human beings dragged their asses for months and there was zero accountability.
That meeting was over 15 years ago and it bothered me so much I still remember the CEO was wearing a green button up shirt, khaki pants, and drinking coffee from a Break Time coffee cup.
Upside? Over the next couple of years, every one of those managers either quit or got fired.4 -
Me being lazy, I wasn't able to end any learning series. Tried again with Java using YouTube videos. Feel asleep after 30 minutes, but the entire series kept running in the background.
After waking up I could understand great part of object based coding.
I seriously think that thanks to that now I know how to code. Like magic.1 -
Things I wish I could tell my 18 year old self.
1) Accept you will make mistakes.
2) Truly learn the language you are using.
3) Write idiomatic code for the language you are using.
4) Be upfront about not knowing something.
5) Don't let not knowing something stop you from learning it.
6) None of us knew X until we learned it.
7) Understand your strengths and weaknesses as a developer, play to them.
8) Be willing to try new things.
9) X language isn't ALWAYS the best choice, X paradigm isn't ALWAYS the best choice. Choose wisely.
10) You won't know everything, but you might know more than others.
11) Your ideas and ego don't matter more than ensuring the product works.
12) "Perfection is the enemy of the good [enough]" - Voltaire
13) "Perfection is not achieved when there's nothing more to add, but when there's nothing more to remove." - Einstein.
14) Conflicts happen, deal with it.
15) Develop a toolset and really learn them.
16) Try new tools, they may prove better than what you were using.
17) Don't manage your own memory unless you absolutely have to, you are probably not smarter than the collective intelligence of the team that built the various garbage collection methods.
18) People can be dicks, especially online.
19) If you are new and people are being dicks to you, did you skip past the irc message about etiquette? If you did, you're the dick in this situation.
20) It can be tough, but it is fun, so have fun!6 -
When I started to learn functional programming I asked myself: "What the hell is this?"
Fast forward a couple of years, I still wonder what 'this' is.7