I recently joined an online Software Engineering bootcamp through Flatiron School. (Sidenote: For many reasons, I wouldn’t pick any other institution to set forth on this excruciating endeavor btw!). I have no experience in this field; zip, zero, nil. I’m ok with this. Well, in this moment I’m ok, ask me again in 5; minutes, seconds, or days, you’re sure to get a different answer.
Anyways, let’s get back to today. Yesterday, I completed my first project; a CLI Data Gem, that I still, to this second, have to look up to make sure I am calling it using the correct terminology. We have had a week to create an application that executes the knowledge we have gained in Object Oriented Ruby over the previous 3 weeks. You may ask yourself, as someone who has never even heard of Ruby — “Is it possible to do, even when you feel like it’s absolutely impossible?” Well, ya, I did it and if I can do this, anyone can.
I’ll let someone else who’s better versed explain to you what OO Ruby is. What I can explain, better than, say, 1 month ago, is what CLI means, and what it does. While building my first in terminal app, I downloaded Trello, a great organizational tool, and along with the many cards I created to keep me on task and constantly aware of the project specs, I also kept a card that reminded me, daily, the definition of CLI. CLI, standing for command line interface is a text-based interface used to operate software (and operating systems). It’s my understanding that as the developer, our goal is to design an application with the user in mind who will respond to visual prompts by typing single commands into the interface and receives replies in return. It is basically, although it is anything but basic, what I remember the first Apple being like when it was introduced to my highschool junior year.
In a week of emotional ups and downs, where I questioned daily whether or not joining this program was actually the right thing for me or if I had any real memory of the lessons we had learned prior to the project, I stuck to this definition of CLI. It was my ‘job’ to code in such a way that all of the variables, arguments, methods, installed gems, etc. all needed to come together in a way that would at it’s simplest ‘talk’ to the user, prompting them to make their next choice, and then give them back responses based on their choices. And over the course of 5 days with 2 days even left to spare, I did just that.
At the beginning of the project I had no idea where to start, what to do. I failed myself in thinking that I had to know what to do: I learned that you are not supposed to know what to do. I followed the guidelines our cohorts gave us, from videos of project guidelines and how to begin, to going back and rewatching the recorded daily lectures, I followed the beginning steps of thinking out the project, to designing the beginning skeleton. I followed along step-by-step while the founder of the school developed his basic program thru video. From there, knowing that I had to personalize the app to make it mine and scraping the second layer deep (a Ruby Nokogiri pun in the making), I just did what I could one foot in front of the other.
What would I recommend if you’re anything like me and you think to yourself “I don’t remember ANYTHING I have learned these past few weeks, I gotta get outta here!” — First, gently tell yourself to GET OUT OF YOUR OWN WAY. Just start. Start building your classes in independent files, start putting down code. Every time you develop a method, or initialize your objects, run your file. Don’t wait until you’re 3 or 5 methods deep to make sure that something works. Start really reading the error messages, don’t see red (or in my case bolded white) and head the other way or give up, try to work it out and if you can’t, post in slack and ask your fellow cohort members to help you. Don’t be ashamed of it being a basic question, either, who cares what anyone thinks. Maybe someone else had the same question and was too fearful to ask (hey, you could be helping someone). Moving right along, enjoy the process when you can, rejoice in the little moments of learning something new, or of clearing error messages. Keep going back and re-reading the specification the project requires, get your .each iterations in there, puts’ing the heck outta that CLI class, then scrape with Nokogiri and then scrape again! You’ll have a project in no time…proving yourself right to the you who signed up for this course initially. Hey, you got this!
If theres anything that I learned through this whole process — It’s about the learning, not actually about the knowing and doing, necessarily. Software Engineering bootcamp is not like school from when I was a kid. You’re not being tested on what you remember — no notes, nothin’. Now, everything you do every day is part of the process of learning (and use google, gahd!). I changed my thinking daily, trying to remember this, we’re just here to learn. One code in front of the other (with an ‘end’, don’t forget the ‘end’s’). I kept learning everyday until I had a completed project. And now I have an app that actually runs!!!!! What?!?!? It might be basic, but it’s all mine!