I made it to Phase 2 of the Ada Developer’s Academy application process! About a week ago I stopped checking my emails obsessively, because I was resigned to the fact that I hadn’t made the cut since so much time had passed. I did a HUGE happy cheer with Matthew when I got the email, and immediately started researching the presented task. For Phase 2, I was asked to build a program in a coding language called Ruby, and then complete a technical interview about the code I had written. I had a week to complete this project, but it turned into only 2 days because we had Matthew’s mom and sister visiting over the weekend. I knew it was unlikely that I would have time to work when she was visiting, so I did as much as I could before her arrival, and then I had a day to finish everything before submitting it.
The other challenge with this task is that I am brand new to Ruby. I am pretty sure that they expect this, so I didn’t allow that to intimidate me (much). Luckily, I started the tutorials at Try Ruby after my initial application to Ada, so I had a very small amount of background knowledge. They asked applicants to use a website called Repl.it to write and run the program. Can I just say that technology is so cool?! A REPL is a read–eval–print loop (REPL) – it takes in user input, evaluates them, and then returns a result to the user. This enabled me to easily try out various parts of my program as I was writing it.
As I completed my program, I learned several important lessons. First, it is crucial to map out your program from the very beginning, drawing connections between what you want the program to do and what logic or concepts are associated with the code you plan to write. I had completed most of the program when I realized I hadn’t thought about features of control flow. From my limited understanding, part of control flow is, “What do you do when the user inputs something that is unexpected or unallowed?” Since I hadn’t considered this in the beginning, I had a very hard time integrating it into my existing program. Second, it is probably wise to start with the basic, foundational code like the control flow/user input features and output prior to adding loops or other complexities, because these features make it difficult to test your code and determine the specific issue that is creating an error.
Overall though, I felt positive about my submission and I thought my first ever technical interview went well. Well, my second attempt went well. For my first one, I somehow managed to click on the WRONG Google link (the one sent to my email, instead of the one on my actual calendar), and I showed up for my interview and waited in empty virtual space for about 30 minutes, my anxiety mounting with every minute. I took screenshots to document that I was there, tried exiting and reentering, and emailed my interviewer. No one showed – because I was in the wrong virtual interview! Thankfully, the people over at Ada were so understanding and allowed me to reschedule. By rescheduling, I went from one of the first interview slots to one of the last interview slots. This was problematic because if I move to Seattle, I am hoping to live with my sister-in-law, Jessica. However, she is moving on May 1st, and at that point it felt very unlikely that I would find out in time for us to sign a lease on a bigger place. In the week-and-a-half between my first interview attempt and my actual technical interview, I tried to let go of that thought. When I finally interviewed, my interviewer asked me about how I approached writing the code, what worked and didn’t work, and where I came up with various bits of code (answer: Ada’s Jump Start curriculum, Google, Stack Overflow, Code Academy, my brain…). Like I said, I felt really good about this interview. Anything beats sitting alone in a Google Hangout for 30 minutes.
Through this project, some of the most important things I learned weren’t directly related to the skill of coding. I learned that I really enjoy writing code – I sat at my computer for six straight hours after a full day of work as I finished the program, and I found that I was actually having fun in spite of the pressure I felt to complete the program. Coding combines my analytical/problem-solving brain with my desire to be creative, and also allows me to use some of my previously less-than-useful research skills (I say this because I often find myself down a rabbit hole – I start on Pinterest and three hours later find myself purchasing a Bullet Journal and two sets of premium pens). I also learned that there is a whole treasure trove of information about programming available to me on the web, so if I am not accepted to Ada, I will have the option of teaching myself using the resources I can find there. Now I am back to playing a waiting game of obsessive email checking, hoping for Phase 3. I’ve been listening to a lot of music lately – here is one of my recent favorites that seems to fit the situation (well, the title of the song fits…): Banks – Waiting Game.