Programming Day

Technically, today is not day one because I don’t really know when I first touched coding and programming. I know my first brush with coding was in the ninth grade with HTML and I have been building websites ever since. Even though HTML is not programming, around the same time I did learn Macromedia Flash which is programming. As I devote myself to programming now, I am learning there is a big distinction between coding and programming.

I never considered myself a computer programmer because I mainly focused on front-end development for my e-commerce websites and companies. I mostly relied on established content management systems (CMS) like Joomla, Wordpress, Magento, and Shopify where I could find and install packaged code extensions that served my development needs. I rarely touched JavaScript and left the more complicated integration issues to a freelance programmer.

Five years ago, I decided to learn some programming and briefly took online courses on Ruby on Rails, Objective-C, and Swift but I never got around to building anything beyond the assignments for the courses. However, the experiences did provide some fundamental knowledge on programming.

This time around I’ve decided to fully commit to computer programming and start with Python. After careful research, I chose Python because I wanted to focus first on Data Science which could then lead me to Computer Algorithms and Machine Learning.

In my previous post, I had set an intention to figure out how to find live projects to practice with. I started by reaching out to friends I knew who were career programmers and shared with them my intention to learn Python. Most had started and built their career with PHP but some had moved towards Python. Since there are endless free resources to learn Python, I ran into the curse of choice not knowing which resource would be the most effective.

My friend, Yerke, helped me get started on looking for resources. He actually gave me a book for my birthday a couple years ago called the "The Little Schemer." It's a book on recursion which I've found to be a fun but difficult read. He had suggested that I start learning Python by building basic games.

Another friend, Andres, shared his sentiment that some courses had excellent programmers but poor teachers, whereas other courses had less experienced programmers but better teachers. He guided me to Kaggle.com which had a combination of micro-courses and live projects with an interactive community that could help my learning objectives.

Andres also noted that as a hands-on learner, I need projects and goals to work towards instead of abstract learning. I haven’t gotten very far tonight but I was finally getting excited about programming. Before actually starting any lessons, I ended up getting distracted and spending two hours doing set up work.

I learned to setup GitHub and clone a test repository onto my Mac via VSCode. Then, I decided to change my GitHub username and broke my GitHub connection. After half an hour of Googling, I read that I should’ve cloned using SSH so then I spent 15 minutes learning how to generate an SSH key for my GitHub account via my Terminal. Next I learned to $ git config --list and then $ git config --global --unset-all. This fixed the GitHub login error but created a new Permission Denied error when I attempted to clone my repository using SSH. I finally found a thread that said I needed to run $ ssh -T [email protected] to fix the Permission Denied error which it did.

Now my repository is cloned and I am able to stage, push, and pull my files. I feel quite accomplished. I don’t fully grasp what I learned tonight but I feel like I made some progress.

This is why today feels like Programming Day 1.