Do all the things like ++ or -- rants, post your own rants, comment on others' rants and build your customized dev avatarSign Up
From the creators of devRant, Pipeless lets you power real-time personalized recommendations and activity feeds using a simple APILearn More
Search - "wk263"
"years of experience" basically means nothing, both for people and organisations. You can work with someone who has 30 years experience who knows nothing, and someone with 1-2 years who's practically an expert.
Joined a large multi-national fresh out of college, that had been around for +90 years. I expected them to know software development inside and out. Didn't expect to see so many failed projects for stupid reasons, so many over sights, so many .... morons, to be honest.
Worked for a startup company where most only had 1 or 2 years more experience than me and learned so much.
Worked for a small company where everyone had 1.5 - 2 times my experience, where I learned the meaning of "bewilderment".
Never feel small, or less valuable because of a number. Theres a good chance you are working with jackasses - practiseSafeHex12
My "programming" college...
Where I had to basically "unlearn" everything I knew about efficiency, organization and security in order to please my teacher...8
Programming in the middle of the woods and getting smashed by a running buck deer chasing a doe during mating season8
Most painful dev learning experience?
Learned that no matter hard you work, no matter how big the dragon you slain/slew, there are individuals out there waiting to tear you down. Not immediately, certainly not in front of you, and capable of going to extremes just to make themselves feel/look better.7
Worst dev experience….
Forgetting to use a private browser tab to look at porn….
Take my laptop to work the next day because the bosses want a rundown on seo and trends of the site….
Go to google type “ana…” hoping for the autocomplete of “analytics”, but no. I got “busty anal POV”….
On a 50” 4K screen, they all saw my auto-complete……15
I could bitch about XSLT again, as that was certainly painful, but that’s less about learning a skill and more about understanding someone else’s mental diarrhea, so let me pick something else.
My most painful learning experience was probably pointers, but not pointers in the usual sense of `char *ptr` in C and how they’re totally confusing at first. I mean, it was that too, but in addition it was how I had absolutely none of the background needed to understand them, not having any learning material (nor guidance), nor even a typical compiler to tell me what i was doing wrong — and on top of all of that, only being able to run code on a device that would crash/halt/freak out whenever i made a mistake. It was an absolute nightmare.
Here’s the story:
Someone gave me the game RACE for my TI-83 calculator, but it turned out to be an unlocked version, which means I could edit it and see the code. I discovered this later on by accident while trying to play it during class, and when I looked at it, all I saw was incomprehensible garbage. I closed it, and the game no longer worked. Looking back I must have changed something, but then I thought it was just magic. It took me a long time to get curious enough to look at it again.
But in the meantime, I ended up played with these “programs” a little, and made some really simple ones, and later some somewhat complex ones. So the next time I opened RACE again I kind of understood what it was doing.
Moving on, I spent a year learning TI-Basic, and eventually reached the limit of what it could do. Along the way, I learned that all of the really amazing games/utilities that were incredibly fast, had greyscale graphics, lowercase text, no runtime indicator, etc. were written in “Assembly,” so naturally I wanted to use that, too.
I had no idea what it was, but it was the obvious next step for me, so I started teaching myself. It was z80 Assembly, and there was practically no documents, resources, nothing helpful online.
I found the specs, and a few terrible docs and other sources, but with only one year of programming experience, I didn’t really understand what they were telling me. This was before stackoverflow, etc., too, so what little help I found was mostly from forum posts, IRC (mostly got ignored or made fun of), and reading other people’s source when I could find it. And usually that was less than clear.
And here’s where we dive into the specifics. Starting with so little experience, and in TI-Basic of all things, meant I had zero understanding of pointers, memory and addresses, the stack, heap, data structures, interrupts, clocks, etc. I had mastered everything TI-Basic offered, which astoundingly included arrays and matrices (six of each), but it hid everything else except basic logic and flow control. (No, there weren’t even functions; it has labels and goto.) It has 27 numeric variables (A-Z and theta, can store either float or complex numbers), 8 Lists (numeric arrays), 6 matricies (2d numeric arrays), 10 strings, and a few other things like “equations” and literal bitmap pictures.
Soo… I went from knowing only that to learning pointers. And pointer math. And data structures. And pointers to pointers, and the stack, and function calls, and all that goodness. And remember, I was learning and writing all of this in plain Assembly, in notepad (or on paper at school), not in C or C++ with a teacher, a textbook, SO, and an intelligent compiler with its incredibly helpful type checking and warnings. Just raw trial and error. I learned what I could from whatever cryptic sources I could find (and understand) online, and applied it.
But actually using what I learned? If a pointer was wrong, it resulted in unexpected behavior, memory corruption, freezes, etc. I didn’t have a debugger, an emulator, etc. I had notepad, the barebones compiler, and my calculator.
Also, iterating meant changing my code, recompiling, factory resetting my calculator (removing the battery for 30+ sec) because bugs usually froze it or corrupted something, then transferring the new program over, and finally running it. It was soo slowwwww. But I made steady progress.
Painful learning experience? Check.
Pointer hell? Absolutely.4
In my opinion you have to be a psychopath to actually like learning WP at all.
It makes me wanna jump off the closest bridge, taking a header.4
Worst dev experience was when I was asked to "take a look at" a propriatery Windows app built by a now non-existent team at the company.
The code base resembled the quality of legacy code where about every hour I felt like I needed to vomit. But that wasn't even the worst part for me.
This was the first time I had to develop on Windows and was sent a separate dedicated laptop for this. Now I started to have a bad feeling about this because as far as I had known every single dev at the company used company Macs for development (including me for other projects). It turned out the Windows laptop was indeed configured for a non-dev team :)
Having liased with IT admins for a day I finally got my environment set up and hit install on the dependencies and in 10 minutes it got to less than 10%. The laptop was pretty powerful so I couldn't belive wtf was going on, fans were ramping. Checked task manager and the company Anti-Malware was hogging the whole CPU.
I was so mad that I managed to get the IT admins to completely disable it and then it was only the pain of working with shitty code on Windows which would have been more than enough from the start. Thankfully it only lasted a week.
Arduino & ESP-32 without the arduino library.
Good look finding any example code. It's just you and datasheets with fontsize 2.5
One time I was assigned a task during a standup, it was a very easy one so I sent in a PR before the call was over.
Very huge mistake!
I got assigned 5 additional tasks on same call and few more before the meeting was over.
Ain't that a bitch?3
Dropping several production tables at my first job. Nobody died but I thought I was headed for Guantanamo..2
I didn’t turn down a dev freelance project when the client decided against going with best practices because the solution I offered was a well-established design pattern but created a need for a financial management change she didn’t like. I stupidly built what she asked for. It worked fine in the 3rd party vendor test environment but failed on production. After hours of analysis of code to ensure no changes happened to my source during test->prod deployment, and the vendor denying they had config differences between them, and the client refusing to pay, all I could do was abandon the project.2
Literally painful dev learning experience: Do your damn stretches and invest in a good chair.
Spent a couple of months of WFH working eight hours a day in an awful chair and started getting back pain out of the blue. Part of my first paycheck after that went into a decent office chair, in hindsight I should've spent more on it but goddamn what a relief it was not having to spend an entire day in the tiny, back-breaking piece of shit my landlord calls a desk chair.1
That the most important thing in any project is to first make sure YOU have understood what the customer/management wants and that THEY have understood what you are going to do.
Seen so many projects (other people's and my own) go down the drain because people had false expectations.
Also, good management is enormously important for any medium-sized endeavour. I cannot count how often I have seen mediocre to bad middle management screw things up, and devs pull off overnighters and 60+hours work weeks for this super-important project that then goes to the bin because "it turned out to be not so important in the end, sorry."1
When I was a wee little lad of 13, still with that hopeful gleam in my eye, I signed up to work as the webmaster for a local org.
I got paid in SSL, which is a thing kids in Maryland have to do to graduate, and the whole idea is that you need to do 75 hours of volunteer work in your community
The people there promised me 8 hours a month for what I thought would be easy work, and so I eagerly signed up.
What I thought would be updating a few html files and emailing them to the org was actually having to manage a full on server running PHP4 LAMP stack
Needless to say, I was overwhelmed. I tried to make the updates they wanted, but I had no idea how to write PHP, let alone manage a database and server.
I think I got out of it by just never responding to their emails once I realized how fucked I was, but that was definitely the worst learning experience of my dev career1
One of my professors made us submit Hand Written codes. I mean writing, compiling, executing on the machine, and then writing by hand on paper to submit.
It was so irritating.3
This was a while back... Like 20 years ago. I was doing some crappy development with asp/vbscript. Once I had a task to send emails in certain cases and while testing, I used my personal mail as recipient. In a loop. If you ever did asp/vbscript you know how easy it is to have an infinite loop... And my mail was forwarded as text messages to my phone. I deleted incoming text messages for days.
And I made the same mistake next week.2
I can’t say it’s the most painful but it’s one of my recent painful lessons.
So I’m learning C and in my project I was trying to make a copy of a 2D array and I kept getting seg faults up the ass every time I tried to allocate one of the inner arrays and after a long day of debugging I realized that I was trying to allocate memory within an array that doesn’t exist so I had to create the first array then allocate memory for each inner array after.4
Learning C# .NET Core for a PWA + server + DB project that a client wanted when he could have done all the backend stuff himself.
I ended up burning out because of that project and the crippling hate for C#.10
You either spend time organising the code even for a “small project” which “will never change” or cry at your mess one year later
Agreeing to work on supporting someone else's legacy code instead of insisting on razing it and rebuilding.
Learning rust with a very tight deadline. Not something I'd recommend since you will be likely to spend more time trying to get your project to compile than getting on with your project.
In my case the project was a compiler(in hindsight I'd have picked ocaml or scala instead).4
Even the getting started tutorial didn't worked correctly. It basicly ask you to run commands and fails to execute. I also banged my head to wall few times while trying to connect my dockerized application to database container.12
Picking up the work on an existing Wordpress site.
When a non-tech person started a WP page and you as a software engineer should "improve it a little bit, since [the client] already did most of the work"...
By now - unless I really cannot get around it - I refuse to start working extensively on existing wordpress sites.
Containers, specifically Docker and Compose. It's a beautiful model and it solves a ton of real problems, but the list of unforeseen footguns never ends.1
Trying to un-fuck a botched rebase of a months worth of work. It took me a couple days, but it forced me to learn a lot about git's best practises and gotchas. It also taught me not to keep a months worth of work on a single branch!4
When any of us devs asked the senior "dev" who designed it if there was any documentation on it so we could actually get started on working, he literally told us we sucked ass and that we were pieces of shit that knew nothing of programming.9
Does it count as a learning experience if I have still not yet fully learned it? Then it's estimating tasks.
Fix this bug where the modal is rendered underneath the message-count-badge on your profile? Heh should be easy, 10 mins to set a higher z-index.
Final cost: two weeks, where I needed two status meetings and drawing on the whiteboard to explain why this happens and why it needs a major restructuring.1
Joomla, motherfucking Joomla. It was supposed to make managing content easy. With just a little coding you could make a fully functional, multi page website. Ugh. It took more time to master the oddities and weirdness of Joomla than it would have to just code the fucker.
This taught me the painful lesson that there are no REAL shortcuts. Useful “shortcuts” in development are just abstractions over mastery of a task. There are many more shortcuts that are more like dangerous hacks, and Joomla is rife with them and opens a lot of opportunities to make more.2
Be vary of entering commands from history (Arrow Up), especially if you did a destructive command not long ago.
Did this in a database for a game. I cleaned the clan tables not long before release. Then a short while after the release I searched for a clan related query and ended up clearing one of the tables again (ofc on autocommit). :|
So had to delete the related tables and notified people they had to claim their clan name yet again really quick.
Never had the issue on linux yet, but I'm usually vary when doing a generic destructive command (like "rm -r *"). The problem rarely happens with zsh (you can arrow up based on what you already typed) but I'm often still vary and prefix the command with a space to prevent it showing up in my history.7
Before get get source code for freelance job, the person who cantact me say the job is to continue the project for some update and tweak.
The UI from design is beautiful and he gave good explaination for the project and the update, continue to conversarion, negosiation and deal.
but he is not the IT guy and also the project is not his work or something that he do previosly. All the person who work on that project is already leave and not contactable.
And here that I get:
- source code
- domain cred.
And here what's missing:
- .env file
- db backup / old db cred.
- server and hosting cred.
And after some hour of learning the code I find out that:
- latest commit was 2 year ago and different from production version.
- most of the branch is RnD.
- the code have many wtf/minute lol
And for now I still re-negotiate with the person who give me the project with 2 suggestion from me.
- continue with this code with condition, he need to search for the missing part at least backup db or documentation.
- recreate the project with more time
And here's one funny part of the code.
return 5 // this number was choose by dev team at random
Change of technology. There's one time that the team can't decide what tech to use. So after 2 years of production suddenly we moved from Nodejs to Elixir for server side and MySql to Cassandra for database ... It is crazy that time...
So learning a new language it was so difficult as elixir is functional ... (And I was sucks back then) , and Cassandra is something new to me , which is difficult.
(Hey bit now it is ok )
Emotionally painful dev learning experience: My laptop (and only computer I had in the area) broke at the worst possible time during university and the guy fixing it fucked it up meaning it took even longer. Combine this with:
*Stuck having to learn Android Studio in two weeks to make a whole-ass app with a professor who didn't know how to make a Hello World and gave us no resources. Pair project so I had someone depending on me to do my part, meaning a lot of sharing their computer just to be able to use Android Studio.
*Having to work on another solo project by using various public and awfully specced university computers. Said project involved real-time 3D graphics and was running at about a third of the speed it should on every machine.
*Realizing how much I depended on my laptop for entertainment and that I basically had nothing that could help me de-stress and relax at home.
*Not knowing when the laptop's spare parts would arrive or if the repair man would give me bad news and even more delays.
*A very poorly timed issue in my relationship.
I know university can be stressful even though it never really affected me before or since but man, those couple of weeks broke me.1
If you are a graduate/junior developer be very careful about joining a small Ltd company.
You would get better support in a bigger team and have better insight of the industry in a bigger organisation.2
Yeah so WordPress killed me 😅 I am still learning many things, and I was making a website for someone a year and a half ago. So it was my first full WordPress project, like from the beginning to the end, including theme and plugins. And it killed my love to programming for almost a year. I didn't finish, the job is abandoned, it was a pain in the ass, writing in PHP and especially integrating with WordPress was just too painful for me.
I came back to programming a few months ago, after a year-long break, decided to learn a new language, Go. I again enjoy writing code, but I think I am unable to touch PHP again.
Ah, and it all was parallel with when my psychic problems started. So it was even harder.1
University course on Computer Systems.
I really really suck at bit manipulation and processor architecture, I tried learning it multiple times but always lost focus every time, was really difficult to stay invested and barely passed that course4
The professor that made us use ada. This course was in 2018. Not useful to real world and also hard af. Was a great professor good at teaching and a great guy - just the course was hard as fuck and if you were struggling it was hard to find resources.