Anonymous Confessions from Programmers.
I work at a tech mega corp and our development environment is an internally built web app/cms/ace editor ide that doesn't live under version control. Checking our code into the companies version control system is our "launch process". I'm actually impressed by how ridiculously stupid the dev workflow is here... but what do I know? I'm just a front end developer.
I was supposed to learn Scheme over the summer in preparation for my senior year of college.
Yesterday I went to a "meetup" of devs on my programming language. I felt like such a clown!, didn't understand what they were talking about!, most things just went above my head!... Then asked the people around me and they didn't get it either. I think is normal?, any way now to learn about functional programming, and a thousand more things... hate feeling this ignorant!
I've stopped fighting to get priority on my devops tasks. Now I just file a ticket and let it languish until the inevitable production failures occur. Maybe a few more avoidable failures will embarrass management into giving a shit.
"That won't work [I don't understand]" "We tried that already [not really]". I'm done hearing it, I've got my cowboy hat and stirrups on.
I hate this industry. What I can't get over nowadays is the temporality of our work. There's a saying that "All code will become legacy code one day" that means everything I'm working on today that I am proud of will one day be obsolete and mean absolutely jack shit. Code that I have previously written and been proud of is already obsolete and means jacks shit. What's the point? The paycheck. Awesome...
I am not being assigned any development work (most assigned work is fiddling around with servers and pointless client meetings) so I work on my own open source project during the day, remote in after work and commit it so it looks like I am working furiously on the project during the night.
I stopped giving shit to our project when our project manager always change the requirements when we already finish the tasked.
I enjoy deleting other people's code. The more code, work and effort they have put into it, the more I enjoy it. I'm talking about useless code like where a library should have been used instead of writing the code from scratch, or some pointless software pattern has been blindly followed when really all that was needed was one or two simple lines of code. I delete all their code and replace it with the (arguably more readable) minimal code.
I think that using 'goto' to break out of nested loops in languages that don't support label breaks is a perfectly legitimate use of the control structure.
The latest version of my CV contains my Stackoverflow-rep-count.
I just left a sprint planning session where once again the "write integration tests" task got left out due to delivery requirements. We have no integration testing whatsoever of our main (complex) core system. It was like that when I started (a few months ago), and it's still like that now. All testing is manual. I left inner shame that we did not fight harder with business to get bandwidth to create integration tests (admittedly a lot of work, for the first one due to all the legs this beast has).
I die a little inside every time I'm reviewing a pull request and see something along the lines of: variable = (condition that evaluates to a boolean) ? true : false; I usually end up not saying anything, as I think the people on that team probably wouldn't understand even if I did try to explain it.
Typically, I stop caring about features right around the time I fully understand them and realize that the design needs to change. So, if you can look past the few hacks I tacked on the end... my code is great.
I hate compromise and quick and dirty approaches to delivering features. We keep building piles of crap on top of other piles of crap. Being tired of it, I completely relinquished the control over one component of our system and isolated myself in the realm of two other components that I have complete control over. The end result - my components are working fine with manageable complexity, while that other component I gave up on is a freaking mess that has been holding back new releases for the last two months. And I've watched its failure with a sadistic pleasure.
My secret for making any app "look native" is making it look as close as possible to a wrapper off a loaf of Wonderbread.
I use P4 reviews to police anything in the depot I've worked on
I deeply and truly think that crashes are not optional at no development stage, and I actually code in such a way that they, basically, never happen. It's just a matter of self-training. I have no high regard for developers who are accepting or forgiving of crashes.
Finding it hard to contain my frustration. The build has been utterly decimated by a guy who committed a load of hacks and shortcuts after I spent months getting it into shape.
I expect any technology company whose product will exist in a codebase to market their name in a language-agnostic way, or better, acknowledge many different ways to write it for different languages. I'm looking at you, vCenter. Or, should I say, VCenter, v_center, v-center, and vcenter.
There's more lines of code copied from Stack Overflow posts in my codes than code actually wrote by me.
I think programers should either like programming, no matter what area of work or language, or shut up about it! Of course, this does not include bad bosses that make our lives hell.
I did a large refactor, and put code up for review, with no tests. The code had no tests to begin with, so I put in the description that I compared the outputs to validate my changes. This was right after lecturing my intern on the importance of integration testing, and the difference between unit and integration tests.
I asked my professor what YAML stood for and his head blew up.
I pride myself in having the shortest scrum/standup summary of my team... Nobody cares about my hard-to-trace NullPointer. I also play a game with myself during the meeting called "Who is peacocking the best today". This game entails discerning who is the biggest bullshitter for the day and guessing who it will be tomorrow.
I had a good design review today with people spanning multiple teams, and all I could think walking away was, "I wonder if they're all just being nice," even though I know that they're all quite vocal about things they don't like. Sometimes I wonder not if I'm OK at my job, but whether I'll ever *feel* good at it.
My superiors think I don't know how to write clean code, but the shameful truth is that I write dirty hacks to get the job done because I have too low of a salary to care and too much work to do to spend any time planning or refactoring. Every time I make a commit I feel bad for the poor guy/gal who will be looking at it when I find a better job.
I open source "generic" components of my company's proprietary software under my own GitHub profile, without the company knowing. I only do this if I wrote over 90% of the component myself.
I think web developpers who think they are programming "applications" should learn what an "application" is. In my opinion, this arrogance is one of the main reason the job offers are a mess nowadays
We have a big class (12k loc) responsible for performing incremental application and database updates. Today i debugged the monster line by line cause it didn't work anymore. After 6 hours I reached the end: //updater.executeUpdateChain(); Thx to my co-worker who wanted to save 20 seconds per deployment!
I feel like technology companies promote people to major in Computer Science to drive down salaries. But I'm just paranoid.
I confess that I've being studying CS since 2011, that is, I'm almost graduating and I dont feel confident about my programming skills. I actually dont consider myself a programmer and I constantly doubt about which carrer in CS I should take.
I spent 6 months trying to build a mobile app with Adobe Air because I thought having a single codebase for both ios and android would save time. It didn't.
I hop from language to language hoping to find one that will magically solve all my problems.
Our client has processed nearly 3 million dollars through a system we built with exactly 0 tests.
At my current job the guy who trained me impressed an "ONLY COMMIT WHEN YOU ARE FINISHED" workflow on me. He also said that it was important to not leave comments in code. I ignored the last bit, but have picked up some stupid habits to "keep the logs clean"
The application(s) running on various customers servers are taking daily backups of the database and everything as a security precaution. Today I noted that the feature is broken for every rollout since 12th Feb.
Sometimes I feel like I'm the developer version of some kinda anarchist punk band that has been singing for years about damning the man, and fighting for the greater good... then signed like a million dollar record deal to a major label, totally sold out, and writes songs for iPod commercials now.
I put a piece of code in all websites I do, that allows me to remotely delete files or anything similar on the website - if the customer decides not to pay or if he annoys me.. I feel guilty confessing that I also did it once, because I needed money, so I decided to screw with the index/server file (main) and they had me fix it.. Fastest $1100 ever made..
I write bad code (static, hardcode, spagetti.. you name it) for clients asking for something that OTHER developers can continue coding after my "job" is over.. Making them return continuously to me as no other dev wants to take the job. I don't feel quilty.
Sometimes I hate Windows. But most of the time, I just prefer Linux
I recently crashed our entire company server with almost 100 clients running productions, because the server-guy gave me root access and I hit enter at a wrong time.. I granted wrong access to all files and nothing was recoverable.. The takes weekly backups.. Clients lost a lot but no one knows the cause yet
I had never used git (Github) with multiple people until yesterday.. I always used it single-user - I shocked that it works so amazingly well! Oh.. yeah, and I work for a 3-4 years old company and I've recommended using git (or any version-control) for almost 2 years now.. I'm embarrassed that we've just started now, and I'm now searching a new job..
Nobody in my team knows why/how to switch branches in mercurial. Job's flexible hours and okay money though and I really stopped to care.
I follow the "commit early, commit often" philosophy. Not just because it's a good way of doing things, but because it looks good when my boss looks at the git logs.
Dojo is better than jQuery for non-trivial webapps. There. I said it.