Devs, Hear Me Out: You Don't Know What You're Doing!
And that's not okay ƪ(“╰ _ ╯ )ʃ
Written on July 31, 2024 · 4 min read
In recent years, a fascinating phenomenon has emerged in the tech world: a new breed of developers who have taught themselves how to code using online resources, YouTube tutorials, and a sprinkle of Stack Overflow magic. These instant, self-learned developers are jumping into the fray, building apps, websites, and even startups. But there's a catch—they often don't fully understand what they're doing.
Before you judge me, please hear me out: I'm not against self-taught developers, I deeply understand that learning how to code is not easy, and I totally respect the efforts, but I'm against the "just get it working" mindset.
The internet is a treasure trove of coding tutorials and resources. From "Learn JavaScript in 30 Days" to "Master Python in a Week," anyone with a computer and internet access can dive into coding. This accessibility has led to a surge in self-taught developers who, with enough determination, can build functional software. It's an exciting development, democratizing the field of software development and opening doors for those who might not have traditional educational backgrounds.
One common trait among many self-learned developers is the "just get it working" mindset. Faced with a problem, they turn to Google, find a snippet of code that seems to do the job, and paste it into their project. If it works, great! The job is done. However, this approach often skips over the understanding of why the code works, how it integrates with the rest of the system, or what potential issues might arise.
This method can be likened to learning a few phrases in a foreign language. Sure, you can ask where the bathroom is, but you might not be able to understand the response or continue the conversation. Similarly, these developers can assemble a product, but they might not grasp the underlying principles of the technologies they're using.
The main issue with this phenomenon is that while these developers can create working products, they often lack a deeper understanding of the code they're writing. This can lead to several problems:
-
Debugging Nightmares: Without understanding the core concepts, diagnosing and fixing bugs becomes much more challenging. What happens when a mysterious error appears? Often, it’s a cycle of searching for answers online without truly understanding the root cause.
-
Scalability and Performance Issues: Code that works for a small number of users might not scale efficiently. Without knowledge of data structures, algorithms, or best practices, performance can suffer as the user base grows.
-
Security Risks: Lack of knowledge about secure coding practices can lead to vulnerabilities. In an era where data breaches and cyber-attacks are rampant, this is a significant concern.
-
Maintenance Challenges: As projects grow and evolve, maintaining and updating code becomes critical. If the original code is poorly understood, it becomes a Herculean task to add features, fix bugs, or refactor.
The good news is that the situation isn't hopeless. Here are a few ways for self-learned developers to deepen their understanding:
-
Go Back to Basics: Invest time in understanding fundamental concepts like data structures, algorithms, and design patterns. This foundational knowledge will make everything else easier to grasp.
-
Read Documentation: While tutorials are great, the official documentation often provides the "why" behind the "how." It’s invaluable for gaining a deeper understanding of a technology.
-
Build and Break: Experiment with small projects where the goal is to understand every line of code. Break things on purpose and then fix them. This hands-on experience is invaluable.
-
Seek Feedback: Engage with the developer community. Code reviews, discussions, and collaboration can provide insights and learning opportunities that solitary study cannot.
-
Continuous Learning: The tech field evolves rapidly. Stay curious and keep learning. Take courses, attend workshops, and read books. There's always something new to learn.
For instant, self-learned developers, the first step is often building something cool, but the real growth comes from understanding the building blocks of what they create. It's okay not to know everything—no one does. The important thing is to keep learning, stay curious, and embrace the bugs along the way. After all, every great developer was once where you are now, wondering what the heck they were doing.
Becoming a proficient developer is a journey, not a destination. Good luck on your journey!
This note is written by Diky Hadna — Software Engineer & Digital Nomad Mentor. Read my story and get in touch with me!