Monday, July 20, 2015

What to do if you can't find a coding mentor...

Let's face it, we all know having a real life in-the-flesh mentor is the best thing for learning how to code - quickly, and correctly.


However that is not unfortunately always possible.  Stumbling along learning on your own is tough, and frankly not much fun.  Thankfully, I recently discovered a way that everyone can have their own virtual built in Ruby mentor!  :-)


Wouldn't it be nice if someone could help you with proper code indentation?

Wouldn't it be nice if a friend could point out "bad" coding habits right away, like unused variables?

Wouldn't it be nice if someone looked over your shoulder and not only showed you the "ruby way" to code, but would actually change the code for you, if you wanted???

This isn't a scam I will show you how to make all these wishes come true!


Here's how:

From your command line ( also called the terminal ) run this command:

'sudo gem install rubocop'

you will be prompted for your computer's admin password.


NEXT:

Install the 'rubocop' Sublime Text 3 plugin using package control on Sublime Text 3.  If you don't have Sublime Text 3 installed I highly recommend it.  Here's a link to Sublime Text 3

Now install 'sublime linter' plugin, just as we did before.  We will then install the 'ruby lint' plugin from Sublime's package control.

Finally we will install 'beautify ruby' using package control as before.  That is all you need installed to have your own built in virtual mentor!  In the video below I will show you how these 3 packages can become an amazing coding mentor.  Using these 3 coding tools you will be able to code faster and have 50% less coding 'bugs'.

In the video I show how to turn off some code warnings that you don't want by making a rubocop.xml file and configuring it.

 I will also show you how to check for errors from the command line using 'rubocop'.  Also how to automatically correct all of those errors!

Lastly I will show you how to customize the Sublime user package settings to automatically format your code every time you save the file :-)




Keep coding peeps, you can do this!


Sunday, July 12, 2015

3 ways to write code, which one should a "noob" pick?

There are basically in my opinion 3 ways to write code:

  • Bare Metal programming
  • Traditional programming
  • Easy-Lazy programming



Talk to an old programmer with a beard using Linux and he will talk about why all young coders really can't code and are really just "script kiddies".  

These programmers typically tell coding "noobs" to learn how to program using only “bare metal” programming.  "bare metal" coding is basically never using built in methods of the programming language.  A strict "bare metal" coder typically will try and only use if statements and loops to solve any and all coding challenges.  They prefer to write all of their own methods, and scoff at people who use built in methods.  The upside of learning to code this way is that you really can code, and don’t need to rely on any language's built in methods, you simply do it all yourself.  

The downsides of writing code using the "bare metal" coding method are many.  Writing code will be far more complex and with a much higher chance for overall “bugginess”.  Learning to code this way will also take much longer for a beginner to learn.


The traditional programmer will use a combination of “built in” methods and some of the “bare metal” style of coding to write code that gets the job done.  There is nothing really wrong with writing code like this, in fact it's very popular and is a fairly good happy medium.  Use the tools of the language whenever possible, and only write your own methods when you can't find a built in method.


The “Easy Lazy programmer” NEVER writes their own methods unless they absolutely have to.  When confronted with a coding challenge they will ALWAYS FIRST look to see if the language has a built in method to use.  If they can’t find a built in method in the language, they will look at using a library.  For example if we use the Javascript programming language as an example, we would look through the 4 most popular Javascript Libraries starting with:

‘jQuery’ jQuery Library
‘Underscore’ Underscore Library
‘lodash’ lodash Library
‘Ramda’ Ramda Library

If after looking through those libraries there wasn’t a method you could use to solve the coding problem, then and only THEN would the Easy-Lazy programmer write their own method to solve the problem.  The cons of writing code this way are that some coders will say that you can’t really code because you rely on as many of the helper methods as possible, and don’t write all of your code from scratch.

The upsides of writing your code the Easy-Lazy way are many:  Employers love it, as they want a code base that is less complex so that any programmer coming in behind you will be able to easily understand what the code is doing.  The Easy-Lazy method of writing code is much faster, cleaner,  requires less code, which makes for less complexity and overall easier to understand what the code is doing.



I see the value in “bare metal” coding, lots of older senior coders write code this way, BUT as a beginner learning how to code and solve coding challenges, you shouldn’t try to invent the wheel.  Try to solve the coding problem in the easiest, most tried and true way first.  Once you get better at basic coding, do more "bare metal" programming in your free time.  


I will say that using a Library does make the code run a little slower, I think most companies are fine with this, but I'm sure that in some cases you would want to avoid using libraries do to slowness.  The above is what I recommend for absolute beginners learning how to code.  This is not a blanket statement for never improving your own personal coding abilities.

Keep coding peeps!

Monday, July 6, 2015

Shoot for the coding stars baby!

Hey peeps, a lot has happened since we talked last, I was hired to work for the ettain group doing some really cool things that I can't say right now :-)  I am moving to the RTP North Carolina area on July 24th, and starting my new job the following Monday!  I also will be speaking at the Triangle Ruby Brigade meetup group on July 14th at 7pm.  If you are in the RTP area, come on out and say hi :-)

My wife and I have wanted to move to the RTP area for some time and are so excited to be finally making that dream a reality!  I plan on becoming part of the local tech scene, if you are in the RTP area, I hope we get to meet.  I've been busy these last few weeks getting everything set up and finalized for the move, but I plan on continuing to put out awesome blog posts as always.  I love the lifestyle you can live when you know how to code, I love how you can literally move anywhere in the country and land a great job.  Never let anyone discourage you with learning how to code, if you are willing to put in the time and work hard, your dreams can really come true!


Until tomorrow peeps, keep coding :-)


Monday, June 29, 2015

Free Code Camp Review

I have always promised honesty and transparency with this blog.  Last time I gave a review about Free Code Camp, I wasn't super supportive.  I talked about how the back 2/3 or the course material were basically unusable and very frustrating.


I am happy to tell you that I have been back to Free Code Camp this past week and looked at their new material and played around with it, and can honestly say it is way better!  If you want to become a Javascript developer and don't want, or can't pay $17,780 to go through Hack Reactor, then I think Free Code Camp is the best option to become a front end Javascript developer.


My biggest issues with Free Code Camp were towards the end of the map, I didn't like their Node courses and instead got a free trial to Team Treehouse and took all of the Node courses that Treehouse had.  I still want to encourage you to always think outside the box and customize the learning to code process to whatever fits your own individual learning style and needs.


I think the best thing about Free Code Camp that I am seeing is the fact that they are constantly trying to improve and make the course material better, which takes time.  In my book I mention that Free Code Camp has the best algorithm challenges for beginners that I have ever used and highly recommend using the Bonfire challenges, even if you don't want to take the rest of the Free Code Camp course.


For someone on the fence about taking the course I would keep in mind, that if you are just starting the course now, by the time you get to the back of the course material, it will have improved and gotten better and better.  I remember taking One Month Rails when it was first offered on Skillshare years ago - it sucked!  But, over time it improved and got better to the point where I now recommend it to everyone :-)


Here's the deal, as long as you are 100% sure that you want to be a Javascript developer and can put in the required time of 1,600 hours, then I highly recommend Free Code Camp.  You need to be committed and driven to complete the course, the good news is they have an online chat room where you can ask for help and get unstuck.


All in all Free Code Camp has improved, I see them really trying to make things better and feel that they are serious about making you well rounded as a developer and want people to come out of the program able to land a job.


Keep coding peeps, you can do this!

Wednesday, June 24, 2015

How to finally land a coding job: The 80/20 rule for learning to code.

When will you stop dreaming and land a coding job?




I couldn't stop throwing up, I could hear my heartbeat pounding in my ears, the radio said we had set a Virginia heat record for the day.  I had just finished shoeing 16 large draft horses, I had changed my clothes twice and still my pants and shirt were dripping with sweat.  The inside of my thighs were raw and starting to bleed.

