How I learned to Code in 10 Months

learn-how-to-code
Share Button

About ten months ago from the time of this writing I decided I would teach myself how to code. At the time I made this decision I had recently graduated from SDSU with a degree in History, and had been searching for what I wanted in a ‘career’. Among many factors, I choose to teach myself how to code because I saw the competitive landscape of the post Great Recession economy and decided I would try learning something that only a small minority of society even attempts to understand. I had also lightly dabbled in computer programming since I was in High School, but never spent the time to fully learn the fundamentals. Initially I was just as intimidated as the average person would be of programming, but I quickly learned that if you just stick with it, learning to code is no harder than learning a new foreign language. This is not something you can teach yourself in a day, a week, or even a month, however if you are the kind of self-learner that never gives up, computer science can be an incredibly rewarding skill to learn. I am now currently 3 months into the start of a great career at an awesome company, doing challenging and rewarding work that I enjoy. Learning something like computer programming on your own is not for the average person. You have to really want to learn, and have a border-line obsessive compulsive determination. If you are just starting to learn how to code and are looking for resources and motivation to continue your self-studies, I hope that I may be of help with this article.

How to learn to codeI started by taking a few courses at my local UC Extensions for basic HTML and CSS. This was by far the most expensive part of my self-education at around $600+ per course, however I see this initial expense as a benefit. It forced me to want to attend every class and over-perform on the homework because I really wanted to get my "money's worth". After taking HTML in particular I realized that I had been WAAAAAY over-thinking the complexity of building websites. I didn't even realize it, but I knew most of the fundamentals of HTML already by just using the internet regularly. If there is a first course you should start with, it should be HTML so that you can start to understand how you are likely over thinking the difficulty of the internet. After taking the UC courses I came to realize that I could learn any computer language, as long as I spent the time to fully get to know the markup.

How to learn to codeI decided that I would try Ruby / Ruby on Rails as my first real programming language after the HTML and CSS courses. I decided on Ruby because the syntax is (arguably) easier to read and write than other languages. I started by watching YouTube tutorials, then came across the Lynda.com Ruby on Rails video tutorials (which are generally OK). I spent about a month watching and following along with a few Lynda.com programs, however there seemed to be something missing. I just wasn't picking up the material as fast as I had hoped. This was about 2-3 months into the process and I was getting a little disheartened, so I decided to really double down and dive into learning at 110%.

How to learn to codeI came across Codecademy; a fairly new learn-to-code startup back when I started using the site. I struggled through most of their available courses, which at the time were not very well written. Codecademy is now almost a year older than when I started using it, and their material is much much better. I have recently gone through a number of their new lessons and can confirm that they have become a pretty good place to learn, especially their API courses are pretty awesome.

How to learn to codeAround the same time I also started working with Treehouse and Code School. Both Treehouse and Code School catered really well to my personal learning style. I made it most of the way through the Ruby on Rails courses on both sites, and then started going through the other material including HTML, CSS, and PHP courses. I would say that while similar, both companies complement the learning process in different ways. Treehouse is especially outstanding for Beginner - Intermediate level students and their teaching platform is the most stellar of all the learning sites I've mentioned in this article. In my opinion the Treehouse instructors are the best online, and interact with students often through the Treehouse Forum; answering questions, and offering help/feedback to students in a surprisingly timely manner. Code School is more for the Intermediate - Advanced level student. Initially I found Code School really hard to follow, but after a few months working with Treehouse I came to realize Code School was a great place to head once I began to generally understand how to program. The Code School courses fly through material much faster than Treehouse, but the courses are absolutely loaded with great content to learn. I will go into more depth on both of these companies in a future article, but I think both are a huge part of the reason I was able to succeed in learning how to code.

