Tuesday, February 16, 2016

A new year, a new push

When I started this blog, all the way back in 2013, I was a new student in a coding boot camp called Launch Academy.  12 intensive weeks and a spark was ignited.  Code is where I want to be.  And then life got in the way.

Shortly after graduating from Launch, the universe presented an opportunity that seemed impossible not to take.  Sometimes an opportunity presents an end goal, and sometimes all you know is where to start.  In this case, it was just a start with an undefined end.  And that was an offer, by a friend, to buy our home.  After dinner and a few drinks, we decided to do it!  And to figure out next steps on the fly.

In this case, we sold the house fully furnished.  All we packed was our personal effects and our artwork.  Into a POD it went and we headed for Dallas, Texas.  We decided to spend limbo with our dear friend who was there and had more than enough room for us.

After getting settled in Dallas, I engaged with Thinkful to ramp up my front-end skills and continue down the path upon which I was certain I belonged.  And, as the universe has a tendency to do, another opportunity was presented.  It was time to move on from Dallas and re-establish ourselves for the foreseeable future.  And that took us to Las Vegas, Nevada where we bought a gorgeous home and re-planted ourselves with a semi-longterm plan.

Shortly after getting to Vegas, and in the throws of setting up our home, my coding background created an opportunity to go to work for a start-up here in Vegas.  Except that the code only opened the door, and I was convinced to join as the Chief Operating Officer, a throw-back to my OLD resume!

120 days in and, along with issues specific to the company, I remembered that I was originally working on a different path.  A path to code.  So I resigned and decided to re-focus on learning code and engaging and encouraging that relatively new passion.

All of 2015 went by, and lots of productive and satisfying things happened in my life.  But I didn't get into code.  I put together a home.  I engaged with my family.  I got to know Las Vegas.

But now, with 2016(!) upon me, I'm energized and ready to go the distance and become a Front-end Web Developer.  And, candidly, I turn 40 in September and want to go into my next decade deeply entrenched in this passion.  I'm going to do it with a number of resources.  And I'm going to blog about it because it's one of the best ways to a) share what I learn and b) remaining engaged in the process.

Wish me luck.  I am so excited!

Wednesday, May 7, 2014

Miss me?

It's been a long while since I posted here and a LOT has happened since my last update.  The cliffs notes version:
  • Went to Hawaii and had an AWESOME vacation.  Two weeks, three islands.  Really magical.  And I had a lot of time to ponder life after Launch Academy (and life in general).  I got some clarity around my next steps, which, surprisingly to many of you, don't involve Ruby or Rails
  • Had an epiphany while on Kauai, being driven to the Airport to drop Ruth off for her flight home.  It's worth exploring in another post, but the driver opened my eyes to the importance of true passion - the kind that emanates from the deepest part of your core.  The "a-ha" in that moment helped me to understand that I'm happiest when I am creating experiences for people.  That is a super-broad statement, but it helps me with direction.
  • Decided to focus on front-end development and user experience (experiences for people!) and am self-teaching HTML, CSS & Javascript.
  • Moved to DALLAS!  What?!  Yup.  Thanks to a casual conversation with a friend, we are now without property.  Our home on Cape Cod has been sold and we packed all of our valuables into a POD, which is currently being stored somewhere near Dallas, awaiting our next adventure.  Many thanks to Ruth for giving us her guest-wing while we sort out next steps.
  • Met a super cool recruiter here in Dallas who works for Vitamin T, a subsidiary of Aquent.  She and I are currently collaborating on my potential dip into the front-end water here in Dallas.  Presuming something awesome comes out of that relationship, we could be in Dallas for a little while.  If not, us vagabonds might just surprise everyone and pop over to Hawaii for a year or two while I continue to self-teach FED and prepare for a future role crafting incredible experiences in any number of niche industries.
If you know us, you know that this is a thrilling time.  The future is wide open and, without the roots of property, we can literally go where the wind takes us.  Some days it's intimidating, but I have to say, the majority of the time is feels incredibly liberating.  

Back to Developer Tools in Google Chrome - developing in the browser - the coolest way to get 'under the hood' of your favorite website and really get to know how all the different pieces work together to give you the experience that they want you to have.  