I was about to drive home, but my client insisted that I call my wife to come pick me up as I shouldn't be driving.  I laid down in the shade, took the garden hose and turned it on and tried to cool off.  When my wife pulled up I was having a hard time saying the 's' sound, She helped me into the car, handed me an ice cold Gatorade, and insisted I drink it.  3 minutes later I vomited it all out the window onto another car.

I remember thinking how proud I was of myself as a provider as I handed my wife over $1,000 from my pocket, most of it consisting of now sweaty cash.  It also started to dawn on me that I couldn't keep doing this long term as a career, this was my 4th heatstroke in the past 3 years.


4 years later I would be sitting in one of the tallest buildings in Reston writing front end code for ZipList, the A/C was so cold my glasses would sometimes start to fog :-)  Looking back I can see that I had no idea of how to break into the I.T. world, and had no clue on what skills I needed to learn.  Having helped 30+ people in the past 2 years land QA and coding jobs, I think I can offer some keys to actually learning how to code and actually landing a job whether it's in QA or as a developer.


First know what skills are required to know for the position you want, than only focus on learning those skills.  If I wanted to land a junior Ruby on Rails position, here is what I would focus on:


Http - Know how to do a GET and POST, then an UPDATE and DELETE.

Ruby - Focus on the 20% most used core of the Ruby language.

jQuery - Skip pure Javascript, use jQuery for everything you can for now.

Rails 4.0+ - Forget Rails 3, it will only make Rails 4 seem more confusing.

Html - You need to know the basics.

Css - Know enough to be dangerous.

Sublime Text 3 Plugins - Double your coding efficiency by installing the 30 most useful plugins.

Postgres - You will be using Active Record, but you need to be able to use the database from the command line and know what's going on.

5 MOST Popular Rails Gems  - Devise, Cancan, Paperclip, Twitter-Bootstrap-Rails, Better errors...

Git - Only learn the 8 - 10 most used commands,  this is all you need for 90% of real life work.

Rvm - For keeping track of your Ruby versions.

Brew - For installing everything in an orderly way that won't conflict with other installed programs, you'll thank me later for this :-)

Firebug/Chrome Dev Tools - Learn how to find Html elements using either tool, you will need to do this everyday once you are hired.

Make a Rails app to demo - Don't make the next Facebook, make something that uses a real API like Flickr, that's what I did.

Regular Expressions - Don't stress over it, simply understand the basics for now, when in doubt use Rubular.

Unix - Don't be afraid of the command line, start doing everything from the command line, leave GUIs behind, from now on.


Anything not on this list, skip for now, you will need other skills down the road, but first learn these skills if the goal is to land a junior RoR job.  Don't play with other languages or cool new things that you see on Hacker News, stay focused on the most important areas that you need to learn and understand them well.


What do I mean: "focus on the 20% most used core of the Ruby language???"


Here's what I mean in 4 simple steps:


  • Never write your own custom Ruby methods unless you absolutely have to, always start by looking in the Ruby docs for a method that will accomplish what you are trying to do.

  • Focus on knowing Arrays and Strings, you can accomplish 90% of problems with those 2 data structures.

  • The bottom line is always try to find the easiest, simplest way to solve the problem first before trying to wad into Ruby knowledge that is way over your head.

  • If you can complete the first 30 of these challengesFree Code Camp Challenges you are at a junior dev level of algorithm proficiency, if you can do more, great!  The challenges are written in Javascript, so you will need to figure out how to convert them to Ruby :-)

  • Find a mentor or coach that will help you 10x your learning speed, I was able to meet up with local devs for coffee every other week or so, make sure you have someone who can help you get unstuck and give you clarity and focus on what is important to learn for where you are at in your Ruby knowledge base.


I am not saying do a poor job or become a crappy developer, what I am saying is focus on the most important areas, and land your first job.  6 months at a real job is worth 2 years on your own, you will learn faster than you ever thought possible. 

Don't wander around learning anything and everything that looks shiny and cool like I did.  It took me longer than it should have when I was trying to change careers from a Blacksmith/Farrier to a junior dev.  Whether you want to become a QA Engineer, a junior RoR dev, or a Mean stack Javascript developer, focus on the most important areas for the job that you are trying to get first!  


If you want to know more about the coaching I offer check out: QA Coaching




Keep coding peeps, you can do this!










Tuesday, June 23, 2015

How to use RVM and how to trouble shoot install issues with Sublime Text 3

Hey Guys!  Another day is in the books, I've heard several people asking about how confusing RVM is and also issues with getting Sublime Text 3 to install packages and symlink correctly.  I remember being confused by RVM, but actually it's really simple once you understand what it is doing.  Let me know in the comments what you think and if you want to see another video of me showing you how to do something :-)












Keep coding peeps!  You can do this!!!

Saturday, June 20, 2015

The most useful Unix command of all

Hey guys, had an awesome week at work, I love coming to the end of the work week, knowing that I have grown my skills more than they were last week :-)

With that in mind, I thought I would show you one of if not my favorite Unix command that I love using everyday!  I don't want to say the word Ninja, but you will feel like you almost have a super power when using Unix.  Grep is one of the most powerful and useful Unix commands when you understand how to use it properly.

Lots of beginners don't use Grep, because they think it is confusing and miss out of the full potential and time savings of using Grep in their day to day work.  In the video below, I will show you how to use the Faker gem, how to troubleshoot in irb, how to write a super simple Ruby loop and create 1000 names of fake data.  Next I will show you the power of Grep, and search through the data and extract the name we want and write it to a file.

The video below is 7 minutes long, but watching it will save you 7 minutes a day or more once you understand and harness the power of grep :-)







Talk to you all tomorrow :-)  Keep coding peeps!

Thursday, June 18, 2015

Why you should use Brew and Sublime Text 3

Hey guys, going to hit the bead early tonight :-)  No 1:30 a.m. stuff, thought I would show you some of my Brew and Sublime Text 3 secrets and why you should use them too!







Keep coding peeps, I'll talk to you tomorrow :-)





There is no luck, only grit.

It's 1:26am here in Northern Virginia.  I am exhausted, I want to go to bed, but I promised myself that I would write a post tonight, which got me to thinking.

All of the most successful people I know have all overcome challenges, and have worked really hard for what they have.  It also got me to thinking about one of my QA coaching students Georgi, she is studying like crazy!  4+ hours a day, I can't believe the learning progress and speed she is making, I was no where near as fast as she is.

Which made me think even further about success whether it has been in coding or my own personal life.  When I was learning how to shoe horses, all of the older farriers would always refer to me as: "Hey BOY!... get over here!"  They would play tricks on me so that I would accidentally pick up a hot horseshoe, ( because they put a hot horseshoe in with the cold horseshoes ).  I eventually had to leave the one farrier I was apprenticing with because he literally would only have me work on the most dangerous horses.  But I never gave up on my goal of learning how to shoe horses, and I eventually did and had my own business for 7.5 years, 1 year netting over $115K after taxes.

That never would have happened if I had given up.  My success had very little to do with luck and a whole lot to do with never quitting, even when I thought I would pass out from heat stroke.  Coding is no different, fighting the urge to simply watch T.V. and instead open your computer and try to write some code.

That's why I love working with Georgi, I love her work ethic.  I woke up yesterday and saw an email from her that had been sent at 1:30am in Spain time.  Don't ever give up peeps, you guys can do this, if you have to go at a slower pace, okay, just don't ever stop.  It's a lot harder to get going again from a stand still.  Everyday, open your computer and write something in your text editor, anything :-)

Good night, I talk to you tomorrow :-)


Tuesday, June 16, 2015

Basic Unix commands Video: What's the difference between copy and move?

I used to struggle with this simple command on Unix, and know that others do as well.  Sometimes the simplest things can seem confusing or complicated until you finally "get it", then it all makes sense.


In a nutshell: Copy 'cp'  and Move 'mv' do virtually the same thing Copy just keeps the file in 2 places.


I know that sounds simple, but it's good to be clear with the basics, whenever you use copy you will have 2 copies of the file.  When you use move, you will only have 1 version of the folder or file and simply move it to some other location.

