Monday, November 24, 2014

Brief Sabbatical

Sorry I haven't blogged in a long time.  I am being let go from ZipList on December 5th.  I've been very busy and a little stressed, more posts to follow on the 6th.

Friday, October 3, 2014

A simple way of spotting a good developer

When I was first learning how to shoe horses, other blacksmiths and farriers would treat me like garbage.  All they could say were derogatory things, in their minds everything that I did was terrible.  They would purposely make me burn my hands while working with hot shoes and then laugh to no end.  The only name that they thought was appropriate for me was: "Boy!".

They loved to shout: "Hey Boy! Go fetch me a bucket of water!" or "Boy! Hurry up you're never gonna' get this!...blah blah blah."

I swore that one day when I was on my own I would never treat any new comers to the farrier/blacksmith world like that.  Over the 7.5 years that I was self employed shoeing horses I helped several people get into shoeing and let them ride along with me to the different barns I worked at.  I think I helped people learn more about horses, more about making horseshoes, and shoeing horses.  I always felt good when someone would say: "I thought all farriers were nasty old men, but you are really nice!".

How does this apply to coding and development?  I'll show you.  Not all farriers were mean, I rode with 7 different farriers over the span of 2 years, and learned a surefire way to spot the good ones from the bad.  The good farrier treats you like an intelligent human being when you are "learning the ropes", when you make mistakes he points them out to you, shows you how to not repeat them, and let's you fix the mistake.

A nasty farrier looks for ways to humiliate you in front of a barn full of people.  A nasty farrier talks down to you, gives you tasks that are far beyond anything you can handle, and then loudly and public says how poor of a job you did. 

My secret was to try and only ride with the farriers that treated me like a human being from the start as much as possible.  The farriers that treated me like crap when I was an apprentice and didn't know anything, would then want to be buddies once I was doing well and on my own.  They would ask me to cover for them from time to time, sometimes I would help them sometimes I wouldn't.  I would always bend over backwards to help a farrier who had treated me with respect from the start.

I remember driving up to Washington D.C. at 11:30pm to fix a shoe for a D.C. Park Police horse that needed to be on patrol the next day for a nice farrier that was out of town.  I didn't make a penny from that work, or even have the cost of my gas paid for, it didn't matter I was more then happy to help out.

I was reminded of this recently when I was at a place I won't mention publicly.  I won't go into the details, but just suffice it to say that the same principles are true across the board whether it be as an apprentice or a junior developer.  I am so thankfully and grateful for my original mentor +David Bock , for all of his time, incredible teaching style and most of all his respect.  I now know how experienced and skilled David is and I am sure there were many times he could have been rude or said things that didn't encourage, but instead he always encouraged me to a higher level, to learn more.

I don't own a company, but I know if I did, and was looking for good developers, I would look for someone like David who takes the time to share his wealth of knowledge with others.  It's late, 12:45am so I will end this post.  After spending the last 4 hours working on fixing errors on my computer, I am ready to crawl into bed!

Never give up and keep coding peeps, you can do this  :-)

Tuesday, September 30, 2014

Coding Logic

When you first start learning to code, everything is incredibly hard to understand and intimidating.  The past couple of weeks as I am working on making a little Rails app just for the heck of it, I am surprised how much different I feel when facing errors or things that I don't know.

Since coding for a couple of years now, everything new I am learning seems to always have a "knowledge link" that connects the new thing I am learning to something I have dealt with before.  In no way does it mean that it is easy, but it gives me a feeling almost like swimming, this may be a new lake but it's still swimming.

I am really enjoying learning Javascript, I like Ruby and all of the awesome built in methods and cool magic.  I feel like my "coding logic" and understanding has grown more though with Javascript.  It's probably just me, but I really have to think more about how the code is working when all of the easy to use methods are taken away.  I also appreciate Ruby more now, after using Javascript.

One other thing that used to scare me like crazy was recursion, for the life of me I couldn't wrap my head around it, then it clicks one day and it's hard to understand why I couldn't grasp it until now.  I still don't understand all about recursion, but I feel very comfortable with how it works, how to use it in simple cases instead of a loop, and also reasons why I shouldn't use recursion.

I used to try and memorize lots of Ruby's methods and thought that if I simply could memorize them all I would be that much better of a coder, that is simply not true.  One thing that I find really cool about coding is that some languages have different syntax and cooler methods than others, but some computer science concepts are the same across the board.

For example recursion can be used in any language, if - else statements are virtually the same in most languages, also while loops are pretty standard.  I like knowing that I could solve a problem in another language even if I really didn't know the syntax all that well simply by knowing some basic computer science principles that are true across the spectrum.

Another thing I learned is that you need to always learn something new that isn't related to your current job or else you will only have the skills that you use in your day to day work, which could possibly limit your opportunities down the road.

What's funny is Stack Overflow used to be a guessing game for me.  I'd look up a problem I was having and then try some of the code listed in an answer.  If it worked I felt like it was "black magic", not understanding what it really was doing.  I still use Stack Overflow, but now I can usually have a much clearer idea of what is likely going wrong and what specifically I need to fix.

