Starting the programming journey with Python.

Raymundo Rojo
4 min readOct 15, 2023

--

Nothing tests your understanding of something more than trying to explain it -simply- to someone else.

A challenge presented itself to me. Get a few aspiring programmers set up and started on their coding experience! I had thought it would come easy to me. After all, I have several years of experience programming in Python in my day-to-day job on top of nearly a decade of tutoring. I’ve helped college-age students across all sorts of engineering courses ranging from calculus, thermodynamics, and MATLAB to name a few.

Then, at work, I jump at every opportunity to help my coworkers through whatever questions they throw my way and to expedite and guide their learning. I struggled a lot and had several “I wish I had or knew this earlier!” moments I hope to spare my colleagues from.

All this said… I thought I was set. Boy was I mistaken. I fell into the trap of taking much of what I do for granted. I was so focused on trying to re-create things I do within the confines of work and personally at home, that I did not fully consider all of the learning resources out there! Specifically, I overlooked the advantages of cloud-based programming options like Google Colab. If I were to try again, this is how I would get others’ feet wet with Python ASAP

Programming on the cloud

Pros:

  • Immediately jump into programming
  • No need to install a single thing
  • Easily sharable code

Cons:

  • Limited control as to what can and cannot be installed
  • Free cloud resources have limited computational power

As I mentioned above, I would recommend:

Google Colab

Consider Google Colab the public park of Python programming. It’s open to everyone and doesn’t require a key or a membership — just walk in and enjoy the amenities. Just like you don’t have to plant the trees or install the benches in a park, Google Colab offers you a ready-to-use Python environment. All you need is a Google account, and you’ve got instant access to a space where you can code, run experiments, and (as its name implies) collaborate and share with others.

Installing Python on your own computer

Pros:

  • More control over what Python packages you have installed
  • Can more easily interact with files outside of Python (i.e. read an Excel sheet saved on your computer)
  • Access to your entire computer’s CPU, RAM, and GPU resources

Cons:

  • More steps involved
  • Code may not be portable

Adding Python to your own system does layer in some complexity, but it’s a rite of passage that can't be avoided forever. For this, I generally rely on two methods:

Anaconda

Anaconda is the Swiss Army knife for Python. Imagine a toolbox with almost everything you’d need for a project — you’ve got Python, an assortment of pre-installed libraries, and Jupyter Notebook. These features make it easier to share projects for others to-recreate what you have so your program runs on their computer

For reference: Jupyter Notebook is an Integrated Developer Environment (IDE), or, more simply put, a specialized software for coding.

Python in VSCode

If Anaconda is the Swiss Army knife, then Visual Studio Code (VSCode) is the custom blade you build from scratch. You have to install Python and other packages manually, but the flexibility and customization options make it worth it in the long run. The built-in terminal and vast library of extensions give you full control of your Python experience. As a bonus, you can alter the look of VS code with a variety of themes and personalized settings. You can’t go wrong here if you’re planning to dig deep into Python, or even branch into other languages.

Learning resources

Ok, python is set up. now what? To say there are a dizzying amount of learning resources out there would be a gross understatement. You could fill a home library several times over with textbooks on all the different ways you can use Python. While there is certainly value there, I’m a huge fan and proponent of learning by doing. With that, these are the resources I have used and can honestly recommend:

  • Datacamp
    Hands-on with -immediate- feedback if my code submissions are correct or not.
  • Hackerrank
    Contains a set of Python tasks that introduce the basics and build up from there. Also has several challenges to try.

By no means limit yourselves to these if another source suits you better!

Programming challenges/puzzles

“Real” programming isn't a constant barrage of challenges. I have yet to have to build a script at work to convert the letters of a Roman number to an integer. But they do a great job at getting you to think like a programmer in the context of helping you understand how your code works. The resources I use to play with programming challenges are:

  • Leetcode
    A large assortment of challenges set to prepare coders for the intense coding interviews.
  • Codewars
    More general challenges to ‘train’ on and get lots of practice with.

--

--