Alex Popov

My personal blog about my experience with Ruby, Rails and many other things


My name is Alex and I am a Ruby on Rails enthusiast. I think it makes sense to tell here how I got to where I am now in terms of my technical (and to some extent professional) interests and what I plan to do in the future.

The whole idea about me getting into the programming business is that I have always had some (from my point of view) great ideas, but have lacked the tools to make them a reality. So I decided that I will I started my learning path in the programming world with Learn Python the Hard Way by Zed Shaw. This was a good start, but as a complete newby I was overwhelmed by the huge number of online resources. I didn't know what was important, what was not that much and what I needed to spend more time on. In short - I needed structure. For a more organized approach I enrolled in the free Telerik Academy (I won't go into details about the Academy, as there will be a dedicated post about it). The Academy gave me great fundamentals of programming in C#.

At some point, though I really started planning to put into action some of my ideas. I needed a language/framework that is:

  • good for web applications;
  • easy to learn;
  • well supported with a good community around it (so I could easily find answers to questions I might come up with);
  • preferably open-source and (relatively) not expensive to deploy;

This boiled it down to two options: Python/Django vs. Ruby/Rails. I spent quite some time researching which of the two is better. Though I saw some hardcore fans of both camps, many people agreed that both frameworks are great and I couldn't go wrong with neither of them. There was no clear winner I had to decided based on my needs and criteria. Ulimately, I decided to go with Ruby on Rails. The reason for this is because I think RoR is a bit easier to learn than Django. In Rails the leading principle is convention over configuration - there are reasonable defaults for everything and you need to do something only if you want to acomplish something specific, whereas in Django you need to specify everything explicitly. Furthermore, I really liked the idea of a central managing system for packages - rubygems - and the plentifulness of good community solutions for various things. Last but not -least, I really liked the vibrant RoR community - always ready to help and ready to experiment and implement cutting-edge technologies.

So there I am know - working on the famous Ruby on Rails Tutorial: Learn Web Development with Rails by Michael Hartl and taking the brilliant Codeschool courses on Rails, JavaScript and others. As mentioned in my first Hello World, I will mostly write about problems, the solution of which is not so straightforward in order to try and make the life of other fellow folks easier. I will also publish my solutions to Project Euler problems as an attempt to better my knowledge in Ruby syntax and algorithms. Occasionally, I will write about non-technical topics.

Finally, a few words about my favourite technologies/products: I develop Ruby on Rails on OS X Mountain Lion at work and Ubuntu 13.04 at home, my text editor is Sublime Text 2, my console is zsh with oh-my-zsh, I use Git and GitHub for version control, I sync files across devices with SugarSync and UbuntuOne (spoiler - referrel links) and use Octopress and GitHub Pages for blogging.