This becomes confusing when you see the most common use for the move command which is actually used to rename files.  Maybe they should have a command called 'rename' instead of move.

I'll show you some examples in the video below, hopefully you will walk away from this video with better clarity of Move and Copy.  Don't get discouraged when you are new to Mac and Unix, there are so many terminal commands.  The truth is that you really only use about 12 - 15 on a daily basis, you don't have to learn ALL of Unix on day 1 :-)






Hope this helps, if you want me to make a certain video, suggest it in the comments below :-)
Keep coding peeps, you can do this!




Monday, June 15, 2015

Announcing QA Coaching and Videos Page

I am launching a 4 month QA coaching program later this week, details to follow.  I am also excited to be adding a Videos tab to my blog.  The Videos page will NOT be like other places that you have seen videos on learning how to code.

I will be adding new videos every week, the videos are not going to be very "wordy".  I am not going to talk a lot about things that have absolutely nothing about learning how to code.  I want these videos to get right to the point, very little if any introduction when I record each video.  The point is not to be rude, but to make progress and learn as absolutely quick as possible.


All the students are doing well, and keeping on my toes to try and push them as fast as possible :-)  I look forward to helping you learn how to code and learn coding tools easier through these videos.  If you want to know how to do something, put a comment on the Videos page and I will try to make a video that address your concern :-)

Check out the: "How to make a Gist from the command line" video I just put up here: Video Page

Keep coding peeps!

Tuesday, June 9, 2015

The Computer Scientist who can't code

I have a confession to make:  I can't really code.

Sure I can make little ruby scripts that go out and scrape a site and then kick off a build depending on what the data returns back.  What I mean is, I'm okay.  I'm not good at coding, I'm still learning and know enough to get the job done, although it may not be very pretty or the best way to do the task or script.

The bottom line is everyday I love learning more about coding and figuring things out.  I'm just not that good yet, give me another 10 years and maybe I'll know what I'm talking about :-)

I met a Computer Scientist who has a full blown CS degree from a respectable college and she can't code! ( I won't say where I met her or how, to keep her identity anonymous ) She was embarrassed when I asked her a question I was struggling with and she had no clue what I was talking about or suggestions of how to fix it.  I felt bad as she mumbled that she didn't really know how to code and her face blushed red.  She went on to explain how she knew a lot about computers, but not really about coding.

I quickly tried to make her feel better by showing her how my code really wasn't that good and wasn't actually written the "ruby way".

Later, I thought to myself:

"How do you get a CS degree and not be able to code???"

How can I ( a former Blacksmith ) with no college education whatsoever with only a couple of years of playing with code,  code way better than someone with a CS degree?  How does that happen?

I felt better about my coding abilities, not that I'm any good.  I just see that my efforts to get better most be working at least a little bit.

My next thought was:

"Why did you get a CS degree if you didn't love coding?"

I don't have the answers to these questions, only that I think people shouldn't love getting a degree, but instead should love learning how to code.  Also I think I will stop apologizing for my lack of formal credentials even if I'm not very good at coding just yet.  I am going to embrace where I am on the learning to code journey even if I still have a long way to go :-)


QA Coaching UPDATE:

It is with a heavy heart that I must tell you both of my QA coaching students that I was coaching for free, have dropped out after 1 week :-(  Both quit for various reasons, and I wish them all the best of luck with what they are doing.  Both had to drop out for similar reasons though:

They couldn't put in the minimum required 21 hours per week of studying.

I have already filled the 2 free 4 month QA coaching slots with 2 new people Georgi and John.  I will say that if these 2 people drop out, I won't be doing anymore free QA coaching sessions.  I wanted to show people real live examples of how to land an entry level QA job in 3 - 4 months putting in 21 hours a week of studying.

Yes it is hard work, but you'll have the basics of coding down and your first job.  I think that is well worth the effort.  I am going to be starting a paid QA coaching program in the next few weeks for anyone who wants to land an entry level QA job in 3 - 4 months AND can put in the required 21 hours of studying per week!

Keep coding peeps, you can do this!!!




Thursday, June 4, 2015

Qa student update, Monthly Google Hangout?

Hey all!

I'm sooo excited to give you an update on the first 4 days of the QA coaching with Roger and Dexter :-)
They are both doing very well, Roger is leading the charge and is further along then Dexter, but both are doing well.  One issue that students come across and realize when they actually get started trying to get hired, and study, is how hard, and how much effort it takes to put in 21 - 30 hours per week!

I think that hit home this week, but I feel impressed with the 2 students I picked and their chances of landing a QA job within the 4 month timeline.  Roger is having some issues with his computer and ordered another one online last night.  Dexter was borrowing a Mac and is now purchasing his own. We are doing our first Google Hangout tomorrow so wish us luck :-)

I've gotten several emails from people asking me to coach them in the past 3 days.  So I wanted to clarify and throw some ideas out to you.  My original plan was to officially launch a QA Coaching 4 month bootcamp  ( or whatever you want to call it ).  With the goal to have 100% of students land entry level QA jobs by the end of 4 months or else I won't consider my coaching a success.

People have been emailing me and saying: "How much would you charge me to help me get a QA job? " Here's the deal, I don't know.  So I put it to you guys:

Would you mind shooting me an email with what you think would be reasonable to charge someone for 4 months of QA coaching.  Assuming at the end of 4 months the student does in fact land a job making $50K.  I really want feedback on this, and will not be offended, no matter what you say in the email, I just really want your opinion on this.

Lastly I want to help beginners new to coding by doing a monthly Google Hangout.  I'm not charging a penny or anything like that.  If I get 10 emails from people saying that they would like to be on the 1 hour Google Hangout with me, then I'll do it.  If I don't get at least 10 people interested, I won't host the Hangout, simple as that :-)

I was thinking of helping beginner's get their dev environment set up, since 33% of people new to learning how to code quit while still trying to get it set up.

I thought I would cover some topics like this:

Brew
Sublime Text 3 
Plugins
Basic Unix Commands
Basic Regex

Stuff like that, I'm not going to be making a Rails app online or anything like that, just troubleshooting and answering questions.  Well, that's all I've got, let me know if this is something you guys want me to do.  I'll do the Google Hangout on a first come basis.  Whoever sends me an email first, will be in the first Hangout, so I am fair to everyone :-)


Keep coding peeps!  You can do this :-)

Monday, June 1, 2015

How to get an entry level qa job

Learning to code is fun, but can you get a a dev job with your new found coding skills?  Maybe, maybe not.  Here's how to land an entry level QA job in 3 - 4 months.

First things first, forget all of the things that you read online from QA training companies that tell you that in order to land an entry level QA job you need more degrees or training certificates!  Nothing could be further from the truth!  Here's what you really need:


Ability to market yourself
People skills
Interviewing skills
technical skills


In that order!  Everyone trying to get hired does it all wrong, they only focus on the technical skills.  Yes you need technical skills, but when trying to land an entry level QA job, it's a lot more on who you are than what you know.  I am sure this will tick of a whole bunch of people who have master's degrees and still can't get a job, but the truth is the key to landing an entry level QA job is not that hard if you are willing to think outside the box.


Most people trying to land an entry level QA job wake up, jump online and check their email for any replies to the resumes they sent out the day before.  Then they go onto Dice, Indeed, Monster, and Craigslist.com, and spam the heck out of any and all jobs that are even close to what they want.

Guess what?


That method no longer works, you are just 1 resume on a pile of thousands, everyone is doing it wrong, stop fighting for the 13% - 17% of jobs listed online, and instead focus on tapping into the 80%+ of jobs in the hidden job market!


HOW? ... I'm glad you asked :-)


How are you remarkable???  If you start talking about your degrees and education, you just failed.  Let me rephrase the question:

"How are you remarkable WITHOUT mentioning your degrees, or education?"

You can't stand out from the crowd when you are wearing camouflage.  You need to find out what it is that makes you unique and then flaunt it!  Don't be obnoxious, but be proud of the fact that you were self employed for 7.5 years and used to be a Blacksmith, don't try to hide that!

