You can't know everything (and where I get my knowledge from)
Dennis Doomen
Microsoft MVP | Coding Architect | .NET Tech Lead | .NET Architect | C# | TypeScript | Fluent Assertions | Speaker | Trainer | React | VueJS | Event Sourcing | DDD | TDD | Clean Code
I often get asked by #aspiring software developers where to get more #knowledge and what to focus on. Even after 26 years, this remains a very difficult question. A big part of our profession is to keep up with everything that happens in our (not so) little world. The good thing is that you can make a distinction between knowledge that is relatively timeless and knowledge that changes with every back-end and front-end library or framework.
The first category includes practices like design patterns, integration patterns, architecture styles, unit testing and Test Driven Development. But also principles like unit testing, Test Driven Development, SOLID, DRY, KISS, YAGNI and how to work with an agile mindset. It never hurts to invest in those since you’ll benefit from those for the rest of your career.
The other category is more focused on whatever is hot. Choosing where to put your time and energy is a lot harder. My general advice is to keep tabs on what is happening in that area so you roughly know the pros and cons of the relevant tool, framework or technology, and only dive into the details when you need to. I don’t believe somebody can be really proficient in multiple platforms and programming languages.
In fact, even if you choose just one, there’s still a lot going on. Just look at the .NET space. You can build Windows application with WPF, Mobile applications with MAUI, web applications with Minimal APIs, Razor and Blazor. And if you dare to take the inevitable full-stack road like me, you’ll be spending time understanding JavaScript, TypeScript, React, Angular, Swelte, VueJS as well as all supporting tools like Webpack, NPM, Yarn, Astro and what not more.
Now that I’ve acknowledged my own limitations (and potential ignorance), you may wonder where?I?get my knowledge from? I use many different sources. For getting answers to specific questions I can obviously rely on my own colleagues at? Aviva Solutions . We are only 60-ish, but having several dedicated communities around custom development, Azure, front-end and testing surely helps a lot.
领英推荐
However, my primary sources of information for specific questions will always be and remain?Twitter?and Google. Especially if I’m dealing with a challenge where many options are possible and trade-offs are hard, getting specific experiences and insights from my followers is way more efficient than Google. And don’t forget about?Stack Overflow. There’s a wealth of knowledge there so it should not be a surprise that many of my Google searches lead me back to Stack Overflow.
To keep myself up-to-date, I love reading articles and blog posts, so I heavily rely on?Pocket?to keep track of whatever I come across on Twitter, Mastodon, Medium or?LinkedIN. I sometimes even read technical books, unless my attention span kicks in too early. Funny though that I don’t have that with novels from Brandon Sanderson. I’m definitely not a video guy for learning technical topics, nor have I ever watched a PluralSight training. It usually takes too much time to watch (or I’m just too impatient).
But a major other source for inspiration and new insights is to attend conferences or other in-person events. Being able to talk to other developers, with a different background, with different experiences, in a different development stack is extremely valuable. I particularly like?Open Space?discussions where people informally exchange experiences and pain-points.
This is also one of the reasons I prefer to visit the?Qcon conferences. The speakers at those conferences share honest stories and real experiences from real projects. Just don’t take everything you hear at conferences at face value. Fill your mental backpack with new ideas and use them later to make your own trade-offs.
So where do you do get your answers and stay up-to-date with your profession?
One word: messaging I'm advocating it all the time for a reason. It's fairly easy to get into, hard to do well, but extremely rewarding. Adds so many additional options, each with their own trade offs, that it also makes designing and building a system much more fun.
Helping You Avoid Pitfalls in Software Development (Internal or Agency) ??? Technical Consultant for Innovators & SMBs
1 年The abundance of interesting material is a great way to distract ourselves. I think with the right material the learning curve can be halved. The wrong approach can double your efforts to get the same results. CHOOSE, BUT CHOOSE WISELY (https://www.youtube.com/watch?v=c3RN9zz77Cs)!