SQL for the Illiterate – Pt. 2
In my last post, I talked about my previous misadventures with SQL.
However, I still liked what I had practiced in the CodeAcademy trial. With that in mind, I went in search of SQL course rankings and found one called Code with Mosh. The course called, Complete SQL Mastery is a deep dive into SQL and the possibilities. It’s a series of guided video courses that pair MySQL with a database that Mosh provides for learning.
So far I am half way through the course and found that the videos and explanations are really suited for someone like me who has no fundamentals in computer science but a reasonably high computer literacy. One of the key takeaways from Code with Mosh is also best practices. As queries become more complex, there are multiple ways of achieving the correct results, he shows you a few so that you know it does work, but he also may tell you why one is worse than others for both you and for anyone that may have to parse your work.
My biggest problem going forward is to continue making the neural connections for complex queries. The best way I can analogize it is similar to learning Korean. I’ve been ever so slowly working on Korean. I’m a native English speaker with rudimentary Cantonese. I’ve picked up some small understanding of Vietnamese having grown up around it and similarly with Japanese having watched a good deal of Japanese television. I’ve dabbled in Italian lessons and French lessons from language software. I studied Spanish in high school, much of which I have forgotten. But with all these languages, I have confidence that if I dedicated as much time as I already have to Korean, I would have been able to have conversations in those other languages by now.
What makes Korean distinctly harder? On top of Hangul being unlike any other written language, it’s a SOV language (subject object verb). And then modifiers are added to the subject and object to delineate their relationship to the verb which is at the end of the sentence. As I’ve started learning a larger set of vocabulary, they also transition to more complex sentences. And by complex, I mean that they are now adding adjectives and prepositions. So not so complex but basically breaking my brain.
If I use the example I often see in Duolingo that translates to “A child is running toward the escalator”, an unadulterated translation into English would be along the lines of, “I lobby(in the) with friends together wait”. You can also verbify just about any noun or adjective by adding a modifier to the end of the word. He Chinese(is/is from), they beautiful(is), she fast(is), etc. That’s what it feels like with SQL. I’m trying to think in new ways in order to formulate the results I want. Sometimes the logic for SQL feels similarly inverted, sometimes it’s logic that doesn’t have a baseline in my personal existing knowledge base. For instance, correlated subqueries where office_id = e.office_id. I mean…nowhere in my mind does this logic occur that this would produce any real results. And once I start to grasp what is being communicated, the fluency is, of course, the most difficult part of learning. But once you know what you’re doing, it’s kind of like a logic puzzle (I love logic puzzles). You know what the endgame is, you need to find the right statement, then plug in the values, and you unlock the data! Now I can see a horizon that I’m aiming for in being able to apply SQL, and I’m enjoying and feeling optimistic about my first real attempt at learning a programming language.