The above is really the key to getting hired, but I'll give you 7 practical ways to actually get noticed and hired for entry level QA job.


1. Learn the basics of programming.
2. Learn Ruby it's the easiest and best scripting language out there.
3. Join local meetup groups and attend regularly.
4. Write a basic testing tool.
5. Give a short presentation at a local meetup group ( 5 - 10 minutes ) and show other coding "noobs" how you made your testing script.
6.  At the end of your talk mention that you want to get a QA job, and to keep you in mind.
7.  Repeat steps 1 - 6


IF you actively ADD VALUE to a local community and know the basics of coding, know how to interview and don't treat people like a butt, you will land an entry level QA job in no time!

I've helped over 30+ people land entry level QA jobs and junior dev jobs using mainly the above steps, along with some coaching from me.  MOST people that don't get hired, don't get hired because they only do 2 or 3 of the 6 steps above.  You can't get hired if you aren't willing to get up in front of a group of 50+ people and give a short talk! 


You don't need another degree or certificate to get hired as an entry level QA Engineer.  Most of the skills you will learn on the job and will be taught be the lead QA Engineer.  95% of people will read this article and agree, BUT will wake up tomorrow and spam job boards, don't let that be you!  If you want massive positive change in your life, it takes effort, it takes being willing to crawl out of your shell!  If you need help I will be offering a 4 month QA coaching package soon for people who are serious and want to land an entry level QA job in 4 months or less! : http://joshuakemp.blogspot.com/p/coaching.html

Keep learning to code, you can do this!!!

Sunday, May 31, 2015

Free 4 month QA coaching winners!

The winners of the 4 month free QA coaching program are:

1.  Dexter of San Francisco, CA is an entrepreneur which is one of the things that impressed me about him, his site is pretty cool too :-)  http://diyelectricskateboard.com/

2.  Roger of Vacaville, CA is a 54 year old printer repairman, who wants to show the world that not only young people can land I.T. jobs!

Both of these peeps assure me that they aren't quitters and will put in the 21 hours minimum of studying each week.  I am SO excited to help them land QA jobs in 4 months or less!!!


Follow along with the blog for updates of Dexter and Roger as I coach them along and they land their QA jobs 4 months from now:

October 1st!  ( affectionately known as D-DAY )

I'm sorry I couldn't pick more people to coach for free, there were a lot of great people who applied!


I'm also excited to announce the re-launch of my book: "No Degree, No Problem"

It took me 3 years to write this book.  It wasn't the writing that took so long... It was the learning.  I had to work at 2 companies, read hundreds of emails from people learning how to code.  Now with 4x  the content as the original version, this is the fastest, easiest way to land a Ruby on Rails position!

Special thanks to Emily Foster, owner of Raven Brooke Studios, for designing and making the new cover for the book.  I couldn't be happier and highly recommend you to like her Facebook, and to check out her shop :-)



I LOVE IT!

I rarely ask for retweets or mentions, but this is the time I will ask for a mention or retweet on Twitter or Facebook :-)  Check out my book if you are serious about landing a Rails position!

Keep coding peeps!  You can do this!!!


Thursday, May 28, 2015

4 Days left to apply for the free 4 month QA Coaching to land a job making $50K

I didn't intend on writing this post, but I've received several emails from people now asking why I haven't responded back to them.  Here's the deal, if I have not responded to your email, send it again.  I don't know if something is acting up with my Gmail or what caused it.  Just know that I have already received a ton of great applicants, but want to make sure you get a chance to apply as well.

Above all, I just want to make sure that people don't think I am rudely ignoring them :-(
So far I've gotten applications from New York to San Francisco from Spain to Georgia, I love it! 


I was tempted to close the application process because I have so many good people to choose from, but I thought that wouldn't be fair.  May 31st in the afternoon I will email the winners, till then you can apply.  Remember don't just talk about your college degree,  find a way to prove how remarkable you are, if your degree was so amazing, you wouldn't need my help to land a job :-)

I can't wait to get started with this program and show people all over the world that this isn't rocket science and you can get hired for an entry level QA job in 3 - 4 months :-)

Keep coding peeps!

Monday, May 25, 2015

The secret of how to get a QA job in 3 - 4 months.

I am going to be putting up a new blog post every Monday from now on.

NOTE:  Only 6 days left to apply for the free 4 month QA coaching, see the previous post on how to apply.

I met this really nice guy today working at Arbys who was a former inmate.  I felt compelled to try to help him, and offered to help him learn to code and get a better job.  The guy's name was the same as mine: "Josh".  He said he really appreciated the offer, but said he didn't think he could ever do coding.

I respect his decision, but I couldn't help but think about all of the people who say they do want to learn to code and get hired but won't put in the effort to make it become a reality.  I've gotten a lot of emails from people who want me to coach them.  They say they have the passion, drive, and will stick it out for 4 months.  They say they want to get hired as an entry level QA engineer in 4 months.  Here's the thing, half of the people who sent in an email to me, didn't answer my questions, and if they did, they only answered some of the questions.

I'm reminded of the Henry Ford quote:


"If you think you can do a thing or think you can't do a thing, you're right."

-Henry Ford


Getting lots of application emails and trying to pick the best ones is fun and also challenging.  I decided to share with you the simple secret of my success in over coming any and all challenges I've faced.  People write in and say things like:  "You are so lucky!", "You are so motivated and driven" or "I wish I had your passion".

Here's the thing, I'm not lucky, I am driven and passionate.  The secret to getting hired or changing your life in any area is really quite simple:

You have to REALLY want it, never give up and find A WAY to succeed!

There is no magic potion that I am going to give people that will help them get hired.  Sure there are some tricks I've learned, and short cuts to learning and landing a job.  BUT,  the main reason you are going to get hired is because of all of the "sweat equity" you are going to put into the process.  I think I've already picked 1 student from out of the crowd.  I think judging by the person's desire to make a major life change happen, that they are likely to succeed.

I can't want you to get hired and change your life more than YOU want to make massive change in your life.  I will push you and drive you on to success like never before, but you ultimately have to want it!

Okay, I will get off of my soap box now :-)

My book is out in 1 week, I can't wait.  So excited to see people's feedback on this much better edition of the book!  Work is good, life is good!  Don't tell anyone, but I think I will be moving my little family to Raleigh N.C. this coming February or so.  If you live down there, maybe we'll meet at a local Ruby meetup group :-)

By the way, if you have a blog ( doesn't have to be big ) and you'd like to get a free copy of the new edition of: "No Degree, No Problem" before anyone else, simply shoot me an email.  If you put a review of the book on your blog I'll give you a free copy of the book that simple.

All the best, keep coding peeps, you can do this!

Wednesday, May 20, 2015

Calling all college dropouts who want to make $50K a year


NOTE: You don't actually have to be a college dropout to apply :-)

So after working on my book on and off for the past 6 months, it is finally being launched on June 1st.  I am so excited, the book now has over twice the original content.  If you purchased the first version of the book I am told it should update to the latest version when it is put online.  Let me know if you have problems with Amazon and I will send you a copy.  The updated version of the book is 3 - 4 times better than the original.  I have helped a lot of people get hired over the past almost 2 years, and seen what works and what doesn't work, those experiences have really made the book better.  Also I actually took my time to write the book ( not simply 2 weeks like the first book ) this time and hopefully fixed a lot of the terrible grammar.

Enough about the book!

I want to tell you what I am working on that will make getting an entry job in the I.T. field without a degree way easier and faster.

I get lots of emails from people who have dropped out of college, and are working low paying retail jobs, and who have pretty much lost their hope.  I want to have a QA coaching service that will take a technically unsavvy person and 4 months later help them land a entry level QA job!  I think the course and system I have come up with will be much easier for people who don't have a coding background, but want to break into the I.T. field.  This would obviously only be the first step, people can get their first job, and then move onto being a developer if they like.  It is really good to have experience in QA before becoming a Developer anyway.

Before I charge for this service, I need to put my money where my mouth is :-)  I want to get some real life examples of people doing my coaching program.  Which brings me to my point:

