DEV Community

Cover image for You'll be a junior forever if you don't learn
Daniel Possible Kwabi
Daniel Possible Kwabi

Posted on

You'll be a junior forever if you don't learn

You'll always remain at junior level if you think "it works" is an excuse for bad code.

Stop playing the victim when someone with more experience tears apart your code. We aren't trying to find faults. We are trying to save the product.

I recently reviewed a specific codebase. It was a disaster. Thousands of lines stuffed into two files, zero structure, just a big ball of mud. (They took the monolith literally)

So, I did the work. I segregated the code. I introduced folders. I analyzed the whole codebase, the imports, the logic, the functions, let's just say I made it modular. I cleaned up the mess.

The feedback?(More of gossip really but....) "This wasn't necessary. The original code worked."

"He just wants to make us look wrong" (If you do your job well then mine takes me 10 minutes instead of hours). "There's always something to 'fix' with him. Why change it if it runs?"

Let’s get one thing straight.
"It works" is not a standard. It's the bare minimum requirement for software to exist. A house built without pillars works fine until the wind blows.

When I break your code into modules, I am not feeding my ego. I am reducing the cognitive load for the next person who has to read this.

If you think modularity is optional or just an opinion, you haven't mastered simplicity. You’ve mastered laziness and mediocrity.

Until you can appreciate why we force you to structure your code, you aren't ready for the next level. 👇 Devs: Does "it works" ever justify a 2,000-line file?

Top comments (8)

Collapse
 
maame-codes profile image
Maame Afua A. P. Fordjour

It is easy to get comfortable just doing what I’m told, but I realize that to move past being a junior, I need to understand the "why" behind my work. I’m going to focus more on problem-solving and how my code affects the whole project.

Collapse
 
daniel_possiblekwabi_b57 profile image
Daniel Possible Kwabi

Great 👍🏾. Good luck

Collapse
 
maame-codes profile image
Maame Afua A. P. Fordjour

Thank you Daniel :)

Collapse
 
embernoglow profile image
EmberNoGlow • Edited

No, dude, 2000 lines isn't enough! I have 5000 lines in my project, plus two files with 1000 lines each. I think that many lines are good for the author, but for "code readers" it's a disaster. I think I'm one of those guys you mentioned in the article.

P.S. By the way, structures in GLSL (the shader language) require a lot of resources, so the language itself forces you to write non-edge code.

Collapse
 
daniel_possiblekwabi_b57 profile image
Daniel Possible Kwabi

Do you work alone? If so it may be fine

Collapse
 
embernoglow profile image
EmberNoGlow

Well, it depends on what you mean by "Alone." Yes, I work alone, but I have the power of AI at my disposal.

Collapse
 
ty_foster_394ea28f46a18ca profile image
Ty Foster

I was once like this if it works it works until I spent an evening fixing an issue that was missed due to long lines of code. Now as a convert I feel your pain it sometimes takes a person to be burned before they fix up. It was the case for me it was a good read and an even better reminder for standardization across the board.

Collapse
 
charanpool profile image
Charan Koppuravuri

True! Continuous learning = the only way out of junior purgatory.

The trap: Coding CRUD apps forever without understanding why they work.

The unlock: One deep dive (sharding, state machines, platform engineering) > 100 LeetCode mediums.

Daniel's wake-up call hits because we've all been there. Pick one hard thing. Master it. Level up.

What's your "forever junior" wake-up moment? 🚀