N3rds Welcome! 🤖

Here's a breakdown of my favourite tech that we use everyday:

Operating Systems

windows macos android linux

In the beginning the lord made electricty, then capicitors, logic gates and transistors then... let there be light!

Often overlooked by those that love to code but of course, our code needs somewhere to run free. Operating systems expose electrical hardware to programmable software via their amazing firmware. This is so developers don't need to write yucky binary machine code and can instead build applications with more readable programming languages such as C.

They started out as digital text editors with basic memory and evolved into the full-spec interactive portals we know and love today. New frontiers like VR push the boundaries of how we engage with computers even further but whether it's a screen or a hologram, we'll always need operating systems.

Web Browsers

chromium firefox

Web browsers are arguably the most important piece of software installed on any computer. They upgrade your lonely machine so that you may join "The Internet", putting the collective knowledge and tools of humanity at your fingertips.

They're packed full of great features for web developers to play with and provide all the amazing gizmos needed to run websites and communicate to the outside world, such as: Code Interpretation, Graphical Rendering Engines, Network Code and Encryption Tools for secure communications between your website, your friend's website and all the websites of the land (some are in space).

HTML, CSS & JavaScript

html5 css javascript

The dream team. These 3 technologies are the bone, skin and muscle of every website. They blew my mind when I first discovered them as a child.

For examples of my work HTML, CSS & JavaScript you need look no further than this website, or check out my project just-sitting. Or for more try my GitHub profile.

Warning: The next bit is very nerdy! Skip to the bottom for hint. Unless you're considering hiring me then please read on...

The Extended Javascript Universe

Node.js & Deno

From humble beginnings as a DOM manipulator (DOM = Document Object Model - it's how a browser models a web page) to working with files and data on machines and microcontrollers. JavaScript has worked it's way into all areas of technology.

Facebook's React library links JavaScript variables to the DOM via it's concept of in-memory "state". Changes in state are first calculated in a Virtual DOM (VDOM) then efficiently mapped to the DOM using some smart algorithms in a process called object-diffing. Also, it can utilise server-side JavaScript (thanks Node.js) to generate optimised files for web pages and server-side render web content.

The React library resulted in a huge productivity boost for frontend web developers and has therefore exploded in popularity. It's spinoff cousin React Native brings the same JavaScript app magic to mobile development and Electron brings web applications to desktop by utlising Google's open-source Chromium engine - awesome!

How does JavaScript move beyond web UIs and into the wider world of tech? Node.js (made with C++) or it's successor Deno (made with Rust), that's how. Both powerful engines for running Javascript outside of web browsers, with additional functionality for executing UNIX commands and working with files. Node.js is wildly popular and drives the vast majority of open-source code today!

The Low-Level Powerhouses: C++ & Rust

c++ rust

Kickstarter of the age of information. C++ is everywhere. Your operating system? C++. Your plane's operating system? C++. The browser in which you are currently viewing this website? C. +. +. Created for ultimate flexibility by the hilariously quintessentially-nerdy Swedish genius, Bjarne Stroustrup. There's nothing this language can't do. It might just require a million lines of code to get there...

My relationship with C++ began at university, we met in the midst of some challenging times! I was a 1st year BEng Aerospace Engineering student at The University of Bristol in the UK. I was delighted to see a computing module on my timetable as I had already been interested in programming and making games as a teen. It was in those classes that I began to consider a career in programming!

hint: a good exercise for when learning about programming numerical methods is to write a Rubik's Cube solver. I only got as far as The White Cross before I got distracted writing web games...