Sunday, August 23, 2015

Cody Coaching update - 23 days left!

September 16th is fast approaching.  Last time I gave you an update Cody had 1 job lead,  I am pleased to say that he has 4 job leads 6 days into the coaching program.  Of course non of those job leads matter if we can't turn one of them into an official job offer!  Follow along and watch as Cody lands an entry level QA position!

One of the scariest things for people learning how to code is simply having the courage to set a goal and announce the date publicly that you will achieve your goal.  I feel the same way myself, trust me I have the same evil voice in my head that constantly tells me I can't do something or am a failure.  There is no cure for it, the best thing I have found is to simply push through the voice and achieve the goal anyway.  It also helps to surround yourself with very encouraging supportive people in your life.

People who start coaching with me are always surprised by how hard it is to actually study 3 hours a day for 4 months straight.  Learning to code is only 50% of the equation, the other 50% is how to actually go about getting a job.  If you think you want to learn how to code, I recommend simply coding everyday for 3 hours a day for a week and see how you feel.  If you fail that challenge, you don't need a coding boot camp, you need to decide if you have the willpower to learn how to code.

Another coaching client in Denver who is going to start interviewing this Monday, I'll let you know when he actually lands a job :-)  I am impressed with how hard he has worked everyday to be starting to interview 34 days after starting coaching with me.

With coding, you don't have to be a genius you just to want to learn and realize that the journey will be long and hard.  If you think writing 4 - 5 commands and generating a Rails app with get you hired, you are only kidding yourself.  Everything good in life takes effort, usually way more effort than you originally think.

The good news is the reward.  After getting kicked in the face by a donkey I promised myself that one day I would carry around in my head all the knowledge and skills I would need to make money.  Never again would I have to lift my 72 pound anvil in and out of the truck multiple days a day, I would only need the Internet and a computer.

One of the reasons I never moved away from the Northern Virginia area 7.5 years ago when I was first married was I would have to restart my entire farrier practice from scratch in another state.  I've been in Apex North Carolina for 5 weeks now and love it!  I never could have made this kind of a move with most other types of jobs.

If you are learning how to code, keep on keeping on!  Don't slow down, or think that you can't get hired.  Companies are hungry for passionate people who know the basics of coding and want to grow!

Keep coding peeps, you can do this!

Tuesday, August 18, 2015

Coaching Cody Countdown - 29 Days

Remember I told you that I had finally convinced my younger brother Cody ( who is a natural coding "savant" ) to quit his crappy retail job and to move down to the RTP North Carolina area?

Well so he finally did, and as I promised you all that I would let you know how it goes.  I am giving myself 30 days to get him hired.  I've been super busy so I didn't get to write a blog post yesterday, so I will start on Cody's 2nd day.

I have given Cody a QA coaching plan, and daily actionable steps to take, while I am at work.  In the evenings, I review with him how his day went and what areas we need to "tweak".  So far I am happy to say he has 1 QA job lead for this Thursday.

I have received more emails than lately, alot of them are from students at a very well known coding boot camp.  The students say that they liked the experience and training, but they weren't able to land a job after graduating.  They now are faced with having to pay back the loan and try to find a job.

I think we are hitting a new era with coding boot camps, they are so popular, prevalent, and generally excepted.  Boot camps no longer seem to have same level of pressure that they once had to actually get their students jobs at the end of their 12 weeks of training.

I agree 4 college is mainly a waste of time if you want to learn how to code.  Why though do you skip 4 years of college and replace it with 3 months of coding school?  The problem with college has been that they don't actually make you "job ready" at the end of 4 years.  I wonder if coding boot camps are starting to head that way as well, as they are becoming more mainstream.  Will they become a place to simply learn coding skills, but not actually get you a paying job at a I.T. company?

Either the coding boot camp industry is changing, or I am simply getting more emails from former coding boot camp students, that simply can't get hired.  Am I the only one seeing this?

Anyway, I am loving the RTP area and loving my job using Javascript everyday as a Software Engineer in Test :-)   I will keep you all up to date with Cody's progress and anything else that I think will be beneficial.


Keep coding peeps, you can do this!

Monday, August 10, 2015

How coding bootcamps are ripping people off

50% of all the emails I recieve are from people who are brand new to coding, and are struggling with how to learn the vast amount of knowledge required to become a web developer.  Their email starts off with why they don't think they can learn to code on their own, and why they need a coding bootcamp.  They go on to say that if they find the "right bootcamp, they can be making $80K  - 12 weeks from now!"


 I get so many emails that tell the same horror story about going to a coding bootcamp, and then being shocked and depressed when they couldn't land a job afterwards.  They ask for my advice and how they can stop waiting tables at the local restaurant.


Case in point, one of my QA coaching clients asked me to look into a coding bootcamp for them called Betamore.   https://betamore.com/academy/front-end-web-development/ To the unexperienced eye who knows nothing about coding, and who doesn't actually know what companies are looking for in a web developer.  Betamore looks fine.


Here's the deal, I am going to help you cut through all the coding bootcamp hype.

