My Journey as a Self-Taught Programmer (so far)

My Journey as a Self-Taught Programmer (so far)

There are very few (if any) fields today that aren’t impacted in some way, shape, or form by programming. Programming is a term that’s basically synonymous with technology and what professional field today doesn’t employ some form of technology? The ability to code has become one of those skills that open up an incredible number of doors if you possess it and it’s this fact that led me to venture into the world of Python– one of many programming languages– to simply explore it and see what I could learn. I wanted to write this article not to convince people to pick up coding as a skill (although it's great) but more as a documentation of my journey in learning a new and challenging skill and how important having an actual purpose for something like this can be, however small or niche.

I officially started this journey just over a year ago and it’s important to note that I didn’t really start it with any specific goal in mind nor did I have any real notion of where I could apply this skill. In short, I had no purpose. Now, this wasn’t a problem initially because I guess you could say my purpose was just to learn the language but even that in itself is incredibly vague and doesn’t provide a clear enough endpoint.

Just like anything you try for the first time, it was incredibly daunting. I found that it was more than just learning the Python language (apparently one of the easiest ones to learn), it was also changing the way you think about and approach problems. There are entire books dedicated to learning to ‘think like a programmer’ and although I knew of the concept, it wasn’t something I ever considered. I simply started learning the basics of the language because I recognized that starting was the hardest part and that if I wanted to overcome that natural steep learning curve that is present in all new skills, I just had to dive in.

Very slowly I began learning about proper syntax, lists, tuples, dictionaries, functions, and all these terms that meant absolutely nothing to me. I was enjoying the process because I was indeed learning but I had no purpose beyond that, no real vision as to how I could apply this new knowledge.

Over 7 months went by where I went at my own pace learning a little bit at a time and adding to my growing stack of Python knowledge (which still had no real purpose). Eventually, shortly before Black Friday, I was exposed to the idea of writing a program that would check the price of certain item(s) I was interested in online and if they were below a specific value would send me an email and/or text message to notify me so I wouldn't miss out on the sale. I instantly became enamored with the idea and upon researching what Python skills it would require I realized I already had–in theory–a good chunk of them.

This suddenly became the purpose to which I could apply everything I had learned and it didn’t take me long to recognize that my learning progress exponentially increased. I was overcoming bugs and knowledge barriers at a much faster pace than what I was achieving previously and before I knew it I found myself building on my initial idea and exploring concepts I had not even heard of before. For example, on top of writing my script to check the prices and send me notifications I got the notion of fully automating everything to run at certain intervals throughout the day without me having to do anything at all. This led me to discover the smartphone-sized computer called a Raspberry Pi which I ended up acquiring and configuring as a server to continually run my program remotely without my input.

This personal project isn’t something revolutionary nor is it something that has never been done before; it’s simply a testament to the importance of having a solid purpose when venturing into an unknown domain that will present you with challenges you aren’t used to facing.

After a span of a few weeks that small, very particular purpose gave me my first actual program that wasn’t just practice code and which actually had value to me.

Although I don’t regret any part of this experience, reflecting on it has forced me to wonder just how much sooner I may have been able to achieve this and more if I had put some more thought into what I wanted my purpose to be.

I look forward to continuing this journey, overcoming the obstacles it throws my way, and hopefully creating something that has value to someone other than myself.

Here's How Programming Has Changed My Life


Programming has made me believe that I can solve a problem and tackle an error. It makes me sleepless. Stack Overflow became my lover. My thinking improved. I started admiring code with proper documentation.

It gave me a purpose in life. At times, it makes me frustrated that I missed a simple syntax error. At the same time, it makes me happy that I’m making progress.

All statements become boolean… either True or False. My counting starts from zero instead of one.

I now understand that training a computer to do a certain task is tougher than training a human.

Conclusion


It took me several months of finding my path and developing little desktop apps to start feeling comfortable as a developer and embracing my errors and fears.

Looking forward, I am eager to learn more, become a better programmer, and hit my first paid job as a programmer soon. I would like to tell everyone that becoming a programmer is not something you can learn by merely attending computer science classes. Even if you have a computer science degree, you still have to:
  • Be passionate about programming.
  • Practice.
  • Read books and watch presentations.
  • Try different languages.
  • Read and write code.
  • Learn to touch type (this will improve your posture and muscle memory and you will definitely notice a difference in speed when typing on your keyboard).
  • Name variables and subroutines in such a way that they can be recognized or represented.
  • Type rather than read (always write on the topic for better understanding).
  • Learn and implement.
  • Program or code daily.
  • Write software that interests you.
  • Read stack traces from the top line down.
  • Aim to write the smallest working program possible.
  • Always google.
  • Build programs one at a time.
  • Ensure braces always pair up.
  • Format code correctly
  • Etc.

Each story can be an inspiration to rethink our priorities or refocus our efforts.

The embarrassment of an error lasts only for a few seconds. Learning from it can be forever, and trust me, it is worth it.

I hope this article will inspire many others to never relent. You can do it and will definitely get there. Just be passionate and eager to learn and find a great mentor.

Post a Comment

Previous Post Next Post