During my tenure as a software engineer of 10 years, mostly in a startup environment, I've seen many developers of varying skill levels come and go. I've noticed a few things that hinder their development. As I reflect, I realized that I suffered from these as well, especially early on in my career.
I'm writing this post to hopefully help you reflect as well, and ask yourself, "Am I doing any of these?"
Understand the Roots: Fundamentals Over Frameworks
It's imperative you learn the fundamentals of software development; at the minimum, understand the fundamentals of the language you work with. Having the fundamentals provides a solid foundation for you to learn new languages, concepts, and frameworks efficiently.
You might say to yourself, "I already know the fundamentals. I use this language everyday." Do you really understand it on a deeper level?
Here are a few litmus tests:
- Can you explain this technology to a non-technical person?
- Can you build something functional without relying on a framework?
This is because many people tend to learn the framework as opposed to the language, especially when they're starting, which leaves critical gaps in their knowledge.
Type it Out: The Danger of AI Code Generation
This isn't a jab at AI tools, but using them for code generation can be more of a hinderance than a help. There's an old piece of advice that seems to be lost: "Don't just copy and paste code from Stack Overflow." This advice is more important now than ever now that AI has replaced Stack Overflow for the most part, in my opinion.
You can still use AI, but I recommend turning off agent/code-generation mode. A better approach is to read the proposed code, ask questions about it, and type it out yourself once you understand what's happening.
Typing it out forces your brain to process the syntax and logic. This allows you to truly internalize what you're doing, compared to passively letting a generative tool do the work.
Go to the Source: Why Documentation Still Reigns
It's true that AI can explain how an API or library works, but it might not understand the nuances, security implications, or obscure quirks of that library.
Being able to read documentation is such an important skill because it shows that you're willing to get down and dirty. Furthermore:
Better Debugging: Understanding how the code works from the source makes debugging significantly easier.
Edge Cases: Reading documentation can help you see critical edge cases or deprecated features an AI might not know about.
Collaboration: You can work alongside the AI to solve a problem instead of being fully dependent on it.
Embrace the Discomfort Zone
If you're going to work in software development, you will inevitably be put into positions that might make you uncomfortable. This discomfort is often a sign of growth.
Some scenarios that can cause discomfort include:
- Working with constantly changing requirements or scope.
- Being asked to develop using a tool, language, or platform you've never used before.
- Engaging in high-stakes architecture debates with senior colleagues.
Being able to navigate changes in scope is an integral part of being a software developer, as business needs usually dictate the direction. Discomfort is also a feeling you will experience when learning something new. It's totally normal to feel that way, and the more you are used to it, the less hesitant you will be to learn and grow.
Getting used to being in these types of situations will allow you to perform better and ultimately accelerate your career.
These are some tips that helped me improve as a software developer. I hope that you find something here that can help you get better.
Top comments (0)