I am accepting applications for 2 students.

I will coach you for free for 4 months, after which time it is my hope that you will land an entry level QA job making $50K.

What do I get out of it?  I love coaching and helping people, I will get some real world examples and testimonials once you land a QA job.

What do you get out of it???

You will get all of my secrets, experience helping 20+ other people land jobs and coaching.  I will help you become ready to get hired as an entry level QA engineer in 4 months or less.

Here's the deal though, I know I will get a bunch of emails.  I will help you make your odds better of getting selected as one of the 2 candidates.  Here's what I am looking for in these 2 students:



You must be passionate

You must be driven

You must not be a quitter ( If you could some how prove that the word "can't" and "quit" are not found anywhere in your DNA, that would help you )

You must be able to devote at least 21 hours per week to study for the next 16 weeks ( no exceptions )

You must be someone who takes initiative ( If you can't take risks, and make decisions then you won't be a good fit for this program )

You must be remarkable ( what does that mean?  How do you show that you ARE indeed remarkable???... I leave that to you )

You must commit to not giving up for at least 4 months

You must have a Mac ( It can be old, just as long as it's a Mac, no Windows or Linux machines
sorry )
You must give me a review at the end




If you think you have those qualities than here is what you will get from me:

My commitment to helping you land an entry level QA job 4 months from the day we start June 1st.

Free coaching and help from me ( I will not write your code for you, BUT I will help you figure it out , and look at your code)

The latest updated, and revised version of my book.

My strategic customized plan for you, interviewing help, secrets and tips that aren't even in the book.


This is a golden opportunity for someone who is stuck in a crappy job making $25K and wants to double their income 4 months from now.  This is NOT an opportunity for the lazy or faint of heart, think of this as a QA boot camp, that will get you good enough to land an entry level QA job.


That's the deal, that's what I am offering, send me an email and make your case why I should pick you and dedicate the next 4 months to helping you succeed :-)  joshuakempcoaching@gmail.com

Keep coding peeps!


Thursday, May 7, 2015

Free Code Camp: Why Rails is still the best option when learning how to code

I've been so busy lately writing my own Rails app in the evenings after work.  I have wanted to build this app for so long!  I'll post an URL so you can see what I'm making when the app is a little more "spit and polished".  I started officially making the app on May 1st, but the past couple of months have been spent learning things I thought I would need to know to build the app.  Which brings me to the point: why Rails and NOT Javascript is the way to go when learning how to code.

Yes  I know I'm a "flip flopper".  I said I liked Rails originally than I said I was leaving Rails for greener Javascript pastures.  Why now am I preaching Rails again???

Here's the main 3 things I didn't like about learning the MEAN stack, and feel are very challenging for beginners who are just starting out learning to code:

  • SPA
  • Callbacks
  • Javascript 

Single Page Applications are growing in popularity, and if you want to use the MEAN stack, you will be writing most if not all of your web applications this way.  SPA sounds good when you first read about it, all of the performance benefits, no page flickering, blah blah blah.  I liked going through tutorials making SPA apps until I realized they are actually harder to make, and more prone for 'bugs'.  SPA apps also take about twice long to build.  SPA doesn't follow something that I had gotten used to in Rails' "convention over configuration".

If you are having an issue making a SPA app and you go to Stack Overflow, you will find that there is no set way to do virtually anything.  Now that freedom may be good for experienced developers, but as a beginner, I find it very challenging and you end up wasting a lot of time, trying to find a solution.

Rails on the other hand had too much magic, too much that I didn't understand.  Now I am seeing why Rails is such a great framework.  If you can cut through the Rails magic and understand what is going on, then Rails makes sense.  Also if you have any issue, there is typically going to be a "right" way to solve the problem.  Everyone in the Rails community will be more then happy to show you the Rails way.  

I loved when learning Javascript that you really have to understand how things are working under the hood inside the app.  Something I didn't get with with Rails but, since coming back to Rails I value all of the heavy lifting it does for me.  I think we need to understand what is going on with the app.  I also think having a set way to build an app really helps beginners learn and not get too frustrated.


Callbacks I also realized in Javascript how much I love Ruby and how it is written.  Yes it is good to learn some Javascript, but my goodness it's not nearly as much fun as Ruby to write day in and day out.  I took some courses on making an application using pure Javascript, and realized why in fact we have and use jQuery so much!  Javascript is fine, in small doses, but I think instead of making Javascript applications, I will make Rails applications using Ruby and then simply sprinkle them with Javascript where needed.


Javascript I'm glad I spent the past 6 months playing around with Javascript in my free time,  I think it was good for me.  My advice though is to learn jQuery and not to focus on Javascript.  jQuery is SOOO much easier to learn and understand for beginners.  If down the road you have the urge to build apps using only Javascript then go for it.  I think as a beginner though sticking to jQuery is the way to go.

I'm a little embarrassed to admit that I was flat out wrong and shouldn't have left my first love Rails.  BUT I promised to always be transparent, and I  want to save other's time who are learning to code.  I am also not a die hard fan of Free Code Camp anymore.  The course starts off great, but then when you get to the higher levels in the course the material is almost unusable.  Instead I recommend a blend of Free Code Camp and Epicodus

I commend Free Code Camp on publicly changing the listed amount of time it takes to complete their course. From 100 hours to the actual 800 hours it really does take.  To complete the entire Free Code Camp course and get hired they recommend 1600 hours. 

I plan on doing more and more posts on helping people to navigate the waters of learning to code.  Everything is changing so fast.  Even Dev Boot camp who at one time had a 9 week program, now has a 19 week course instead.  Cramming, pushing yourself to learn how to code in 9 weeks is just dumb.  You can learn how to code, it will take a lot of time and effort, but the rewards are worth it!

Keep coding peeps!

Wednesday, March 25, 2015

Free Code Camp - The 5 Most Common Pitfalls

What up peeps!  I feel like every day gets better and better, I just gotta' say life is good, No brag, just fact :-)

I thought I would give some insight/feedback to those of you who are following along as I go through Free Code Camp. If you are currently going through the course, or thinking about starting Free Code Camp hopefully this will help.

There are 54 challenges that you must complete in the course prep work.  The challenges are supposed to take 100 hours to finish.  After completing the prep work, you will then spend another 900 hours coding for non profits.  Finally you will be turned loose into the coding world, where you will secure an awesome dev job and change the world :-)

It's amazing how many people have started Free Code Camp:  13,796 at the time of this writing.  Only 140 students have made it out to the other side and are currently working for non profits.

Before you get the cool coding dream job, where everything is rainbows and unicorns, you must first pass the challenges!  Think of it like Navy Seal training bootcamp where only the most determined people that never give up will ever make it out.  You can quit whenever you want for any reason, no one will think less of you, but I hope you don't!

I haven't completed all of the 54 challenges yet, I've done 34 of the 54 challenges, I have conquered the beast challenge.  Challenge 34 is by far the toughest and longest challenge of Free Code Camp.  My plan is to go through the course and learn enough Javascript, Node, and Angular to be able to write an app, that I've been wanting to make for a long time.

I write code that works, but probably isn't pretty.  I have a very long way to go till I can call myself a full blown developer.  This post and the following posts are meant to help make learning to code easier for you.


"I'm basically stumbling around in the dark looking for a light switch and writing about my struggles here so you can hopefully find the light switch easier :-)"


Enough said, here's what I've found out about Free Code Camp so far:


NOTE:  I love Free Code Camp, this is in no way meant to be a knock to them or their mission.  Also Free Code Camp is always updating and improving, the things I say below apply to when this post was originally written.

Common Pitfalls


#1  Students are more focused on socializing than in actually learning how to code.

I love the chat room on Free Code Camp and think it's awesome. However I see students staying on the chat room for hours just talking about stuff that has nothing to do with learning to code.  I'm all for socializing, but if your goal is to learn how to code, don't waste too much time in the chat room.


#2  Students don't take learning as seriously because the course is free.

