What a Tangled Web We Weave When First We Learn How To Code
March 14, 2019, 1:44 a.m.
I needed a break from all the complexity, ominous "YOU MUST's" and advanced probability that I was getting lost in with the more advanced data structures and machine learning algorithms I dove into. Artificial intelligence, neural networks and Borg-like adaptive learning just didn't interest me in late Autumn 2017. I found Python enjoyable but without the advanced statistical background, the Machine Learning aspects didn't feel as interesting. This is when I found Colt Steele's Web Developer Bootcamp. I was already familiar with basic HTML5/CSS3 and JavaScript but only heard the "buzz" on Node, Mongo, Express and the fancy sounding Full Stack JavaScript developer. THe future is NOW, and you must learn 1000 JavaScript libraries!
I spent the better part of winter 2018 going to my seasonal accounting job, lifting some weights, and then going through the Web Developer bootcamp. Everything seemed pretty straightforward, even a review, until I got to the server side. Then I started to feel it. It wasn't impossible, it wasn't easy. It was a fun challenge. I seemed to have found my flow. There was something very zen in trying to get the routing working. In wiring different pieces of a site together. This felt like something I could get behind. Compared to the Machine Learning, this was more within my reach and interest.
Just like with the Python Masterclass, while I felt I learned a lot, I knew there was still yet more. Looking at youtube and Udemy reviews, people said Colt's course was good but missing some things as well. Web pack, build tools, SPA, creating a FULL JavaScript stack. Again my dread set in, now I must dive further into the rabbit hole. I had plans to learn more about probability theory to supplement my data science/machine learning, but suddenly I got caught in the debate between MPA vs SPA, and which JavaScript library was best for this.
Angular vs React vs Vue vs XYZ oh my! I couldn't anymore. Another framework, another syntax to learn. Things were getting to be too much to keep track of. Yet that's where the buzzwords and talk of high salaries were. I was forgetting my data structures already. How does Python work again? Is it all like riding a bike? What's a for loop? Bueller?
Ok fine, Vue it was. I began a Vue course on Udemy, and while it seemed easy at first, the difficulty factor seemed to skyrocket after a few modules. I'm still working on my VueJS skills as I want to be able to operate in a full stack for JavaScript development. I started to feel like I was wasting time spending so much time on prettification and JavaScript. I didn't even like JavaScript. Controversial as it sounds to some, it seems like a necessary evil. I started to feel more lost than ever.
Machine Learning, Data Science, JavaScript Full Stack Engineering. These were the hot words, the holy grail of developer jobs, and I just wasn't feeling it. I knew my problem. I was reading about buzz words and trendy new technologies, rather than following something I actually wanted to. I got caught in the hype.
I will go back to machine learning and JavaScript SPA when I feel the time is right, but for now I don't feel the burning desire. At the time I knew web development, especially the back end server side deserved more exploration.
I reinforced my web development learning in summer 2018 with Nick Walter's straightforward Django 2 and Python 3 course. This website that houses my thoughts was built thanks to Nick Walter's instruction. What I loved about that course is how straightforward it was. Minimal theory, assumed knowledge of basic Python, and jumping right in to produce. It was a sign of things to come. My ship needs to be in the intermediate fog, looking to make its way in the world, away from the repetitive basics that can kill motivation.
The course had 3 projects, each increasing in difficulty. The first was a word counter, that would sort the inputted text in descending order by highest word count. I immediately thought of scraping and aggregating all of Frank Sinatra's songs (1133 known on Wikipedia, though the largest collection I found from one site was 771) and count how many times the word love appears. (Update 8/13/19: I just implemented this and clocked in about 131k total words but the URI limit on my browser is 10110. Will have to find an alternative way to count and sort so many words through Django, if possible).
The second project was our portfolio project, literally the website you see here. Our main page had a card catalog of pictures with summary text. The navbar would showcase our blog, resume and whatever else we wanted. Of course I modified it a bit to suit my needs such as ordering, book categorization and allowing multiple images and hyperlinks in blog posts. Throughout the course Nick showed us how to integrate Bootstrap and responsive design.
The third project was a product hunt clone project that would involve user login, authentication, uploads and commenting. I want to integrate aspects of this third project into my book browsing one. I will update when some progress has been made.
Here I am now in 2019, the road's been long, confusing yet enlightening. After finishing Code Complete in 2016 and deciding to finally do things properly, I feel I've come a long way in my self-study. Now I am focusing on creating and maintaining projects, while continually practicing and limiting my learning to only what I need, tryin to avoid the trendy buzzwords for the sake of themselves.
Python and JavaScript have been my training tools, and while I'll readily jump into Python, I have become hesitant of JavaScript as more than a supplement. I am testing the waters with C, C++, and GoLang, as I go through some resources on them. Some prior exposure to C#, and my 2 year foray into Python has made picking these 3 languages much smoother than anticipated. Some friends and family recommend C#, .NET Framework and Azure as a sure sign for steady employment. While I have some Channel 9 C# exposure, I'm a little tired of deep diving into full on frameworks. I don't doubt the possibilities of .NET Core and Azure, but it just feels like too much right now. Maybe once I finish my C studies, C# will seem like a natural extension.
The important thing for me now is to transition careers. My journey up that mountain is to make and maintain projects, learn some common design patterns and best practices, and create functional, elegant applications. I've reached the point where I simply can't study this stuff after work, and tinker with projects on the weekends. I want the next step. I want to seek employment in this field and insert myself into the matrix. Having studied philosophy and music in school while working in the accounting department for 6 years, I know this is the next step in my development. To combine the logical and the creative, the mundane and the magic.