I have been meaning to continue my technical article series for like, weeks now. Have the content. Did the math. But when I sit to start writing, my mind wonders to other places. FML. Oh well, todays episode is about helping people.
Give a Man a Fish, and You Feed Him for a Day. Teach a Man To Fish, and You Feed Him for a Lifetime
Is a well known proverb of wisdom but what does it actually mean, to me ? "To me" has an important intentional placement in the previous question. It is the key idea idea in this article. I refer to previous experiences when talking about a subject. Like, a lot! Context is everything, even for conclusions ? Or it may be I'm self centered and talk about myself a lot. I guess we will never know!
I grew up in a small village, a long time ago. I liked computer science. Apart from a neighbor, with whom i shared some common interests, I was the only one. At that time even in the closest city, there where no communities, meetups, no nothing. At some point around 2000, I joined a small "IT lab" team as a full-time programmer.
For a while it as me, a smart wise IT Director and another smart wise cranky colleague straight out of The IT Crowd. Also, during the initial internship and beyond, I had access to fast Internet and a lot of time. The IT director spiked my interest in Linux. The Internet spiked my interest in web programing. We used Linux at work for cool stuff. I started using Linux as both workstation and home OS. I spent a considerate amount of time, also at home, learning programing. I also wanted to play video games on Linux because it was cool!
The Year of Linux On The Desktop
Around early 2000's, the Linux On The Desktop experience wasn't as streamlined as today. Video games need 3D acceleration. 3D acceleration need drivers. NVIDIA provided decent driver support for Linux. Even if only providing binary blobs instead of open source. Caveats apply to your own experience. NVIDIA drivers had a nice installer which worked out of the box. But at home, I had an ATI Radeon 3D graphics card. And, unlike at work where I had Internet through network card, I only had dial-up. The drivers required Linux kernel recompilation for enabling certain modules. That meant that if I borked the OS configuration, I couldn't rely on graphical programs to dial in and RTFM. And I wasn't a super smart *NIX guru kid. FML more than thrice!
So, if I wanted to do what I set out to do, I had no choice than to sort my own stuff out! Searching for and within documentation to learn to compile Linux kernel modules. Have disaster recovery plans for if the driver failed while rebooting after installation. Learn to dial in to Internet from user mode 3. I learned enough about those things to finally get hardware accelerated GLX-Gears. Might have taken many months.
I also learned some things about learning some things. And helping people. The philosophy of trying to sort my own stuff out stuck with me up so far in my career. And has not much to do with lone wolfing.
'Am gonna drop some wisdom bombs now as if it was New Years Eve fireworks in Amsterdam!
Collaboration and teamwork is central to software engineering. You're at work, a colleague is struggling with a task. The question "Should I help ?" comes to your mind. Should you ? Well, maybeeeeline. Heres come the plot twist. Has the person asked for your help ? Before you jump in, are you aware if you're going to step on the persons ego ? By assuming the person can't sort their own stuff out ? Or the other person assuming you are ?
It's a work environment, so people should put an effort in setting their ego aside and prioritize work, right ? - José, on a blog post in 2019
Ha! Good luck with that. People are complicated. So now I got you thinking that you should be careful when not and HOW to help people. Become better at being helpful. Right ? Another plot twist! Yes, but not only! There is a lot of focus on creating better helpers. Trainers. Coaches. Mentoring ability is a valued, required skill for seniorship. But what about learning to become a better helpee ? Not only asking questions but even just learning to accept help ?
Here's some training material. A video of a duck mom helping her ducklings:
Some times it might best to crack open a persons comfort zone door with an axe and kick them out. Almost like Jack Nicholson in The Shining. But be prepared because, in nature, for every action there's an opposite reaction, of equal force. Many times people do ask for help. But, what if the answers they get are the answers they need, not the answers they want or were expecting ? Sometimes, one can only tip a person in what we believe is the right direction. Then, give them space to figure things out. Might or might not immediately solve their problems, but it might or might not teach them to fish!
Helping people, the TL;DR
- It depends!
- Be nice and understandable. Goes both ways
- I hope this post helped you. Also, I'm hungry, clocking off now for lunch