Again it's awesome what Free Code Camp is doing!  One of the downsides I find is that students who are taking the course are not very driven.  I understand students have other things to do, and may be just doing this on the side, but don't let that make you complacent.  I can see why paid bootcamps students tend to work harder because they have so much invested, they really must succeed.


#3 The prep work takes much longer then you think it will, so students get discouraged.

The 54 prep work challenges take far more than 100 hours to complete.  I would say 200 hours is more accurate.  Students start learning to code and then feel like they are slow, because they aren't completing the challenges anywhere close to the  suggested 100 hour guideline.  I can't complete the course in 100 hours, unless I cheat and try to zip through the material without actually learning.


#4 Challenge #34 is a BEAST!

This goes hand in hand with the previous point.  Students are making momentum and then hit challenge 34 and sit there for a month or more.  The other issue with #34 is that they are constantly making more challenges to complete.  When I started #34 there was a total of 30 coding challenges.  By the time I completed 33 coding challenges there were now 43 coding challenges.  At what point can you move on?  I hear they are going to make 100 coding challenges total for #34.  #34 already takes half of the the entire course time.  As more and more coding challenges are made for #34, are students going to have to spend 350 - 500 hours to complete the prep work?


#5  The new free version of learning Node.js is terrible

 The free version of learning node is so “buggy” that it is simply unusable in my opinion.  You will waste far too much time trying to use the tools, than time spent actually learning Node.js.  I appreciate what http://nodeschool.io/ is trying to do, but it's just not there yet.  I know students need to complete the course work in order to move on to the next challenge.  I personally am using Tree House to learn Node.js.  I would suggest doing the Tree House Node.js course and then clicking on "Challenge Completed" on the Free Code Camp Node.js Challenge.  I'm not saying to be dishonest, I'm saying learn Node.js however works for you and then move on.


Free Code Camp is pretty sweet, they are kicking butt over there blazing a path through an unknown new territory. We should all be grateful and thankful for what they are doing.  I plan on making several more posts like this to show you how I navigated the course, how to get unstuck on challenges you are facing, and especially on how to conquer the beast challenge :-)


Keep coding peeps!





Sunday, March 22, 2015

We need dreams to keep us alive, never lose yours!

I'm at the end of what was a great weekend, life is so good :-)  I'm a pretty stocky guy, I'm 5' 11" and weigh 230 pounds, no one believes I weigh that much, but I do.  When I was 16 I ran a lot and weighed 146 pounds.  I was embarrassed about how skinny I was, so I started going to the gym and working out like mad.  Over the next 16 months I gained a lot of muscle and weighed 175 pounds, I felt more confident around people.

When I was a farrier, I would shoe horses for plastic surgeons, attorneys, people who worked in underground buildings in Washington D.C.  Although it was never directly said, I got the impression that my powerful clients thought I wasn't very smart to be shoeing horses in the 21st century.  I learned to code, I learned some fancy computer science terms that I could use in conversations to make myself seem smarter.  My confidence grew, I felt more confident around powerful people.

The sad truth is I'm still the same person I was then and am today.  I have a huge dream that I've only dared whisper to my wife.  I made the mistake of telling a good family friend about my dream.  She laughed so hard tears came out of her eyes.  I became a little tight lipped about sharing my dream after that incident.  It's such a big dream that less then 1% of people ever accomplish it.  I believe in living your passions and going for big goals.  Everyday making small deposits toward your dream until one day you are living the dream.

I've had this "laughable" dream since I was 24.  I had a light bulb moment and thought: "If I could do anything with my life...I would do that!"  This dream has nothing to do with coding, although, everyday I work towards becoming better at development.  Everyday I take another small step to my "laughable" dream.  That's the thing about passions, if they don't motivate you to work on them at midnight, then is it really a passion?

I am running again, 4 - 5 days a week,  I missed running and am glad to be doing it again.  This post isn't really about coding, but I just wanted to be honest with you and share that I struggle too.  I don't have all the answers, but I don't let that stop me.  I follow my passions and always try to take the next step in the journey towards achieving them.

Whether you are learning to code or becoming a chef, I hope you find the courage and perseverance to accomplish your dreams.  Don't listen to the "dream snatchers" out there, you can accomplish your goals, never give up!

Keep coding peeps :-)

Tuesday, March 10, 2015

2 tools to help you learn how to code.

I thought I would share with you the hardest challenge for me personally, about learning how to code and how I overcame it.  I want to encourage beginners who are about to give up coding, because they feel like they just don't "get it".  The truth is, I couldn't either, I felt extremely non gifted when it came to coding.

The hardest part about learning how to code is not learning the syntax, Html or Css.  The hardest part about learning to code is the actual "coding logic".  Growing up I struggled with Algebra and abstraction like you wouldn't believe, I thought I was dumb.  A lot of math wizards get abstraction much quicker than I do.  For me I have to keep struggling and struggling until I finally get the concept to "click" in my brain.  The thing is not to give up, don't make yourself feel bad that you aren't naturally "gifted" as a coder.

3 months after I started learning to code, I couldn't solve a single problem on the easy coderbyte challenges.  Hours of trying, didn't help, I didn't understand the concept of a method.  I didn't understand how different data structures got to use different methods.  Thankfully I am more stubborn than dumb and didn't quit.  Days went by, still I didn't understand.  What helped me to break out of the rut, was realizing that I only really needed 2 coding skills to solve most of the coding challenges.

DISCLAIMER:  This is not about writing beautiful code.  This is about improving your coding abilities enough to solve basic coding challenges.  Pretty comes later :-)


I realized that the power of coding was in knowing how to use 2 things ( statements ) in a language:

1) If else statements
and
2) for loops

Once I realized that I really only needed to figure out how to use those 2 statements.  I gained a lot more confidence.  Now whenever thoughts crept into my head like:

"Maybe you're just dumb" 

or

"Maybe you aren't meant to learn how to code"

I would focus on learning how to understand for loops better.  Since I am a very visual learner, I would take little pieces of paper and write a variable name on them.  I would them make another piece of paper and call it array.  I would then manually try to walk through what was happening with the data instead of trying to keep it all in my head.

The good news is after a week or so of doing this, I started to get it.  Finally it clicked and I realized that I was way over thinking how loops work.  Loops aren't magic, they are actually really simple.  Even when you throw in a double nested loop, I would simplly print out what was happening at each step of the loop.

Yes, nested loops aren't the best.  Yes you probably should use a for each iterator instead of a for loop.  For me though, once I understood how loops work, I realized how much I could do with just a simple for loop and some if else statements.

Whenever I had some code logic that wasn't acting as I thought it should I would just look at this:




That's all I would do.  I slowly started solving coding challenges.  I started to gain a little more confidence.  Yes my code looked like crap, but I wasn't giving up on learning how to code.

After focusing on using only 2 simple statements to solve coding challenges.  I decided not to stress about feeling the need to use more complicated data structures.  Instead I tried solving as many problems as I could using only arrays.  I didn't care what the problem was, I first tried to solve it using an array.

Dumb I know, but for me that's how I started to realize that I did in fact need more of what the language had to offer.  Instead of reading a massive book and freaking out about: linked lists, hash maps, dictionaries etc.  My mind was now eager to see what else in the language could help me solve a coding challenge easier.

Then I discovered underscore.js, lodash.js, and recently ramda.js libraries.  How do you use a library?  How do you use a REPL to run Javascript?  What is a REPL?  Coding is no longer scary to me, it's still hard, but fun :-)

I strongly encourage you, whether you've been painting houses your whole life, are a CS college drop out, or in my case were shoeing horses for 8 years.  Don't compare yourself to others, you can learn this stuff.  Learn in such a way that your mind looks forward to solving coding challenges instead of dreading them.

I'm on step 6 of 6,327 steps to becoming a senior developer one day, but that's ok!  Progress is progress, my motto is: keep it fun, never give up and you will learn how to code!

Keep coding peeps!

P.S.  Let me know if you'd like more "how to" style blog posts.  I have lots to write, but I want to write things that will benefit people who are starting out on the path of learning how to code.  Comment below or email me :-)