I am loving the journey of learning to code more and more everyday.  I like having those light bulb moments when something I learn can then be used to solve something else.  I only feel bad that I am not blogging more, I just hate to not be coding in my free time!  Life is good people, drink up!

Keep coding peeps!

Tuesday, September 9, 2014

Why moving, writing code, and golf are similar

I apologize for the long absence in writing.  My family and I have been collecting and packing boxes to move in our spare time for the past few weeks.  I forgot how much work it is to move especially with little kids!  We moved into our townhouse in Marshall, Virginia this past weekend after moving out of our little 2 bedroom apartment which was located  on the 3rd floor - 39 stairs up!  After this move I promised myself to never again, no matter what will I live on the 3rd floor of any building!

Life has been good otherwise, I haven't been able to do much of the Epicodus coursework, work has been busy.  I am learning some of the Ractive.js library as well as the mustache.js library so my spare time has been filled with moving and doing some tutorials using Ractive.js.

Over the past couple of weeks, I have noticed some similarities between the process one takes when planning, packing, and finally moving into a new home and that of coding.



  • Getting boxes from local stores can be painfully slow even when you call ahead and ask for them to be held for you I was immediately reminded of the process of setting up a dev environment.  No matter how easy it sounds there are always going to be a few unexpected snags.

  • Packing up everything we owned took far longer then I had originally anticipated, even though we did a move like this 2 years before.  The difference was all of the kids toys and junk that we had collected or been given for them.  Developers I am told are always way too optimistic on estimating how long something will take to make, the same was true for my move.

  • I remembered how steep and tough the 39 stairs were to climb 2 years ago when we moved into the 3rd story apartment, so I called all of my biggest, baddest, and strongest friends to help .  I promised them all an awesome lunch and drinks if they would give me a hand.  I estimated with every one's help that it would take no more then 1 hour to have the truck fully loaded.  2.5 hours later, on one of the hottest, most humid days of the year, everything was loaded into the truck.  Code is never the exact same and usually takes longer than what I think it will take in my mind.  I shouldn't ever try to rush it, same goes for moving.

  • The new place has only 2 steps, I estimated 35 minutes to unload everything.  With every one's help the truck was completely empty after only 15 minutes!  This rarely happens in software when everything goes perfect, but when it does it blinds us, confuses our memories and makes us think that we can be more optimistic with our estimates next time... which leads us back to the original problem  :-)

  • Moving, coding, and golf are very similar to me.  All of them hold perfectly still for you and just wait for the first move.  All 3 of them can be frustrating, but when you finally do get something right, hit the perfect shot of the day.  EVERY frustrating memory we ever had fade away.  It is a hopeless addiction, I can't say that I am any good at moving, golf, or writing code for that matter but I am enjoying the journey and the challenge to always learn, grow, and strive to do better next time!


Keep coding peeps!









Tuesday, August 19, 2014

Epicodus Bootcamp Review - Week 4

Time is flying by, I've had my head down working hard at work and then studying hard in the evenings.  I am starting the 4th week of doing the Epicodus boot camp coursework in the evenings after work.


Let me say that if I had this course when I was first learning how to code, I would have been hired WAY sooner.  I can't believe how many people still email me asking if they should go to one of these $4,000 - $6,000 online boot camps.  The answer is NO!  Epicodus is incredible I have absolutely zero complaints!!!

I know my Css and Html fairly well and I still have learned quite a bit so far.  The course is really just amazing, there isn't any other word to use :-) 


The Epicodus coursework is broken down into basically 7 sections:



I am halfway through Branching and looping in Javascript.  There are A LOT of sub sections for each main section, don't be fooled, there is a lot of actual coding assignments to be done after each video.  This is not a tutorial where you watch a video and than check a box and say that you can now program.  No, this is a boot camp and there has been tons of coding up to this point in the course.


Here is where I am exactly with a lot of the sub sections showing:

 
I just finished up at the bottom there 'Looping practice'.  So far I've learned jQuery, and much more about Bootstrap than I had know previously.


I have been struggling to get in enough hours of studying time after working hard all day at work.  I also can't say no to my 2 little boys wanting to wrestle with me and of course my awesome wife wants to spend time with me as well :-D


I had originally thought that I could do a lot of studying on the weekends, but so far that has not happened as those are VERY much family days.  I had hoped for a minimum of 14 hours of studying every week, and more like 21 hours per week.  Well I am ashamed to say that has not happened at all, I am averaging around 11.5 hours of studying and working on the Epicodus coursework. 

Here is my hour list just how I have it on my computer:


I'm disappointed, but I also know that my family sacrificed before for 9 months while I studied like crazy so I could get hired as a junior developer and I don't want to put that stress on them again, I want my boys to have the weekends with their dad :-)  My wife Elisha's brother did get married and that through a monkey wrench into the mix as we had to travel but that's okay.


Long story short,  I obviously push super hard all week and than just crash on the weekends.  I highly recommend doing the Epicodus boot camp if you aren't already.  If you are doing the Epicodus boot camp, leave me a comment below, I'd love to know that other fellow Epicodians are on the same path as I am.  You will probably pass me at the current "snails pace" that I am going :-)

Life is good, my little family and I are moving up the road this next month, so there will be lots of packing and lifting of heavy boxes :-D

Keep coding peeps!