How I picked up python (fast)
Tags: python, productivity, startup
Published: 2019-10-16 17:49:14

![Typing Fast](https://media.giphy.com/media/toXKzaJP3WIgM/giphy.gif)
Whether you are a software engineer or a just an aspiring programmer, you are always eager to polish your skills and learn new things. Sooner or later, you will want a breath of fresh air.

This article documents my transition from Ruby to Python over the past year and the process I stuck to.
# why I switched to Python
When I landed [my dream job](https://veamly.co/mydreamjob), I had no idea I will be writing code again (at least not as frequent as software engineers do).  

But then I started noticing that my new role involved dealing with many spreadsheets and reaching out to software engineers, interacting on forums etc. 

Don't get me wrong, I love that but as things scaled, It was challenging for me to keep up especially that I am a bit slow due to my physical disability. I would rather work on more urgent.

Honestly, tedious tasks are not my cup of tea. 

I know Ruby already so my first instinct led me there and it was fine. But then I dug deeper searching for the so called the best tool for the job.

After a lot of research online, I ended up picking up Python for 3 simple reasons:
* *Powerful for data visualization*: I am managing a lot of numbers and spreadsheets daily although ruby would get the job done automation wise. If I wanted to showcase numbers into graphs, python is winner here.

* *Tons of resources available on automation*: During my research, I stumbled upon a book: [Automate the boring stuff with Python](https://automatetheboringstuff.com/). I read the first few chapters and I was blown away. When I had a question, almost every time the answer online involves the use of Python.

* *Machine Learning*: I am a curious guy and although I have no intent to become a data scientist, I would love to keep an open mind. In fact, I did play with that in the past(That's a story for another day)

#A quick warm up over the basics

I knew I didn't have the time of the world and I needed write 
automation scripts ASAP. But first I needed to get familiar with syntax(Loops, Control flow, data structure, classes etc). So I relied on [some interactive tools from the official documentation](https://wiki.python.org/moin/BeginnersGuide/Programmers).

#I Learned on the go

A lot of developers especially in the beginning have a perfectionist mindset and this is usually a huge blocker to their progress. 

 
Without much of a surprise Within one hour, I was writing python scripts. But in order to build something useful, I had to understand [how to manage spreadsheets](https://hackernoon.com/working-with-spreadsheets-using-python-part-2-c8b4ea7e2b65) and how few other libraries  work notably: [Selenium](https://selenium-python.readthedocs.io/) and [Beautiful Soup](https://selenium-python.readthedocs.io/).

I don't know everything and that's fine. I will add to my knowledge basket as I go. 
 
#I Read other people code 

I have been writing python scripts for almost year now and although I made progress, reading code from open source projects on Github is still one of my guilty pleasures that actually made a big difference during this journey. 

I understand it can be intimidating to navigate a large code base but you gotta start somewhere.

Happy Hacking :)