The journey so far...

The story of my many forays in tech and where I fell short

Β·

8 min read

The world loves victors. Those who've already won. It loves metamorphosis once its done, and the returning hero wins (cue Dark Night Rises, Thor in Infinity War etc). What of the process? What about the times you're down, tapped out? When the intensity has driven you crazy and you've given up? Do successful people not go through those moments?

ian-kim-gKs6zNil_Ro-unsplash.jpg Photo by Ian Kim on Unsplash

I'm not going to act like every objective and aim I have in life today I'll end up fulfilling. Life's not like that. Often in life, we forget the vehement promises we've made, to improve ourselves, our work ethic, our sleep cycle. We forget, and move on, busy bees buzzing the bumbling life.

I've been interested in technology and it's various niches for years now, yet have so few skills to show for it. This is the tale of how I began, my mistakes and how I plan to remedy them.

The Beginning

I started my foray in tech when I started learning Python from Automate The Boring Stuff With Python by Al Sweigart. Learnt about compiled and interpreted languages, and all the programmer basics like variables,printing, decision making and branching, loops etc. My first bug was a tiny errorπŸ‘‡. I got so frustrated with this bug I didn't code anything for another month πŸ’πŸ˜¬πŸ˜…

i = 0
for i in range(10):
        print("i")

After I'd learnt python syntax and features, I got greedy. I assumed syntactic knowledge meant coding expertise. My biggest regret is that I didn't persist beyond Chapter 8 😞. One of my greatest mistakes was jumping through many different tutorials of the same thing. I watched YouTube videos, began python tutorials on sites like Datacamp, and even got a Python certification from SoloLearn. I used other textbooks which I won't name for fear of slander. Point is, nothing was wrong with the tutorial content: it was my learning process that was flawed.

I focused too much on tutorial based learning, following instructions step-by-step. While that allowed me to pick up the language structure and syntax and understand, in theory, how programming works, I did not possess the skill needed to use the syntactic knowledge to build upon my knowledge.

Google is a boon to an aspiring learner, because almost anything (legal) can be learnt for free online. The problem lies not in having many tutorials, but in choosing one. When it comes to high value knowledge like popular programming languages and frameworks, sifting through all available tracks and tutorials to choose one is harder in many ways than the actual programming itself.

Having been introduced to the range of free online college courses available through MOOCs (Massive Open Online Courses), I began learning Python anew from MIT 6.0001. Dr. Ana Bell introduced students to complex (to my teenage brain) concepts such as recursion, algorithmic thinking, and introduction to problem solving. Though I didn't finish the course, they helped me understand the basics of algorithmic thinking. Understanding recursion was the biggest mind bender 😡.

Persistence is the key to succeeding with anything, and it's the key that was missing in my life. I had enough motivation to start learning, again and again; I lacked the persistence to keep going.

The need to focus on high school plus entrance exams meant I was more focused on physics and mathematics, and inversely my programming knowledge (already so low), dropped even more. But not completely. I tried learning computer science from the world's most popular Computer Science course, CS50. I watched lectures, read assignments and practiced code. The best part of CS50, however, were challenging problem sets. Holding nothing back, these psets got me to really put my all into solving problems with real-world-like applications. Prof David J. Malan is the best computer science teacher I've ever had the pleasure of learning from, even though I didn't manage to complete CS50. The best part of cs50 is the ease with which one can get started; simplified access to cs50 IDE, long example filled lectures and mini-lectures for every individualized homework topic (example bubblesort, insertion sort etc), and the powerful cs50 library makes getting started with real programming easy. If you have the time to focus completely, CS50 is the best introduction to programming as a whole because almost every key part of development is introduced.

β€œTwo Core Abilities for Thriving in the New Economy

  1. The ability to quickly master hard things.
  2. The ability to produce at an elite level, in terms of both quality and speed.”

Deep Work

I was also fortunate to have Computer Science as part of my high school course. Learning C.S again through a theoretical mode, learning C, the basics of data structures, structures and unions, functions etc and then practicing with a wide array of examples. Theoretical courses in programming help to understand things like precedence, associativity and other finer nuances beyond language specific theory.

