Now Reading: A journey into … Python! (Part 1)

Loading

A journey into … Python! (Part 1)

svgOctober 11, 2024PythonTECHToby Roy


So you wanna be a Pythonista?

11-13 minutes to read

I started using Python over a year ago now and have to say that I love it! I’ve tried other languages, JavaScript and SQL to name but a few, but Python was the one that really clicked for me. Context is key, so I must stress that I started my tech journey in web development but veered towards data analysis where I found a greater sense of flow; my background in science perhaps being a contributing factor.

Python became my preferred tool, particularly in data, and I was able to quickly leverage it for a range of complex tasks where setting up different environments was, for me at least, comparatively straightforward.

So if you’ve found a connection with Python but aren’t quite sure where to run with it, you might have just come to the right place. Especially so if you’re transitioning careers and you want to gain an understanding of how to grow as a developer.

Article Sections …

  1. So where should you start on your journey and how can you stay motivated?
  2. Watching videos isn’t enough, you need to immerse yourself in the language.
  3. Should I enrol on a bootcamp?
  4. Identify YOUR problems and brainstorm solutions.
  5. Build your own roadmap to learning Python but check if it tallies up with respected voices.

Cautionary note: do not read on if you despise people who learn new skills and aren’t techie sounding enough!

1. So where should you start on your journey?
1a. The limitations of YouTube.

YouTube isn’t necessarily a bad place to start your journey into Python! One of my favourite YouTube hosts is Tech With Tim and I really wish I knew about him much earlier. Nowadays, I dip into his videos every so often, especially if I need to consolidate my learning in a specific area or find out the latest developments and recommendations.

However, that’s where my positivity about YouTube ends. In fact, I shudder at the thought of watching a YouTube tutorial unless it’s a really well trusted content creator.

You may stumble upon the exact video you’re looking for on YouTube, only for a segment of the video to be really unclear. Before you know it, you’ve made a number of significant mistakes leading to multiple error codes with lots of scary looking red font on your screen! Worse still, two hours in and you discover your host is working with a deprecated library version and you can’t figure out how to resolve the issues on the version you’re working on. 

My advice would be to watch only recent videos (no older than a year at the most) and to also make sure that the content creator shares their code solution by providing a link to his/her GitHub Page, which they are hopefully updating. I’ve personally found more success from highly rated Udemy courses than YouTube, and if you buy during the sales, you can make huge savings.

1b. Consider a range of resources and certification.

My first experience of Python was during a bootcamp where I was shown the basics during just one zoom call, and was then given lots of reading materials to supplement the learning. I prefer reading, combined with small challenges, to code-alongs. That’s why the course provision worked for me. However, I appreciate that may not be the case for you, so I recommend being open to trying a variety of resources as well as resource types (videos, books, online challenges etc).

During a later bootcamp (both were free courtesy of the Department for Education) I decided to aim for certification by sitting the Python Certified Entry-Level Programmer (PCEP) exam – check out https://pythoninstitute.org/pcep for more information.

The PCEP course comes packed with lots of useful free content, and if you do decide to go down this route, I would strongly recommend purchasing the practice materials and practice exams. I did exactly that and passed on the first time of asking. Following the course, you may not be job ready, but an accessible certified beginners course can go a long way to boost your confidence and keep you motivated.

2. Watching videos isn’t enough, you need to immerse yourself in the language.
2a. If you cannot create projects from scratch, consider better teaching materials.

Aiming for certification helped accelerate my learning as well as my confidence, but only to a degree. You see, there was a giant pixelated elephant in the room that I really couldn’t ignore any longer.

I’d acquired lots of new knowledge, but I didn’t have a clue in how to actually start a project. It was the coders equivalent to writers block! So I decided to purchase the ‘100 Days of Python’ course by Angela Yu from Udemy and that’s when things started to change. Just to add, I only purchased this content as I already owned one of her courses and liked her teaching style.

Do the research to see what’s right for you as I personally cannot recommend courses. What I can say is, ‘100 Days of Python’ ticked a lot of boxes for me. Udemy courses that offer daily challenges are a great way to improve muscle memory; enabling you to think more laterally whilst making the language less abstract.

