With the growing number of coding schools, web tutorials, online courses, paper books, ebooks and traditional computer science courses, it can be incredibly confusing for a new student to get started and to be confident that they are efficiently investing time into learning relevant skills at the appropriate depth. With the growing number software libraries it can additionally add to the stress and anxiety of learning how to program. So, here’s my take on learning programming with Ruby on Rails.
Ruby on Rails is a framework created in the Ruby language that makes web programming easier. It does so by following conventions, and encouraging re-use of code, and the use of abstractions. The Ruby language is easy to use because it was designed to help programmers to be productive, to enjoy programming, and to be happy. Over time computing power has increased and become less expensive, allowing programming languages have become more abstract and specialized. Ruby was a step towards a more natural and expressive programming language than it’s predecessors. Ruby removes the need for a programmer to worry about lower level concerns such as memory allocation, pointers, compilation, and string manipulation.
I have personally used Ruby and Ruby on Rails for nearly a decade and because I find it intuitive and expressive. I first started learning programming in Pascal and C, moved on to Modula-3, C++, Java. Over time I’ve also taken side-trips of varying lengths into C#, Objective-C, Bash, Python, Lisp, Node and Javascript but find continue to find myself wanting to work in Ruby.
Having used a number of different languages, I believe that there are fundamental concepts that all programmers should understand, which are abstracted and simplified in modern languages and frameworks. Learning different programming languages has many benefits beyond simply having the ability to read code in a new language. Different programming languages can help a user learn new concepts, solidify understandings of existing concepts, and introduce new paradigms on how to solve problems.
As a veteran programmer, I often catch myself taking my own programming skills for granted, not in a way that is boastful or self-applauding, but in a way that acknowledges that truly learning to program is a long journey. I appreciate and offer that learning how to program is more than simply learning one language and a web framework. I would even go so far as to suggest learning a lower level language first and struggling with those concepts, and working through exercise problems of string manipulation, loop control structures, and data structures. It’s important to appreciate that learning programming is a journey and not a destination marked by a final exam or job offer.
So, start with which ever language you’d like, but don’t stop there. Having a continual learner’s mindset will expand your mind and is a necessary step to becoming a better and well-rounded programmer.