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!