Ask HN: How to learn software development concepts crucial for senior roles?

Hi HN, I'm working at an early stage startup, and want to learn about concepts and patterns that are crucial for senior roles, like: - Batch Processing - Messaging Queues - Microservices - Design Patterns - Which techniques to apply while working on a task - Properly debugging

Is there any online resource or somewhere I can see this in practice? Or any newsletter, youtube channel that discusses this in detail?

My go to sources are open source repositories where I try to understand the code bases and some PRs. But I feel overwhelmed with the resources.

9 points | by swirly-mcswirl 5 hours ago

8 comments

  • giantg2 13 minutes ago
    To me, the biggest things are hard to teach and are related to human processes.

    One is treating your team well and developing the juniors under you, including understanding that each individual may have different needs or require a different approach.

    Two is that the best theoretical technical approach is not usually the best real life approach. The number of times I've seen technically elegant code fail because of human systems is quite high. A real example... Yes, I see you used maps and spread operators to concatenate shared vs core values in a CSP file that's shared between multiple sites in a monorepo. How do you think we can maintain that between multiple teams when we don't have clear delineation of ownership? The code works elegantly, but the human processes around ownership to maintain it are absolutely garbage. You should duplicate the shared CSP for each site and task them with stripping out any unnecessary entries for their own file/site. If not, then at least we can open vulnerabilities against individual sites. But hey, telling my TL that didn't work so now we're in a shitty position.

  • gregjor 5 hours ago
    Will Rogers said "Good judgment comes from experience, and a lot of that comes from bad judgment."

    I can't think of any substitute for experience. You can read and study what you call concepts and patterns, just like you can read about baking a cake, but you can't get experience from study. You practice, make mistakes, stretch your abilities every day, and with luck you find good mentors.

    • namaria 3 hours ago
      Yup. Can only beat search after doing search. Goes for the larger societal systems and for the individual as well, because there's no shortcut to search the space of socially acquired knowledge.
  • viraptor 1 hour ago
    There's a few conferences posting quality talks on YouTube. See Goto (https://youtube.com/@goto-) NDC (https://youtube.com/@ndc) GDC (https://youtube.com/@gdconf) Eficode (https://youtube.com/@eficode-oy)
  • roetlich 3 hours ago
    Hi Swirly, most youtube videos will not help that much, other than conference talks. I recommend going more slowly, and comfortably reading books. For example "Designing Data-Intensive Applications", based on your interests. Don't read it over a weekend, read it over a couple of months.

    Your focus should also shift a little bit more towards helping others, thinking about where the whole team is going, etc.

    But give it time. As long as you keep learning, you will get there. :)

  • 2rsf 3 hours ago
    Seniority is about breadth and nor depth. While having good knowledge in many areas is important the magic in being a senior is knowing how to put everything together, communication and integration with other teams, bridging the business and technical etc.
    • hcfman 1 hour ago
      Except that it’s not recognised by corporations anyway. Too expensive.
      • 2rsf 1 hour ago
        What do you mean? most companies' job leveling matrices have that, and many times this is what differentiate a talented engineer to a senior engineer in practice.
  • seowallet 2 hours ago
    Hi Swirly, As I know, Martin Fowler’s blog is great for deep dives into software design, and newsletters like Software Lead Weekly keep you updated on trends. For hands-on learning, focus on open-source projects or start a side project. Engage in communities like Reddit or Stack Overflow, read books (Clean Code and Design Patterns are the best) and try pair programming to learn from others.
  • JSDevOps 4 hours ago
    You’ve either got it or you haven’t. It’s just the ultimate form of logical thinking.