8 ms·
Depends 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 do
by gentleman11 5y ago
Depends 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.
- miscaccount 5y agoi feel also with time, you get better from recovering from these stupid mistakes faster and also come up with better solutions/fixes faster. This will have taken your younger self , twice or more to understand the problem and come up with solution
- devoutsalsa 5y agoYou also getting better at owning mistakes without making them sound like a big deal. You just say stuff like “that’s an interesting edge you’d only learn by querying a table with millions of rows” instead of anxiously shitting your pants in shame. Last Friday learned that Postgres (and apparently MySQL) will effectively ignore an index in a column when combining “ORDER BY … LIMIT …” and “WHERE some_column IN some_array”. I had introduced a query that timed out on a critical prod table , fixed it by removing the limit, and turned it into a teaching moment to others who could have made the same mistake: https://stackoverflow.com/questions/8909163/avoid-full-table-scan-in-mysql-while-using-order-by-with-limit https://stackoverflow.com/questions/8909163/avoid-full-table...
- _dibly 5y agoI'm almost two years into self-employment and I'm wondering when I'm going to either stop cutting myself on things or land a position with some people who can show me their cool scars for a while. This forum is the closest thing I get to coworkers and I don't even understand what half of you are saying. I'm fortunate for the opportunities that I have, but my antisocial tendencies and lack of professional peers can make progress a bit of a bear on occasion.
- throwawayboise 5y agoIt never ends, unless you stop advancing/keeping up. That's the frustrating thing about this field, you are never an expert because the technology advances so quickly.
- flir 5y agoIt's just as important to develop the soft skills as the hard skills, and I think you've just quite nicely summarized why that is.
- ficklepickle 5y agoI'm in a very similar situation, just a few years further down the road. I would gladly show you my cool scars. I have often thought about trying to build a network of like-minded individuals. Of course, it doesn't come naturally. If it did, there wouldn't be a need for it! My contact info is in my profile, feel free to reach out.
- solraph 5y agoI'm somewhere between two and three decades in the field. > when I'm going to either stop cutting myself on things Never. You (should) get better at recognising some of the themes and danger signs, but the field evolves so fast that at some point you are going to work with something so new that literally nobody knows what the sharp edges are. > land a position with some people who can show me their cool scars for a while. Meetups, slack, discord, IRC, forums. Find the one that works for you and be a regular. Be an expert in one subject and be modest and willing to learn when it comes to others. Nobody has it all figured out.
- 5y ago
- 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.