How to learn to codeBy this time I was about 5-6 months into my coding binge, and I was starting to understand web design very well. Particularly I was able to read and write HTML and CSS efficiently, however I still felt somewhat mystified when trying to program my ideas out with Ruby on Rails. I am not sure why I was so attached to wanting to learn Ruby before anything else, but I think that focusing so hard on only Ruby was one of the mistakes I made in the whole process. Around this time I started taking on some side projects for free for a few of my buddies that had been starting up their own companies post-college, and those projects started forcing me to use JavaScript and PHP a little. I was still myopic about Ruby, so I hacked around these languages till I was able to make something work and then moved on. I slowly started to realize that I was beginning to understand these languages better than I understood Ruby, and it clicked. In order for me to really learn, I had to start getting outside of the course material and build something I wanted to build. I had been learning all of the fundamentals, but I had not been applying them to anything and therefore was not cementing my newly acquired knowledge. This is when I feel I began to cross the threshold of understanding how to code.

How to learn to codeAfter completing a few projects for friends, I began work on one of my side projects from college. Within a 2 week sprint I had completely transformed the website into something that was actually starting to resemble a real web application. I started coming up with ideas, and was able to write them out in code and see them work. This was a pretty exciting time and was full of many 7am-2am coding sprees. I also began to generate some word-of-mouth interview offers via friends that I had helped the previous months.

How to learn to codeI decided I also needed a personal website where I could have a place to showcase my previous work, practice more small programming ideas, and write about my learning progress. One of the projects I started was in creating a badge widget that automatically pulls my 'progress report' from the online schools I was using to learn how to code. I still wasn't terribly good at programming, so I started it off in just static HTML and CSS, but the student community at Treehouse really liked the idea and a collaboration project was started. Treehouse even opened up their site to enable us to pull our badge information more easily, and after a couple weeks of work we had a half-decent working widget. I made a small post about it on the Treehouse Form, which Treehouse ended up featuring on their Facebook and Twitter accounts. All of a sudden I was getting massive traffic to my blog from all of the Treehouse students stopping by to have a look at the widget!
*As an interesting observation, I also noticed that the feature on Treehouse kicked up my sites organic SEO a ton.

How to learn to codeA few weeks later an opportunity presented itself to interview up in Los Angeles. I would say I generally didn't take the interview all that seriously, mostly because I didn't think there was any chance I'd do too well given my lack of a Computer Science degree and only about 8 months of self-taught education, but I figured it wouldn't hurt to see what a "tech interview" was like. I showed them my portfolio of work I had done when helping my friends out, and the various projects I had been working on myself. Apparently I did alright in the interview, and they offered me a bigger salary than I asked for. I hadn't even considered moving at the time of the offer, and I had 7 days to let them know if I'd take the job, so I frantically started trying to figure out what the heck I was going to do. In those 7 days I ended up landing another interview in the Silicon Beach area through a friend, and apparently did well enough there as well as they matched the other companies offer. Within 7 days I had gone from scraping by, bootstrapping my self-education, to getting 2 kick-ass job offers. I figured this was a sign that I had to move out of the San Diego area, and I have been working at one of those companies for almost 3 months now. I won't tell you which here, but a quick linked-in search might give you a clue. If there were a few things I think I did well in the interviews that landed me these offers, I think my portfolio of past work and my obvious hunger to learn shown through as positive assets. I feel incredibly lucky to have my current opportunity to work for a tech company and start building my experience.

I have still been continuing my coding-education on the side, but working for a company has exponentially increased my understanding of programming. Being around really bright people that are willing to help has been an invaluable asset since starting work, and has also forced me to look outside Ruby programming. I now code in mostly PHP and JavaScript, but sometimes work with other languages. Today, knowing all these other languages, I wish I had started with JavaScript and in conclusion I'll tell you why:

