Programming Language Advice to My Daughter, Part 1: Ruby

Mastering the wonderful Ruby language will get many benefits

Zhimin Zhan
9 min readNov 20, 2021

--

My daughter is about to start her first IT job (internship) next week. A few days ago, we had a conversation about hypes in the software industry, many so-called new technologies and programming languages. I said: “You shall master 2 major languages very well and 2 minor ones well. Two majors: Ruby and C++; Two minors: Shell Script and Java”.

Please note that I don’t classify major or minor based on popularity, but rather on the benefits I got from over 20+ experience in software development. Programmers are often fixated on a particular language, I am sure you have all heard some heated arguments among programmers on this topic. Oh well, this is my advice to my daughter, if you don’t like my suggestions, close the browser tab.

Below are the programming languages I’ve learned and used. The bolded ones are that I used professionally, i.e., I get paid by writing code/tests in them.

  • BASIC
  • Pascal
  • C
  • Perl
  • Shell
  • Java
  • JavaScript
  • C++
  • C#
  • Ruby
  • Python
  • Swift

Also, I have programmed briefly in PHP, Haskell, Lisp and Go, but not much is left in my brain now.

This is not for showing off, it simply means that I worked for many years as an open-minded programmer. Now I look back and ask myself:

  • Do I need to learn so many programming languages?
    No.
  • If I had a choice, which languages I shall have started early or really focus on?
    Ruby and C++ mainly; Java and Shell script as supplements.

Please note, here I mean the languages that shall master well, not directly to work use. For example, between 2008–2010, I coded Ruby to develop my own apps and test automation in my spare time, which made me a much more productive Java programmer at work (as a senior Java contractor). Programming is far more than being familiar with certain language syntax. 10x (or 100x+) programmers…

--

--

Zhimin Zhan

Test automation & CT coach, author, speaker and award-winning software developer. Help teams succeed with Agile/DevOps by implementing real Continuous Testing.