I maintain a long list of potential posts, which usually don’t get written unless I have a lot of downtime. Often posts are researched or written when I’m sitting in an airport or a hotel room. “Regular” life doesn’t seem to provide enough time to focus on these things for long. This post is an opportunity for me to revisit some ideas I’ve been meaning to write about but haven’t found the time to do so. This is the first real assignment for the #cnc2018 blog more challenge. For this assignment, our instructions are as follows:
Come up with 10 blog ideas, then narrow those down to 3. For this challenge, your blog should fall into 1 of 3 categories: tutorial, project, explainer.
Code Newbie Challenge 2018
Some Basic BASH Commands to Get You Started Using the Command Line
A Quick Overview of JupyterLab
How to Get Started Contributing to Open Source
What is big data anyway?
A Quick Intro to Magic Functions in Jupyter Notebooks
Accessing the US Bureau of Labor Statistics API
I finally managed to finish the Intro to Programming nanodegree after about three months of off-and-on work. It wasn’t a hugely satisfying experience, but it did have its high points. I struggled for a long time to complete a fill-in-the-blanks quiz using Python 3. The earlier lessons, such as creating a webpage, didn’t seem to require much programming at all and weren’t terribly difficult. As a final project, we created a movie website that used Python objects to represent movies with their poster images. Again, this project wasn’t terribly hard and I don’t think I learned a ton by going through the process of making it. It was sort of a programming-by-numbers experience.
As I begin to get this blog up and running, I’m taking John Sonmez’s free email course on getting started blogging. I found John through The Complete Software Developer’s Career Guide, which is a pretty great introduction to both the hard and soft skills necessary to get a job in tech. John has had great success blogging, and it even kick-started his programming career. John’s blog is called Simple Programmer, and he has a lot of great resources for beginner and more advanced programmers.
Teaching yourself to program is difficult for a number of reasons, but I’ve found for myself the biggest problem is distraction. I’ve always been distractible and I’ve found focusing on one thing for an extended period difficult. Learning online exposes a person you insane number of great resources and it’s tough to filter through all of the various tutorials and stick to one thing. In order to limit distractions, filters can be handy. One filter that I’ve often applied is a financial one: I don’t like to pay to learn to code when there are so many incredible free resources. I’ve broken this rule several times, in part because I see the value in learning with others and because a financial commitment is pretty good motivation. Plus, paid resources can often be a lot better than the free ones. If you’re a beginner, there are plenty of free resources and once you’ve reached an intermediate level, it’s much easier to teach yourself or refer to documentation and Stack Exchange.
This is my first real foray into blogging and an attempt to share what I’m learning as I begin to get serious about programming. My hope is that I might help others who are also beginners and who feel overwhelmed and lost as I have. The process of becoming a hireable programmer can be very challenging, and I want beginning programmers to know that they’re not the only ones struggling. It seems that tenacity in the early stages of programming pays off more than almost anywhere else in life. Learning to persist in the face of confusion and frustration is a skill that will help out elsewhere, so learning to program has value outside of making more money. That is, I assume, why so many people are keen on becoming developers right now. From what I can tell, having skills as a programmer also open up new opportunities in unexpected places - social science, business, etc.