Listen, it’s just unavoidable, okay? We humans really get into our round numbers and units of measurement and here we are at the end of one unit and the beginning of another. It’s that time when we resolve that this particular unit of measurement will hold untold possibilities that somehow failed to materialize during that pesky last unit of measurement and surely we will become the best, most efficient and lean version of ourselves yet. Though many of us, of course, still approach that thought with just a touch of pessimism.
December 31 Resolutions:
1. Well-named Jupyter notebooks that run in order
2. No random temporary S3 buckets
3. Clean commit messages
4. Small p-values, good A/B tests, no peeking
5. Lots of READMEs
1. This model runs. Please, please, don't ask me how it works.
— Vicki Boykis (@vboykis) December 31, 2018
So here we are, like the rest of everyone out there, ready to talk about the year past and the year ahead. My favorite particular article on the topic this year (or last, as it were) comes from React developer Dan Abramov, who doesn’t offer resolutions on all the ways he will better himself in the year to come, but instead lays bare all of the things he didn’t know as of 2018.
“People often assume that I know far more than I actually do,” he writes, explaining that “there is often an unrealistic expectation that an experienced engineer knows every technology in their field. Have you seen a ‘learning roadmap’ that consists of a hundred libraries and tools? It’s useful — but intimidating.”
Abramov goes on to admit everything from knowing just the bare minimum Unix and bash commands, while relying on searching for everything else, to the hottest new technologies such as serverless or containers, saying he has “no idea about how to use Docker or Kubernetes. (Are those related?)”
The particulars, of course, aren’t really the point… but they can offer some comfort. Rather, Abramov points to the fact that “no matter how experienced you get, you may still find yourself switching between feeling capable, inadequate (‘Impostor syndrome‘), and overconfident (‘Dunning–Kruger effect‘).” In the end, however, Abramov says that he intends the post to show that “even your favorite developers may not know many things that you know” and that regardless of your experience, your confidence may vary, and that despite knowledge gaps, you still have value.
A few days later, Abramov returned to offer a follow-up blog post on the topic discussing what he knows and how he learned it. The post had one blurb, included below, that seemed like something to keep in mind in case you’re in the mindset of resolution:
“There are plenty of ‘learning roadmaps’ about technologies and libraries. Which library is going to be in vogue in 2019? What about 2020? Should you learn Vue or React? Angular? What about Redux or Rx? Do you need to learn Apollo? REST or GraphQL? It’s easy to get lost. What if the author is wrong? […] My biggest learning breakthroughs weren’t about a particular technology. Rather, I learned the most when I struggled to solve a particular UI problem. […] It’s this combination of understanding the problems, experimenting with the solutions, and applying different strategies that led to the most rewarding learning experiences in my life.”
Now, with all that said, hopefully, we feel well enough moving from one round-ish unit of measurement to the next, full of the knowledge that nobody knows everything and that the way forward may not be improved through specific hurdles, but rather the way you find yourself through them. For my money, I say resolutions be damned, feed the good wolf, and go forth in the year ahead writing code, solving problems, and learning always.
With that, we’ll take a look at some other blog posts and articles in the world of programming looking at the year past and ahead, taking it all with a grain of salt. Oh, and this one’s for you, PHP:
Week Year in Programming
- 2018 in Open Source: Beginning with the year behind, we get a roundup on open source licensing from Heather Meeker, a specialist in open source software licensing and strategy. Meeker notes the several business exits of the year past, including of course Red Hat’s acquisition by IBM and Microsoft’s purchase of GitHub, but also Elastic, Mulesoft, Magento, Pivotal and Heptio, which she all lists as having “big financial wins this year, proving the viability of open source businesses.” Beyond business exits, however, Meeker also points to Microsoft’s promise to limit patent litigation and a paradigm shift in open source licensing as “Redis, Elastic, Confluent, MongoDB, and other businesses adjusted their business and licensing models, largely in reaction to the explosion in cloud-based services using their software.”
- Facebook’s 2018 in Open Source: Facebook offers a blog post looking at its own 2018 in open source, in terms of its efforts and contributions, writing that they “believe in the value of open source technology to achieve a shared goal of improving tools and frameworks used by the entire community.” According to the post, the company has “released 153 new open source projects in 2018,” with an active open source portfolio of 474 projects, entailing “more than 94,000 commits this year, nearly 28,000 of which came from amongst our over 2,700 external contributors. This healthy and vibrant ecosystem has grown to more than 1.03 million followers, including 257,000 new followers this year.” Of course, you are likely familiar with many of these projects, such as PyTorch, the open source Python-based deep learning platform that reached its 1.0 stable release just recently. The post goes on to outline several other projects of note, including recent moves to create the GraphQL foundation, alongside the founders of GraphQL and the Linux Foundation. While we’re on the topic of Facebook, here’s a wonderful little article on how Facebook keeps Messenger from crashing on New Year’s Eve. Now, if Facebook could just resolve to feed the good wolf in other ways…
Damnit, disks still fill up in 2019.
— Honest Status Page (@honest_update) January 1, 2019
- The Year Ahead for Developers: And then we have the eternal prediction posts for the year ahead, including our own conversation about where the world is heading, including a possible reduction in “AI technologies given recent privacy concerns and GDPR.” While our post offers up more of a podcast conversation, the others come in the form of digestible list-icles that we can easily point to as evidence or discard to the garbage heap of history. SDTimes, for example, gives us one of those favorite tools of PR lackeys, the collection of carefully crafted quotes from CEOs and the like in software predictions for 2019. Standout opinions include the rise of GraphQL, the arrival of actual GDPR consequences, alongside AI, serverless, DevOps, and low-code finally coming to fruition. And of course, no list is complete without something being declared dead, and it looks like business intelligence is the winner of that particular award this time around. Datanami, meanwhile, brings its predictions for application development in 2019 in the form of a deeper dive from SiliconANGLE Wikibon‘s lead analyst James Kobielus, who writes that “application development has become a cloud-focused initiative” and “a discipline in which data science is assuming a greater role.” Kobielus’ predictions center around the rise of cloud-native technologies, DevOps methodologies, and the rise of AI behind much of it. Also, he writes that “Python, Kotlin, and Rust will become core languages for building new applications.” And finally, moving beyond predictions, PacktHub gives us its list of 18 people in tech every programmer and software engineer needs to follow in 2019.
- Here’s to Perfect Code in 2019: Lastly, we send you off into the new unit of time measurement ahead with an inspiring story in Wired of so-called perfect, hack-proof code. From the article: “The technology that repelled the hackers was a style of software programming known as formal verification. Unlike most computer code, which is written informally and evaluated based mainly on whether it works, formally verified software reads like a mathematical proof: Each statement follows logically from the preceding one. An entire program can be tested with the same certainty that mathematicians prove theorems.” Read on, it’s worth it.
— DEV Community 👩💻👨💻 (@ThePracticalDev) December 31, 2018
— I Am Devloper (@iamdevloper) December 31, 2018
The Linux Foundation and Red Hat are sponsors of The New Stack.
Feature image via Pixabay.