How to learn to codeInitially I decided Ruby was best language for me to learn because of the seemingly simpler syntax, however to do anything major with Ruby you really need to have a good understanding of programming theory and the Rails framework as a prerequisite. Especially when not understating programming fundamentals, Ruby on Rails has a steep learning curve. Some may argue that Ruby on Rails simplifies programming, and gives developers access to a lot of pre-fab code (Ruby Gems), however I would argue that while Rails does simplify things, if you do not understand the fundamentals of programming you will quickly get lost. It requires a lot of foundational knowledge and a decent amount of setup to begin getting Rails to work like you want it to. JavaScript, on the other-hand, is "the defacto programming language of the web", and with the introduction of HTML5 (which is technically HTML, CSS/CSS3, and JavaScript), JS has officially been solidified as the main programming backbone of internet. JavaScript also doesn't require a ton of setup like Ruby, so you can literally start using it in seconds in the browser console. The jQuery JavaScript library makes it really easy to start basic programming in JS as well, and if you know a bit of CSS, you'll be able to pick jQuery up pretty quickly. Initially I was intimidated by all the [{brackets}] and semicolons, but I now realize that this becomes second nature after a few weeks of using the language. I still think that Ruby on Rails is a generally more powerful (server-side) language and framework, but when starting out, I think JavaScript would have been the best to start with for my learning-style. I still plan on going back to finish learning Ruby on Rails in the future, but now that I actually understand the fundamentals of programming I do not think that Ruby on Rails will be too hard anymore.

If you are curious about anything mentioned in this article, let me know in the comments below. I will try to answer any questions you may have in as timely a manner as I can.

