
Software Development
Introduction

Software development gives you the power to transform abstract ideas into (virtual) reality, to communicate with and instruct computers, microcontrollers, web servers, and even your washing machine!
From developing software for use on a PC to creating firmware that controls physical devices, the versatility of software is limitless.
I have had the opportunity over the course of my professional career and hobby pursuits to learn a variety of software languages, but all with varying degrees of proficiency. I have sufficient knowledge to utilize snippets of past work and code found online when I need to implement a new or forgotten function.
For someone like me, AI is a game changer! For example I asked Copilot to give me some JavaScript to add a listener to my Google chart to navigate to a specific URL when I click a bar on my Projects Gantt. It replied with the following snippet:
// Adding the event listener
google.visualization.events.addListener(chart, 'select', function() {
var selection = chart.getSelection();
if (selection.length > 0) {
var row = selection[0].row;
if (row !== null) {
var url = data.getValue(row, 2); // URL is in the third column
window.location.href = url; // Navigate to the URL
}
}
});
This was more or less spot on, but I had the option of tweaking it to add additional logic, as I did.
I cannot remember the nuances or syntax of each language, given I don’t write code every day in every language. AI gives me the pointers or reminds me of syntax rules I have forgotten or teaches me something new, thereby empowering and accelerating development.
The following is a list of languages I am familiar with, in order of proficiency and experience:
Programming Languages
- C#
- C++
- Visual Basic
- VBA
- Python
- Assembly (Microchip PIC)
- Java
- C
- BASIC
Declarative Languages
- SQL
- Transact SQL
- HTML
- CSS
- XSLT
- Markdown
Scripting Languages
- VBScript
- JavaScript
- TCL
- DOS Batch
- Linux Bash
Data Formats
- CSV
- Excel
- JSON
- YAML
- XML
IDEs
- Visual Studio
- Visual Studio Code
- Arduino IDE
- Thonny
- MPLAB
- Eclipse
- PlatformIO
- PyCharm
Editors
- Notepad++
- Notepad
- Sublime Text
- TextPad
History
In the mid 1990s I taught myself PIC microcontroller assembly, having covered assembly language programming as part of my electrical engineering studies. In the late 1990s that I started dabbling in Visual Basic for Applications (VBA) to enhance functionality Microsoft Access databases.
I soon moved onto Visual Studio 6.0 and started learning Windows application development.