What should your child learn if they want to join us in a few years’ time as a developer?
Imagine the scenario – you have a child that comes to you and says “I want to be a software developer”. What do you tell them to learn? I am going to flip that around a bit and ask what do I (as a developer) want a developer to understand when they start their first job working alongside me.
There will be liberal sprinklings of links to other websites in the content of this ramble… but do come back.
Most of what we develop at Webnetism are HTML (HTML - Wikipedia) & CSS (CSS - Wikipedia) websites with some JavaScript (JavaScript - Wikipedia) interacting with a web server running C# (C Sharp (programming language) - Wikipedia) which then reads/writes to a SQL (SQL - Wikipedia) database. These are usually split client side (stuff that runs on your consumers computer) and server side (stuff that runs on our servers).
That’s a lot of acronyms – let’s break that down a little.
- HTML is the structure of a website – think of the cover, table of contents, chapters and index of a book
- CSS is styling – think of the layout of the book, the typefaces used, margin sizes, colours and so on
- JavaScript is code that runs on your web browser
- C# is code that runs on the server
- SQL database is where all the data is stored that makes up your website
To be honest they will pick up basic HTML & CSS as they go along – there are literally billions of examples (https://websitesetup.org/news/how-many-websites-are-there/). As a side note there are discussions about whether HTML & CSS is code or markup. There are plenty of frameworks that make using these simple to make a usable looking website. For example, Bootstrap (Bootstrap · The most popular HTML, CSS, and JS library in the world. (getbootstrap.com)) and Semantic UI (Semantic UI (semantic-ui.com)).
Also, while when they start their career they will need a colleague that understands SQL and databases, for now they won’t need to worry about that either. Frameworks exist to make that simple and pretty efficient. We use Entity Framework Core (Entity Framework - Wikipedia).
That leaves us with JavaScript and C#. This is where I think they will need to start… but which language? Comparing a simple interview test called FizzBuzz (Fizz buzz - Wikipedia) in both languages shows they are pretty similar. Don’t worry, I’m not expecting you to understand this.
JavaScript |
C# |
for (var i=1; i < 101; i++) { if (i % 15 == 0) console.log("FizzBuzz"); else if (i % 3 == 0) console.log("Fizz"); else if (i % 5 == 0) console.log("Buzz"); else console.log(i); } |
for (var i = 1; i < 101; i++) { if (i % 15 == 0) Console.WriteLine("FizzBuzz"); else if (i % 3 == 0) Console.WriteLine("Fizz"); else if (i % 5 == 0) Console.WriteLine("Buzz"); else Console.WriteLine(i); } |
Essentially the difference is console.log vs Console.WriteLine. So, which to learn?
I have to say JavaScript.
It is available on many platforms and is used on almost all websites. As you see, if your child is comfortable with JavaScript then they’ll be able to reuse those skills in C#. Or Java, PHP, C, C++, Perl, Rust – amongst many more.
These are all known as curly-bracket languages (https://en.wikipedia.org/wiki/List_of_programming_languages_by_type#Curly-bracket_languages) . If they can read one of them you be able to understand many of the others.
What tools should I use? That’s pretty easy in my opinion – Visual Studio Code (or vscode to its friends) – is free and well supported (Visual Studio Code - Code Editing. Redefined). Other tools are available but this one is used for real, in professional circumstances. By default, it has a dark theme and what child doesn’t want that?
There is even a version of Visual Studio that is free (Visual Studio Community 2019 - Free IDE and Developer Tools (microsoft.com)) but I wouldn’t recommend that for a child starting out in development as it offers way more than a beginner needs.
There are loads of resources available for learning JavaScript on the web – for example w3schools (W3Schools Online Web Tutorials) and Pluralsight (Pluralsight | The tech workforce development company). For when you get stuck trying to help your child there is the developer’s favourite, Stack Overflow (Stack Overflow - Where Developers Learn, Share, & Build Careers).
I recently bought myself a Sphero Bolt (https://edu.sphero.com/) – mainly to see if I could make something for my ferrets to chase around (they didn’t really pay it any attention). This can be programmed in JavaScript (more junior developers can use Scratch (Scratch (programming language) - Wikipedia)) – I have to admit it was quite good fun making it roll around the kitchen. I will pass it on to my youngest offspring so that they can have a go with it – they can even use their tablet so I won’t have to get them a computer!
You can also program Minecraft plugins (Creating Minecraft plugins using JavaScript — Educademy) using JavaScript. Afterall, who doesn’t need to spawn in 100 chickens?
Learn some JavaScript and when they are old enough they could apply for a job here (Careers in web design & development). Don't forget to learn with them! I’ll see them in a few years!