In response to a developer asking about systems - Notes on software development

In response to a developer asking about systems - Notes on software development

Notes on software development

Sometimes I get asked questions that would be more fun to answer in public. All letters are treated as anonymous unless permission is otherwise granted.

Hey [Redacted]! It's great to hear from you. I'm very glad you joinedthe coffee cluband met some good folks. :)

You asked how to learn about systems. A great question! I think I needto start first with what I mean when I say systems.

My definition of systems is all of the underlying software wedevelopers use but are taught not to think about because they are sosolid: our compilers and interpreters, our databases, our operatingsystem, our browser, and so on. We think of them as basically nothaving bugs, we just count on them to be correct and fast enough so wecan build the applications that really matter to users.

But 1) some developers do actually have to work on these fundamentalblocks (compilers, databases, operating systems, browsers, etc.) and2) it's not thaaaat hard to get into this development professionallyand 3) even if you don't get into it professionally, having a betterunderstanding of these fundamental blocks will make you a betterapplication developer. At least I think so.

To get into systems I think it starts by you just questioning how eachlayer you build on works. Try building that layer yourself. Forexample you've probably used a web framework like Rails orNext.js. But you can just go and write that layer yourself too (foreducation).

And you've probably used Postgres or SQLite or DynamoDB. But you canalso just go and write that layer yourself (for education). It's thishabit of thinking and digging into the next lower layer that will getyou into systems. Basically, not being satisfied with the black box.

I do not think there are many good books on programming in general,and very very few must-read ones, but one that I recommend toeverybody is Designing Data Intensive Applications. I think it's bestif you read it with a group of people. (My book club will read it inDecember when the 2nd edition comes out, you should join.) But thisbook is specific to data obviously and not interested in thefundamentals of other systems things like compilers or operatingsystems or browsers or so on.

Also, I see getting into this as a long-term thing. Throughout mywhole career (almost 11 years now) I definitely always tried to diginto compilers and interpreters, I wrote and blogged about toyimplementations a lot. And then 5 years ago I started digging intodatabases and saw that there was more career potential there. But itstill took 4 years until I got my firstjobas a developer working on a database (the job I currently have).

Things take time to learn and that's ok! You have a long career tolook forward to. And if you end up not wanting to dig into this stuffthat's totally fine too. I think very few developers actually do. Andthey still have fine careers.

Anyway, I hope this is at least mildly useful. I hope you joinnycsystems.xyz as well and look forward toseeing you at future coffee clubs!

Cheers,
Phil


本文章由 flowerss 抓取自RSS,版权归源站点所有。

查看原文:In response to a developer asking about systems - Notes on software development

Report Page