• Skip to primary navigation
  • Skip to main content
  • Skip to primary sidebar
Avinash Meetoo

Avinash Meetoo

Let us build a Smart Mauritius together

  • Home
  • About
  • Curriculum Vitae

Computing

How to become a programmer?

30 March 2016 By Avinash Meetoo 1 Comment

20160330-a-team

Here are the programming languages I know very well:

  • Java (most popular programming language in the TIOBE index)
  • C (2nd most popular)
  • Python (5th)
  • PHP (6th)
  • Javascript (8th)

Here are those which I know relatively well but, if I had to write something substantial, I would have to read 1-2 good books on the latest features / benefits:

  • C++ (3rd in the TIOBE index)
  • Perl (9th)
  • Ruby (10th)
  • R (16th)

I also know a bit of Assembly (albeit Motorola 68000 assembly instead of x86):

  • Assembly (12th in the TIOBE index)

I do not know anything about programming languages created by Microsoft:

  • C# (4th in the TIOBE index)
  • Visual Basic .NET (7th)

It took me years and years to become competent in Java, C, Python, PHP and Javascript. I started programming when I got my first computer around 1987 i.e. nearly 30 years ago.

Peter Norvig is right: it takes ten years to become a good programmer.

Programmers are problem solvers (like the A-Team)

A good programmer is also someone who knows how to solve a real problem which real people are having by writing a program which, hopefully, will allow the same people not to have to worry with the problem anymore.

To become a problem solver, one needs to adopt a very logical way of thinking which is explained in books such as Polya’s How to Solve It. Once someone is a problem solver, then it is reasonable to learn a software development methodology which has proved its worth over decades namely Object-Oriented Analysis, Design and Programming. There exist many books about OOA, D & P. Classics include Grady Booch’s Object-Oriented Analysis and Design with Applications but a more modern book would be Craig Larman’s Applying UML and Patterns: An Introduction to Object-Oriented Analysis and Design and Iterative Development.

20160330-experience

On acquiring experience

Nothing beats really trying to solve a problem by writing a software, failing miserably, trying again, failing once more and finally arriving at a solution. Nothing beats real world experience.

And this is not necessarily acquired at work. I know countless exceptional programmers (abroad and world-famous for most of them but a few are in Mauritius) who learned quite a lot by themselves by scratching their own itch (as explained in Eric Raymond’s The Cathedral and the Bazaar). They became good by writing software to solve problems that they themselves were having (and not for money).

The most important thing: have fun

To become an exceptional programmer, it is essential that you have fun in the learning and skills development process.

Programming is not something one learns to get a good job. It is something that someone loves and allows him/her to land his/her dream job later.

Filed Under: Computing, Education, Future, Science, Technology

We depend a lot on technology

28 March 2016 By Avinash Meetoo Leave a Comment

20160328-google-nexus-products

We all love technology. And we all need technology to live.

But are we becoming over-dependent?

Today, while cleaning the house, I realised that we have been purchasing a lot of technology products over the years. For example, we have the following Google Nexus products:

  • 1 x HTC Nexus One (which does not work anymore — faulty battery) + its charging dock
  • 2 x LG Nexus 4 (which work perfectly with Android Lollipop)
  • 2 x original Asus Nexus 7 (one works great with Lollipop, the other one has failed — faulty Flash memory I guess)
  • 2 x newer Asus Nexus 7 (running flawlessly with Android Marshmallow)
  • 2 x original Chromecast (running flawlessly)

Nexus products are really excellent. We have been using them for years now and we’re very satisfied. Unfortunately, they are not available for purchase in Mauritius and, consequently, we need to ask friends and family from abroad to get them for us.

Lately, I got a used LG G3 in Mauritius and it’s the first smartphone I have which is not a Nexus. And, to be frank, since installing the Google Launcher and customising a few things here and there, I don’t see a lot of difference with my Nexus devices.

Anyway, this was an opportunity for me to brag about my love for anything made by Google (as you rightly deduced) 🙂

Filed Under: Computing, Society, Technology

The “Divine” Artificial Intelligence

18 March 2016 By Avinash Meetoo 2 Comments

 

On 15 March 2016, the Korea Baduk Association awarded AlphaGo the highest Go grandmaster rank: an Honorary 9 Dan. It was given in recognition of AlphaGo’s sincere efforts to master Go’s Taoist foundations and reach a level close to the territory of divinity.

AlphaGo vs Lee Sedol

20160318-lee-sedol-vs-alphago

From Wikipedia,

AlphaGo versus Lee Sedol was a five-game Go match between South Korean professional Go player Lee Sedol and AlphaGo, a computer Go program developed by Google DeepMind, between 9 and 15 March 2016. The match was played in Seoul, South Korea. AlphaGo won all but the fourth game; all games were won by resignation. The match has been compared with the historic chess match between Deep Blue and Garry Kasparov in 1997.

AlphaGo, a computer program, played so well that the Korea Baduk Association awarded it the highest Go grandmaster rank: an “Honorary 9 Dan”. According to the association members, AlphaGo had reached a level “close to the territory of divinity” which I interprete to mean that AlphaGo played better than any human being ever.

20160318-go-board

This is something very profound. From Wikipedia once more:

