Wednesday, May 21, 2014

Day 8: Database design and MySQL

Although I have one last optional assignment left in the jQuery section, I decided to get to it later and focus on what we're learning now: Databases.



Here is the morning lecture notes about how databases connect. I was actually quite relieved to see some familiarity because I saw this syntax when I was learning Rails. Rails uses SQLite by default which is a SQL server, yet I really had no idea how the database worked. I assumed it was all part of the "Rails Magic", which is quite dumb of me. If you are to become a programmer, you should understand what's going on behind the scenese so that you'll be able to make proper adjustments as necessary. If you don't understand databases, you really will have no idea how to scale your application properly.


One of our first assignments here was to take a wire-frame and figure out all the relationships between objects so you can make proper connections in the database. The application illustrated in the wireframe is for a blogging website (just like blogspot), where users can create posts, other users can make comments, etc. The program that we use here to make the tables is MySQL workbench. There were lots of videos on the coding dojo learning platform showing us how to do this. There really was a lot to learn. Some of these relationships can get quite complex like the one illustrated below. But of course, nothing compared to the complexities of an application like Facebook.



To be honest, I was a little shell-shocked when learning SQL(structured query language). Like I mentioned before, I had no exposure to database besides "Rails magic". Learning a new skill like this is just like exercising a new muscle. When I lift something heavy at the gym, I often pace around to take a break and recover. I found myself doing the same thing when learning SQL. After each learning segment, I went to the couches, rolled around for a little bit, then proceeded back to my computer for another set.

With each set, my brain grew stronger and after hours of looking at the code, I started seeing patterns and had my "ah-ha!" moment. It's amazing how it would've taken me at least a week to get to where I am after 12 hours of being at the Dojo. I give lots of credit to the curriculum and definitely a lot to the community. Knowing that we're all in this together really helps me to keep going.

Now I know how to import a database and make queries to retrieve the data that I need.


On the screenshot above, I'm making a request to the database to give me the country name, language, and percentage of speakers of all countries that have people that speak Slovene.

At the start of the day, I felt pretty defeated because in the prior week I was blazing through the front-end development topics(HTML, CSS, jQuery) and now my progress has significantly slowed. But as I slowly chipped away at the information and dissected the syntax, I was picking up lots of speed and am pretty satisfied at the progress I've made today. Tomorrow, I'll just be adding on top of my knowledge and hopefully be typing SQL without having to reference any lists!

No comments:

Post a Comment