6 ms·
A company which only hires junior developers is not a company that values quality development practices and it cannot expect to get stuff done on time, let alon
by brabel 5y ago
A company which only hires junior developers is not a company that values quality development practices and it cannot expect to get stuff done on time, let alone with high quality and industry's best practices... not that junior developers cannot be good (with proper guidance they can be awesome), but without experienced people around to guide them, and without them having experience of their own, they are bound to make every possible mistake in the book no matter how smart.
The people running the company were playing with fire and they must either be too junior themselves to understand that, or they were just knowingly doing so and hoping to get whatever product MVP they had planned as quickly as possible with the minimum amount of expenses possible.
Don't feel bad for being fired from such a company. It might have been the best thing to happen to you because now you get the opportunity of getting a proper job where you might actually have experienced people to mentor you and help you become a great developer and professional.
With that said: next time a CTO asks you to create something in a month for a demo, just go ahead and implement a mock (no DB, no error handling, just happy path code) that's just about enough for the demo, nothing else. Make it clear to the person who is going to run the demo that this is not the real deal, and arrange for only the happy path to be followed in the demo (add a few safeguards just in case so if the person does something unexpected you just ignore it, never crash!). You could have probably pulled that off in a couple of days :D but yeah, you probably thought you needed to have the real final product ready otherwise it wouldn't be demo-able... Trust me, that's almost certainly not the case.
- gentleman11 5y agoDepends on the students. The top students in a graduating class can be extraordinary compared to the average experienced person, although there is a lot they don’t know
- bluefirebrand 5y agoThe top student in any grad class is probably still going to make a ton of mistakes compared to even an average dev with 10 years of experience though. There really is no substitute for actually making the mistakes and learning from them
- pkolaczk 5y agoThe average devs with 10 years of experience also make ton of mistakes, even when developing the 10th project. Projects are not all the same. I've met people with 10+ years of experience, labeled as seniors who write horrible code. I'd take a smart junior who can think logically and who is passionate about the job over someone who has 10x 1 year experience and doesn't want to learn, or is just not smart enough. Chances are a good junior can beat such senior after a few months (sometimes even weeks) of experience on the project. And the junior typically won't fight with the tech lead over something they "have always been doing" (even when it was an anti pattern). Anyway, it is good to have at least one senior dev who is an expert on the tech stack / architecture used.
- devoutsalsa 5y agoIt doesn’t depend on the student. Every developer starts out as a dumbass. There are an infinite number of sharp edges in software and we all cut ourselves on all of them.
- asdjlkadsjklads 5y agoCouldn't agree more. The only reason i'd call myself employable as a developer is because i've taken on many self-projects and reinvented many wheels, which resulted in lots of sharp corners and hard lessons learned. It's a definite time sink to learn these lessons, but it's of real value to me personally.
- wernercd 5y ago"starts out as" 10 years in and I'm still a dumbass... I work circles around most and I'm still a dumbass... I'm close to being honestly a full stack developer - server, database, api, windows services, websites (I know Asp.net MVC... but not deeply... finally learning Angular)... ... I'm still a dumbass... I wonder... if after 10 years... will I stop being one after 20? 30?
- aniforprez 5y agoHonestly the feeling hasn't completely gone away but I've slowly stopped thinking of myself this way as intensely as I did before. What it took was strong mentorship from a really good boss and exposure to all levels of the stack and strong architectural and technical principles to building robust applications. Taking some interviews I felt much better about myself than I had in years cause I was actually able to answer things that I couldn't have a couple of years ago I hope you find that place in your life too. It's a lot of relief when it happens
- sangnoir 5y ago> ... I'm still a dumbass... While that may be true, you're less of a dumbass now, thanks to experiences. If you were to guide a junior developer now, you'd probably walk them back from a dozen sharp edges, thanks to your experience, but we tend to discount that.
- slumdev 5y agoThey may have extraordinary potential, extraordinary problem-solving ability, extraordinary communications skills, and extraordinary critical thinking skills. They may be tremendously resourceful and almost entirely independent. But all of these qualities only accelerate the learning process that happens in the real world. They don't replace it. Edit: To be fair, given the choice, I'd rather have an MIT CS grad than some schmuck who barely squeaked through the MIS program at Big State U. But I'd take a good experienced dev over either of them.
- Google234 5y agoI don’t think it would take long for the MIT CS grad to start out performing this “good” experienced dev. The experienced dev could be a principal engineer by 20 years if they cared more about CS.
- exdsq 5y agoMost projects don't require some deep CS knowledge so even if the MIT CS grad was great at getting up to speed they still lack experience of edge cases and gotchas. Most companies don't have Principal level roles. Might still make sense because they're cheaper.
- tester756 5y agoWhat makes you think so?
- longhairedhippy 5y agoNot everything is written in books or taught in classes, even the most accomplished genius is going to have gaps. Depending on the person and they're penchant for studying outside of the curriculum, those gaps could be relatively smaller between people, however it's not going to erase them. Someone who has already built a live system, potentially multiple times, is going to have experiences you cannot just intuitively reason through, you must live them. You don't need a majority of folks like this on the team but one or two could save you a lot of wasted time and effort.
- asoneth 5y agoI agree that recent graduates can be extraordinary, but a team with no seasoned developers is still a major red flag to me. I've worked on many projects, some successful, some not. The difference was often that the successful projects had a critical mass of wise people who had learned from past failures and could anticipate the pitfalls and avoid them -- it seems more rare that actual project success comes down to having yet another brilliant programmer.
- an_opabinia 5y agoI'm not sure why this is being downvoted. There's no evidence that the kind of instruction that e.g. Facebook gives its junior developers is meaningful for performance on average. However I bet hiring from top universities is definitely meaningful for performance on average.
- cortesoft 5y agoIt isn't the instruction on the job that is important, it is the experience of actually doing things in anger
- rejectedandsad 5y agoThis is probably true, top university admissions is a function of innate ability, and programming is too apparently.
- gbear605 5y agoA junior developer is going to have a lot of blind spots because of unknown unknowns. A team with both talented junior developers and experienced senior developers can utilize the raw ability of the junior devs while having the senior devs cover the blindspots. A team with only talented junior devs will likely make some great things but they’ll also wind up having crucial problems that will only late into the project.
- emsy 5y agoI know exactly why you’re being downvoted: most developers identify as the average experienced developer and can’t handle the fact that they can be outperformed by an extraordinary rookie (although such people usually have a lot of experience from working in their free time).
- tgv 5y agoI don't think that was the point. Rather, it's that many rookies, including bright graduates, think "meh, I can run this SQL script without making a backup first."
- ClumsyPilot 5y ago"most developers identify as the average" That is what average means Let's make this more obvious: Imagine that in you have to produce Nitroglycerine, explosive set off by the slightest of mistakes. Would you rather it done by someone superbly clever, but straight out of uni, or someone who's average, but has done it for 20 years and survived?
- Google234 5y agoWell if you are happy that you found someone that can follow a checklist then fine. I doubt the top tier grad would want that type of job anyway.
- ClumsyPilot 5y agoDo you know how many hundred top tier chemical and nuclear scientists died while "following the checklist"? Look up Demon Core
- ClumsyPilot 5y ago"A stupid person can make only certain, limited types of errors; the mistakes open to a clever fellow are far broader. But to the one who knows how smart he is compared to everyone else, the possibilities for true idiocy are boundless."
- wonderwonder 5y agoFew things as frustrating as coming back a year later to uncommented code written when you thought you were being smart.
- abunuwas 5y agoThere're very few extraordinary students who can start contributing from the start. But those students are already stars of their own, not the kind you can hire. For the vast majority, there's a very long journey from graduation to professional developer. This applies also to PhDs, and yes, also from the best universities in the world (I have those in my team often). A company that only hires junior graduates as devs is a company that doesn't take software seriously. Such companies often collapse under their own weight
- neither_color 5y agoThere is a reason years of experience matters more than class GPA or school rank. Being a good student in many cases just means being able to cram for exam week, it says nothing about your consistent habits. Software is a marathon not a final exam.
- gentleman11 5y agoGPA doesn’t have anything to do with being a good student
- pjc50 5y agoI've worked with all sorts of brilliant people and genuine 10x developers, and it's true both that students can achieve great things and that anyone can make a mistake - and that low-quality work environments like that of the OP can force anyone to make mistakes.
- 6510 5y agoOthers have to fill your gaps. I have no problems telling people their methods are wrong even if they might fire me over it. We either fix it or I'm gone.
- erdo 5y ago> although there is a lot they don't know I think that's exactly the problem. Re top students I assume we're talking about things like a deep knowledge of algorithms, implementation details of relevant languages, the latest frameworks, being comfortable writing in an object oriented or functional style, being extremely smart, having a lot of working memory, loads of energy and enthusiasm, being able to grasp complicated concepts quickly etc (I've never met a recent grad who is even close to that, but I understand it's at least theoretical). But experience lets you do things like push back a little on the requirements (because you know that what is being asked for is not actually what is wanted). Or choosing path A instead of path B because you know that path B will come back to bite your team later because you've seen how it played out a few times before. Knowing which things will make the biggest difference to the speed or quality of delivery, whilst costing the least to implement. You know what problems you should ignore and what problems are serious risks. Things like that can sometimes make the experienced developer a 10x programmer, it's certainly not because they're typing 10x faster than anyone else.
- dudleypippin 5y agoI agree with your assessment. “Experience is what lets you recognize a mistake when you’re in the process of making it a second time.”
- gentleman11 5y agoDespite the deluge of downvotes, recent grads and dropouts formed many of the worlds largest companies, and many you work for them or for their successors. Linux was started by Linus while in school as well. I don’t know why this is getting so much hostility Bill gates Michael dell Zuckerberg Jobs Dorsey (Many others) I’m sorry this makes so many people mad but… stop looking down on people Also, why are people conflating high gpa with being a top student? Top student means “the best at creating software” https://en.m.wikipedia.org/wiki/History_of_Linux https://en.m.wikipedia.org/wiki/History_of_Linux
- jjav 5y ago> although there is a lot they don’t know That "although" is the whole point. Knowing the technical basics (language syntax, getting things to work) is the easy baseline. What's missing in every studente (unless they went back to school after a solid stint in industry) is the experience of understanding the processes and approaches required to build something lasting and to operate within a larger team.
- onion2k 5y agoAn app like the one the author of the article is talking about doesn't need "extraordinary" coders. The reason for the crash was that someone entered invalid data. That is a very simple, and very common, problem that you only start to understand with a bit of experience. You don't need to be a brilliant genius to understand it. Literally every dev whose worked on a few apps can deal with it. But you do need to have worked with real QAs and real customers in order to understand that people do stupid things that you need to protect against. No one is teaching that in a compsci class. Juniors learn that from seniors. If you have no seniors, demos failing on "obvious" things is exactly what happens.
- djsweet 5y ago> The people running the company were playing with fire and they must either be too junior themselves to understand that, or they were just knowingly doing so and hoping to get whatever product MVP they had planned as quickly as possible with the minimum amount of expenses possible. Knowingly playing with fire like this is a sign of a lack of maturity, both on the founders part and the investor’s part. Anyone experienced in the business of building software would have known that: 1. It takes time 2. Time takes funding 3. It’s probably not going to work the first time you try an end-to-end test Mature founders would have found mature investors to give them both the funding and the time to stabilize the software. They would not have attempted to make their investor demo the first big end-to-end test, and even if they did put off testing they would have communicated that to the investors, who should have understood the state of their investment only six ~months~ weeks in.
- tarsinge 5y ago> The second fault was the CEO’s. He didn’t even try the app once before presenting it to the investors. That says it all regarding maturity and/or professionalism, that’s the number #1 job of the CEO.
- throwawayboise 5y agoThe CEO should not be presenting the app in the first place. Product demos should be done by someone who knows the product inside and out, knows where the unfinished bits are (if any), and has experience presenting products to investors/buyers.
- MobileVet 5y agoHave to disagree on this a bit. The meeting in question was with an investor. The CEO should be the point person for all investor relations... especially the first meeting with said investor. If your CEO can’t ‘sell’ the product / app/ company to an investor effectively, you won’t last. The CEO should absolutely have the skills, knowledge and energy to sell whatever it is your business does
- dheera 5y ago> A company which only hires junior developers Part of it is also stingy investors in the ecosystem. The top-tier investors often give enough cash to hire experienced developers. Unfortunately most companies don't get that kind of money, and instead of getting the $2M round they need, they settle for a third- or fourth-tier VC's $200K check with bad terms and a warrant for the rest of the $1.8M, and then they end up paying their employees crap wages and overworking them with the hope that they can attract a top-tier VC for the next round.
- caeril 5y ago> A company which only hires junior developers is not a company that values quality development practices and it cannot expect to get stuff done on time I wish this wasn't such a common trope among the VC, FAANG, or Fortune 500 crowd. Believe it or not, there exist a million small businesses who don't enjoy the luxury of burning OPM, who can't afford $200k developer salaries, no matter how much they want to. In one sense, you're ABSOLUTELY CORRECT. But here in the real world, in flyover country, revenue will always constrain resources. Those of us running small, stable businesses are forced to make tradeoffs that FAANGs or cash-burning VC-funded operations don't have to. That said, yes, the people in this story seem to be the gambling, poor-management types and the OP shouldn't worry overly about losing this "opportunity".
- gizmo686 5y agoIf you are a software company, then paying market rate for quality developers is table stakes. It is an expensive market to operate in and you care competing with very well funded global competition. Most small business are not that. If you are running a tailoring business, or an ice cream shop, or a landscaping, you probably don't need a senior developer. Heck, you might not need to hire any developers at all. As long as you have someone technically inclined, you can probably manage your digital presence well enough without it being anyone's full time job.
- amelius 5y ago> next time a CTO asks you to create something in a month for a demo, just go ahead and implement a mock But expectations have shifted and management now expects to get the real thing.
- brailsafe 5y agoIt may be a blessing in disguise, until an employer asks you why you left your only work experience, and you have to dance around a bit to persuade them to give you a shot.
- ratww 5y agoNah. Just tell them there were only junior devs and no seniors and people will understand why you left.
- cutemonster 5y agoUnless that new company is also [...]
- cowvin 5y agolol yeah, but then you're just dodging the next bullet.