Go is a complex board game that requires intuition, creative and strategic thinking. It has long been considered a difficult challenge in the field of artificial intelligence (AI) and is considerably more difficult to solve than chess. Many in the field of artificial intelligence consider Go to require more elements that mimic human thought than chess.

Consequently, it is fair to conclude that AlphaGo is one of the first instances of human-like thoughts by a computer. AI has reached a new level.

AlphaGo

20160318-google-deepmind

From Wikipedia,

AlphaGo’s algorithm uses a combination of machine learning and tree search techniques, combined with extensive training, both from human and computer play. The system’s neural networks were initially bootstrapped from human game-play expertise. AlphaGo was initially trained to mimic human play by attempting to match the moves of expert players from recorded historical games, using a KGS Go Server database of around 30 million moves from 160,000 games by KGS 6 to 9 dan human players.

Once it had reached a certain degree of proficiency, it was trained further by being set to play large numbers of games against other instances of itself, using reinforcement learning to improve its play. The system doesn’t use a “database” of moves to play.

In other words, AlphaGo learned Go by observing the best humans and to become better than any human and to improve its play then played a large number of games against itself. This is mesmerizing and a bit frightening too.

What is interesting, of course, is that AlphaGo is just one application of DeepMind. In its core, DeepMind is a formidable Artificial Intelligence which can, basically, learn most of the tasks done by human beings and, by playing against itself, become better than any human before…

DeepMind

DeepMind Technologies was founded by Demis Hassabis, Shane Legg and Mustafa Suleyman in 2010 and it was acquired by Google in 2014.

20160318-demis-hassabis

Larry Page is the CEO of Google DeepMind now. From Wikipedia,

DeepMind goal is to solve intelligence, which they are trying to achieve by combining the best techniques from machine learning and systems neuroscience to build powerful general-purpose learning algorithms“. They are trying to formalize intelligence in order to not only implement it into machines, but also understand the human brain.

As opposed to other AIs, such as IBM’s Deep Blue or Watson, which were developed for a pre-defined purpose and only function within its scope, DeepMind claims that their system is not pre-programmed: it learns from experience, using only raw pixels as data input. Technically it uses deep learning on a convolutional neural network, with a novel form of Q-learning, a form of model-free reinforcement learning.

We tend to forget that we live in 2016.

AlphaGo and DeepMind has just made me (and you I hope) realise that Artificial Intelligence is not very far away. Be warned if you are not doing something complex enough.

 

An update: The Korean government has just decided to invest $860 million (more than 30 billion rupees) in Artificial Intelligence research and development over the next five years. This includes the founding of a high-profile, public–private research centre with participation from several Korean conglomerates such as Samsung, LG Electronics, Hyundai and Naver.

Filed Under: Computing, Future, Science, Society, Technology

  • « Go to Previous Page
  • Page 1
  • Interim pages omitted …
  • Page 26
  • Page 27
  • Page 28
  • Page 29
  • Page 30
  • Page 31
  • Go to Next Page »

Primary Sidebar

Search

I am proud of

My family
My company
My music
My photos

I am active on

Facebook
FB Page
Twitter
LinkedIn
Reddit
Hacker News
Stack Overflow
GitHub
Wikipedia
YouTube
IMDB
Last.fm

All posts

  • April 2025 (1)
  • March 2025 (1)
  • February 2025 (2)
  • January 2025 (4)
  • December 2024 (4)
  • November 2024 (2)
  • October 2024 (1)
  • September 2024 (4)
  • July 2024 (1)
  • June 2024 (1)
  • May 2024 (4)
  • March 2024 (1)
  • February 2024 (1)
  • January 2024 (1)
  • December 2023 (2)
  • November 2023 (2)
  • October 2023 (2)
  • August 2023 (2)
  • July 2023 (3)
  • June 2023 (3)
  • May 2023 (4)
  • April 2023 (1)
  • March 2023 (3)
  • January 2023 (1)
  • December 2022 (1)
  • November 2022 (5)
  • September 2022 (2)
  • June 2022 (2)
  • May 2022 (1)
  • April 2022 (1)
  • January 2022 (3)
  • November 2021 (1)
  • September 2021 (1)
  • June 2021 (3)
  • April 2021 (1)
  • February 2021 (1)
  • January 2021 (2)
  • November 2020 (1)
  • October 2020 (1)
  • September 2020 (1)
  • August 2020 (1)
  • May 2020 (1)
  • April 2020 (3)
  • March 2020 (4)
  • January 2020 (1)
  • July 2019 (1)
  • June 2019 (1)
  • April 2019 (2)
  • January 2019 (1)
  • December 2018 (3)
  • November 2018 (1)
  • September 2018 (1)
  • August 2018 (1)
  • April 2018 (1)
  • December 2017 (1)
  • November 2017 (1)
  • October 2017 (1)
  • August 2017 (1)
  • July 2017 (1)
  • May 2017 (1)
  • March 2017 (1)
  • February 2017 (1)
  • August 2016 (1)
  • July 2016 (1)
  • June 2016 (3)
  • April 2016 (3)
  • March 2016 (3)
  • February 2016 (1)
  • December 2015 (1)
  • November 2015 (1)
  • October 2015 (1)
  • August 2015 (5)
  • June 2015 (1)
  • September 2013 (2)

Copyright © 2025 by Avinash Meetoo · Shared under an Attribution 4.0 International Creative Commons license · Log in