Lotta inspiration for junior geeks stuff floating around. I’m having a low productivity day today because, well, you know all of that, so I’ll take a minute nd pitch in.
Do you know what I did for about twelve elapsed hours of coding time? I solved a problem. Cuz, you know, I got mad skillz, and have been geeking for forty years, and am even, in a couple of microdomains, a bona fide citable expert.
I’ll tell you the problem I solved, next tweet, but before we take the dive, I need you to just, relax, okay? Explaining this problem I solved might get a little heavy. I mean, for reals, yo, I’m a master geek and this took me twelve hours to solve, it’s prolly gonna be daunting.
Okay, the problem I solved, in just twelve short hours:
I made a parent window that forces a child window to hold the same relative dimensions no matter what size the parent is.
I know, right? Breath-taking.
Lemme tell ya, kids, you’re not gonna find that answer in Sedgwick or Knuth.
And because I am so incredibly advanced as a computer programmer, I found the solution in just twelve hours!
Unlike Fermat’s proof, my solution actually would fit in the margin of most books, cuz it’s about 6 lines of code. That code does pretty much exactly what you’d expect: it takes a ratio and chooses whether to adjust the height to fit the ratio or the width to fit the ratio.
Anyway, dropping the comic senior pose, I really do have some messages for the juniors in the room.
1) Solving a problem you’ve never solved before in a system with thousands of interacting parts is hard.
It’s not easy. It’s hard. And it’s hard for everybody, not just for juniors.
The reason your seniors seem so impressive is cuz so many of the problems aren’t problems they’ve never solved. But when they get problems they’ve never seen? They look just about like you. They don’t sound like you, because they’re more enraged and less ashamed.
2) Those six lines of code were not, at any time, the issue.
Any fool can tell you you’re gonna have to use algebra to get the right values, that’s the easy part. The hard part was finding out where to put those six lines of code.
The layout system in my context has a whole lot of moving parts. In particular, it lays out from the child up — but only kinda sorta. Finding the definitive place where the decision could be made to layout from the parent down, that was the hard part.
3) Just like every junior geek on the planet, I hit up a) the documentation and b) stack overflow, and c) google, in that order.
Nobody memorizes this crap unless they do it every day. Stop thinking it’s your job to memorize crap you don’t use every day.
There are numerous answers all over the internet for my problem. And just as you find for your own problems, most of them are either "wrong" or "only right in the author’s context". I spent most of those 12 hours failing to tweak stack overflow answers to work in my context.
4) I finally got my answer.
It was a hint of a hint in the footnote of a failed s.o answer, and it took me in a completely different direction than that answer and all the other failed ones. It implied there was just one place I could change that would do the trick. It did.
And here, maybe, there’s some "seniorness" going on. I simply refused to believe that a problem as trivial as this one and as common as this one — not the majority case, but certainly not what you’d call rare — didn’t have a straightforward answer. I was stubborn.
So now, with those bullet points out of the way, let me give you some actual advice if you’re a junior geek.
Relax. You’re doing great. If you’re worried about how good you are, you’re really doing fine, you’re on the right track. Because the only people who worry about that are the one’s who want it, and wanting it — for a long time — is what your seniors did to get there.
Ask your nearest senior. Honestly. The overwhelming majority of us genuinely enjoy helping juniors. a) we feel better about ourselves. b) we get distracted from our shit that isn’t working, c) we love being in the community of geeks.
If you ask a senior and she hurts you because of it, she’s either a) not a senior, or b) having a bad day. Either way, that’s her issue, not yours. So just go for it.
All of the greatest geeks I’ve known in my life have been outstanding collaborators. Almost no one rolls a modern program by themselves. Seriously. So while you study their coding chops, study their collaboration chops, too.
Remember Beckett’s brilliant letter: "Ever tried. Ever failed. No matter. Try again. Fail again. Fail better." See yourself in that, for sure, but see more than just yourself. The whole trade lives this reality. All of it, top to bottom. Geekery’s not a closed problem.
So. In conclusion: Be of good cheer, you junior geeks. You’re digging into an amazing community that many people will never experience. And you’re welcome here.
Let’s go geek out on something.
The GeePaw Podcast
If you love the GeePaw Podcast, show your support with a monthly donation to help keep the content flowing. Support GeePaw Here. You can also show your support by sending in voice messages to be included in the podcasts. These can be questions, comments, etc. Submit Voice Message Here.