6 ms·
It seems millennial achievement medals have now become job titles. Two years to become a senior engineer out of college is a joke. You only just know how to wor
by aronpye 6y ago
It seems millennial achievement medals have now become job titles. Two years to become a senior engineer out of college is a joke. You only just know how to work in a general sense in that time frame, domain expertise comes much later. After a University degree, you only really know what page in your textbook to turn to when you recognise a problem. I come from a mechanical engineering background and it probably takes between 6-8 years to become a senior engineer, and it genuinely takes that long to learn enough so that you don’t harm someone with your shitty design.
- geofft 6y agoI don't see what this has to do with millennials. Leaving aside that "achievement medals" were generally made for the sake of the parents and not the child, it certainly wasn't millennials who came up with, say, the idea that banks should have thousands of vice presidents. In any case, it is absolutely possible to have significant domain expertise in software engineering two years out of school. When you're seeing results of the things you build within minutes, you can pick up experience quickly. I agree that you still have a lot to learn, and I did, but I was meaningfully capable of providing technical leadership two years out of school.
- aronpye 6y agoNo, but millennials sure do demand such titles.
- geofft 6y agoOnly in the sense that we demand to be judged by our knowledge and ability and not by our age. If you're going to make a title and say "nobody's eligible for this until they're 40," we'll certainly try to prove you wrong. If you don't make the title, millennials as a group aren't going to care.
- aronpye 6y agoExpertise and experience is broadly correlated. Titles should also be earned, and that requires time in order to deliver work in multiple scenarios that proves your abilities.
- geofft 6y agoThey are broadly correlated, yes, but you can absolutely spend 20 years learning nothing and 1 learning a lot. Do you think that the writer of this article has not earned their title? If you didn't know about the number of years, would you still come to the same conclusion? Maybe another way of putting this is - leaving aside the word "senior," do you agree that the writer of this article has some skills that people new to the industry do not?
- aronpye 6y ago> do you agree that the writer of this article has some skills that people new to the industry do not? No, not really from what I have gleaned from that article. Most of his knowledge seems to be surface level chauffeur knowledge, he never talks about fundamental data and instructions beneath the abstractions. However, it is not fair for me to judge him based on one article alone and without reviewing his work, I’m talking in a more general sense.
- deleted 6y ago[deleted]
- darkerside 6y agoYou can generally replace the word millennials with people without changing the accuracy of the statement. Your statement is a good example.
- mettamage 6y ago> Two years to become a senior engineer out of college is a joke. Sure > After a University degree, you only really know what page in your textbook to turn to when you recognise a problem. No. My first job during college was to create an iOS app for a researcher (an extensive multimedia questionnaire). What I did: take Hegarthy's course, and understand it. After that, I simply could create the app by thinking logically. I didn't refer back to the course while I created the app. My first job out of college was upgrading some Java CRUD app. I had the fortune of teaching at a coding bootcamp (as I self-taught NodeJS and then taught it). That NodeJS experience, including with having familiarity with the Java syntax was enough to edit files for a Spring Boot application. Simply by reading the code, I understood what happened and how they wanted me to design things. No textbook required. > don’t harm someone with your shitty design. It's possible that might've happened.
- aronpye 6y agoYou may have had the ability to create a fairly simple app or add to an existing one with low stakes / impact. But, it takes time to be able to quickly reason from a fundamental, first principles levels in order to engineer robust solutions to problems. On a side note, I don’t agree with bootcamps as they don’t teach the core principles of computer engineering and software design. Coding is just a skill, and you need some fundamental knowledge behind it in order to execute it safely and robustly.
- mettamage 6y agoYou're making a lot of assumptions about my situation that you can't backup with evidence. It might be true. It might not be. But you seem to make a strong stance for that I worked on apps with low stakes/impact and that they were fairly simple. You don't know that, so why paint that view so strongly? > On a side note, I don’t agree with bootcamps as they don’t teach the core principles of computer engineering and software design. I did both. I studied CS and happened to work as a teacher at a coding bootcamp while studying CS. > Coding is just a skill, and you need some fundamental knowledge behind it in order to execute it safely and robustly. Emphasis mine. I disagree with this. I've seen many experienced software engineers knowing nothing about how to hack (important for safe code execution), I've had a couple of courses in it and did some hackthebox.eu after that. So I know as much about hacking as I know about software engineering, I'm a junior in both cases. Nevertheless, I am the one that finds major security vulnerabilities in the code of the company I work for. A lot of security issues isn't fundamental as the "fundamentals" are things like: "look for configuration errors" or "look for hardware bugs that hardware vendors haven't looked deeply enough yet" or "look for a place where humans are careless" (e.g. the suidbash vulnerability is an example of the last one). That's a lot fuzzier and vague than CS fundamentals.
- spectramax 6y agoThe definition of “senior” is vague and subjective. When you try to say objective things such as “6-8 years to become senior”, that’s meaningless because “senior” is undefined.
- aronpye 6y agoObviously becoming a senior engineer shouldn’t be based on tenure alone. In my experience, 6-8 years is roughly how long it takes to acquire enough skills, both technical, people, business, and safety in order to become responsible for a piece of work. Being a senior engineer at Facebook where your responsible for making sure Cat memes load more quickly, and a senior engineer for an industrial control systems company making weapons guidance systems are totally different levels of responsibility. But, job titles are often transferable and should be better regulated across the industry.
- geofft 6y agoAnd in my experience it takes two, if you're good at what you do. You probably get more responsibility for systems that deeply affect people's lives and the world around us as a new grad at Facebook than as a mechanical engineer, which is probably part of it. And you probably do pick up more skills about building reliable systems, threat modeling, product planning, etc., all of which would be transferrable to other types of engineering. It's unfair that people working on a global CDN can see the results of their work in seconds and people working on a military weapons contract see the results of their work in years, but it's true.
- whymauri 6y ago>Being a senior engineer at Facebook where your responsible for making sure Cat memes load more quickly, this strikes me as an unnecessarily rude dismissal of the difficulty of engineering at scale this might sound crazy, but some people are actually just good at their jobs and will, naturally, progress quicker than others.
- riffraff 6y ago
- JeanMarcS 6y agoCame to also share my surprise of reading stuff starting with the back in the days when I was just a junior 20 months ago. Even if accurate, TBH I stopped reading after that
- hijklmno 6y agoNot if someone is striving every day to become better, observe, learn, test, and adapt. For someone who procrastinates a lot and does not proactively look to improve, it might take 6-8 years!
- worc3131 6y agoI don't know if this comment is serious, but I'd suggest you explore the idea that you don't know, what you don't know. With a few years of experience, you can feel comfortable in a technology stack and seen and learnt from a few mistakes. You may know the names of other areas, and played around with them a bit, but you won't understand their pitfalls. This is not enough to make decisions. Software is not easy, it's far too easy to make reasonable design choices, that turn out in the long term to be poor. These can cripple large scale systems. There is so much that you can't learn from books. Reading Mythical Man Month does not make you Fred Brooks, reading Shoe Dog does not make you Phil Knight, nor does reading a medium article on event driven systems make you ready to implement one. Imagine that the college of surgery acted in the same way, a surgical trainee who has worked for a few years and reads a lot may feel comfortable taking the lead in a surgery, but will be out of their depth the moment things deviate from normal. I spoke to a surgeon about this once, and he described how he taught a particular procedure. At one point he has his student reach in to the body, with the explaination that 'it should feel like this'. No book can substitute that experience.
- hijklmno 6y agoWhat you say is true. Perhaps, a distinction ought to be made between mere mortals like us, and the obsessed ones. In our era where information is more easily available than food, and where experienced people willing to help, are just as reachable, I think for someone who dedicates the time towards mastery, 2 years will take him/her very far.
- tonyarkles 6y agoI say this as someone who started learning to program on his own at age 8, and is now 37: > I think for someone who dedicates the time towards mastery, 2 years will take him/her very far. You might get very good at a particular niche in 2 years. You will not have learned the lessons you learn when you go back to a five year old project yet and make changes. You will not have the breadth of experience from having worked intimately with dozens of teams in different languages, cultural expectations, and business domains. Honestly, the more I learn, the more I know I don’t know. As an example, last year I had an opportunity to work on robotic control systems. I dusted off my calculus and linear algebra skills from way back, implemented calculations that ran in under 1ms, and has a ton of fun doing it. Could I have explained a Jacobian before starting that project? Not likely! Do I use it in other stuff now too? Definitely.
- tomalpha 6y ago"Senior" at Bloomberg certainly used to be (when I worked there) a title used to distinguish between [just-graduated] hires and [everyone else]. The cut-off was explicitly two-years out of university. It had very little to do with true real seniority within the R&D tech organisation/hierarchy. I'd guess at the poster not quite realising this themselves. It certainly used to be the case that the many fresh new graduates we recruited annually took quite some time to learn how much they didn't know.
- Cthulhu_ 6y agoHonestly I've got ten years of experience by now but I have no clue what "level" of seniority I would be at, because I've never worked at a company that had "levels"; you had roles like front/back-end developer, maybe architect, but not really any formal gradations in between. Pay differences maybe, and skill levels, but those were never formalized. Is there an online test or something where you can "gauge" what tier you'd end up in a bigger company that has tiers like that? I'm not convinced I'd end up anywhere at the top because I lack things like knowledge about compilers or algorithms, things I just don't need to know in my day job.
- ThrowawayR2 6y agoLarge tech companies usually have a career ladder that describes the expectations that come with a particular job level / title. Most aren't published externally but they look something like this example: https://www.ctl.io/developers/blog/post/career-path-of-a-programmer/ https://www.ctl.io/developers/blog/post/career-path-of-a-pro... [EDIT] Here's a slightly more detailed example from Thumbtack: https://docs.google.com/spreadsheets/d/15ACBs-crUHnqf1wANUQwX9oZIDOi5tvJJXGWpKTcf00/edit#gid=0 https://docs.google.com/spreadsheets/d/15ACBs-crUHnqf1wANUQw... They can get much more complex than this though at the really big tech companies.
- onion2k 6y agoI think people forget just how new the web industry is. The web itself has literally only existed since 1992. It's only been commercially viable to charge people for websites since around 1995. Web development in the modern 'building apps that are accessed in a browser' sense has only been done for about 20 years. If you're talking about 'single page apps' that drops to about 10 years. Someone with 2 years experience in web development has been working in the industry for 10% of the entire time the industry has existed. If they've got a 3 year degree and a few years building things before that as a kid, they might have been making web stuff for 50% of the time anyone in the industry has been working in it. "Time served" as a measure of experience doesn't really work in an industry that's as new as the web, nor does it work in an industry where the barrier to making a website is knowing how to open Notepad.exe. Really good people could definitely make senior level by the time they've been working professionally for 2 years.
- room500 6y agoFrom a technical standpoint, I agree that good people can reach the bar of senior engineer very quickly - potentially right out of school. However, there are aspects of a senior engineer role that are not commonly learned in school or by hacking on hobby projects. How do you effectively lead a project? How do you balance requirements? How do you say no to stakeholders? How do you balance time vs quality? All engineers need to be good at the technical side of the job. But as you rise in seniority, the job includes more and more judgement calls. Those judgement calls require years of experience.
- onion2k 6y agoHow do you effectively lead a project? How do you balance requirements? How do you say no to stakeholders? How do you balance time vs quality? Moving someone up to a senior role is giving them the opportunity to take on more responsibility and develop their skills. Very few people are promoted to a senior role already knowing how to manage a team well or how to balance requirements. The expectation is that they've shown an aptitude and potential in a mid-level role, and that they'll learn those skills after they're promoted in to the new role. Promoting someone to senior isn't a reward for already doing everything a senior does. If you treat people that way, and give mid-level people the responsibilities of senior roles without the pay or title, then they will leave very quickly to get jobs where they do the work of a senior with the pay and title of a senior.
- pjc50 6y agoTwenty years ago I was promoted to "senior" three months out of university, for the adhoc purpose of improving the number of senior developers on our pitch to clients. On the other hand, that was the dotcom era. The number of people writing software simply exploded, as did the available technologies. The entire traditional way of doing things was simply obsoleted, multiple times over. A 21 year old Finnish student had released an operating system that contravened the textbooks and went on to change the world. A 21 year old dropout invented the entire genre of 3D video games. The largest software company in the world was run by a Harvard dropout. It was really impossible to overstate the extent to which credentials were meaningless and results were everything in the dotcom era. And that still affects the culture today. > between 6-8 years to become a senior engineer If you follow that timeline, there would be plenty of people who were millionaires and on their second or third startup board before reaching "senior". Now, not everybody is a Gates or a Carmack or a Torvalds, although the industry has not quite adapted to this fact and still tries to hire as if they were. But we have to recognise that the timescales are simply very different from mechanical engineering, and that the industry is still very much being disrupted from below. Oh, and none of those prodigies are millenials.
- bryanrasmussen 6y ago>If you follow that timeline, there would be plenty of people who were millionaires and on their second or third startup board before reaching "senior". What does being a successful entrepreneur have to do with being a senior engineer?
- pjc50 6y agoWell indeed. If you can write an app well enough to earn a million dollars, what use do you have for other people's opinion of your seniority?
- bryanrasmussen 6y agoI guess, although the arrow of time moving as it does I probably wouldn't want Jerry Yang developing my web app despite the great success with the last one he made.
- switch11 6y agoI agree 100% with you Have worked as both PM and developer and now run my own very small software company A) two years senior engineer is like one of those consulting companies where everyone in 2 years becomes DIRECTOR B) In two years most new programmers have not even gotten their heads out of their asses C) You should refer to Outliers 10,000 hours to master a task And to that add 10,000 hours to make your first masterpiece D) Even if you have managed to get 10,000+ hours of coding experience in high school and college and somehow become a very good programmer (which less than 3% of CS grads do) it will still take you 6 to 10 years to get another 10,000 hours of working on masterpieces and making really good software that you can ship and make money from E) a title like 'Senior Software Engineer' should be reserved for someone who has MADE and SHIPPED and GENERATED MONEY from a very good piece of software or some software product F) Personally, I would think any company handing out Senior Software Engineer titles after 2 years is a joke Between all the places my friends and college mates and I have worked (Microsoft, Google, Amazon, Facebook, Oracle, etc. etc) I can't think of any place that handed out Senior Software Engineer like it was candy Even very, very good programmers had to EARN IT
- mellosouls 6y agoE) a title like 'Senior Software Engineer' should be reserved for someone who has MADE and SHIPPED and GENERATED MONEY Not all software is made to make money. There is a more convincing argument that saving time is a motivator in a significant proportion of software either directly or indirectly; but honestly that ugly assumption of monetary motivation in everything of value is quite alienating to some of us - even in something as benign (?) as a discussion here.
- bauerd 6y agoTime is money
- mellosouls 6y agoThat saying is why I suggested time as a more useful (but still limited) alternative.
- jpangs88 6y agoSo I very much agree with the sentiment I started writing a similar comment, but if you scroll down to the very last sentence (it's a bullet point) of the article it says that the author is not a senior engineer.
- phist_mcgee 6y agoOh boo boo. And who gave those millennials those achievement medals? Their boomer and gen x parents. Stop blaming young people for problems that existed before they were born.
- doonesbury 6y agoAgree. Nothing about this reads senior engineer. The writing is quite lacking. The material isn't technical, or engineering oriented. It's essentially self promotion.
- mohankumar246 6y agoTitles don't actually translate across companies well, that is more true across industries. Also grads will see their peers get a new title at some other company 2 years after college. A new title with a good raise at another company is definitely a reason enough to leave the current one. With avg. stay of 2-3 years at a company it makes sense for a company to try to retain sw talent with a title change whether or not it changes the meaning of work.