We live in a new world now, the air filled with flowing tremendous information everywhere, Humans (with other creatures -you never know-) living their best digital days, witnessing huge transformation in every aspect of their lives, new economic systems with cryptos, new transportation innovations with smart electric cars, a visit to the moon? Easy, book one at SpaceX and more … metaverse, web3 … all of that is accessible everywhere, and only the best is yet to come.
Let me tell you something which is not a secret anymore. it all started with coding. An old statement says,
“When you code, you do good”
--Unknown Legend
(Of course only if you are not Darth Vader or a ransomware dev).
However, for some reason, you -my beloved reader- made it to my little article whether it was by force (asked the close ones to send feedback on my article) or by mistake (the title was so cringey that it made you check it out) or just a fellow coder who wants to make the best out of his coding process... The good news is you just learned the first lesson.
Be patient with whoever gives you time or words.
I believe every tutorial, article, and course out there should be treated in the same way regardless of whether it is free or paid.
These people dedicated time to document their coding process with victories and failures only to provide value and make things better for their readers...
I would be patient with whoever talks to me because I always find wisdom in their words.
‘A 1st step’ is all it takes.
I often find myself in front of an undefined amount of scrolling on a tool documentation page. This usually means poor documentation presenting- “That will never end”, I say to myself Of course it won’t unless I.. “Start it now!” I say to myself too…
Most often, a first step is all it takes, just take it.
Whenever there is a system there is progress.
Let us be honest for a second here, shall we? Coming from a non-Computer Science background aiming for big companies is something one does not achieve easily.
You will need (hypothetically) at least the same amount of time Computer Science students spent studying their course materials and attaining their degrees. This is not easy, especially when you do it solo; taking into account that time is like money is only losing its value if not invested into something valuable.
With that in mind, you need a strong human behavior system -strong not strict-, strong means it accepts your flaws and keeps you coming back even if you dropped off. A strong system keeps you accountable and focused on yourself, not on others.
Atomic Habits
book, will give you some ideas on how to establish such a system.
A good system shortens the road to the goal. -Orison Swett Marden
Failing is just as important as succeeding.
Let me say this, and please don’t get me wrong. Of recent, I have started to think that failing is more essential than succeeding. Let's consider an example. Imagine there is a script of code that can only fail under 10 conditions. Which of these scenarios do you believe you would gain the most knowledge from?
Case a) You managed to get your code to work during the 1st attempt
Case b) You fail 3 times but succeed at the 4th attempt.
Case c) You give up and in a fit of rage throw your machine out from the nearest possible window after 6 attempts.
Case d) You somehow survived and managed to cover all the failed cases after 10 attempts.
Let me give you the right answer because it can be so tricky to guess and you may think this is a trick question. However, the answer being deceptively simple is case c).
Just kidding, it’s case d) You shouldn’t throw your machine out of the window. Laptops are expensive and I do not advocate for violence. If really frustrated, talk, walk and cool off.
Naturally, after 10 attempts that ended in failure, you are weaponized with 10 more knowledgeable sharable experiences on how not to fail your code to add to your arsenal.
“Insanity is doing the same thing over and over expecting different results.”
-Albert Einstein.
It is okay to fail as long as we learn from our experiences and try different approaches. You can fail twice with different approaches, but DON’T fails twice with the same approach. You can use the same approaches but don’t expect different outputs.
When people reach out to you for help, HELP THEM!
As an introverted person, You know when someone is reaching genuinely and when they ask for a favor, I used to get upset with the second one, when they try to connect with me, I get disappointed.
In our coding world, whenever people ask for help, it is actually a chance for you both to grow regarding the question’s subject, connect with others, and share ideas. Now I seek people's questions anywhere and that's why you should do too.
Nothing humbles you more than your code.
Staring for hours at your code debugger while you have a deadline approaching you like a dead bloody walking monster, and it’s only getting bigger? Trying different approaches with the same output every time?
Tell me what can humble you more!. Of course, this should not be the case if you wrote sustainable code from the beginning but even with that, at some point, you will have to change or delete some of your code in order to comply with the new business requirements.
Requests for these changes could even happen as you sleep. Take it like a champ and always be humble.
You still have a lot to learn and there is no such thing as perfect code.
You will learn how to ask for help whether you like it or not and eventually how to like it.
It was just so hard for me to ask somebody else for help. We are both humans. Why should they be able to solve it yet I can’t? I can do it too. I just need more time. Hours of code debugging could be saved if I simply humbled myself and asked someone for help.
There was a time when it took only 3 minutes to solve a problem that had bugged me for hours after reaching out.
No broken glasses.
This concept along with many I learned from The Pragmatic Programmer
, a book I recommend to every developer aspiring to code as a craft… And it simply showcases real situations related to software development and what could we learn from them.
In one of the stories, the author in his neighborhood noticed an abandoned building that had this one broken window. This wasn’t a big issue in that it only made the whole neighborhood feel rusty.
As time passed, the one window became 3, 4, and eventually, 5 as the view was only getting worse… it didn’t stop before they grouped up to fix all the broken windows in the building, only to leave the street view a lot nicer than before.
Yes, the application is running, but don’t see bad code in your repository and do nothing about it.
Same thing with life. It doesn't mean that if something does not affect you directly you should not be responsible. You never know, maybe it will affect you indirectly in the future, so it's better to get done with it now while you still can.
Don’t assume what you don’t know.
How many times do you hold yourself back thinking “This code won’t work. I can’t do this!”, “it's too hard. it's too early. it's too late”, Well, did you try to fix it? Did you try to learn the new tool? Did you try to read that long boring documentation? How did you know for a fact you will fail till you actually fail!
Don’t assume what you don’t know and always try things out.
Conclusion:
My motivation for documenting these lessons is to share what I have learned from my coding journey so far. First, to remind myself later in the future about them, also I hope that it will be of benefit to someone, somehow, somewhere in the universe in order to help them become a better developer, and see the revealed truth about coding and its impact on human beings as I see it with my own eyes, through my own words.
Coding is only pushing you forward.
In the end, I maybe missed something or something you can’t agree on me with, please I would like to have your opinion directly at omar_rashad@aol.com, or maybe it's easier to join my Gitter community and drop your feedback directly, would be happy to discuss it with you.
Special thanks to my friends who contributed to read, review and correct my writing, one of them was Jean, Please check his writings at Microverse blog.