Exploring the Python World Part II: Tales of a Python Apprentice
What I have learned
A month is not an impressive amount of time nor the amount of time needed to feel confident using Python! However, I like to consider myself in the category of: Python Apprentice.
Since the last blog post I have consistently learned about overall concepts related to Python and my project idea. I can now run short programs, a small accomplishment, but if I see them as merely very explicit instructions, the concept of computer programming doesn’t sound so intimidating. The overall concepts I have gotten mostly from “Automate the Boring Stuff” and some coding challenges from codingbat.com, such as:
Control Flow statements, logical operators, string concatenation and list concatenation, indexing. Basic functions and methods. And, of course, remembering how to treat dictionaries (they’re a special).
The other portion of my time has been invested in Flask, a Python micro-framework (see documentation flask.pocoo.org). I found an interesting tutorial on YouTube of how to create a flask app, which shows how to render html templates, add layouts and last but not least run XAMPP. The latter providing MySQL servers for my data tables.
What I have learned about “learning”: The learning curve & evolution of my study methods
- One language, many flavors
A buffet of options depending on project needs, or if given the freedom, simply personal taste (speed, customization, simplicity, the scale of the project, etc).
If you are new to programming, I will say whichever direction you decide to go (data science, web development, or somewhere in between), there will be many choices to pick from and learn about at the same time, from your text editor/IDE choice, to web framework, server etc. It’s not just learning 2 or 3 subjects. There is a lot going on, which is what caught me interest in the first place. Little by little I am adding pieces of information that are slowly sticking, such as activating my virtual environment or finding clues of my code mistakes in the command line when running my flask app. Or glitches about setup, as my mentor said, “you are getting so good at editing the path!” (…joy of Windows).
Overall, the more I learn, the more I realize how much more there is to learn!
- Keep track of your study time
This is especially relevant if you are starting as a blank canvas, absorbing all the programming concepts/tools/tricks. After writing my first blog post I thought I was going to spend more time learning Python code, but I have actually dedicated much more time to web development. Lately, I am even writing down my time allocation, this has been good at reminding me that I should get back to learning more Python syntax.
- Save those handy articles, videos & code snippets
Do it any way you prefer, but save them. It’s always nice to be able to go straight to that perfect example that addresses your error.
The status of my project
The reality check — from brainstorming to execution. After doing more research of how to get my data I had to tweak the main idea since some pieces of data were not publicly available. However, I still wanted to keep the broader subject, which is to display insight about how to get into programming, such as the supply and demand of programming jobs and skills. Besides the weekly meetings with my mentor, I have asked around and received good feedback about how to approach the project from other ChiPy members within and outside the mentorship program.
With their advice in mind, this week I am poking around to learn about web scraping, which is now potentially the option to get the data for my project.
As part of my wish-list by the time I write my third blog post:
- Feel much more confident when revising the structure of the basic flask app I created, i.e. understand what each part of the code is doing for me and to have the ability to re-create it with ease.
- Finish the Udemy course that follows the “Automate the Boring Stuff” book.
- Create and run spiders to scrape web pages and collect the pieces I need for my project.
- Get better at following the correct folder structure of my general Python practice projects and capstone project.