Cheers! 

Monday, January 27, 2014

Day One after Launch Academy

Whew!  It's my first Monday back in the world and without the safety net of Launch Academy.  It is a bit anti-climatic, as there are two days of interviews beginning tomorrow, along with our graduation party on Wednesday night.  I think Thursday might feel more like the 'first day'.  But here I am.

I've created a daily agenda and am committed to using it to structure my days so as to not interrupt my work flow that I've been cultivating over the past 11 weeks.  I'll miss stand-up every morning, but I suppose I can enlist Dexter to be my standup partner.  For now, my agenda is:

8:00 to 9:00 am - GYM!  (I haven't gotten to do that since October.....)

9:00 to 10:00 am - Review Stack Overflow E-mails from day before.  Try to contribute an answer a day.  

10:00 am to Noon - Personal project work on TravelMonkey.  One new feature and a clean push to GitHub daily.

Noon to 1pm - Lunch.  Mandatory - just like at Launch.

1:00 to 2:00 - Refactor Throwback with a clean push to GitHub daily.

2:00 to 4:00 - Company research, resume distribution, networking, Twitter/LinkedIn, Blog Posting, media consumption.

It's not an intention, it's a commitment.  I'll keep you posted!

Monday, January 6, 2014

Test Driven Development, part 2 (Acceptance Testing and Outside-in Development)

I've already written about the importance of Test Driven Development, but that was written before I had been exposed to Acceptance Testing and Outside-In Development.  I thought TDD was cool then.  Now I think it is so far past cool that I can't even describe it.

My name is Ryan.  And I'm a TDD junkie.  It's been 10 minutes since my last test.  (Hi, Ryan.)

All kidding aside, TDD has been one of the most powerful skills I've learned and developed during my time at Launch Academy. Married with the Outside-In approach towards app development and I feel like I've always got a starting point from which to expand.

Every program feels so big at first approach.  Outside-In and testing helps the programmer to eat the proverbial 'elephant' (one bite at a time, as they say).  I referenced inspiration vs. motivation in a past post and TDD/OID helps to overcome the barrier that minimal inspiration might provide.  You don't need to be overly inspired to write your first test.  You just need to be able to put yourself into the mindset of your user.

I find that inspiration can sometimes be ignited with movement.  And OID/TDD is really just incremental movement.

Taking inspiration out of the picture and focusing on the more practical aspect of OID/TDD, it's pretty clear how this technique will enhance anything that I produce.  Forcing yourself to build an application in a feature-specific technique, which is emphasized in TDD/OID, leads to focused and lightweight code.  Focused and lightweight code is easier to come back to in the future, and easier for another programmer to interpret.

I'm hooked.  And hope to utilize TDD/OID as often as possible going forward.  I understand that it might be hard to explain the business cost of doing TDD, but the opportunity cost of NOT using the technique has the potential to far outweigh the upfront investment.  It will be my challenge to always lead with this mantra and use it with all stakeholders in future project.  I'm ready!

Friday, January 3, 2014

Inspiration vs. Motivation

There is a new phenomenon that I've been experiencing as of late, especially as focus has turned toward my breakable toy.  Being inspired vs. being motivated.  Let me explain.  

Coming from the generally non-creative world of Finance (well, I suppose there can be some creativity involved, but I always preferred to steer clear of the Bernie Madoff-esq path) I don't recall ever longing for inspiration to move forward with a project.  But there were countless days when I asked (begged!) for motivation. 

And so here I am, with an abundance of motivation, but realizing that you can't control inspiration.  It comes when it is good and ready, and often at the least expected time - which is exactly why I'm at my computer at 3:00 in the morning writing sign-out logic for my breakable toy.  

Luckily, living in the age of the smartphone, it is easier to capture inspiration when it happens and not be bound to a pad and pen.  I make tremendous use of the notepad on my iPhone and have a hodgepodge of ideas and more than a few off-the-wall concepts.  

The common thread to 'divinely inspired' ideas is that they can't be forced.  But I think they can be encouraged.  Mental relaxation is a pre-requisite for inspiration and that relaxation happens at some very interesting times - like driving.  Scary to think that my brain might be 'relaxed' while driving, but that's exactly what it is.  Muscle memory takes over - kind of like internal 'cruise control' - and my mind is freed to ponder more interesting topics.  And all of a sudden, tremendous clarity and inspired ideas.

There are many activities in our lives where we can put our brains on 'cruise control' and encourage the flow of inspiration.  A simple walk is often enough.  How many times have you heard about taking a walk to 'clear your head'?  It works.  And by clearing out that space, you will be amazed what you make room for.

My husband would love for me to take up meditation.  Because, in essence, I am describing the benefits of the practice.  But there is still enough trash in my head to make me uneasy with the idea of meditation.  I'm not a meditative kind of guy!  But who knows.  If I find myself begging for inspiration the way I begged for motivation, perhaps you will find me sitting cross legged, middle-finger and thumb pinched together and chanting.  Anything is possible.  Om. 


Monday, December 30, 2013

19 School Days Left!

That hurts my head.   It feels like I just started, though, to be fair, in an 11-week course I suppose even the last day will feel like it is awfully close to the first.  

Quick sidebar:  this pace is starting to catch up with me and I'm taking Thera-flu like it's tasty or something, but it's what is keeping me upright at this point.  Forgiveness is requested for any typos/rambling sentences.

While the calendar proximity to the first day feels close, the knowledge proximity couldn't be further apart.  I don't step back often enough and evaluate where I am today compared to where I was on November 11th.  But, while knee-deep in Capybara testing today, my husband walked past my desk and saw 100% of my monitor real estate (and it's a 27" monitor!) taken up with Sublime and Terminal windows.  He said, in casual passing, "Do you really know what all of that means?".  I looked at my myriad of windows and replied, "Yeah.  And I wrote just about all of it".  He laughed, said 'cool' and went about his business.

But I was kind of frozen in my tracks.  I do understand it.  And I did write it.  and that, my friends, is pretty freaking cool.  

Dan Pickett, one of the founders of Launch Academy, wrote a great piece and published it on the Launch Academy website about Career Accelerators.  He discusses three phases of skill set development - dabbler, immersive and apprentice.  He pinpoints a moment, in the immersive phase, when a student can use documentation to arrive at a solution without handholding.  It is at this point where the knowledge acquisition goes from linear to exponential.  

I can confidently say I am there.  It feels like lots of things are on the upswing: confidence, ability & mental health.  My creativity is flowing, and I can finally get it out of my head, off of paper and into models, views and controllers.  Spirits are high, and each day brings a new discovery.  Dan points out, when you stop discovering, it's time to move on.  For now, there is still so much to still discover, but his point is taken.

Monday, December 9, 2013

Test Driven Development (TDD)

Test Driven Development, or TDD, is a practice used by computer programmers to approach the development of code from a very structured, linear perspective.  The goal of TDD is to write code that tests your code.  Yeah, think about that for a sec.  Said differently, it is a program (or suite of tests) that wraps around your code and validates that your code does what you expect it to do.

The first steps in TDD are so simple that they almost seem difficult, especially for a beginner programmer.  There is an interesting struggle between doing TDD and your own developing 'code-ego'.  TDD forces you to write code that you know is technically correct, but so narrow in scope that it is wrong.  Your ego screams 'I know the answer!  What are you doing? Danger, danger!  Bad code!'.

But you stick at it and you work really hard not to cheat and write fully functional code.  Baby steps, baby steps.  Red, Green, Refactor.  Rinse and repeat.

But, in the beginning, the inner code cowboy wins a lot and you find that you do cheat.  And if you are committed to the process, you delete that beautiful, apparently fully functioning code and you hardcode a method return.  And it kinda hurts the first few times.  "Why am I deleting good code?"

Because thats TDD!

When you get into a good rhythm you and you begin to watch a program take shape, when developed using TDD methodology, you start to get it.  Hmmmmm.  Maybe writing kindergarten code first will actually lead to a stronger program?  Huh.  I think so.

TDD is drafting a blueprint before buying lumber and hiring builders.  It's a map to your final code and, once you get it, you GET it.  It's a new tool in my toolbox.  Well, probably on my tool belt.  I need constant access to this one!

Cheers.