
I refuse to accept the view that mankind is so tragically bound to the starless midnight of racism and war that the bright daybreak of peace and brotherhood can never become a reality… I believe that unarmed truth and unconditional love will have the final word š¹
~ Martin Luther King, Jr.
Preamble š
Boiling The Ocean
If I had to distill what Iāve learned in my programming career that spans over two decades nowāand going strongāit would boil down to the following five lessons:
- Diversify š°
- Read š
- Write šØ
- Seek Mentors And Mentor Others š
- Find Your Passion š„
Why five? Why not 10 or 15 or more? you might well ask⦠Fair questions both š
First, in asking me to share more than five lessonsātrust me, Iāve got plenty more that I could shareāyou run the risk of opening Pandoraās Box because of my well-known propensity (notoriety, in the mind of some) for exploring ever-widening swathes of related ideas.
Second, this is the age of the soundbite, one to which I could have remained immune for only so long⦠(Trust me, I can write plenty more, secure in the knowledge that many of you will enjoy it, but acutely aware at the same time that some of you might find your eyes glazing over at my whale-like paragraphs) š³
Third, a happy medium of five lessons suggested itself to me; not too little, not too much. So thatās what you get this time around (Should you wish for more, simply ping me and Iāll be happy to share more!)
With that, letās dive right in to the top five lessons that came to my mind unbidden, almost subliminally. See, this is what happensāsubliminal stuff and somnambulism and scorching metaphors and whatnotāwhen one starts quoting Edgar Allen Poe and his squawking raven as I have in recent essays! š§
My Use Of The Term āProgrammers”
It seems pretty reasonable to say that the image which the term “programmer” will conjure up in your mind is one of āsoftware designersā, āsoftware engineersā, ā computer scientistsā, and such. This group of practitionersāof which as you know I am oneālies on a spectrum so I feel comfortable in generalizing (the term “programmer”) to the even broader spectrum of technologists and, frankly, all practitioners who are looking to raise the level of their game š
Yes, the diving board above is there for a purpose now: to launch you into the deep blue waters of the inviting swimming pool above for some freeāyes, free as in airālessons on the practice of programming š
Ready to dive right in? (Our craft is vast, and our lifetime all too brief) So let’s go! š
Diversify š°
See the Saturn rings in the picture above? And no, we are not entering the twilight zone of diversifying financial portfolios and bean-counting eitherāstuff best left to financial wizards. We are, however, very much diving head-first into the ocean that is the realm of a (sustainable) career in the world of programming. More specifically, think of this dive as an exploration of the wellsprings that can fuel your passion over the long haul š
First, though, let me tell you about the wellspring of my inspiration for choosing āDiversifyā as the very first lesson that I want to share with you⦠It goes back to an article in a programming magazine by one of my programming heroes, the late John Vlissides. Way back then, when I was designing programs in the C++ programming language, I read an article by Vlissides that was intriguingly titled āForget C++!ā I did a double take, as you can imagine, before settling down to devour the new nuggets of wisdom which Vlissides was about to share⦠š°
In a nutshell, his message was this: Diversifyānever allow the narrowing of your vision. And to which I would like to add that the narrowing of one’s vision is right up there with the clogging of one’s arteries. You’ll want to avoid both! š
Read š
As they say, a nation of readers is a nation of leaders. Closer at handāas Iāve come to understand how this advice applies to the world of programmingāread programs written by great programmers, programmers whose work you admire. All great writers were readers once. And while the reading process, once begun, should never really end, it simply has to begin. It is through exposure to great programs that (and this is where the lesson to read comes in) you learn how to write great programs.
I can trace this priceless listen to a piece of advice from The Pragmatic Programmers: the duo of Dave Thomas and Andy Hunt⦠š¬
In the end, and even if you forget everything else, please remember this: Taking a leaf from the gardeners and farmers of the world, let usāafter of course taking a cue from my nemesis the Bard to get rid of all the language lawyersāgo out in earnest and Read The Farming Manual (I mean, our brethren the UNIX gurus have exactly the right sort of idea in admonishing us all to RTFM) š¾ š¾
Write šØ
Lest you jump to the conclusion that the tools in the picture above are what I use for writing, I should hasten to add thatāmuch as I wish they wereāthey are not. Alas, and this is a long story, we stopped writing (I imagine this applies to the vast majority of fellow humans on planet Earth) in longhand. Sighā¦
But all is not lost; we have at our disposal a reasonably good set of alternate tools to ply the craft of writing (both prose and programs). Yay! š š š» š š š š
“No impression without expression”, so goes an intriguing adage that I came across in the pagesāgulp, I do confess to having been a fan boy, decades agoāof the once-venerable Readers Digest magazine. So what does this have to do with programming? Nothing, and everything! Let me explainā¦
Tying this lesson back to the previous oneāthe advice to āReadāāwhile reading is a great start, it is just that: a start. To get anywhere, you simply have to take the next step, which is to write your own programs and thereby hone your proficiency at writing programs (Should you ever start forgetting, remind yourself that programming is not a spectator sport!). Other things remaining the same, the more you write, the better you get (within reasonable limits such as taking crucial aspects of, for example, feedback and quality) š
Seek Mentors And Mentor Others š
See the warrior in the image above, fearlessly standing his ground even as he wields his weapons to slay the complexity monster? He is doing it alone. However, much as there is a rightful place for heroics, it doesnāt have to be that wayāthere are saner approaches to taming the green-eyed monster that is the sprawling expanse of software writ large⦠š
Everyone was a beginner once, on their way to becoming a journeyman, and then an expert. And this is where mentoring comes in: seek mentors, and once you become an expert yourself, please make sure to keep the virtuous cycle going by mentoring others!
Find Your Passion š„
As you take in the time-lapse photography in the lovely picture above, I want you to keep in mind the overarching, all-encompassing slant that I hope you will see permeating the ethos of the pictureā¦
If I had to boil down all the lessons Iāve learned in the practice of programmingādistill everything down to an uber lessonāthis would be it: Go and find your passion⦠š
And Iām not talking about some fairy-tale romance or arabesque musings. No, nothing of that sort; well, mostly nothing of that sort. After all, passion and prose do have to connect somewhere, they do have to intertwine something⦠š
But what I have in mind, and what I want to share hereāwithout this particular lesson turning into a whole new essay of its ownāis far more workmanlike (and work-woman-like, to be sure!) It is simply this: motivation is hugely important, so take up this business of finding your passion in great earnest! Let me share a pointer or two in this connection:
Good enough for now?
Every book, remember, is dead until a reader activates it by reading. Every time that you read you are walking among the dead, and, if you are listening, you just might hear prophecies.
~ Kathy Acker š½
It is good to have an end to journey toward; but it is the journey that matters, in the end.
~ Ernest Hemmingway š
To honor the overarching (undercurrents of the) theme of the oneness of humanity which I’ve done my best to honor in this essay, and the imprints of which you may well have discerned in the images Iāve carefully chosen, letās bring this essay to a close with the following two memorable sets of words, lyrics reallyāthe first set from Pink Floyd and the second from U2āwhich reaffirm that the most important lesson of all is to keep our faith in the oneness of humanity as the basis for what is the very best of spending the fleetingly little time we’ve been given on the wondrous planet that we call Earth⦠š
Hey, you!
Don’t tell me there’s no hope at all.
Together we stand,
Divided we fall.
~ Pink Floyd (Lyrics from Hey You) š
One love
One blood
One life
You got to do what you should
One life
With each other
Sisters
Brothers
One life
But we’re not the same
We get to
Carry each other
Carry each other
One…life
One
~ U2 (Lyrics from One) š«
Nice post Akram. What books would you recommend to programmers around these five lessons ? Would you recommend reading The Pragmatic Programmer ?
– Thanks, Shahbaaz! (Comments from readers like you make my day, every day!!)
– First, let me address your second point, which is actually your second question ("Would you recommend reading The Pragmatic Programmer?") Here we go: It just so happens that this is the book that set me on the path of continuous learning, so it has an especially soft spot in my heart… You simply can't go wrong with getting yourself a copy of the venerable book that is The Pragmatic Programmer!
– Second, and this is to your first question ("What books would you recommend to programmers around these five lessons?") is a deep one, and really requires a brand-new essay of its own! Stay tuned in a future installment right here on Programming Digressions!!
– Meanwhile, I will now (and this is specifically around two of the five lessons, the ones simply entitled "Read" and "Write" respectively) point you in the direction of a handful of essays that appear elsewhere (on this blog), and which address these (two lessons) directly:
[1] ….On Writing: Or How I Write
[2] ….On Writing: Or Why I Write
[3] ….On Writing: Or Now I Write
nice painting good artwork done
KissAnime