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: