Elevated Programming: A Veteran Developer's Insight
Throughout my career, I've worked with a broad range of programming languages, dabbling in everything from the widely used to the obscure (shoutout to those still coding in Perl). These days, my main tools of the trade are modern C++ and Python.
Honestly, C++ and Python aren't my favorite languages. I do respect C++ for its power and versatility. Even with its complexity and the initial absence of solid guidelines and a comprehensive standard library, I've grown to appreciate its evolution. Today, surprisingly, C++ is my go-to language, especially given my field of work.
On the flip side, warming up to Python has been a bit of a struggle. Its critical role in AI, a field I'm deeply involved in, means it's a staple for research, setups, and tests. Despite my gripes with dependency management and the syntax, the speed at which Python allows me to churn out initial versions makes it worthwhile, particularly because I often transition those early drafts into C++ for production.
But the real game-changer has been the emergence of AI-powered tools. Even after two decades in programming, integrating large language models (LLMs) into my daily routine has been revolutionary:
- API Design and Code Architecture Discussions: Lacking a team of available/experienced colleagues for brainstorming, I've turned to ChatGPT, Claude, and Copilot. They're like ever-present team members open for a chat about design. Sure, they tend to agree a lot, but I've found ways to challenge their biases, using them as a kind of supercharged rubber duck for debugging and design.
- Resource Discovery: Stumbling upon terminology and resources in niche areas has become a great resource with LLMs. As an example, when diving into specific computer vision topics without the right jargon, these models handed me the terminology and pointed me towards libraries I'd have struggled to find on my own.
- Clarifying Technical Concept/use cases: I recently encountered unfamiliar C++ attributes in an open-source project. Trying to better understand them could have sent me down a rabbit hole of disjointed online forums. Instead, a quick chat with ChatGPT provided clear, context-specific insights, saving me time and confusion.
- Code Generation: The magic of AI in generating code snippets has been very valuable to me, especially for creating test cases and processing data. While the AI's work often needs clear guidance and context, it pushes my projects forward and lets me accomplish more without using as much mental energy.
In conclusion, embracing LLM-based tools has not just made my work smoother; it's fundamentally enriched my programming. These tools do more than assist; they deepen my engagement with coding, bolster my learning, broaden my knowledge and ease the shift between tasks. Their true worth isn't just in offloading work but in fostering a continuous dialogue around coding, uncovering new learning paths, and expanding discovery. Even if you consider yourself a top-tier developer, leveraging LLMs could significantly boost your efficiency and innovation—or, at the very least, help manage your mental energy better.
Originally published on LinkedIn.
