6 ms·
How to Become a Great Software Engineer
- austin-cheney 3y agoWhile I agree 100% I do feel many of these points are frequently ignored by impatient people looking for tricks, gimmicks, and tools that solve for convenience opposed to solving for challenges.
- rewmie 3y ago[dead]
- sebastianconcpt 3y agoAs I always repeat: Convenience (instant reward) is to humans, what light is to bugs.
- lincpa 3y ago[dead]
- jongjong 3y agoThe thing I hate the most about the tech industry is that there is very little correlation between skill and reward and because everyone who has an economic voice believes that there is a correlation, we get led down all sorts of crazy fickle paths littered with anti-patterns and overengineered tools... And the narrative keeps changing randomly depending on which nerds happen to stumble upon a successful business case at which point they are given the platform to impose their technology ideas on everyone else... Nevermind that they had 100x the budget of an average company and solved all their tech problems via brute force and dirty hacks. IMO, there was a time maybe 15 to 20 years ago when the software industry knew what it was doing and there was a concerted effort to produce optimal, maintainable code but it seems that most companies just gave up and software became cheap, fragile and disposable.
- groestl 3y agoThis list, as presented in the blog post, is a great list though. Succinct and to the point. And in fact, just how I went to become a hopefully decent enough SE.
- rco8786 3y agoThere was never a time when the industry “knew what it was doing”. Everything you described was exactly the same 20 years ago. Nor is any of it specific to the software industry. It’s just normal experimentation and churn, driven by capitalism chasing profit at the macro and individualistic drive for more influence at the micro. Same as it ever was.
- seanhunter 3y agoThis is not just a problem with the tech industry. In society in general there is only a weak correlation between skill and reward in lots of places and the variance in outcomes is very high and is dominated by factors like the socioeconomic background of your parents, race, gender etc that you don’t control. However since you don’t control those factors you are better off improving your skill, which you do control. Maybe later you will be put in a position of importance where you can make optimal decisions that end up widening the funnel and reduce the importance of those things by hiring and promoting the best people for the job and caring about good dev practise. I’m not buying your idea that 10/15 years ago the industry knew what it was doing and cared about quality though. I’ve been a professional software engineer for 25 years now and software quality as a whole has always been dire. There definitely is a minority of folks who care about it as there always has been so gravitate towards them.
- sebastianconcpt 3y agoI feel you about this issue of skill/reward ratio. And I've kept meditating a bit for some reason. What came to mind now is that, for making it "work better"(improve that ratio) the software engineer could try to see himself as a bulldozer operator where he is the skilled one, of course, but the software he makes is the bulldozer. The reward is neither on them but in the outcome produced by the combination of them. How much material he could remove or push from here to there. That's why the STAR method is necessary in resumes or in interviews for example. We're so passionate about software that we could be easily become myopic about results and forget to talk about what's the outcome of the things we produce and use.
- ecef9-8c0f-4374 3y agoIsn't the TIOBE index more of an "engagement" index than a indexes "of popularity" A good designed language will perform worse than a language where people struggle and ask a lot of questions online? If I rant about java, because I love Csharp. Doesn't java get rated as more popular?
- sk11001 3y agoTIOBE doesn't even measure engagement, it's just outright useless. For one example of its stupidity, Visual FoxPro, a proprietary language which has been dead for 8 years - https://en.wikipedia.org/wiki/Visual_FoxPro https://en.wikipedia.org/wiki/Visual_FoxPro - is ranked higher than TypeScript.
- KronisLV 3y agoFor anyone looking for perhaps something a bit more relevant, StackOverflow has some nice surveys: https://survey.stackoverflow.co/2023/ https://survey.stackoverflow.co/2023/ Also, there are surveys by JetBrains: https://www.jetbrains.com/lp/devecosystem-2023/ https://www.jetbrains.com/lp/devecosystem-2023/
- leoh 3y agoWorst engineer I knew was an L9 at Google. But he was brilliant. There’s no right way to be a great engineer. If someone tries to tell you there is, they’re full of shit.
- zsoltkacsandi 3y agoCompletely agree.
- ThinkBeat 3y agoCould you expand on that a little? Did he not contribute as expected on projects, but he was a smart person. Or was his approach unconventional?
- leoh 3y ago‘Worst’ in the original comment means —‘bad’ from the default perspective that is prevalent at tech giants (perfect code coverage, everything makes sense always — as opposed to allowing for freedom to iterate, rewrite, and create exceptional software that people find helpful and love). He is extremely good at prototyping quickly (including things that can be quite complex — even with good code quality), building things people really want, and collaborating with users. Had he not come into Google via an acquisition, it seems unlikely that Google would have supported him and recognized his formidable talent (and I doubt he would have had the patience for Google’s typical pedantic code review process — I’m not saying Google’s code review culture is ‘bad’ but it can be extremely alienating to many gifted individuals). Working with him has been an exceptional lesson in challenging my default assumptions about what being a ‘great’ software engineer can mean. … and especially that there’s no one ‘right way’ — there’s just what works for some folks and what works for other folks. As you can imagine, although I can respect aspects of Google’s culture, I am strongly against the philosophy that there is ‘one right way.’
- Ferret7446 3y agoI interpreted your original comment to mean: he is horrible as an engineer but a generally smart person otherwise. It sounds like what you meant is that he is a great engineer, but he doesn't satisfy certain qualities that would usually be considered requirements (or at least required at Google) for a good engineer?
- tgv 3y agoAbout 4: I swear by "dog fooding." I've seen quite often that someone picks up a request (issue, story), and interpret its in the first way that comes to mind. That's natural, if only because users rarely express their needs clearly. What helps is using your product as a user would. Understand your users tasks and needs viscerally. That makes it easier to get a welcome result, and shorten the prototype-critique cycle.
- bjornsing 3y agoThe OP forgot an important point: 0. Move to the United States of America If you miss that one the rest is pretty pointless, unfortunately. For example, in (at least most of) Europe you would be much better off studying blogposts titled “How to Become a Mediocre Manager”.
- hasty_pudding 3y ago[flagged]
- Etheryte 3y agoAnecdotal experience, but I know way more people who have moved from the US to Europe than the other way around. Money is only one measure, quality of life in your day to day environment is something else completely.
- hmottestad 3y agoNorway and Sweden seem pretty desirable to immigrants.
- hasty_pudding 3y ago[flagged]
- xenic 3y agoJapan,New Zealand,South Korea,Singapore,Taiwan,Canada…?
- beezlewax 3y agoEurope is not a country.
- hasty_pudding 3y ago[flagged]
- ahoka 3y agoFull of outdated advice. Tiobe? SOLID? Come on, these were never really relevant, and less relevant now.
- regularjack 3y agoI'm not familiar with Tiobe, but completely disagree that SOLID is irrelevant. I consider it to be as relevant today as it has always been.
- sk11001 3y agoIt's also fairly obvious and common sense stuff. I'm not convinced that thinking about these principles in the abstract is helpful at all.
- drewcoo 3y ago> It's also fairly obvious and common sense stuff. "Common sense" means stuff you "know" but most people don't. That's why some people try to codify and share rules for what works. https://www.psychologytoday.com/us/blog/the-power-prime/201107/common-sense-is-neither-common-nor-sense https://www.psychologytoday.com/us/blog/the-power-prime/2011...
- kebsup 3y agoAgreed. I've seen multiple people trying to follow solid and clean code producing terrible unmaintainable code. The codebase I've recently inherited has useless interfaces and wrapper classes for literally anything. I.e. a simple write to local storage in a flutter app requires 6 files/classes to get done.
- imetatroll 3y agoIt is painful reading "clean architecture" based code. It... just kill it with fire. The indirection and abstraction turns even simple problems into overly complex nightmares.
- kebsup 3y ago[flagged]
- hasty_pudding 3y ago[flagged]
- sebastianconcpt 3y agoIt's funny how you can focus in fundamentals and see all interviews focusing on frameworks. And a not so obvious nuance: The a perverse side of this is that the business reward there, to what extent is not inducing the (pseudo)programmed obsolescence of frameworks into engineer's careers? But no worries, AI can take care of the details right? Should be even a stronger case for engineers focusing on fundamentals and using AI as assistants on the details.
- rzzzt 3y agoHow do I learn... Gitwill?