Saturday, February 14, 2015

My rebuttal to: "Why learning to code is so darn hard!"

I mean no disrespect to Erik Trautman, or to any of the fine work he has been doing with the Odin Project.  But I seriously disagree with his piece that is going around the internet about why coding is so hard to learn.

The article has some cool graphs and some interesting points, but all in all it left me with a very negative taste in my mouth.  I think it paints a very discouraging picture in the minds of all people who are thinking about learning how to code.

I'll acknowledge that coding can be very hard and discouraging at times, but it gets better and better as you progress.  I think if you are learning how to code, you should start with why?  If you read online somewhere that you can learn to code and 8 weeks from now you'll be making $100K, well then yes, you are in for a very tough frustrating time learning how to code.

Do you enjoy learning?  If you are like one of my siblings who's only goal in life is to get a good job where he doesn't have to keep learning new things, then learning how to code is going to suck!
If on the other hand you absolutely love learning new bits of knowledge, making even slow progress then coding is going to be a blast!!!

The truth is that anything that is worth something takes effort, learning to code is no different.  If the thought of getting stuck on a coding challenge scares you and makes you want to quit, than I dare say most of life itself is going to suck.  Learning to code is like learning anything new, take drawing for example.  When I was 19 I auditioned and got hired to be a caricature artist at a major theme park.  My artwork was not as good as some of the other artists who had been drawing professionally for the past 10 years. So what?  I didn't dwell on that fact, or the fact that I had 26 people rejected my caricature drawings that Summer.  I loved drawing and I loved seeing my hand eye coordination improve and my artwork.  By the end of the Summer I could draw a Caricature sketch of someone in full color in less then 4 minutes!

So if you are a "take the easy path at all costs" then yes, run for the hills coding will suck.  If you enjoy learning, you will have many opportunities to learn everyday!

A couple of things to keep in mind:


We all learn differently:  If something is not working for you and you are getting frustrated, then stop!  Try another way of learning.  Some people like tutorials, some people like reading books and doing the exercises at the end of the chapter. Other people like trying to make a web app and learn as they go.


Take the pressure off:  3 years ago I could hardly text or send emails, I've made a lot of progress since then!  However if you compare me to someone else my age who has been coding since they were in 5th grade than I am a total failure!  Don't worry about anyone else, if they are further along than you are.  You are in charge of your future so focus on what you are doing not someone else.


Any progress is progress!  As long as everyday you open your laptop and try to learn and get just 1% better with learning how to code, you will make it eventually!  A lot of the people that say they learned to code in 8 weeks, really had been "dabbling" with coding for a little while.  If you are truly brand new to learning how to code, it is going to take some time.  If you enjoy learning that's no big deal, make small steps of progress everyday that's all that matters!


Struggling is beautiful and necessary!  A lot of people try to scare you into thinking, you absolutely must go to a boot camp in order to learn how to code.  The truth is that no matter where you go, your brain is going to have to work, and work hard to learn lots of new things.  The beauty of learning on your own is that when you are one day hired at a company.  If your boss makes a mandate that the dev team will be switching to ractive.js.  You won't freak out, you will have the confidence to be able to learn something new on your own.  The other benefit of struggling to solve coding related issues on your own, is the fact that you will never forget the lessons you learn.  This isn't a horse race, savor the moment and enjoy the learning process!


Getting hired is ultimately up to you:  No one can get you hired except you.  No one can hold your hand in an interview and give you the answers.  I failed my interview at the company I first got hired at.  They hired me because I admitted I didn't know the answer but I could "Google" the question and get them the answer.  I failed 7 of the 8 interviews till I landed the job I have today.  You can learn to code on your own and get hired, every year it will get easier and easier as there are more and more job openings as the demand for developers increases.  Boot camps have a network so what, you can make your own network like I do in the next point.


Teach at local meet up groups:  The best way to learn something is to teach it.  The best way to get hired as a junior self taught developer, is to speak at local meet up groups.  Kill 2 birds with 1 stone!  I just gave a talk at the Arlington Ruby meet up group on Thursday about making a basic Ruby scraper.  I was shaking like a leaf and this is the 6th or 7th talk that I've given like this to local meet up groups.  Companies respect someone who has the courage to speak in front of 40 - 80 other developers and share what they know.  When I was first trying to get hired I spoke at local meet up groups 4 times. Each time I had people come up to me about possible job opportunities.  That's how I recommend getting interviews if you are a young self taught developer.


Don't let fear make your decisions for you!  You will never know all of the answers and you will be ignorant in 90% of subjects your whole life.  If that bothers you, then life bothers you.  Coding is not the problem, gain joy from solving even the smallest coding challenges.  Use the momentum to drive your learning forward.  There will be dips in the road to learning how to code, so make an online coding group.  Pair program with a friend when you get really stuck and can't go on without help.


My advice to people who want to learn how to code is first know your "why" and then never give up on the journey!  The more you learn the easier it will get, eventually you will have lots of little coding knowledge hooks in your brain.  Little things you've picked up about coding, one day you will notice something coding related will come easier to you.  That's how learning to code goes 2 steps forward 1 step back, it's fun!


Don't make a ridiculous goal of making $100K 8 weeks after writing your first "hello world" script.
The key to learning how to code is really quite simple, it's not cramming or studying 16 hours a day. It's finding joy in the learning process.  I still get happy when I can remove even 1 line of code and make some code I've written cleaner.  I love getting something right the first time, I also like getting something right the 10th time too.  Seriously people new to learning how to code, should focus on having fun during the process and less on time lines and getting everything perfect.

Keep coding peeps! :-D



Tuesday, February 3, 2015

Starting Free Code Camp!!!

Hey peeps!  I told you I was going to blog every week and I am keeping my word :-D  I am finally starting Free Code Camp in earnest!

I recently read a book: “Life Is So Good.”  The true story of George Dawson the grandson of a slave, who finally learned to read at age 98.  His story is remarkable and inspiring in so many ways.  One of the great takeaways I got out of the book, was his positive frame of mind.  George's dad witnessed some horrific things in the early 1900s, but what I loved was the positive quote he would tell George whenever they were experiencing hardships such as a drought on the farm:

 “Son, I do believe things are getting better for us!”


I'm not comparing myself to George or his dad at all.  I have never experienced hardships like they did.  However I love the quote and the way George's dad viewed the world.  Ever since getting out of shoeing my life has gotten better and easier in so many ways.  When I was learning to code and I got discouraged I would read some Proverbs in the Bible or watch the Will Smith movie: "The Pursuit Of Happiness",  to get me in a more positive frame of mind.  I love holding true stories in my mind so I can think back on them whenever I feel overwhelmed or discouraged.  If you've never read George Dawson's book I highly recommend it!


On another note, I have to admit I always used to be a little envious of the people who would email me and say that their parents were paying for them to go to a coding bootcamp.  I knew if given the chance I would have learned way faster in a bootcamp setting, and wished I could have had that opportunity to go.  What’s amazing though is now with Free Code Camp and their online chat room.  Everyone now has virtually a $15K coding bootcamp simply by going to Free Code Camp for free!

Since starting Free Code Camp this week, I can’t believe how much I have learned and how awesome the program is.  I didn't get stuck or need to ask anyone for help because I have a decent amount of experience with Css.  Most of the beginning course challenges are using Html and Css.  It's reassuring to know that I can ask for help if I need to!

If you haven’t started the course yet, DON'T delay!!!  I am shocked at how much easier it is to learn to code and actually get a job after the training.  This experience is what reminded me of George Dawson's dad's quote.  I thought to myself about beginner's who are just starting out on the path of learning to code: "Yes, I do believe things are getting better!"

Okay, enough chatting I need to get back to studying, I just got the kiddos to finally fall asleep! I’m burning the midnight oil studying at night and on the weekends.  My life right now is pretty much work, family time, code, repeat.  That's recursion in a nutshell...  :-)


P.S.  If you are in this neck of the woods, come on by and see me give a little presentation at Arlington Ruby on February 11th!

