The Grumpy Programmer has Advice for Young Computer Workers (Video)
Bob Pendleton calls his blog "The Grumpy Programmer" because he's both grumpy and a programmer. He's also over 60 years old and has been programming since he was in his teens. This pair of videos is a break from our recent spate of conference panels and corporate people. It's an old programmer sharing his career experiences with younger programmers so they (you?) can avoid making his mistakes and possibly avoid becoming as grumpy as he is -- which is kind of a joke, since Bob is not nearly as grumpy as he is light-hearted. (Transcript covers both videos. Alternate Video Link One; Alternate Video Link Two)
And also, don't get married, because divorces tend to wipe out 50-70 percent of your net worth.
Or just don't get divorced. It is common knowledge that half of all marriages end in divorce. But that hides huge variations. If both partners have college degrees, the divorce rate is about 20%. If both have engineering degrees, it is about 10%. It helps to marry someone trained in problem solving, and capable of rational thinking.
It helps to marry someone ... capable of rational thinking.
Well, once you get past the gay marriage issue you're kind of SOL.
The transcript reads like a conversation between two guys with almost nothing to say.
Because a real grumpy programmer doesn't fucking talk on a fucking video. A real grumpy programmer uses text, just like he always did, to write about how those hipster fucks who think they have even half a fucking clue deserve get run out of town on the Rails they rode in on.
A real grumpy programmer still fucking hates Microsoft, but can't be arsed even to hold down the shift key long enough to type a '$' - even though those monopolistic fucks in Redmond deserve it. Develop my ass, Ballmer.
A real grumpy programmer knows what C is for, but the pissant little twerps who bitch about the lack of strong typing in Perl can go get fucked, because fuck you, that's why. And fuck your Web 2 Point fucking Oh, and fuck your Twitter and fuck your fucking FuckBook.
And that, my child, is what a real grumpy programmer looks like, because get the fuck off my fucking lawn you ignorant little turd polisher.
Crumb's Corollary: Never bring a knife to a bun fight.
I am not sure there's much advice us older programmers can give new developers because the industry is a lot different now.
In the old days we were often tasked with solving a problem, and we were more-often free to use whatever tools and technology were best, and we also thought of development environments as tools, which we could switch out if the application required something different. We also did all our own testing. I recently worked with a younger programmer on a project and it was miserable. He couldn't give me 20 lines of code that didn't have a bug in it, because he was dependent upon having some QA person test his work and an IDE that would hilight every mistake.
Nowadays there is so much abstraction going on in programming, people don't really seem like they're programming as much as they're using some sort of GUI development tool and plodding through innumerable amounts of API documentation and going on witch-hunts to try and figure out why something that's documented to work, doesn't actually work. I remember a big Oracle project I was on where my software wouldn't work properly and I couldn't figure out why. It took me several months of bitching on usenet to finally get a rep within Oracle contact me privately and tell me I wasn't crazy, they knew about the bug and just weren't acknowledging it. In the old days, there wasn't as much of that going on. Programming was simpler and less bureaucratic.
Actually more often I have seen the opposite: claims the new stuff is going to be faster, the compiler is not smart enough to figure out that they are the same, and thus you should use the new stuff.
There was a coworker who insisted that using C++ std::foreach for loops was faster because "the compiler knows you can't break out of it and thus can optimize the whole thing". I had two objections to this: first of all it would be a really stupid optimizing compiler that could not figure out there are no "break" statements inside the for loop. And second the C++ was still allowed to throw exceptions in both cases.
The other objection I had was that the functors were unreadable.
Yet another objection is my suspicion that the optimization would be far worse on the functors due to the enormous header files of templates they actually used and I expected the optimizer for the simple for loop to have fewer bugs in it. But I did not test this.