Hey reddit,
I hope that this post not only informs, but inspires. I also invite feedback from Sr engineers. I'm not famous (not yet anyway). I'll get straight to it.
As the title says, I learned Rails from absolute scratch. No prior programming language knowledge. Though I did drop out of a Visual Basic class at a local community college in 2010.
I started with the desire to have my own startup last year. I just had an idea on my couch. I would say that I didn't know where to turn, but that's not quite true. The truth is I didn't know where the *fuck* to turn!
Everybody talks about mobile apps this and mobile apps that, so I started by trying to learn to make Android apps. Did some research (Google) and found out they were made in Java.
I picked up [Sam's Teach Yourself Java in 21 Days](http://www.barnesandnoble.com/listing/2671546007587?r=1&kpid=2671546007587&cm_mmc=GooglePLA-_-Book_25To44-_-Q000000633-_-2671546007587) from the bookstore and got to studying. I just knew that now that I had this book, understanding programming would be the easiest thing I'd ever done.
Understanding programming was the hardest thing I'd ever done.
There were many times where I wanted to give up. I made it 1/3 through the book and made very little headway.
Then I discovered an article that said that making a web application would be easier/faster and more cost-effective than a mobile app. Not sure if that's true, but I'm so glad I went with it.
I dug a little bit deeper (with Google). That's when I discovered the Ruby on Rails
framework. It was supposed to make web development fast. I found [Mattan Griffel's talk](https://www.youtube.com/watch?v=T0qAjgQFR4c) on Youtube and watched it. I agree with what he says, though I still don't see how it's possible to learn Ruby on Rails in one month, even in a bootcamp.
I began to learn Ruby on Rails through [Michael Hartl's online book](https://www.railstutorial.org/). I struggled about halfway through the book before I just gave up. It got to the point where I was just copying and pasting the code and had no idea what I was doing.
Fortunately, by this point coding became something like a fun little hobby of mine. I decided to check out [Codecademy.com](http://www.codecademy.com/learn) and worked my way through the HTML & CSS course.
After about 2 weeks of working through that course (mind you, I did not finish it. Only 42%), I signed up for Lynda.com and did the HTML Essential Training course by Bill Weinman. It was very helpful in understanding the web. I was so motivated by my progress that I then did several CSS courses and got started on a Javascript course that I never finished. During all of this, I took notes (real, physical notes) and did a lot of coding with paper and pen. No syntax highlighting. No autocomplete. Then I would type it up in a basic text editor (Notepad on Windows7) to test myself.
I wrote one site using the HTML and CSS skills I acquired and after about 2 months of that, I said, what the hell, and tried Hartl's book again.
It finally clicked!
I could now see what Ruby on Rails was. The reason it was so difficult before was because I couldn't differentiate between HTML, CSS, and Ruby injections. I also knew how to reference the files and where they would go if I wasn't using Rails.
That meant that the only thing left for me to learn was what a Ruby injection was. It's Ruby code.
Learning Ruby was actually easy at this point because Ruby's syntax is a lot easier to remember than Java's, though I like to write in Java still, because it's harder for non-developers to read, which makes me look smart.
I binged watched these courses on Lynda.com:
* HTML Essential Training (Bill Weinman)
* CSS Fundamentals (James Williamson)
* Foundations of Programming: Object Oriented Design (Simon Allardice)
* Ruby Essential Training (Kevin Skoglund)
* Ruby on Rails 4 Essential Training (Kevin Skoglund)
I want to make it clear that for about six months I made it a point to get in at least 1 hour of learning to program for at least five nights out of the week. There were a lot of days where I would study for 3.5 to 4 hours.
As I mentioned earlier, I began this whole endeavor with a startup in mind. Now that I was around 6 months in, tutorials were kind of getting repetitive and becoming less helpful to my mission. What I had to do was watch a tutorial and figure out how I could change what I needed to change to make it fit into my project.
I started to google more and more Rails material. I ended up reading through half of the [Rails docs](http://guides.rubyonrails.org/index.html). Then I found these really helpful tutorials my [Mackenzie Child](https://www.youtube.com/user/mackenziechild/videos), and not a moment too soon!
By now, it's the end of 2014 and there's a TEDx event coming up where I live (imagine that!). It was a great event and I made just a couple connections and found out about two key things:
1) 1 Million Cups - a weekly event where entrepreneurs present their businesses and get support and awareness in their communities.
2) Kansas City Startup Village - a community of densely positioned startups that go out of their way to help anyone and everyone trying to break out in the startup world and disrupt the scene.
I did a presentation at my local 1MC and finally was getting ready for launch. I was also reading [Beginning Rails 4](http://www.amazon.com/Beginning-Rails-Experts-Voice-Development/dp/1430260343) and [Beginning Ruby](http://www.amazon.com/Beginning-Ruby-Novice-Professional-Experts/dp/1430223634/ref=sr_1_1?ie=UTF8&qid=1431746711&sr=8-1&keywords=begining+ruby) on the side.
I ran into some bumps in the code-road and since I was the only person I knew who programmed, I could see the value of being part of the startup community in Kansas City — even if it was 800 miles away.
With relatively short notice, I tried my luck and moved up to KC.
That was the turning point. Being around other developers made it easy to ask questions and look at code written by other people. I realized that, for at least a good while, it's normal not to be the very best developer in the world. Everyone has to learn to make workarounds for what they're trying to accomplish and oftentimes projects don't go as straightfoward as you write them out initially. That's ok. <- At least it has been so far. While in KC I learned the importance of tools like Git, Heroku, and virtual machines/Linux, as well as what testing is actually for. I also read the book ["The Rails 4 Way"](http://www.amazon.com/Rails-Edition-Addison-Wesley-Professional-Series/dp/0321944275). It was in KC that I learned how to take a project from the whiteboard all the way to live on the web. A painstaking process, I might add, but it feels great once you can do it. Not only did I learn more about programming and project management, I also got to do another 1MC presentation in KC. I started talking to other startups and seeing what they were doing and what tools they were using. Now my name was out there and being able to present my startup with actual pictures of what I was making proved that I was at least capable of that much. It wasn't just programming though. Probably about half of the reason I got any offers and recommendations was due to the fact that I seem to be able to make great first impressions. Talking to people in person makes a huge difference. I don't have a degree, so I really have to be able to sell myself and get people to see why they should work with me. Being a 1-year developer carries a lot of risk with it, especially without formal training. Now, from personal experience, I can say that you really can pick up coding and learn enough to make a career change if that's your goal. But I should stress that people will pay you less and trust you with less without a degree. It will also be quite difficult to move up in the ranks. When you take up programming without formal training, you are starting from the bottom — you're one notch below a Private in the Army. Without years of experience, which you cannot accelerate, I would say that your best option would be to have your own vision in mind that you want to bring to fruition. Everybody respects someone who made something that people use. With your own vision to work on, you will be more motivated to stick with your training plan, all the while racking up hours of experience which will eventually become years. Finally, a major contribution to my name spreading now is the fact that people can see I'm serious about what I'm doing, and I don't live in a major startup city like Austin, TX or Silicon Valley. There's hardly any noise at all where I live. If I so much as hear about someone needing help with a site, I reach out to them and offer a certain amount of help for free. Spreading my name is worth it, but also note that my end goal is not to become a full-time developer, though I may do that if none of my ideas work out. ** I should note that with the exception of the Java book, I was able to find all books online for free and downloaded them as PDFs. Some of them have since been taken down EDIT: Forgot to mention [Railscasts](http://railscasts.com)! That's a great source once you understand the basics of Rails!
Good for you for recognizing an interest and developing a passion for it! I’m self-taught too, now with a decade in the industry. I still get excited about new developments in our space.
Could you possibly share your story on /r/learnprogramming or /r/cscareerquestions? I loved your story and know lots of people could benefit from it.
Congrats! It’s not easy to get started (installing ruby & setting up CLI is not beginner friendly), but you’re starting the cycle of getting paid to learn on the job 🙂
Congrats! Just thought I’d add my story here as well so that any beginners can see another success story. I started learning web dev last November and signed a job contract as a software developer in April.
I was unemployed at the time and starting out in a new country. I didn’t like the job prospects in my established career field, so I wanted to try out web dev. I didn’t know how I would actually get a job in the end. I didn’t know if anything I taught myself would be of any value to an employer here, but I just tried to focus on taking one step at a time.
I started out with the [Free HTML/CSS videos from Epicodus](https://www.learnhowtoprogram.com/lessons/learn-how-to-program) last November for a couple weeks. Then, I did One Month Rails. I kept doing any free rails tutorial I could find on the web and Ruby tutorials like Codecademy’s Ruby course or RubyMonk.
All while I was doing this I was documenting it in a blog, on github and establishing an profile on twitter. I was almost ready to do an online bootcamp like Tealeaf or Thefirehoseproject (and did their free precourse work), but then I applied to a 3-mo jr RoR dev internship with only about 1.5 months of programming experience. (I guess this was really lucky to find, but it wasn’t the only one out there…). Having a ‘what could I lose? What’s the worse they could possibly say to me?’ attitude helped actually get me to apply while I felt completely inadequate. What got me the internship was my drive for learning to code and the visible effort I had already put in that I could show an employer since it was documented in my blog and github. My boss wasn’t looking for someone that was a super knowledgeable coder, but someone that was teachable, eager to learn, and motivated.
I worked really hard during my internship, plus I studied (and still do) outside of work. I also volunteered to coach at a local RailsGirls coding event.
In April, as my internship was nearing its end, I was offered a full-time job contract to stay on at my current employer. I’m incredibly happy to be a coder. I have a ton more to learn; I’m challenged every single day, but I feel more fulfilled in this career than I did in my previous one.
I already read Hartl’s book and finished it like one month ago and Im developing my first web app. I have programming background and also know css and html. Having said that, do you recommend me to buy The book Rails 4 Way?
Thanks for posting your story bro. Very inspiring for newbies like me. I started Rails since 15 days now. This is my current path:
* HTML/CSS/JavaScript from Internet tutorials. I learned all in a week. Not an expert level, just the base.
* “Foundations of Programming: Databases” from Lynda. 2 days.
* “Foundations of Programming: Fundamentals”. Lynda. 1 day.
* “Foundations of Programming: Object-Oriented Design”. Lynda . 1 day.
* “Foundations of Programming: Ruby”. Lynda. 2 days.
* “Ruby on Rails 4 Essential Training”. Until now.
* “TreeTeamHouse Rails courses”. Until now.
* Books: All that I can grab from it-ebooks.info and kickass.to. For example, Bootstrap with Rails, Devise, etc.
I don’t recommend Michael Hartl’s book as first tutorial. It’s an excellent book, there are no doubts about it but It’s just a lot of information that you can feel overwhelmed very easily. I mean I don’t even know what is an ‘MVC’ and he starts with TDD with MiniTest wtf.
Thanks for posting this video! I’m slugging it out right now trying to learn Rails and everything that comes with web development and sometimes it can feel overwhelming! This was very inspirational!
Hey man, I needed this. Thank you for sharing.