My interest in programming started as a hobby, then as a useful tool for various projects, then as a major part of my job. Not having a proper introduction to programming from school made the learning curve a bit difficult. But after a while it became easier to learn and use different programming languages.

This is a classification/tiers of programmers. Among them, I am an amateur.

Programming languages and expertise

These are some of the languages I know and the level of expertise I possess.

language/Software Expertise Remark
Python 4/5 Can understand and code with the help of Google
Unix 4/5 Shell scripting, experience with multiple Linux distros
Fortran 3/5 Comfortable
JavaScript 3/5 Have used for a while, not extensively
C++ 2/5 Basic understanding, used a while ago
Matlab 4.5/5 Really comfortable, familiar with matrix operations and packages
Web design (HTML, CSS) 4/5 Working experience and good understanding

Previous experiences

  1. Web design/GUI development
  2. I worked as a software developer at Moonraft Innovation Labs for a year, doing front-end work on Android applications and web development. Although it was not a pleasant experience, the experience I gained in programming and interacting with people was extremely useful later on. Before joining Moonraft, I did not have a structured way of programming and I learned the standards and norms of programming from there. The development of this website is the proof of my knowledge. Most of my focus has been on HTML, JS, CSS and their respective libraries.

    To sum up this experience - I am glad I did it, I am glad it is over.

  3. Academia
  4. The programming experience I gained was useful for various projects in my Master's and PhD studies. My Master's thesis focused on the fracture of composite materials, for which I carried out a numerical study involving programming and lots of simulations. Most of the programming was done in Matlab at that time.

    A lot of tools were needed during the PhD - for data extraction, analysis and post-processing. A variety of software was used for this - Matlab, Fortran, Python,

    I was part of a project to develop a robot to collect data from the sea. The project was a collaboration between NIOT (National Institute of Ocean Technology, India, Chennai) and IIT Madras (Indian Institute of Technology). My role was to develop a navigation system for the movement of the fish. It was an interesting job where I learnt about control systems and PID (Proportional, Integral and Differential) systems.

    The 3D model of the robotic fish. The fish had 2 control surfaces for locomotion - tail fin (vertical surface, controls yaw and speed), front fin (horizontal surface, controls pitch and elevation).

  5. Hobbies
  6. Some of my spare time is spent working on small projects like small applications in Python, small robot toys... At the moment I am working with single board computers (like Raspberry Pi) to learn about servers and embedded systems.

    This is a small application written using the Qt Python package to track my time. I could not find a proper, simple application as I needed, so I made a simple one for my own use.

    This is an online cloud service created with Banana Pi & NextCloud. It is equivalent to Google Drive to store files (images, documents...) and access them from any computer/mobile phone.

Types of developers

This video concludes the classification and characteristics of developers. A similar classification can be considered for programmers in general.