Ready?  Let's go!

First off let's get clear on the objective.  What's the objective?  To land a paying web developer position!  It doesn't matter whether or not it's front end with Javascript or back end with Ruby on Rails.

Here's what you are not paying for:

You are not paying for a college education.
You are not paying to learn how to make websites.
You are not paying to just have a good time.
You are not paying to learn how to code.


Let me walk you through what in my opinion is a bad or certainly not a good bootcamp.  If you go to Betamore's site, you can see the typical "red flags".  First any bootcamp that doesn't really help you land a coding job, is not worth wasting your time on.  You can learn to code on your own, no need to drop a crap load of money on that.  You can go to local meetup groups yourself, you don't need to pay money for that.


On Betamore's site, you will notice that they make sure not to promise you a web developer job.  They will however put statistics on their site, about how much the average web developer in Baltimore makes: $87,000.  They also put on their site that the course is best suited for business owners.  They also promise to teach you how to make websites, not web apps.  Of course 'noobs' don't know the difference yet.


Here's an assignment for you, learn the difference between a website and a web app.  Don't feel bad, I didn't know the difference when I first started learning how to code.  Companies will pay for people who know how to make web apps, not websites.  If a coding bootcamp promises to teach you how to make websites, you should run!  If you find conflicting messages on the coding bootcamps website, ...run!  If you aren't sure if you can get a job after attending the bootcamp...run!  Right now wherever you are, you aren't sure if you can get a coding job, why pay a bunch of money to still be unsure???


If the course only has 6 hours of classroom teaching per week, for a grand total of 60 hours of in person instruction.  Ask yourself: "how are you going to be job ready in anything with only 60 hours of training???"  I'm sorry to be picking on Betamore, I'm sure for someone it's a good choice, just not for developers.  We've hit a coding bubble, 3 years ago I applied to the only coding bootcamp in the world for their 2nd ever camp.  I was one of 60 applicants that was chosen out of a pool of 600.  I never went to the bootcamp because I couldn't scrape up the money, I'm glad I didn't.  If you want to learn how to code, it will take lots of time and hard work and that's not a bad thing if you love learning.


Hopefully this post saves someone money and helps them cut through the coding bootcamp hype.   I'm sure I'll get a bunch of mean emails, so what.  If you want to go to a coding bootcamp, that's fine just be clear on what it is that you are actually getting.

If you want a great free online course look at Epicodus' free online coding bootcamp coursework:  Epicodus

Or for Javascript check out Free Code Camp, again I don't think this is the best way for beginner's, but check these places out before going to a coding bootcamp :-)

Friday, August 7, 2015

How to know if you are good enough at coding to get hired?

I still suck at coding.  Yes, I'm hired at a "mid level" Software Engineer in Test position, but what does that really mean?  I got addicted to fishing on my 12th birthday.  I couldn't stop, I would do anything to go fishing.  Whatever it took to get my parents to take me fishing I would do, no questions asked.

I sucked at fishing.

All day, I'd hardly get a bite.  I didn't care, just seeing other people catching fish told me that I could do it too.  Without bragging I can honestly say that I am in the top 5% - 10% of people who fish.

What happened?  How did I get better?  How did I finally know I was good enough???  I didn't.  I just slowly started catching fish.  By my 16th birthday, I placed 7th in a fishing tournament with over 100 other contestants.  The truth is you will never feel ready.  Someone will always be better than you, faster at coding and quicker at solving problems, so what?!!

Do you like coding?  

Do whatever it takes to code.  Write lots of terrible bad code, make every mistake you can possibly make as soon as you can.  Start interviewing, you will never be ready for that either.  You will never not be nervous interviewing.  You need to have a hiring manager laugh at you when he reads your resume.  You need a senior developer to laugh at you because your brain simply stopped working and you can't write a for loop .

You know how to tell if you are good enough??? 

When a company hires you.

You don't have to be good enough for every senior developer who has been coding for 20 years.  I've never been "qualified" on paper for any position I have ever gotten.  I have had 50% of the skills the company needed so I interviewed, that simple.

I've failed interviews because I didn't draw a 3D cube like the interviewer wanted.  Who cares.  If in the back of your mind you wonder if you are good enough, start interviewing!

If you fall on your "coding face" in 3 interviews, learn what areas you are weak on and then try again.

Everyone in their minds is amazing.  Everyone has hit the game winning home run.  How do you know if you are any good at coding?  How do you know if you are ready to interview?

Everything is simply theory until you make it happen.

Sunday, August 2, 2015

How come nerds can code, but can't actually land a coding job???

I love coaching people and helping them land jobs.  My dream is to to switch to coaching full time down the road :-)

I mainly get questions and emails from 2 different types of people.  1 group is brand new to coding, and has only ever written the command:

'rails new <app_name_here>'

and now would like to get hired making $80K.


The other group is the 'nerd group' they are amazingly talented and gifted people who can really code.  Unfortunately this group tends to be living in their parents basements, and working low paying jobs.


