Python Challenge Recap
Juan F Gonzalez
Posted on August 20, 2023
Hello again, friend!
I hope you had a great week in this mid-month of August.
This time I come to present you my results of the learning challenge I started this past week.
Let's get to it.
Intro
In case you are not aware, I threw around the idea of doing a challenge to show how long can it take to go from 0 to competent in a new language.
In this case, I went with Python because I was at a total zero knowledge when it comes to it.
And the whole goal was to learn enough of it to work on my first AI project and understand how LLM's work.
But one thing is what you plan to do and another one is what actually happens.
So, this is me telling you the "expectation vs reality" side of things.
What made the challenge harder
A couple of things here made this experiment a real challenge.
Like:
Prior to this, I haven't touched a line of code in 2 years.
I only have experience in frontend development, nothing backend related.
I didn't do much prep work beforehand and I didn't know what I was getting myself into. (The only thing was asking an AI what would be the 80/20 of Python)
I never picked a real date to start with it and instead was kinda forced to do it by the circumstances.
I started it in a week where other projects, tasks, and due dates converged into. (This has been a pretty busy week...)
It reminds me of that saying, "when it rains, it pours".
But I had to keep up with all of that regardless.
What made the challenge easier
This is the other side of the coin.
These elements made the experiment less challenging.
Like:
Python is a very beginner friendly language. And many people say it's great for complete beginners to learn.
There's a lot of resources for learning and there are several "crash courses" on YouTube for it.
Python is surprisingly similar to JavaScript. I found myself in many situations being like "hey, this is like X in JS!"
The challenge was scoped. I was not trying to "become a master in Python". It was more directed to get productive and start building stuff with it.
And all of these balanced things out and helped me get a head start compared to other approaches.
What ended up happening
The expectation was to put around 2 hours every day to start learning and practicing. Also, to do all the prep needed like having Python installed and a dev environment properly set up.
In reality... life happened.
There was a big problem with my ISP on Monday afternoon. Where I live and other close towns lost the Internet, TV, and phone service.
For more than 6 hours...
I was offline after 4:40 PM until I went to bed at 10:30 PM.
On Tuesday, I had several things to get caught up with and trying to finish what I couldn't the previous day.
A couple of articles to post, projects to make progress on, and people to talk to both for work and personal stuff.
On Wednesday, I was on a couple of meetings/webinars/and such. Kept making progress on work and several tasks.
Later on, 2 technicians came over to check if the service was working and to change the router for a new one.
It was until 5:30 PM that I could get a start to anything Python related.
I went through 3 "crash courses" on YouTube to give me some context. At 1.75x speed (2x is too fast and couldn't understand anything).
I also downloaded and installed Python on my laptop.
On Thursday, there was more work, finishing stuff, live calls, and such.
On the afternoon I picked back up the learning duties. But I was confused because it seemed like Python wasn't correctly installed. 🤔
And it turns out...
There's a version that can be installed from the Windows Store and there's the normal installer from the official Python website.
Path conflicts ensued...
...
Uninstalling and reinstalling with custom options made it work. (Time that I spent not learning the language.)
On Friday, I was getting really anxious because it was very close to the weekend and my progress in this challenge was minimal.
But since I made good progress in all the others tasks I had for the week, I could spend more time on the challenge.
I continued reviewing parts of videos, doing exercises from Google's Python course, and learning how to use Colab Notebooks for more "real world" practice.
Lessons learned
I'm by no means an "expert" at this point. But looking at production-level Python code no longer looks like I'm trying to read German (which I know nothing about it).
I'm yet to learn more about those "list comprehensions" that look like a really nifty feature of the language. Also, tuples and sets are structures I have to practice more using.
But now I know why the language is so popular. It's so versatile and it helps you do several things beyond "plain ol' software dev".
I now know the difference between AI, machine learning, and data science. They overlap a lot and it's easy to confuse them.
I have zero interest in linear regression, data visualization, statistics, and the research side. I rather be on the intersection between AI, algorithms, and user-facing products.
I also didn't use AI to help me with any of this, it felt like cheating. I only used the approach I would've 1 or 2 years ago.
(But imagine how farther could you go and how much you could accomplish if you used AI as part of the process.)
And now, lesson for you. Learning with an end in mind while ignoring the rest is the way to go.
But this kind of learning is more about mindset than aptitude or skill development at all.
You'll have to get used with being uncomfortable, looking like a fool, and not knowing what you're doing at first.
Before you can become competent and proficient faster than any of your peers.
That's one thing you should write down and post it somewhere nearby.
Conclusion
There you have it!
Hope you've learned a thing or two that you can apply for future projects or experiments.
Thanks for reading.
I'll keep bringing you more ways to improve and supercharge your learning.
Peace out!
Photo by Chris Ried on Unsplash
Posted on August 20, 2023
Join Our Newsletter. No Spam, Only the good stuff.
Sign up to receive the latest update from our blog.