Happy Computer Science Education Week!

These days, computer science makes the world go round in most ways except literal. We're celebrating this amazing field by setting you up with different resources to hone your software skills!

Favorited Favorite 1

alt text

Happy Computer Science Education Week, everyone!

The field of computer science has changed a lot over the past century or so (and even further back than that), and every new generation gets to learn about it in a different way. My dad studied computer science in college back in the 80s, and he loves telling stories about the punchcards they had to use to communicate with the computer – especially the one where his classmate dropped a box containing the ordered cards for a completed project down a flight of stairs. Trial and error was a time investment, and you had to make one entire statement for one machine instruction. The value in computers wasn't that they were smart - they weren't. But they were fast. As long as you told it exactly what to do, it's computational speed made it worth all the fuss.

punch card
1985's version of a sick dual-monitor setup

When I first started learning computer science, I was a freshman in college being introduced to programming through Python, a more streamlined and far less tedious process than dealing with assembly language (my dad made sure I knew that when I asked for help with my homework). I remember writing my first script and being amazed at what was possible. Handling big batches of astronomical data, automating simple tasks, and translating any text to pig latin (my very first project) was just a few lines of code away. Beginning to understand logic and algorithms solved questions I'd had my entire life about the way computers worked.

dog meme
Throwback photo of me in CS 101

Now, as educators are learning how important coding ability is to job opportunities after school, they are having students learn it earlier and earlier. The AP program offers multiple computer science classes for high schoolers to take for college credit, setting them up on a fast track once they get to college. Middle schools and elementary schools are teaching students the basics of computer architecture, algorithms, and introductions to hardware and software to give the students a head start on STEM concepts.

However, learning isn’t just for students! If you’re an engineer or a scientist, chances are you’re always learning. And if you’re looking to develop your software skills, look no further; we’ve compiled a list of resources for you so you can keep up to date with everything in the industry, not just the hardware we know you love so much.

recursion meme
Learn computer science so this doesn't happen to you.

Learning Resources


While Coursera is a paid platform, many of its courses are able to be audited for free. Universities such as Harvard and Princeton offer computer science courses there, as well as companies such as IBM and Google offering certificate programs. Some universities even offer masters' degrees exclusively held on Coursera for computer science. They’ll provide you with a structured journey through computer science at many different skill levels, and specializations are available in every area from analytics to algorithms.

micro:bit Education Foundation

For those just starting out with the basics of code structure, the micro:bit Education Foundation has created editors for MakeCode, Javascript and Python that enable dragging and dropping of code segments as well as other educational shortcuts.

micro:bit screenshot


Work your way up through the ranks with Codewars, a martial-arts themed coding practice website. Pick a language out of a long list and work through various problems of varying complexity, getting hints and talking on a forum as you go. Text manipulation, numerical problems, and complex data handling are all on the table!

codewars screenshot

Code: The Hidden Language of Computer Hardware and Software by Charles Petzold

This book takes apart computer hardware and software to view them at their most basic level, showing they’re two sides of the same coin and unveiling concepts all of us have wondered about before. Petzold wrote that his goal was for readers to understand how computers work at a concrete level that "just might even rival that of electrical engineers and programmers." It adds a narrative to the technical concepts that keeps your attention, and has been described as "a love letter to computers." And the second edition came out this year with additional chapters!

book cover

Computer Engineering for Babies

Have any young ones around that you want to follow in your footsteps? It's never too early to start quizzing them on logic gates. According to its author, this book is perfect for you if you:

  • have a baby
  • are planning on having a baby
  • are interested in computer engineering
  • will be attending a baby shower in the next 1-6 months
  • have a friend that looks like they might have a baby
  • are planning to be interested in computer engineering
  • know a computer engineer that acts like a baby
  • skipped the first two days of CE150
  • are learning how to read

computer engineering for babies
I know what I’m getting my three month old niece for Christmas!

What was learning computer science like for you? We want to know! Shoot us a tweet @sparkfun, or let us know how you're celebrating Computer Science Education Week on Instagram, Facebook or LinkedIn.

Comments 1 comment

  • Member #134773 / about a year ago / 1

    I like to say that I've been "doing" computers since a few weeks after Neil Armstrong took his "one small step". I started volunteering in my high school's "Data Processing Center", doing things like running attendance reports. I got my first experience programming as a Senior when I had the opportunity to take a class in what was then called "Computer Math". I've been known to say that my first experience "programming" was plugging wires into a wiring board, but that that isn't entirely accurate as my first experience was unplugging wires so I could re-use the wiring board!

    You mentioned Python. As someone who's been programming over half a century, I'll say this: although it seems easier to use for the "beginner", based on my experience it is FAR more error-prone than something like C/C++ for large programs. The latter's "protection" is well worth the added "complexity" of having to declare variables and types.

    FWIW, I'm currently "taking a break" from working on a small project with an Adafruit QT Py - SAMD21. Hopefully I'll find the time to complete it in the next day or two.

Related Posts

Recent Posts

Why L-Band?


All Tags