Once the abstraction goes, the writers block slowly begins to lift! A note of caution however, motivation always has to be managed and entropy can rear its ugly head at any given moment, so buying courses is not a one stop solution. You need to do more.

2b. Consider creating your own roadmap.

In a previous article, I mentioned the importance of roadmapping. For me, all roads point to Python, which forms the basis of my learning. But my development and more importantly application of Python can only happen if I have an understanding of what I want to use Python for! I think this is the mistake that many make, often jumping onboard the recommended road maps of YouTube content creators without using any real discernment. 

And by the way, I have been my own worst enemy regarding this – yes m’lord, guilty as charged! Following another person’s roadmap may just simply lead you to purchasing their content after having had a taster of the free stuff. Now whilst this could potentially lead to you securing a job, it could also take you further away from any of your prioritised goals.

Not knowing your goals can happen if you don’t know what your values are (which is what I discussed in my previous article). If you’re changing careers, the last thing you want to do is learn something new, only for it to all backfire because you haven’t sat down to really think about why you are making the transition in the first place.

3. Should I enrol on a bootcamp?
3a. There are readily available free resources on the internet, and you can collaborate with people on LinkedIn.

So you might be think about joining a bootcamp, which is a perfectly reasonable consideration when you are a complete loss. But surely a bootcamp just gives you the core skills that can be easily gained by reading the free resources readily available at W3Schools for example. And then theres the plethora of free documentation available on a whole host of websites. 

Maybe the real advantage of attending a bootcamp are the networking opportunities, which steadily increases your LinkedIn following and online presence. Then theres the potential for collaboration on projects that will contribute to your portfolio.

With that still said, couldn’t you network by entering a Hackathon or a competition on Kaggle? Not only will that increase your online visibility, but in completing group projects, you will have evidence that can go towards your portfolio whilst demonstrating teamwork capabilities.

3b. Are bootcamps worth the money?

And what do you do after spending thousands of pounds or dollars on a bootcamp and still end up with no job? I’d personally take whatever stats bootcamp providers throw at you with a pinch of salt. Of the 97% they claim to have placed in employment, how many are in actual tech jobs? If the bootcamp is free, by all means consider it, but be prepared for that route potentially lacking in quality.

4. Addressing YOUR problems and brainstorming solutions.
4a. Not everyone can be the next Elon Musk.

It’s really important to address a problem in order to find solutions. I heard so many fellow bootcamp students say, “I can’t think of a problem”. Maybe thats because we need to stop seeing ourselves as lone coders sitting in our bedrooms trying to come up with a problem that no one, including multinational firms, has identified. All in the very hope that we’ll find a solution to the very problem we are all struggling to come up with in the first place!

This is a common mistake and it is truly remarkable how many content creators on YouTube actively encourage us to go down this rabbit hole! My personal recommendation would be to sit down and really brainstorm, and as you brainstorm, highlight any active words, which I’ve italicised in the next paragraph. I’ll address why they are important a little later, but please bear with me for the time being.

4b. Consider addressing your own problems instead of real world ones.

For me, a current ‘problem’ is finding a way of assessing my current Python skills in order to establish what I’m proficient at and what I need to work on. I also have the problem of generating ideas for projects where I could be developing an app related to any advanced skills I want to showcase. I have the major problem of being a lone programmer so want to find effective ways in which I could be collaborating with people who share similar interests to me.

4c. Transferable skills are really important.

So what I’ve described above aren’t real world problems, but mine. But that is an ok place to start, because finding solutions to any problem becomes transferable. The words I have highlighted in the previous paragraph are important. Highlighting active words are helpful in establishing what you need to actively do in order to grow as a Pythonista.

Journaling your growth is also important because it allows you to demonstrate how you actively overcame challenges, which could be especially handy during job interviews or to a lesser extent, business client meetings. 

Once you are developing solutions capable of finding, assessing, generating and perhaps even making it easier for collaborating, this then becomes transferrable as you discover a real world problem in the future that you may have the solution for because you are better resourced. Other active words that are relevant for me include interacting, automating and computing, which are all related to advanced skills I’m eager to gain.

