There are many people who write code. Some (many) of them are from non computer science background. Some are self-taught.
Some of them may understand Data Structures and Algorithms, but cannot write the implementation. They would have successfully delivered projects by using modern libraries/frame-works.
By doing so , they would have got good grasp over "System Design". Yet they would fail to implement a "merge-sort".
Will they still be called a developer? Are they not as good as developers from FANG companies ? Are they left behind?
F - Facebook , A - Amazon , N - Netflix, G - Google
Looking forward for opinions.
Also I am part of the "They" .
Top comments (8)
To be honest, not only are "FANG" developers no different from you or I, but in my experience, some of them actually become less skilled! There's a certain intellectual arrogance that comes with "I work at Google!!" that, if not nipped in the bud, results in utter stagnation of skill, both technical and interpersonal. And, if you don't use it, you lose it. They become immune to feedback, peer review, and personal growth. "I work at Google, who are you?"
Your question about "system design" vs. "merge sort", or what have you, is really just another offshoot of the "Real Programmers Use Butterflies" fallacy that feeds Imposter Syndrome. "If I knew how to write a merge sort, I'd be a Real Programmer™ (or a Developer™)." Fact is, if you've ever written a single line of code that did anything even remotely useful, you're a Real Programmer.
You will always have more to learn. Fact is, you may not have written a Merge Sort because you didn't need it for a project yet. It sounds like you put your time into honing the system design skills you actually needed for your project, and thus waited on learning how to implement a merge sort in order to free up that bandwidth. That shows discernment and focus, which are hallmarks of good developers.
Don't overestimate the value of Butterflies. They're worth learning how to use, but only once you find yourself needing them (or just feeling curious). You'll be learning for the rest of your career. Sit back and enjoy the journey.
Fair Enough.
I started my career as a manual tester 6 years back.
Then found interest in python, and did scripting / selenium tests.
Then moved on to backend development(with Devops) where I found interest in OOPS, Design Patters, DDD and then System Design.
May be I found interest in those because it was part of my job.
DS and Algo implementation was never part of the job. However there are still companies who hire Developers on the basis of that. I can proudly say that I have never asked candidates on those topics directly, rather asked questions relevant to the position I am hiring for.
I was wondering why the industry is not moving away from that mindset, and pay more attention to topics like OOPS/Functional Programming, Clean Code, Design Patterns etc.
By the way I did go through the excellent MIT courses on DS and Algo using Python quite a long time back .
edx.org/course/introduction-to-com...
edx.org/course/introduction-to-com...
I was just trying to represent a bigger audience with my article :)
I am at the point in my career similar to where you were. I have been manually testing for a few years now, found an interest in C# / automation and wrote my company's Selenium scripts that are still used today by myself and other testers.
Some devs in my company are a bit old school in their mindset imo. Recently the discussion of considering github for source control (or atlassian's bitbucket) in place of our current implementation of git. A dev said that a small repo should be used to try it out maybe, I mentioned the selenium repo.
He says "we should consider an actual used repo" or he may have said useful.
I understand it is not as widespread and used as some other same repos but give the codebase some credit. In hindsight I should have spoke up, but frustration got the best of me haha.
Those "old school" guys I referred in my article. There is no empathy for people who are self starter and did something productive. Selenium scripts will always be useful to the team.
I can absolutely relate to your concern . When I wrote selenium code, I used to give the respect of production code and maintain the coding standards it deserves.
I had written a blog about it as well. You can have a look.
dev.to/swarupkm/test-automation---...
Thanks for your response swarup. I will read over your referenced blog post on this as well at some point
I'm a self-taught developer. I started six years ago. I'm now a Senior developer for a very good company.
If somebody wants me to implement a merge-sort or tell them what Algorithmic Complexity my implementation is, you better believe I'm going to Google.
I wasn't hired based on my ability to retain information, I was hired as a problem solver and Google is just one of the tools in my toolbelt.
Take a look at Real developers don't ask for help.
It is, if you like, the difference between theory and application, or the difference between a computer scientist and a software engineer. I'm not knocking either, but the world needs orders of magnitude more engineers than scientists.
But, let's not make a virtue out of ignorance. You might not need to know how merge-sort works, but you'll be a better engineer if you do.
This reeks of elitism