I lack friends to discuss interests with. I want to study programming but have no peers in the field. They say “Hang around five billionaires, and you’ll become the sixth”, and I believe this statement is a crucial thing about personal development. Networking is not my strong point, and communities often gatekeep unexperienced newbies. So, how do I actually find interest-based buddies?


If you’re looking to network within software development communities, a user group is a good starting point. For example, I am a .NET software engineer, and the Portland Area .NET User Group was instrumental in building out my PacNW professional network. Plus their meetups are generally a fun time.
Look for API meetups in your area, it doesn’t matter what kind of APIs. Even if you have no interest in API development, API meetups are usually run by Developer Relations (DevRel) engineers. It is the job of DevRels to help software engineers become better and to connect people to resources. Source: used to be a DevRel.
And even if you live in a small or low-density region, there is probably some kind of computer users, web development, and IT group. Again, even if you’re not exactly interested in those aspects, these people tend to know senior or principal software engineers who can either connect you to resources or directly take you on for mentoring.
All that said, I frequently say “we are not meant to engineer alone,” however self-motivation is a prerequisite to programming and software engineering. Go to the library and immerse yourself in some books on software development; off the top of my head: “Modern C++ Programming with Test-Driven Development,” Refactoring, Design Patterns, “The Pragmatic Programmer,” “Code Complete,” “The Missing Readme,” “Object Oriented Analysis and Design with Applications.” A lot of these are going to go over your head at first, but just take a look at them.
Some people will take issue that I suggest learning C++ first, but I’ve been at this a while (34 years). I liken it to learning to drive a manual transmission car with no synchromesh. The difference between a software engineer who understands memory pointers and one who learned only managed languages is always immediately apparent.
Good luck out there.
how you go about learning C++ probably has an effect too, as if you’re just running a program that initially uses 2kb of ram on a system that has 64GB or similar, you probably won’t notice if it has memory leaks unless you’re checking for that 😅
Using C++ and having to handle your memory yourself does not mean you understand how to handle your memory yourself. I had a lot of colleagues who thought it would mean exactly that. I had to tidy up behind them, and I wished they’d use C# or Java instead.
Fully agreed. We’ve all had those colleagues, and their lack of deep understanding of memory management propagates up the stack. </bad pun> Can a developer know only managed frameworks and still be good at their job? Absolutely, but in my experience they are the rarity. I think it is tricky to truly understand, say, garbage collection, reference/dereference, etc without understanding direct memory management.
Extending the driver aid metaphor, features such as ABS, traction control, and lane assist allow good drivers to use their finite attention on quality, rapid decisions. But those good drivers know how to handle the edge cases where the machine fails or is unable to handle the current situation. Managed frameworks are a bucket of super sweet driver aids. There are good reasons why .NET added pointers, because sometimes we need to disable the traction control. Weird COM Interops leap to mind. Sometimes you just need to grab control of that array and be able to do so in memory-safe ways.
And to throw myself under this bus, could I whiteboard a doubly-linked list in C++ with needed methods? Gawd, no, not in the time allotted to a tech interview. But I could spot the bugs in one in seconds.