I’m trying to emphasise the importance of the transferability of skills rather than focussing on projects that are a solution to real world problems. I’m not saying you can’t solve real world problems, but that solving real world problems only occurs once you are more equipped.

5. Build your own roadmap to learning Python, but check if it tallies up with respected voices.
5a. A flexible roadmap can help you respond to market trends.

Personally, I think all tech enthusiasts should have one eye on where the tech industry is performing well right now, whilst also having the other on the future. Cloud computing is very much a successful feature of today, and IoT devices may have a huge impact for tomorrow.

My roadmap has identified that working with databases and leveraging AI will be very important advanced skillsets to acquire now, and increasingly so in the coming years. I strongly recommend researching how tech is shifting in the current landscape, and how you can be responsive to those shifts.

5b. ‘How I would Learn Python in 2024 (if I could start over)’ by Tech with Tim.
Python roadmap guidance from Tech With Tim

A recent video from Tech With Tim entitled, ‘How I would Learn Python in 2024 (if I could start over)’ seemed to validate some of my roadmap choices. It was comforting watching a video where his viewpoints aligned with my research and priorities!

5c. The fundamentals.

On that video, Tim mentions what Python topics any beginner should focus on in the first few weeks. These are: data types; operators; variables; conditions; conditionals (if, else if and else); looping (for and while loops); lists; dictionaries; sets; and functions. 

Tim recommends learning from videos, but in my opinion that won’t necessarily work for everyone. He also advices on following complete project walk-throughs on YouTube. I’ve done this through structured lessons on the Angela Yu course I mentioned earlier, but I occasionally refer to YouTube content as well. He also places an emphasis in trying to reproduce walk-throughs without any guidance a few days after watching, which is a truly excellent piece of advice! You should then have the confidence to build some of your own small projects. 

5d. The intermediate level Python programmer.

After building some small projects, you are approaching the end of the beginner stage, and Python Object Oriented Programming (POOP) is the natural next step, and I would have to agree with that. Whilst Tim mentions that POOP isn’t complicated, I would disagree; there were a few gotcha moments when I was learning but it does become clearer in time.

Something I haven’t done with Python is using the Pygame module (of which Tim is an advocate). Whilst I have attempted to reproduce games like tic-tac-toe, hangman and blackjack, all using pure Python, and have also re-created games like Snake and Pong using the Turtle graphics library, Pygame isn’t something I’ve dabbled with … YET! Automation is something that comes up frequently in Tim’s recommendation, and I would have to concur!

Web development using frameworks like Django is very much the intermediate stage of any Python developer. In terms of web development, Tim advices us to: learn about HTTP methods and APIs; learn request module; build a simple website with flask; move onto Django; and dabble with fastAPI. My focus is Django, but I agree with pretty much everything he has said with respect to web dev.

5e. Becoming a Pythonista.

After this, Tim recommends moving on to some advanced Python features. These would include: decorators; generators; context managers; meta classes; and dunder methods. I’ve covered some of these recently but I am struggling to retain them. I’ll no doubt have to revisit them again sometime soon. Nonetheless, what he has outlined is certainly bang on!

Once you’ve mastered these, you are in a position to move on to: machine learning; AI/LLMS; data science; backend development; devops engineering; automation; robotics; and raspberry pi.

Conclusion

YouTube is a good place to start, but be mindful of its limitations. Staying motivated is challenging, so consider certification and resources that will enable you to create your own projects as early as possible. Bootcamps are an option, but shouldn’t necessarily be the first port of call. Instead, focus on building your own flexible career roadmaps that are responsive to market demands. And finally, gain insights from respected voices when designing your own roadmap

This feels like a good place to stop. Next time I will be talking about some good walk-throughs I’ve come across in my Python journey, as well as some great ways to consolidate your learning. Thank you for taking the time to read this article. See you later!

Toby Roy

Tech Facilitator | Tech Advisor | #Python | #Data | #AI | #DigitalTransformation |

svg

What do you think?

Show comments / Leave a comment

Leave a reply

Loading
svg
Quick Navigation
  • 01

    A journey into … Python! (Part 1)