Learn Icon

Learn

Learning to code, leveling up, building your skills. Expand your résumé and pursue a fulfilling developer career.
275 Stories
All Topics

Jonas Lundberg iamjonas.me

Want to be great? Know a lot

Often software developers are encouraged to learn deeply. Know your language and framework of choice better. That’s all good, but there’s another side to learning that’s often overlooked. Knowing a little about a lot of things so you have less blind spots.

In the blog post we look at the importance of learning broadly and how to go about it.

Backstage Backstage #19

Honoring Veterans Day and #VetsWhoCode

We’re “doing it live” with Jerome Hardaway, a Senior Software Engineer at Microsoft and the Executive Director of Vets Who Code — a veteran-led and operated 501(c)(3) non-profit organization that focuses on training veterans, active duty military, and military spouses in software development and open source with the goal of starting careers in the technology industry.

This is a lengthly conversation in and around Jerome’s story, the Vets Who Code mission and impact, the experience of being in the United States Military, and the opportunity and potential of 1.5x’ing one of the most elite group of people on the planet.

Opensource.com Icon Opensource.com

Eureka moments of coding in the community

Opensource.com asked the community to share about a time they sat down and wrote code that truly made them proud. Ten people responded with their experiences and learnings. Here’s an appetizer from Greg Scott:

One of mine around coding goes back to college in the 70s. I learned about parsing arithmetic expressions and putting them into Reverse Polish notation. And then, I figured out that, just like multiplication is repeated addition, division is repeated subtraction.

The Changelog The Changelog #467

Connecting the dots in public

Today we’re joined by Shawn “swyx” Wang, also known as just “swyx” — and we’re talking about his interesting path to becoming a software developer, what it means to “learn in public” and how he’s been able to leverage that process to not only level up his skills and knowlege, but to also rapidly advance his career. We cover Swyx’s recent writing on the light and dark side of the API economy — something he calls “living above or below the API,” his thoughts on Cloudflare eating the cloud by playing Go instead of Chess, and we also talk about the work he’s doing at Temporal and how’s taking his frontend skills to the backend.

Pat Shaughnessy patshaughnessy.net

To learn a new language, read its standard library

This post by Pat Shaugnessy echoes Matt Rickard’s sentiment that we discussed in-depth on The Changelog 463:

The best way to learn a new programming language, just like a human language, is from example. To learn how to write code you first need to read someone else’s code. But who is the best person to learn from? Which code should we read? Where should we look to find it?

Pat was looking into Crystal and found its standard library to be excellent reading. I think his conclusion generalizes pretty well, with caveats.

  1. Older languages often have areas of the standard library that were written prior to new language features, so they are no longer idiomatic.
  2. Some standard library code is necessarily low-level, even dipping into the underlying language or using esoteric features. This can make for some tough sledding.
  3. Standard library code is used so frequently that it’s often highly optimized for performance, which reduces readability.

Mary Rose Cook maryrosecook.com

Git from the inside out

This essay from Mary Rose Cook explains how Git works. Who should read this? Anyone who wants a deeper understanding of Git.

The essay assumes you understand Git well enough to use it to version control your projects. It focuses on the graph structure that underpins Git and the way the properties of this graph dictate Git’s behavior. Looking at fundamentals, you build your mental model on the truth rather than on hypotheses constructed from evidence gathered while experimenting with the API. This truer model gives you a better understanding of what Git has done, what it is doing, and what it will do.

(If you’d rather absorb the same information as a talk, you can watch this video instead.)

The New Stack Icon The New Stack

How to find a mentor and get started in open source

The New Stack’s Jennifer Riggins covering Kubecon+CloudNativeCon 2021:

The Cloud Native Computing Foundation has more than 138,000 contributors making over 7 million contributions to more than 100 open source projects. It’s reasonable that getting started in open source would feel overwhelming — to say the least. So how do you get started as a contributor to cloud native projects? How do you find a mentor or guide to help you along?

She draws many solid takeaways from a panel that discussed this exact topic at the event. This quote from Grafana’s Uchechukwu Obasi is spectacular:

“I think open source really changed my life,” Obasi said. “I’m African, I live in Africa, but having the opportunity to work on software that impacts millions of lives, it’s an opportunity that I never take for granted. If open source can change my life, it can change yours too.”

