The fastest way to get to the top in any field, whether it is arts, sports or software development is to study the people that are already at the t...
Some comments have been hidden by the post's author - find out more
For further actions, you may consider blocking this person and/or reporting abuse
Where can I find those junior devs? I wish that anybody would do tests except for some old-school nerds.
My skills, traits and habits that I didn't have as a junior:
What I mean: it's easier said than done to focus, to take your time, to say no, to have nothing to prove once you have reached some level of experience, but proabably more importantly, a certain level privilege and safety. It makes no sense to study quotes of rich people like a late Steve Jobs or Warren Buffet if you're a young student struggling to pay your rent.
Mentioning Kobe Bryant, he was already cool as a rookie, and now he is giving back something to the community. He is a real role model!
Testing is only useful if the tests actually catch bugs. Tests are not useful when they force the developer to fix existing tests, everytime new functionality is added even though the new functionality isn't broken.
All teams I've worked in that had a big emphasis on testing, just did half of the amount of work building features, because the other half was wasted writing and updating tests that never actually flagged a bug and the software they delivered had just as many bugs as "untested" software that I have worked on.
TDD sounded fun 10 years ago, but it failed to proof itself.
Nowadays I prefer to write a test, only when a bug occurs that we didn't get notified about and then only write test(s) to catch that specific kind of bug.
100% @brense - I can emphatise. Tests are a means to an end, not an end on itself
The real benefits of Tests is when they are used on CI/CD when submitting a PR and before deploying the project.
Not if they hold up deployment for no good reason, like implementation changes. Automated testing in CI/CD pipelines can become a massive bottleneck, bringing entite companies to their knees. Most teams CI/CD pipelines work better if they just do a few unit tests on critical business logic and get someone to do functional or acceptance testing.
entire*
Now Kobe is giving back? Please elaborate how so.
"mentor young kids and get them into basketball" saved you time.
This was such an informative read. I'm just starting out, currently on a bootcamp mid career switch and hearing from a senior Dev like this is just what I needed to read this morning. Interestingly TDD is a huge part of my learning at the moment and your section about this was eye opening.
Thanks!
Best of success on your journey @gruitt and thank you for the feedback
Very nice piece of article. Thank you for sharing your awesome knowledges.
Thank you for the feedback @arafatweb
One question here: Does a senior developer have to strictly adhere to architecture guidelines compared to a junior developer?
I'm curious to know.
I would say no. Guidelines are guidelines, not absolute rules.
Also, guidelines are tools. Sometimes they apply, sometime not. When you have a nail, you use a hammer. When you have a screw, you use a screwdriver.
Junior find a golden hammer and try to use it everywhere.
Intermediate know when to use a hammer and when to use a screwdriver.
Senior know that, sometime, using a hammer to nail a screw is better. (when nailing a screw in chipboard wood, fibber will prevent the screw to going out, making it more robust than using a simple nail or screwing the screw 😋).
+1
One of the biggest difference between senior and juniors is that seniors can improvise where as junior need stricter rules to follow. The more senior someone is, the more they can make good decisions, faster and with limited information. Seniors will take architecture guidelines as recommendations but always take the context in consideration before making a decision.
Very good article! Also, (most) juniors learn only from their own mistakes while mid/senior also learn from the mistakes of others
Impressive
It all makes sense, thanks for writing it down!
Thank you for the feedback @luckyshuii
ju.edu.jo/Home.aspx
Very interesting read, thanks
Great write-up, thanks for sharing
Thank you for sharing this, I can relate to most of the points.
You are welcome @keshavkishor
Interesting read, lots of valid points, but there's no clear cut factor that determines if you're a senior or what you need to do to be one, but having a mentor that can help you in your journey is a very good way to make progress.
Thanks @dsaga - 100% agree, is much easier if you learn from someone that has been there before
I wouldn't say that there aren't seniors who focus on one or two frameworks/technologies. If someone puts react in their title it's could be because they are advertising themselves to potential employers. I know when there's a technology that I want to use in my next job, I make sure to highlight it a bit so that I get the attention of employers who are doing stuff that I am interested in.
There are also all of the devs who are specialists on a specific technology. Can't tell you how many times I've run into a dev who made their career on a framework like rails or phoenix and that's what they want to continue doing. I say this as someone who has been in the industry for almost 25 years. While I consider myself to be a polyglot but it's also valid to be a master of one specific ecosystem/technology/domain. What's important is that these devs are open to learning something new should their job call for it.
Anyways, just wanted to throw in my two cents; good article overall.
A lot of this is complete rubbish. For example, TDD isn't about writing a test to check your code after writing the code, it's done beforehand and the code is written to pass the test, then refactored if needed. And you should always try to follow best practices no matter what level you are!
Generally, yes, but I definitely wouldn’t say always. Sometimes devs spend too long overthinking or over-architecting when you can find answers faster by just building.
Senior developers often exhibit traits such as strong problem-solving skills, effective communication, mentorship capabilities, a deep understanding of software architecture, and the ability to lead and collaborate within a team. Junior developers aspiring to reach senior roles can benefit from mastering these traits to enhance their career growth and contribute effectively to their teams. " Download CapCut " to create engaging videos and showcase your coding journey as you develop these essential skills.
For juniors aspiring to excel in software development, learning from senior developers is invaluable. Senior developers exhibit traits that juniors can master to enhance their skills. These traits include effective problem-solving, strong communication, mentorship, continuous learning, and a deep understanding of software architecture. Embracing these qualities will undoubtedly contribute to a junior developer's growth. It's like being a "Door Bell Geek" – always ready to learn and adapt, just like a doorbell that responds promptly.
This article is really informative. Whenever I was reading your points, I was thinking of our TL and now I understand how or why he do those things (especially the part of design principles)
Thanks for the feedback @harsh2909, glad you found it useful
As a for real senior software engineer I approve this article
Good writing
Thanks so much.
Hi, thanks for your great article, where can I find more information about “Mental Model” section? I cannot understand that.
🙏 Thank you for the words of insight and discernment! Your advice on maximizing our time to reach the goal of becoming a senior developer is invaluable.
Thank you so much. This is insightful.