You know, computers don’t understand our day-to-day language. They understand binary - the 0s and 1s. But 0s and 1s are difficult for human beings. So some great minds decided to bridge the gap and create new languages - which both humans and machines can understand. Now, there are many languages using which you can talk to computers. There are languages which are great for prose (they can be used to explain every single step to the computer in detail, such as C, C++, Assembly etc.) and some which are great for poetry (you express your wish in a more natural, artistic form and the compiler or interpreter tells the computer what to do, e.g. PHP, Python, Ruby, Haskell etc.).
The dilemma however is Which language to use for learning algorithms?
If we start using a language which is hard on details, you might lose interest upfront because to understand those languages and to program in them, you would have to get into the details of how machines work - which is interesting but can be confusing and difficult at first to understand. If we use a very high level language like Ruby, PHP or Python, then you might not understand anything about the machine which too is not a great thing because performance of algorithms depends on computing resources and these languages do not teach much about that. If we start off with something which works only on Windows (such as C#), then Linux/Mac users would be at loss. We have to find a language which is balanaced among all these requirements.
It is a standard practice to connect Pseudocode and Algorithms together. Pseudocode is not really a programming language (hence the term pseudo) but it is still written in a way which can easily be translated into statements of modern programming languages (hence the term code). It keeps the learning process of algorithms language-agnostic. But then, we do have to implement those algorithms in some language to see how they bring about results. If however, we had a language which is not difficult to read or write, is as close to english as possible and still produces results, we would be in a win-win situation.
Luckily, there is one such programming language which implements most of what we desire - Ruby.
Ruby is a fully Object-Oriented dynamic language which is easy to read and write; its code looks more or less like English and it is available on all desktop platforms. It is better than Pseudocode because you can understand it easily and it produces results right away.
Code is Poetry
All poetry is an art-form of self expression; and so is code. But code can be cryptic, difficult to read. Typing out 0s and 1s to make the computer understand what you want it to understand is also a way to code but that might not feel like poetry to most.
Remember, when it comes to writing a marvellous poem, it is not good to settle down with the list of words that you know. Rather, explore, research, expand your vocabulary and get the best expression to express your feelings; which also includes refraining yourself from using overly complicated expressions. Code is like that - sitting where you are is not going to produce art. You will need to get out of your comfort zone and search. So be ready, vigilant and conscious.