The Changelog The Changelog #463

Lessons from 10k hours of programming

Today we’re talking to Matt Rickard about his blog post, Reflections on 10,000 Hours of Programming. Matt was clear to mention that these reflections are purely about coding, not career advice or other soft skills. These reflections are just about deliberately writing code for 10,000 hours, which also correlates with the number of hours needed to master a skill.

If you count the reflections we cover on the show and be the first to comment on this episode, we’ll get in touch and send you a coupon code to use for a 100% free t-shirt in the merch store. Good luck…

The Changelog The Changelog #462

Learning-focused engineering

This week we’re joined by Brittany Dionigi, Director of Platform Engineering at Articulate, and we’re talking about how organizations can take a more intentional approach to supporting the growth of their engineers through learning-focused engineering.

Brittany has been a software engineer for more than 10 years, and learned formal educational and classroom-based learning strategies as a Technical Lead & Senior Instructor at Turing School of Software & Design. We talk through a ton of great topics; getting mentorship right, common coaching opportunities, classroom-based learning strategies like backwards planning, and ways to identify and maximize the learning opportunities for teams and org.

Nikola Đuza pragmaticpineapple.com

Gentle guide to get started with tmux

We’ve all heard tmux is a great tool to have in the command line. But I never wound up learning it. Last week I found time and sat down to finally apprehend it.

In this blog post, I describe how to easily get started with tmux and what to look for. It is a great guide for beginners (like myself), but also for advanced users who want to refresh their knowledge of tmux basics.

Databases github.com

toyDB – a distributed SQL db written in Rust

This is not a use-it-in-the-real-world kinda thing. It’s being written as a learning project, but may interest you if you want to learn about database internals. It includes:

  • Raft-based distributed consensus engine for linearizable state machine replication.
  • ACID-compliant transaction engine with MVCC-based snapshot isolation.
  • Pluggable storage engine with B+tree and log-structured backends.
  • Iterator-based query engine with heuristic optimization and time-travel support.
  • SQL interface including projections, filters, joins, aggregates, and transactions.

Databases sqlbolt.com

SQLBolt – quickly learn SQL right in your browser

This series of interactive lessons and exercises is a great place to start if you want to learn SQL. And trust me: if you don’t know SQL, you want to learn SQL. Of all the technologies and tools I’ve picked up over the course of my career, SQL has had one of the highest ROIs. It’s portable across languages/runtimes and has incredible staying power in terms of skill relevancy.

Alex Ellis blog.alexellis.io

I wrote a book about Everyday Go

This is my third eBook on Go, and it’s one of the ways I’m supporting my time to make open source contributions and lead the OpenFaaS community. The book covers samples, examples and techniques that I’ve learned over the past 5-6 years.

The point is not to be an 800-page tomb with tenuous links between content, but code from real open source applications that are run in production at scale.

There’s been over 300 copies sold already and I’m offering a money back guarantee if anyone should feel it didn’t meet their expectations.

Learn rexegg.com

The best regex trick

This post does a great job of laying out all of the cumbersome/verbose ways you can solve a problem with regular expressions and then showing the tricky way of doing the same thing without all the hassle. With this trick up your sleeve, you’ll be able to answer all of these questions:

  • How do I match a word unless it’s surrounded by quotes?
  • How do I match xyz except in contexts a, b or c?
  • How do I match every word except those on a blacklist (or other contexts)?
  • How do I ignore all content that is bolded (… and other contexts)?

Ruby github.com

A pure-Ruby JIT compiler for Ruby (read it, don't use it!)

This project is no longer actively developed, but it looks like an excellent resource for anyone who is interested in compilers. Ruby is an easy language to grok, so it should make for (relatively) easy reading!

Rhizome is a paedagogical just-in-time compiler (JIT) for Ruby, implemented in pure Ruby. It’s not really designed to be used. It’s designed to show you how JITs work and why perhaps a JIT for Ruby should be written in Ruby. It’s also designed to try to go beyond the trivial aspects of a simple template compiler that introductions to JITs often show - instead it has a proper intermediate representation (IR) and shows how more advanced parts of compilers such as lowering and schedulers work, that people don’t usually cover.

0:00 / 0:00