It’s interesting to reflect on my time as a student at Turing School of Software and Design, especially knowing that I’m less than halfway through this adventure. Two weeks ago, we were playing Ruby games and cracking codes from our terminals, and by the end of last week, we delivered a web application that not only displayed data, but interacted with a database.
One small step in the day to day of a programmer, but one giant leap for me in my educational journey.
So how did I approach this project? As any past Digital Marketer would, with wireframes, design, and careful thought into a User Experience that could deliver 12 user experiences without forcing the user to type in any URLs, hunt for links, etc. Oh wait, that wasn’t actually the focus of this project. But hey, start with what you know, venture into what you don’t.
I did start to panic around day 3, as I had yet to create my database. My data and schema-plan lived in a Google Sheet, planned out, ready to go, but this abstract concept of creating a database, storing information in it, and then magically making calls on columns within the table without creating any instance variables in my classes felt like I was walking around blindfolded.
In that sense, the concept of a database itself was the hardest part of the project for me. I learned a few things that I hope will help my confidence to move from baby steps into strides when it comes to the world of data:
- At this point in our programming career, where we’re working with 12 lines of data, we are not inflexible. If your assumptions change, adjust. It’s not the end of the world if you have to change your table, drop your table, etc.
- You CAN drop a table. And no, deleting your entire project and re-cloning the repo does not delete your table. It just makes it so you have a table without a schema file or any migration files. For someone who is timid, unsure, and shy around databases, it makes it conceptually difficult to figure out how to reconnect with that table in the first place. Save the headache. Just drop the table.
Figuring out how to work my way through that one was not only terrifying for my husband, who walked in mid-panic attack, but strengthening to my fundamentals of problem solving and troubleshooting. Taking the ‘code is cheap’ route to just start over wasn’t quite applicable in this sense. I now know to approach my databases more tactfully in the future, and to research my options before making impulsive decisions.
At the end of the project, I was proud that I created a website that not only looked nice (in my humble opinion) but could actually do things. It was dynamic, it could grow and flex as data was added, nothing data related was hard coded. If I had to do it all over again, I would put more emphasis on a top-down TDD approach, and let the RSpec error messages guide my process. Thank you RSpec, I’ve never met someone who’s so good at giving constructive criticism in my life.
Moving into our next project/adventure/cognitive leap, I want to hold onto these fundamentals of processes that I’ve learned. At the end of the day, those with effective processes have the ability to learn more and accomplish more. My goal in life is to never get in a rut, just keep flexing, learning and adapting.
Tools Utilized: HTML, CSS, Ruby, Rails, Bootstrap, ActiveRecord, PostgreSQL