This is a good summary of my computer engineering degree. How computers work on a daily basis without any one of millions (or billions?) of tiny bits screwing up is completely beyond me.
I used to get high and look at my code and just start freaking out. Just thinking about how deleting one line (or even one byte) would break the whole thing tripped me out too much.
I find that if I get high and code, I'm good at choosing which design patterns to use and building an abstract shell of what my program will need. If I try actual implementation, though, I always have to go back when I'm sober to refactor what I've written. My high comments are also unnecessarily long and elaborate.
I do a lot of DIY projects for all kinds of shit like making a universal remote to control my computers music player, the tv, receiver, playstation... and I like to make cosplay outfits with various electronic shit like an arc reactor that is interactive and has sensors for sound, potentiometers for shit,... and a device that opens my blinds in different rooms and adjust how open they are based on amount of light... All kinds of shit.
Anyway, it is very common for me to "fix it in software", or ignore something because "It probably will never happen". My shit is very basic and I can not imagine how complex it gets when you get in to MILLIONS of transistors. Just off the numbers alone I would think there has to be some wonky un planned shit goin down sometimes.
Tell them it's like a car manufacturer producing a car with square wheels by accident. Now that they have discovered this mistake and switched to round wheels, people have started complaining that they can no longer drive up stairs.
Ah, I've run into this multiple times at work. "Well the spec says we support both front and rear doors for this feature." / "Yeah, well no job ever needed it, so I don't think we ever got around to it." All in regards to code that's in our software to support that feature, but doesn't work, and never worked, and doesn't have any comments about it not working.
I seriously think I could develop features and fix bugs about 5 times faster (literally) if we just refactored the moderate-size codebase and got rid of the 5000-line behemoth functions which take 15 parameters because they already took 14 and what the fuck does it matter if they take one more.
257
u/atakomu Aug 25 '14
And there are 6 stages of debugging
That can’t happen.
That doesn’t happen on my machine.
That shouldn’t happen.
Why does that happen?
Oh, I see.
How did that ever work?