Somewhere down the line I also:

  • Worked with the BASH shell while using linux through this
  • Tried learning backend development using django
  • Tried to practice and develop problem solving techniques on codewars, codechef, hackerrank among others
  • Other associated learnings

Mistakes

Inconsistency

Starting is only the first part of any journey. Nothing in the world is truly single step. True growth occurs only when we consistently do something again and again; be it habits or biceps, they won't grow until you practice daily. The valuable things in life are difficult: if they were easy they wouldn't be valuable at all. Showing up is half the victory. Streaks don't matter. It doesn't have to be sequential daily: showing up when you can is better than giving up. Often, people are so obsessed with doing things sequentially, daily, that they forget that doing matters more than the date. Emergencies and situations arise that throw plans out of the window, and if you grasp the fact that streaks are given exaggerated value, you'll keep going even if you have a bad day or terrible week. programming-593312_1920.jpg Image by StartupStockPhotos from Pixabay

Giving up when it gets tough

Truly mastering something means going outside your comfort zone. Declaring variables and writing baby functions is supposed to be easy, so it is. Giving up when it gets difficult is a terrible habit because it will make life miserable. It is impossible to master anything if you don't possess the skill to push through. If it's hard, and your focus is shot, take a break. But get back with fresh energy. Often when you return, you find that which had stymied you previously was easily solved with fresh energy. Have the will to try!

do-not-give-up-2015253_1920.jpg Image by Alexa from Pixabay

Failure is Okay

Failure occurs when we go outside our expertise zones to try out something new. How else can one new things? Mistakes are a great teacher. One only needs the courage to pick up and try again. We aren't fighting a war at Thermopylae like the Spartans, where mistakes mean death: our mistakes may only cause a few blushes at worst. And learning how to accept failure is an important part of the journey from childhood to adulthood: mistakes can happen to any one of us, because we're all imperfect human beings after all!

the-blowup-UN4PadDppAU-unsplash.jpg Photo by the blowup on Unsplash

Not keeping track of the journey

Any task you take up is a subtask to a bigger plan. Sometimes, we lose track of the bigger picture. We forget the objective of our tasks, and attempt to use brute-force motivation to push yourself to do the task. Keeping in mind the final objective allows you to remember why you're spending this precious time doing what you are. It keeps you accountable. If you have an end goal, you're likelier to keep going with your tasks. Get your plan in place. Life is special: don't go through life without knowing where you are or where you wish to end up. Accountability is especially important if you have the tendency to give up. Sharing your learning journey on social media, your friend circle, or your family will help you keep going because it's concrete: the embarrassment factor of giving up after telling people what you planned might help you stay consistent in your worst moments.

hannah-olinger-8eSrC43qdro-unsplash.jpg Photo by Hannah Olinger on Unsplash


2022 in Development

2022 has been a good year for me as a developer. I learnt web development, learnt the basics of git-github workflow, took part in an open source program (GSSOC), got a chance to get my hands dirty with Google Cloud as part of GoogleCloudReady program among other things. Although the past month has been a bit low, with the semester over and exams done, I'm ready to truly begin with focus, commitment and ---- ----- willπŸ‘Š. Documenting my journey and building my skillsets in public is an initiative that I've decided to take up because accountability on my journey will help me keep going with my public resolutions.

Developer Bucket List For Rest Of 2022

  • Learning and developing projects in frontend web development with the trinity(html+css+js), and learning atleast 1 CSS framework, along with one JS framework.
  • Learning intermediate c++
  • Plunging into Data Structures and Algorithms (DSA)
  • Developing problem solving mindset through competitive programming

Conclusion

In life we never truly know which rung we stand on, or which one we'll be the next day. All that is in our hands is living every day with true zeal. Pick your lead domino and push your way to a better you!

black-and-white-2309273_1920.jpg Image by Pera Detlic from Pixabay

Did you find this article valuable?

Support Code Caravan by becoming a sponsor. Any amount is appreciated!

Β