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.
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!