Why is that???


 The reason is simple and actually a fairly quick fix.  50% of landing a coding job is technical ability.  The other 50% is a combination of these skills:

People Skills
Marketing/Networking
Interviewing Skills

I have a couple of clients that I am coaching that I think will be landing a job very soon.  I will post about it on the blog when they actually land their first coding job!  I really would love to talk to and help more people who are in the nerd category.  They are honestly easier to coach and to get hired.  Once I show them the above non technical skills and how to actually implement them in real life, they are a quick hire.

I have a really good friend who is a full blown nerd, he has 20x times the coding ability and aptitude that I have, yet makes $21K less than I do.  Nerds typically have a very hard time getting interviews, and when they get an interview have a difficult time, socially navigating the interview process.  When nerds fail an interview, they inevitably focus on improving their technical skills to an even higher level.  In reality they really need to focus on the social non technical skills.

Also coding ability is all relative, each company is different.  I've been told I suck at coding, I've been told I was at a "mid level" coding ability by a hiring manager, after breezing through their technical interview.

If the goal is to actually land your first paying coding job, then don't worry about being the best at coding.  Be proficient at what you do, and then focus on the above 3 skills.  If you know how to code but keep failing the interview process, this is what you need to fix.

On this note I am going to be putting my money where my mouth is.  I've mentioned in the past how talented my younger brother Cody is, and how he is a real life coding savant ( he laughs at coding challenges that I think are difficult ).   I've tried for years to help him and give him advice on how to land a coding job, all to no avail.  He has always worked a crappy retail job by day and then by night codes.

I've finally convinced him to come move into my apartment in North Carolina and let me coach him into landing his first coding job.  He won't be starting coaching until the 16th of August.  Follow along to see him finally break through and land a coding job :-)


I've given myself only 30 days to land him a job, so my deadline is September 15th, 2015!

If you are a nerd and can code, but haven't been able to actually land a coding job, send me an email at: joshuakempcoaching@gmail.com


Keep coding peeps, you can do this!

Wednesday, July 29, 2015

How to accomplish your goals

I was home schooled my entire life.  We were "that weird home school family", you know, the one that pulls up in an old 15 passenger van, then piles out dressed like a bunch of Mennonites, but who aren't actually Mennonites.

Every Wednesday we would go to McDonalds for 99 cent Happy Meal night, we would order 12.  When I was 14 I picked up a crappy looking local newspaper that had even worse looking comic strips inside it.  I read the comics and said to myself: "These are terrible, I can do better."

I didn't know how to use the Internet, so I asked my younger brother Cody to email the editor, and see if I could drop off some of my comics by her office.  For the next 3 years I wrote comics every 2 weeks for 3 local newspapers.  I even started writing a fishing advice column.  I thought I had found my purpose, I thought I could be a full blown comic artist like Charles Schulz.

I read Charles Schulz's autobiography, I read every article I could find about how to become a comic strip artist.  I won the local Library Art Contest, and had to give a speech - I choked.

Everyone believed in me, everyone said I would be great.  At 17 I went to Staples and bought 8 manila envelopes.  I drew 2 months worth of comic strips and submitted them to all of the comic syndication companies, and anxiously waited.

I handled every form rejection letter fine as they rolled in, until one editor took the time to write: "What the hell?!!" next to my name.

I gave up, I went from being called "exceptional", to an editor telling me I sucked!  It took me a while to get over that rejection, I had made it "my everything".  I mowed lawns all Summer long, and stopped drawing comics.

I apprenticed with a 62 year old racist Blacksmith named Eddie, when I was first learning how to shoe horses.  He would yell and cuss at me, flip off any black person he saw when he drove down the road, and say: "I hate those N*^&%$!".  I was 20 and felt sooo much guilt ever second I was working for Eddie.

I prayed and prayed that I would have enough courage to leave him.  3 months later I finally did.  The amount of relief and joy that swept over me is hard to even describe.  I'm glad I quit Eddie, but I didn't give up on my dream to become a Blacksmith/Farrier.

After I got kicked in the face by a horse and then started learning how to code.  I finally landed a coding phone interview and the interviewer basically laughed at me and said: "Is there something I don't understand about your resume?  You are applying for a developer position???"

He then followed that up with asking me to design a relational database over the phone.  The entire rest of the interview revolved around databases, not a single question that did not involve databases or database design.  I didn't get the job, but I didn't give up.

I refused to give up even after failing interview after interview.  My 8th final interview I was told: "I had exceptional enthusiasm, passion, and would be a GREAT addition to the team!"  My dream became true, because I didn't give up.

I have a million more stories like this, all of them for me have been the same:  "Don't give up no matter what on something that you want, don't take it personal when people say you suck or laugh in your face, don't do things that you don't really want to do."

If you know how to code, you can get a job anywhere, I can help you make that happen.  You can do it on your own without my help as well if you want it bad enough.  Only do it if you really want to.  Don't believe the hype, there are no unicorns.  If you want to learn how to code and land your first job, it really feels great when you finally land your first job!

Keep coding peeps, you can do this!

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