Share Button
Riley scribbled this article down on: July 24, 2013
  • http://www.terrencebowman.com TJ

    Nice article. I’ve just recently started using Code School and I think it’s great. I went to a community college for a while but never ended up getting my degree in web dev. because I felt that it was a waste of money. The stuff I’ve learned at Code School, Codecademy, and TreeHouse have been 100x more useful than anything I picked up at school, and it is all at a fraction of the cost.

    I really enjoyed reading this though, just because you give me a lot of hope that I’ll find myself in the same position some day. I’m glad to hear the hard work pays off.

    • http://rileyh.com Riley Hilliard

      Thanks man, yeah the key is to really push through the times that you feel like you aren’t “getting it”. There were times that it took me a week or more to break through some of the bugs I had in my code. While that time is super frustrating, you begin to build up your own knowledge of how to problem solve through code. That is the key, when you have struggled through enough bugs that you learn how to attack future problems. When you can start doing that quickly, you start going from idea to product in an awesomely satisfying way. Stack Overflow will always be your best of friends, haha.

  • Mark Hilliard

    Nice synapsis of your programming journey. I remember many conversations over the course of your learning where I got the gist of what you were going through and how you were progressing over time, but this helped tie it all together. I think the biggest attribute that you brought to your learning, was dogged determination to complete what you had started. You pushed through the roadblocks that would present themselves without getting too frustrated; not easy to do when working on your own.

    The beauty of of Code Academy, Treehouse etc. is the ability to work at a pace that doesn’t happen in a brick and mortar educational institution. I had predicted, when you were a little tyke, that your higher education would take place outside of the traditional college/university setting, online in some form. While your experience at SDSU was as much social grown as any tangible education, your comment regarding “getting your money’s worth”, is worth noting here. The $100’s of millions spent by students on traditional higher education, IMHO, is wasted for most students. We are finally seeing a shift to online education, similar to that of online shopping. Students are beginning to become suspect of the higher time, expense, and ultimately the value of tradition educational institutions. This is rapidly being replaced by an online experience that is more time and certainly, more dollars spent, efficient. It will take some time for businesses to fully recognize the true competencies of future hires who have exclusively obtained their higher education experience online. Once this acceptance become widespread, there will be some really cheap bricks and mortar campuses available!

    Again, nice blog… And congratulations on finding your passion and pursuing your dreams.

  • http://jonpenland.com Jon

    Very cool article. I’m about 2 months into my own effort to learn how to code, and just hit a motivation wall myself. Very encouraging post. Thanks!

  • Jon Ryan

    This is Awesome. This report card is a useful tool for marketing yourself, your accomplishments and skills. Talk about a game changer for all Treehouse student’s Resumes….. Keep up the great work man. Its obvious you have been working your tall off over the past 12 months.

  • http://www.kj-prince.com KJ Prince

    Excellent article. Thanks for sharing your experience. I too found CodeSchool and TeamTreehouse to be the best resources to get off the ground. I also think you can learn programming in under a year, but its much harder to actually use it for something great (or complex) in that time.

    As Ralph Waldo Emerson said, “No matter how much faculty of idle seeing a man has, the step from knowing to doing is rarely taken.”

    I’m slowly transitioning to text books to get a deeper understanding of each technology. At the same time, I’m actually building shit every day. Thanks for writing this.

  • Alan

    I’ve found lynda.com fills in a lot of gaps after struggling, as a beginner, through Code School.
    You’re right – Code School is best for sharpening skills as an intermediate – advanced user.

    Great site – you’re living the dream!

    • http://rileyh.com Riley Hilliard

      Yeah, I started with the Lynda courses and then came across Treehouse. If Lynda had more integration with code challenges I think it would be a lot better. There was something about just watching a video, following along in the code, and then moving on that was a bit more difficult for me to pick up. I like how the code challenges of Treehouse force a bit more of a complete understanding of the topic. The ‘intro to programming course’ on Lynda was a really big help for me through.

  • http://theperfectnose.wordpress.com Tj

    Hey Riley-came here via the article on the Treehouse blog. Just wanted to say you’re awesome, and bloody good job man! Thanks for sharing your journey-it’s very inspiring for the rest of us aspiring code junkies. Loving the site layout-I’d like to suggest one thing-the share buttons bar on the left-on my macbook pro it actually obscures the actual article text (and the fields in the comments section). Also things that follow me around the page annoy the crap out of me. I share things on twitter all the time and I never use built in buttons to do it because they’re slow and I prefer to phrase my own tweets rather than use the built in generic stuff. Dunno how much this applies to your readers but I’m guessing it’d be easy enough to do a comparison.
    Thanks again for the inspiration and keep rockin’.

    • http://rileyh.com Riley Hilliard

      Thanks, I actually agree with you, and have removed that bar and replaced it with much smaller icons above and below posts, however I don’t think removing them completely is a good idea as they are used a bit, and is a nice way to track share stats on the articles I write.

  • Michael Casey

    Thank you soooo much…I was racking my brain to figure out what website to join to learn and which direction to go as far as what I should learn first. You have answered all my questions in one fell swoop. Your real life accountance spoke volumes to me and also a lot of inspiration. Thank You again for sharing you have been a Godsend!!

  • http://hashimwarren.com Hashim Warren

    I love Treehouse. The courses don’t assume you know anything about programming. That’s the level I’m at, and I find myself learning rapidly.

    I see more topics covered at Code School. Perhaps once I get a grip on core topics at Treehouse I can take a dip with Code School.

  • Iskander Egberts

    Great article, thanks for writing!

  • Alessandro

    Great article, I like to find out how people find their own ways to succeed and learn coding. Thanks

    • http://rileyh.com/ DJRi

      No worries man! I love helping others find their way through the coding maze. One of the big things that helped me learn and stay motivated was reading how others learned how to code, so I figured writing a bit about my experiences here is the least I could do for the community.

  • http://palf.co/ Mark Palfreeman

    Riley—this is super helpful. I’m completely new to coding minus a Java class in college and some minor HTML/CSS for various blog websites.

    Thanks for the encouragement and being candid with your experience and progress; it’s helpful to know how other people entered the field!

    • http://rileyh.com/ Riley Hilliard

      Thanks man, glad you enjoyed reading about my experiences with learning to code. Hope you keep up with the studying!

  • Philip Snow

    Thanks for sharing your journey…it was really enlighting :)

    • http://rileyh.com/ Riley Hilliard

      Glad you liked it, thanks! :)

  • Nora Dillard

    I ran across this article because I am very interested in learning to code through many of the sites you mentioned. I’m a graphic designer and also work for a startup music app called FIT Radio, and we actually use the iClub mixes on our app (saw the logos in your portfolio haha)! Small World! Very inspiring article you wrote, hope I can find the time and energy to learn coding too!

  • Amy

    Hello Riley.

    I came to your blog through the Treehouse forum.
    I’ve been looking into online learning to become a web developer and I’m
    weighing my options.

    I moved from a city to a fairly isolated
    area a couple of years ago, and I feel stuck. I have a History degree
    too (older than yours!) and had started taking Web Dev courses in Ohio,
    but the move to Western NC interrupted that. I’m starting over again,
    because I really want to get out of here and have a better life, with a
    job that keeps me on my toes. I hope that I can write a blog post like
    yours sometime in the near future. Thanks for sharing your story.

  • Roberto

    Hi Riley!

    Do you feel the lack of a computer science background?

    Thanks for the article. Very inspiring and helpful.

    Greetings from Spain!

    • http://rileyh.com/ Riley Hilliard

      I’d say sometimes yes, but experience trumps education in the end. At least in Los Angeles, there is such a need to engineers that companies are willing to take a gamble on someone that shows promise, but lacks a CS degree. Id say 3 years experience here is the equivalent to a Computer Science degree (in my opinion). Once you get around 3 years under your belt, you can pretty much get hired most places.

  • Kunal Kapadia

    Very nice article. I had sort of a similar experience with you in terms of ruby on rails. I had always know HTML and CSS but never took it any further till i got the developer “bug” and really wanted a career change. I took a one month on rails course to make a Pinterest style website. Was pretty amazed on how fast you could create an app with rails. But once the course was done i found it very difficult to continue to code with ruby on rails. Using a gem is very easy but coding something useful was actually very hard. I scrapped rails and started doing javascript on Codecademy. It was the best move I ever made. learning the basics of Javascript really teaches you the basics of programming. The best part being JS has very light setup to being creating some actual programs in the browser. I think a lot of people struggle on where to start and I think your article will help those people struggling.

  • Tyler Morgan

    You are a great inspiration. I too have been dabbling in programming for a number of years, and only recently started thinking of it as a viable career option. It’s success stories like yours that keep me motivated.

    • http://rileyh.com/ Riley Hilliard

      Thanks man, I’m glad the article got you pumped!

      • Tyler Morgan

        I’ve got to ask man. If you could go back in time armed with the knowledge you have now, would you do anything differently?

        • http://rileyh.com/ Riley Hilliard

          Yeah, I still think that what I concluded that article with still applies to me today. I wish I had focused more on JavaScript first to learn “programming theory”, and then moved onto another more backend language like PHP, Python, or Ruby. When I was starting out I thought they were all kind of the same, and since there was a lot of hype around Ruby I decided I’d try to learn that first. JavaScript would have been a lot easier for me because it runs in the browser. You can do a whole lot with it server side, so things like storing data are not as possible as with the other languages mentioned, however the general programming structures are very similar. I still think I wasted a couple months focusing so hard on Ruby, when I could have started with JavaScript, gotten the fundamentals down, and then applied that knowledge to a server side programming language.

          For what it’s worth, I use PHP a lot now, but mostly because that is the language my company uses for the project I’ve been working on. I’ve always been a bit more inclined to front-end development though, which is maybe why i feel that JavaScript would have been the most helpful for me personally.

          But one of the things I do kind of skip over there is the sheer amount of time I was putting into learning. I was pretty obsessive compulsive about it. You really have to want to learn it.

  • http://rayvellest.com/ Ray Vellest

    As someone who has been dabbling with the idea of a career change and take a deep dive into the world of coding, that was an awesome read Riley, thanks for sharing your story!

    • http://rileyh.com/ Riley Hilliard

      Thanks, glad you liked the article

    • http://rileyh.com/ Riley Hilliard

      Thanks, glad you liked the article

  • MrDarkside

    I love this. Agree with you Treehouse is awesome. Curious: what’s your favorite code editor? I’m liking Aptana personally.

    • http://rileyh.com/ Riley Hilliard

      My Favorite is Sublime Text. I’ve been using Atom for the last few months trying to be an ‘early adopter’. There are several cool things about it, but also some short falls, so in comparison i think Sublime Text is still slightly better.

  • Ian Moe

    You mention you would pull 7AM to 2AM days of studying. Were you working at this time? or did you live off savings so you could practice more? About how many hours a week do you think you practiced those 10 months? I’ve been thinking about living out of my car while i learn to code, otherwise its tough to do with 40-50 hour work weeks.

    • http://rileyh.com/ Riley Hilliard

      I had been working as a DJ for a couple years prior, so I was able to work Thurs-Sat and study the rest of the time, however for the last 6 months that I was learning I stopped DJing and only studied. I did go into a fair amount of Credit Card debt, of which I am finally paying off the last bit (a year and a half later). It certainly was a gamble, and it ended up paying off for me. If finances are an issue, I would recommend trying to think of ways that you can live minimally, maybe even moving home if that is an option. In the mean time, you can use whatever time you have off to start learning the basics like HTML + CSS. If you work 40-50 hours a week, I would assume you have 2-ish days off, which you can use to learn. Fill whatever free time you have with learning something.

      Learning on your own does take a serious focus, and a lengthy time commitment. The big part there is the time. It just takes a lot of hours, a lot of trial and error, a lot of getting through not understanding and figuring out how to understand on your own.

      As for the hours, I would estimate that I was spending 8-10 hours a day, 5-6 days a week, especially during the last 6 months. The 7AM-2AM was not a regular thing, but I certainly had several days that were that long. When you make an exciting breakthrough and want to apply it to a project, that amount of hours does not seem that long. You kinda start feeling tired and realize its 2am. I still do that with work now every once-in-a-while.

  • Aylii

    Hi Riley. I’m a high school senior and for the past 10 years (Majority of my life) I’ve wanted to be a programmer. The countless attempts at learning C++ to make my own video game were quite in vain as the learning curve was quite steep, as well as my impatience and lack of knowledge. Last year I picked up HTML (I was quite against web design) because I kind of told someone I knew how to make websites, and had a week to faux-master it. Yeah. It was ON. I went on to win a web design contest in a local uni. I stopped for a year due to depression. I’m back now completely fresh. My brother is a successful developer in NYC and he suggested RoR to me. Can you elaborate on which path or what you see as a paradigm of steps to take from your experience. Why you prefer JS before RoR, and what the process of developing a great website should consist of. Thanks in advance!

    Forgive the wall of text. Merry Christmas.
    – Aylii

    • http://rileyh.com/ Riley Hilliard

      It was hard to dive right into RoR because at the time I didnt understand many of the other technologies needed to make anything work well (like HTML5: HTML, CSS, JS). Rails/Ruby is a great framework to build an application, but if you dont understand the HTML5 stack, anything you do in Ruby on Rails is going to be a lot of copy/paste hacks. You probably wont feel like you really understand what you are doing till you are able to control things on the client side with JS. That is why JS ended up being where I really learned how to code. Because it is essentially a programming language that runs in the browser, you can get up and running really quickly making things. When the time comes to start writing serverside code, you will end up much better off knowing JS.
      As your experience running through C++ first, my guess is that the learning curve was steep enough that not knowing the supporting technologies made it hard to make anything to be proud of. Thats where HTML5 was great for me, because HTML and CSS are fairly easy to learn, and JS ties everything together to make interactive browser-based interfaces. I was able to start writing cool programs within a couple months of working with JavaScript. Plus when using something like RoR, you are going to have to work with JS at some point anyway. Pretty much if your going to be building a browser-based application, you are going to have to know JS regardless of the backend language/framework.

  • Ish

    Hi Riley,

    Thanks for sharing! I’m glad I came across article. I’m wondering, what’s the best resource to practice JavaScript? I’ve taken all the courses on CodeAcademy, am familiar with all the basics, but still don’t feel comfortable writing JS code on my own.

  • Samuel Domìnguez

    Hi Riley, I’m a computer science student from Mèxico. I’m very glad I found your website. You’ll see, I decided to study this career because there’s a lot of demand here where I live. I’ve never been a bright student, I’m not a math genius or anything like that but the thing is that programming has always been so difficult for me and I was about to drop from college when I heard about codeacademy. I started with the html course and I liked it a lot and gave me the inspiration to dedicate my career to create websites. I still struggling with programming, and there’s a year and a half left for me to finish college; and after I read this article you gave me motivation and inspired me to work harder and reach my goal. From now on I’ll dedicate extra time and effort to accomplish my dream of having my own company. Thank you Riley, keep the good work. (I’m sorry for my english)

    Greetings from Mèxico.

  • http://webuilddesign.com/ Tanvir Hasan

    Yes, now learning web design is not a luxury. Anyone can do that using amazing sites like codeschool and teamtreehouse. If you combine courses from codeschool and teamtreehouse you will surely get your own power house of learning. But I think codeschool is going to grow fast as they are recently acquired by pluralsight. Codeschool also offer first month trial: http://webuilddesign.com/enroll-in-code-school-at-9-dollars/

  • Eimantas Duda

    Hey Riley! This article was really good, thank you for writing this (even though I am writing two years later ..). Hope you will still answer a question that I have. I know some .. basic, I guess, HTML/CSS (enough to code a website, I guess (been coding some websites for game-servers)) and I guess I can adapt js/php to a website, so I understand a little bit of it. My question is: what would be best to start learning right now and where? I want to mainly learn php for now, to create some scripts/edit some scripts etc., and I’m kind of still searching where to start off. I know there are sites that are rip-offs/hard to learn/understand or something like that, so I don’t want to “lose my money”. Is Treehouse the best way to start, or somewhere else?

    • http://rileyh.com/ Riley Hilliard

      Hey there Eimantas,
      I am still around after these 2 years, haha. The place I would start if I were looking to dive deeper into PHP would first be codecademy, mostly because it is free: http://www.codecademy.com/en/tracks/php

      After that, yeah I would do Treehouse. I’ve taken their entire PHP course portfolio, and it is pretty decent. They also have sections on awesome PHP frameworks like Laravel http://laravel.com/

      Although I have never used PluralSight, I have heard good things about it. They appear to have a good amount of PHP content as well: http://www.pluralsight.com/search/?searchTerm=php

  • Preston George

    What is the best field to go into if you want to remain moble and to work from a laptop while traveling?

  • Balaji Vellingiri

    Awesome work Riley. One small doubt.
    Right now i’m working as a web developer. also having experience in designing too.
    I’m from india. If i want to get placed in US means what i need to do?.

    • http://rileyh.com/ Riley Hilliard

      Unfortunately I can’t really give you solid advice on that kind of path, as it is not something that I went through. There are a lot of international folks that work here in the States, but from my understanding there is an extra level of competitiveness because of the general shortage of H1B visas. Most of those that I have worked with do usually have Masters degrees in CS.

      That being said, generally work experience trumps education, so if you can make a name for yourself and have a solid background, I wouldn’t imagine it would be too hard to find a job here, but trying to get a H1B visa with little work experience and no degree might be much more difficult than the path I was able to take as a US citizen.

      • Balaji Vellingiri

        Thanks for the responce Riley..

  • kyle.hutch

    I’m in the progress of teaching myself how to code and I’d like some advice on what kind of pace is needed to find a job in Web Design in 6 months. For instance: Treehouse’s Front-End Web Development course says 60 hours. How many days should it take me if I’m keeping the right pace?

    • http://rileyh.com/ Riley Hilliard

      Hey Kyle, So one of the things you will need to be realistic about is just going through an online course is not going to make you job ready. It will give you understanding of the basic building blocks to begin building things, but you will need a lot of work outside of the course material before you will be good enough to interview for a technical position and land a job. The 10 months it took me to learn got me the minimum knowledge and skills needed to land my first job, and then I hustled incredibly hard for a couple years in that first job to make sure that I was caught up to fully professional developers.
      If you are looking to get a job in Web Design in 6 months, the biggest thing you are going to need is to build a portfolio. When you have no work history in programming, you need to be able to show your future employer that you can do the work. For example, I built the base framework for ChillCall when I was teaching myself to code, and used that extensively as an example of what I can do in most of my interviews that I have gone on in the last 3 years. I still work on that project on weekends for fun. Find an idea of something you’ve wanted to make, and go DO it.
      As for pace, I intensively studied for the last 7 months before landing a job. I probably regularly averaged 8-10 hour days, 6 days a week for 7 months. It takes a lot of time to understand all the concepts, languages, and frameworks that the modern engineer needs to know. It is not impossible to learn, but if you enter into learning to code thinking it will be easy, you will quickly get disheartened. If you go into it knowing it will be tough, and can just get through those really hard weeks by knowing that it just takes time and determination, you will be able to learn to code. In-fact if you have that mentality going into anything, you will be able to succeed in whatever it is. That is how I have approached most things I’ve done in my life, and so far its worked out alright.

  • MrBlueskies

    Thanks for this Riley. I too have been at a crossroads – after 20+ years in a non-tech career I found myself learning Java/Android programming, and am now revisiting coding for the web, but adding HTML5 and JavaScript. I had considered Ruby a ‘nice to have’, and was looking at diving into it, but you’ve managed to tip that balance back towards ‘traditional’ web technologies again.

  • Andrew Walters

    Hey Riley! Not sure if you still check this, but I was curious about something. Firstly, I would just like to say that you’re a very inspiring person! I hope someday soon I can have a similar success story so long as I love what I code and what I learn to better myself! I’m excited :) Secondly, I am curious about the industry from the perspective of someone who is self taught. I’m currently running through the front end track and php dev track in treehouse and I was wondering – do you think it would be better for a php dev just starting out (to gain an entry level code job) to learn WordPress instead of going in depth of JavaScript or the other way around? And lastly, (based on your experiences) would you recommend I shift my focus to solely front end after I finish the php track or dive more into that? I’m trying to decide what I should specialize in (right now) that would have the best opportunities for a job! I can’t really figure out if a person who knew lots of JS and basic/decent php would be hired quicker than someone who had a great handle on php (and maybe even Laravel) and just basic JS. It’s a tough world, and you took it by storm! I hope to do the same :) Thanks for any help you can give if you read this, and thanks for the article! Happy coding!

    • http://rileyh.com/ Riley Hilliard

      Hey Andrew,
      So while PHP / Laravel / WordPress are good to know for building a web application, you are still going to need to know JS to be able to make an interactive website. JavaScript is basically front-end programming, so the interface that the user interacts with is tied together with JS. PHP is used for the server-side persistence layer, which means for things like if you want to be able to save something, like a setting in a user profile to be able to be retrieved later when the user logs back in to the application again. In the context of WordPress, PHP is the backbone of the backend wordpress CMS framework, but you can’t really “PHP” on the front end. In the wild, WordPress is mostly used as a Content Management System, which is a fancy way of saying, “Enabling someone without too technical a background to be able to add content and maintain a website”. Usually with WordPress you would setup a basic website for a business to be able to continue to maintain themselves. WordPress powers a lot of websites right now, but I would say it has it’s limitations. It wouldn’t be advised to build a web-application on wordpress.
      So I guess I’ve started down a bit of a rabbit hole here, but the first framework I learned was wordpress, and it worked well for the things I was trying to build at that time. That being said, I wouldn’t recommend trying to just learn PHP first, and then JS; you will likely need to know both when building a project that requires a little customization.

  • Rowa M

    Thankyou for sharing your experience. I have just started learning to code and am hungry to keep going!