Learning Python on the Job
Tags: python, analytics, programming, codenewbie
Published: 2021-11-11 07:54:48

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/e15ds5st4r05t3jnh1v3.jpg)
You know what they say about cat ownership? In some cases you don’t go out looking for a cat, the cat sometimes picks you. In that sense, the python programming language seems to have worked its way into my life. I never planned on ever using it as much as I do and embracing it with the kind of enthusiasm that befits a newly initiated cult member. I’ve taken a few “learn python” courses and tutorials on a few platforms, but it never got me too excited. I was always turned off by the syntax, the coding environments (IDLE) and the fact that I never quite saw the big picture beyond “What is a variable?” and mathematical computations. I would give it a go, get to the part about functions and quickly lose interest. I always got a little lazy a few days in and then justified my laziness by questioning the practicality of trying to learn code in the first place.

I should give you a little background: I currently work as a web analyst for the marketing division of a large organization. Prior to that, I did IT/admin support for a survey/evaluation firm. While I have a technical work history and education (an MSc in Geography), I never learned to code. I never really had to!  Most of the work I did relied on using either GUI interfaces or very high-level scripting languages that abstracted away a lot of the messy/weird stuff. At some point during my career I started programming with the web stack and some JavaScript/JQuery. With my background in maps I ended up building with the Google Maps API for a project at work. On one project I worked with some code written by someone else using React, ES6 and node.js.

When I got hired as an analytics specialist all the basic web development experience came in handy, especially while working with tag managers and analytics platforms. One day, a few weeks into the new job, I was asked to figure out how to scrape content from word and pdf documents. The idea was to come up with a means of batch automating the conversion of text content from various documents into HTML tables for display on a website. After googling a bit, I discovered the e-book [Automate the Boring Stuff with Python](https://automatetheboringstuff.com/) and realized that python and the associated libraries were the ticket.

Being an avid vscode user, I followed this *excellent* primer on [setting up a python environment](https://code.visualstudio.com/docs/languages/python). After using node and npm to install JavaScript libraries to build web apps, setting up environments in python and installing libraries with pip made perfect sense! After a few days of messing around with python and various libraries (pandas, numpy, etc.) I cranked out a script that automated some html tables.

I was shocked. It felt like I was able to accomplish quite a lot and impress people at work with something I literally ‘picked up’ 3 days prior. I didn’t really know what I was doing, and I still don’t know what I’m doing. Somehow, this doesn’t bother me because 99.9% of the time I can figure out how to accomplish a task in python or a library by using a search engine or stack overflow. Most of the problems I’ve faced have been solved in countless ways by other people! A lot of my coding in python is just grabbing libraries and code online, repurposing my own stuff and plugging it all together. It feels a bit like playing with magic lego bricks, and it’s a blast!

It snowballed from there. So far on the job, I’ve had the opportunity to research and build internal business tools including:

-  an automated excel formatter that uses a simple GUI and runs as a Windows desktop application using [PySimpleGUI](https://pysimplegui.readthedocs.io/en/latest/)

-  A QR-code generator app with [qrcode](https://pypi.org/project/qrcode/)

-  A NLP workflow to analyze large collections of text and produce ‘wordcloud’ and ngram visualizations. There are tons of resources out there. I liked [this](https://towardsdatascience.com/nlp-101-%E2%85%93-feature-engineering-and-word-embeddings-f10dffd67bb0)

-  A fast and easy to use customer website feedback analytics toolkit and workflow using [pandas](https://pandas.pydata.org/), [NumPy](https://numpy.org/) and [sqlite](https://www.sqlite.org/index.html) that replaced a gigantic excel workbook that crashed if you looked at it funny. (another thing I picked up on the job was SQL, which was a snap with python).

-  Full stack Interactive data visualization web apps with [plotly/Dash](https://dash.plotly.com/) to build online dynamic reports 

After having some experience building with React, building apps with Dash was very intuitive. Using React and Flask under the hood, it’s a low-code path to creating slick data visualization projects with some basic python syntax.

I'm hardly a ‘python master’, but in the first four months of coding on a regular basis at work, I’ve been hugely productive. I didn’t have to go to a bootcamp or anything like that either! Making little utilities for myself and for my coworkers to speed up and automate our work has been the big payoff for learning python. The experience has been nothing but positive and I’ve seen a lot of growth professionally! I can’t wait to see what else I can do with this stuff in the coming months. Will I ever take a structured learning approach and invest in a bootcamp? 

 I’m not sure I really need to!