Part V | How to almost become a Programmer — Setting your environment up… for success

As I start off my summer, (two weeks before the start of my Trigonometry class) I decided to get a jumpstart on preparing for a Software Engineering internship, NEXT summer. Todo this, (all mini-app puns intended) I researched and found that in addition to our conventional class work/projects in school, it would take much more to impress potential companies.

To show a prospective employer that I really want this career, earlier this year I finished up the basic structure of my portfolio of work that is built with Ruby on Rails and is a portal that contains content that I’ve authored such as tutorials, blog posts such as the one that you’re currently reading, and some applications that I am working on, including HoopTime,an app that allows users to find the parks with the best quality of basketball games in Sacramento. HoopTime is built using Angular JS, and the angular-seed project was used as a template.

Taking a step back.. when I first decided to venture into the spectrum of Computer Science, and more specifically programming, my world was cluttered with a thousand approaches.

Youtube tutorials.

You name it, I tried it, ALL AT ONCE. When you’re in a classroom, you rely on the instructor to provide an organized approach to the learning. When you’re teaching yourself however, (what I’ve come to accept will be a large portion of my life moving forward in this field) YOU and you alone are responsible for that structure. Lets take a break and think about the last time you’ve been to the gym. Okay, I won’t call you out..I used to suck at it as well. Until my buddy Joe gave me some perspective. I remember it like it was yesterday….

*cue that sound on early 90’s TV shows when the protagonist is day dreaming..think fresh prince..*

I was commuting from Sacramento to San Francisco at the time, (2.5 hours each way) working as an IT analyst for a medium-sized healthcare advertising firm. Life was fine, and fast….okay not fast, but fast food. I remember feeling physically and mentally terrible because I couldn’t get to the gym on a regular/timely basis due to my commute schedule. I came into work one day and walked over to Joe while dropping off some apple equipment (typically duties in my position at the time). He was telling me about his morning, and how he made it a point to work out before work, because he found that if he got some exercise in, he felt prepared to attack the day.

I asked him about his secret, specifically how he woke up so early to make it happen. Although he agreed he still had to tell his body to get up, and it wasn’t always a piece of cake, he spoke of planning ahead..of packing his things before getting into bed. His gym clothes. His lunch. His belongings would be by the front door, so that all he had to do when he awoke would be to brush his teeth and head out!

What a simple, yet magnificent game changer.

Shortly after, I began using this technique..and I have to has completely changed my life. Whether it’s an early morning gym session, knowing that the bathroom soap needs to be refilled before the next morning’s shower, or getting a coffee machine with an auto timer, (I know, I’m late) I do it all, TODAY. Before bed, I open up my Evernote and jot down all the big things on my agenda for tomorrow..the upcoming week..sometimes even the month. This checklist enables me to make my future self a little bit more prepared to “attack the day” (THANK YOU JOE).

That being said, when I embarked on this round of learning, (AngularJS) I made it a point to prepare. I set a date (a few days ahead of time) so that beforehand, I could watch the youtube videos on getting started on the framework, read through the angular docs on their website, see some live examples of apps/implementations that related to my own project goal, figured out how to setup my local development environment..(because we all know that if you just try to wing this portion, it could end up taking two days on it’s own)..

Last Wednesday, (5/24) I set my goal of starting the development (v 0.1) of the HoopTime app for the following Saturday (this morning). I thought I’d get the app running in my local server, maybe set up a repo on Github for the app, (version control) some small things to get going. Surprisingly, I am happy to announce that as of me typing this, I have completely setup the app on my local server successfully, have managed to go through the code to get a feel for the structure of the seed-app and get a ball park idea of what its doing in the background, added some JSON data relating to the basketball parks in Sacramento, (a main component of the app) and feel like I actually did some programming today. That alone is a win. [work/app screenshots below]

The takeaway here is… plan ahead. Whether it’s for an event that is around the corner, or for that next language you’re hoping to learn. You, like me will soon find that with a little extra work today, your future self will thank you greatly for making sure he/she is a bit more prepared to take on whatever challenge that is ahead, tomorrow. So will your future employer. ;)