Professional Development – 2025 – Week 9

Image Credit: https://www.flickr.com/photos/54585499@N04/

.NET

WhenAll vs WaitAny

  • Task.WhenAll(taskList) will wait for each of the given tasks to complete. You need to take care about exception handling, though.
  • Task.WaitAny(taskList) will wait for the first completed task.
  • Task.WhenEach(taskList) returns an collection of tasks such that you can use it in a loop: await foreach (var task in Task.WhenEach(taskList). This allows you to get more information about the task including fault states.

The Craziest Feature .NET Released in YEARS

The StringComparer class supports a new option — CompareOptions.NumericOrdering — that allows you to do things like have “07” equal to “7”. Another use case is when you have string values in a collection (e.g., HashSet) that need to be treated numerically. Also, the .Order() method can use a comparer which is useful for comparing things like “Foo 9”, “Foo 10”, “Foo 11” — where “Foo 9” would appear last because ‘9’ > ‘1’.

Leadership

The 4 Types of Thinking Leaders Need to Practice—and Teach

  1. Expert thinking — deep knowledge in a particular field, developed through years of experience, training, and practice. Useful when you need a quick response based on well-defined rules, and when prior experience/knowledge offers a clear solution.
  2. Critical thinking — asking why and not accepting things at face value. Useful when experts disagree, traditional approaches don’t solve the problem, and when symptoms keep recurring.
  3. Strategic thinking — long-term, high-level perspective to imagine what could be. Useful when making decisions with long-term consequences, thinking about the future, and anticipating how things may change.
  4. Systems thinking — ability to see how different parts interact with and affect each other. Useful for understanding a complex situation, identifying patterns and relationships, and taking account emergent qualities.

Software development

Naming conventions for Git Branches — a Cheatsheet

At my last job, we used a particular convention for branch names. This article shows the more common approach seen in other repositories.

Learn JavaScript Hoisting in 5 Minutes

Functions (and var to some extent) get hoisted (moved) to the top of the file before parsing. Code is executed from top to bottom file-wise.

Technology

The AI Hoax is Destroying America with Ed Zitron

There are way too many points to give this a proper summary (or maybe LLMs could try!). This interview between Adam Conover and Ed Zitron — rather long at over 90 minutes — attempts to explain why AI has been oversold and the reasons behind that (line must go up). One takeaway is that it’s not about using technology to solve problems; it’s about using technology to make money.