P.S.S. I thought I'd show you my progress on Free Code Camp so far:





Sunday, January 25, 2015

Free Code Camp

Wow! I forgot how crazy it is when you start a new job and have to learn a million new things :-)

I feel like I am in a much better place now with stress levels and the new job.  I have so much to share and I have really missed writing on this blog.  My new goal is to write a blog post once per week.

It's amazing how learning to code options have changed in less then 3 years.  I remember people saying that I couldn't get hired without a degree back then, now there are so many stories online of people who have done just that.

Today I can't even keep up with all of the free or paid high quality bootcamps that teach you how to code.  On that note I wanted to share with you what I believe to be the best coding bootcamp option for people who are new to learning how to code:

FREE CODE CAMP!!!


I still get emails every week asking if they should spend $15K+ to go to a coding bootcamp.  To help answer that question, I think we need to make a new distinction between 2 different types of people who are learning how to code:


GROUP 1 = "Amateur Coders"

The first group of people I will call "amateur coders" meaning they have played around with code since they were teens.  They may even already have a job in the IT field but are not full blown developers.  They probably grew up loving to solve logic puzzles and their middle name could be math :-)


GROUP 2 = "Blue Collar Coders"

The second group of people I will call "blue collar coders".  I originally fell into this category as well. This group may have never been exposed to computers much at all.  Emailing and texting is about as computer savvy as they get.  For some unknown reason they finally decided that their chosen profession:

( construction, painting, retail, horseshoeing <you name it> )

is no longer what they want to do anymore.  They have decided to learn to code and are striking out on the path no matter what!



Here's the deal, if you are in Group 1, you really just need a little more "spit and polish" to get hired.  Make a sample coding portfolio, brush up your resume, shake some hands at a local coding meetup group.  Presto! you are hired.  This group of people is highly technically savvy but may not think they are good enough to actually get paid to write code for a living.  If you are in Group 1 you could possibly benefit from going to an expensive coding bootcamp.  Places like Hack Reactor or other similar coding bootcamps.  The upfront costs may be worth it because you will come out being better polished and commanding a higher salary.



Group 2 on the other hand who is still struggling with how to open the terminal and wondering what a terminal is.  You have a much longer road to go on.  Group 2 probably has have never seen an "if statement" before.  Remember this is the group that I started from.  The good news is that you can learn to code and get hired at a company, it will just take longer.  Don't believe the hype that if you pay the $15K to a bootcamp then you will magically become a developer in 3 months.  If you've never written any code before in your life, it will take a long time to actually become a software developer. One of the problems I had early on was telling people that I was a beginner at coding.  People started thinking I was better then I really was.  I wasn't lying, I didn't realize there were 2 groups.  The painful truth was I was actually a group 1 which is not even listed on the coding abilities chart :-)


Group 1 you are free to go to bootcamps if you want to and can afford too.



Group 2 don't waste your money!!!  I receive email after email of people who still can't code, and can't get hired after paying thousands to attend a bootcamp.  The good news is there's really no need to pay for a bootcamp anymore.  Free Code Camp is a self paced online coding bootcamp that teaches you how to become a front end Javascript developer.  Work at your own pace, no need to code 16 hours a day like at paid bootcamps.  There is a chat room filled with lots of like minded helpful people trying to do the same thing as you.

I love Ruby and think it's easier to learn than Javascript as a beginner.  One of the problems people have when applying for a Ruby on Rails job is companies assume they already know Javascript.  I honestly think Ruby on Rails is awesome, but I think it is probably easier to land a front end development job first.  After a year or two work your way into a Ruby on Rails role.  If I had to learn to code today and try to get hired 5 - 8 months later, I would personally do the Free Code Camp.

Yes, there are many other options with learning how to code too many in fact!  I've mentioned Epicodus before and I still like their program.  I do think for people in the Group 1 catagroey, Epicodus ramps up the coding logic requirements too fast to do on your own.  Free Code Camp seems to make a smoother transition from beginner to professional.  I have not taken Free Code Camp, but I would love to and still may in the future.

Right now everything is changing so fast in the learn to code arena.  People are getting frozen by analysis paralysis, stuck because of having too many choices.  I say avoid the paid bootcamp bubble and learn on your own at your own pace.  You can get a job 4 months from now or 2 years from now, it's up to you.

The bottom line though is that we all have many more options than ever.  This is great, but don't allow all of these amazing options to confuse you or slow you down.  One of the reasons I plan on blogging weekly is to help you navigate the learning to code scence.  I think I can really help people learning how to code more than ever :-)

Keep coding peeps!

NOTE:  I have an update review on Free Code Camp which can be found here: Updated Free Code Camp Review

Wednesday, December 17, 2014

What happened???

Thank you so much to everyone who emailed me, instant messaged me with support and checked in on me to see how I was doing, I really appreciate it!!!

There is so much to say and write about I don't know where to start.  One thing I will say is that once you get hired and start working for a company you really can't give much insight or say anything about what you are doing or about the place you are working.  I really miss being able to just say it like it is. :-)

In a nutshell, the company I was working for ZipList had financial troubles, that I knew about 6 months ago, but was told we would be okay and to ride it out.  I am a loyal person at heart and decided to stay with ZipList.  Long story short-- the parent company that owned ZipList pulled the plug on us unexpectedly.  Many people from the team was let go besides myself.


I give credit to our CEO and several of the people I worked with for trying to help me out and making the transition smooth to a new job.  In hindsight I probably should have left when things started going downhill, but that's hindsight.  I had a romantic idea in my head about being loyal to the company that gives you your first break.


Somewhere along the way (after I got hired at ZipList) I wrote an article on my blog which was picked up by Hacker News and Reddit.  Soon I was getting emails all the time and being asked for advice on how to be become a great programmer like me.  I enjoy helping people out and seeing many people follow the same path I did.  BUT with all that being said I have turned into a bit of a let down.

People meet me thinking I must have "ninja" coding skills which is absolutely not true.  Now that I am at a new company and can speak a little more freely about the past 16 months, I want to first and foremost clear up this myth that somehow started once my blog post went viral overnight with some 45,000K people learning who I was overnight.  I even met an engineer on Facebook who knew who I was and assumed I must be really talented as a developer ( Boy was he surprised ) :-)

Let's clear this up once and for all, I am very much a JUNIOR developer.  3 years ago I could barely email people and text.  Somehow now I am writing APIs in my sleep.  Full blown developers in France are asking me how to improve the performance of their Ruby code.  Someone in Texas offered me a developer role because I must be that good.  Nope, I am still learning and loving this learning journey as much as ever.  I still feel even stronger than ever that anyone can in fact get hired on an engineering team in 6 months of self study and learning.

I hope you aren't too disappointed when you see that I still write crappy, non perfect code and look things up constantly. Everyday I strive to get better and better.  I do not have any special DNA or secret coding gene.  My secret is to always try my hardest and to never give up, if that means getting to work a little early or staying up a little late at night when the kiddos are in bed. My coding has greatly improved and I am better than ever.

With that being said I am thrilled beyond thrilled to be working at Perfect Sense Digital as a QA Engineer doing testing automation, performance testing, and load testing.  Guess what the best part is?  Ruby is kick butt awesome for testing automation using Selenium!!!  I really didn't know that much about testing before getting hired but I really love learning another aspect of development.  I think it will make me that much better of a developer in the long run.

I had rewritten my book to show people an even better, clearer path to getting hired on an engineering team in the shortest amount of time.  After rewriting 80% of the book, I learned that I was being let go at Ziplist.  Needless to say the book had to be put on hold for the time being, but not forever :-)  I am super busy right now learning so many new skills and trying to stay on top of things in my new role but expect more frequent blog posts, chock full of good insights about what I have learned in the past 16 months which can hopefully help you on your path to learning how to code.

Lastly, I just wanted to say thank you to all the people who read this blog and have emailed me. Your support and encouragement through thick and thin is amazing and very helpful.  Never listen to the dream snatchers, you can learn to code, get hired, and make a good living doing something you love!

Keep coding peeps :-)

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  :-)