TE
科技回声
首页24小时热榜最新最佳问答展示工作
GitHubTwitter
首页

科技回声

基于 Next.js 构建的科技新闻平台,提供全球科技新闻和讨论内容。

GitHubTwitter

首页

首页最新最佳问答展示工作

资源链接

HackerNews API原版 HackerNewsNext.js

© 2025 科技回声. 版权所有。

Ask HN: What qualities show that you're an experienced software engineer?

20 点作者 arcontethegreat超过 4 年前
I was wondering about what programmatic & design qualities draw the attention of experienced engineers & developers and signal whether you're a novice or a veteran.

16 条评论

d0paware超过 4 年前
1) You can anticipate complexity - the what, where, when and why of how it shows up. You are not afraid of it, but...<p>2) You manage your time well - yours and others&#x27;. Figure out when complexity needs to be handled. Respect other peoples&#x27; time, they also have important things to do that don&#x27;t involve you. While you could spend 1 month to figure out the answer to this gnarly bug in open source software after running strace and tcpdump and poring over the linux kernel source code...ask yourself - is this the best use of my time? The answer might still be yes. Just don&#x27;t forget to look up every once in a while.<p>3) You prove your skill at 1) and 2) to yourself and others by empirically testing your decisions and evaluating the results.<p>4) You realize there are trade-offs to every decision you make. This sounds trite until you recognize that things that seem like no-brainers to you aren&#x27;t, to others. This also applies to how you choose your workplace. Every place I have ever worked at has one really fucking annoying issue, but I have seen enough of these that I can rank them in preference.<p>5) You are aware of how others perceive you. Peer feedback on your performance should never be a surprise to you. If people were scheming against you, you probably should have known.<p>I guess after you feel comfortable with these things, you kind of stop caring about the answer to &quot;am I experienced enough?&quot;
ev1超过 4 年前
Knowing when to not over-design for the task you need: do you really need to spend an extra week to add generics and factories and extensibility to a service that will only ever do one thing and one concept, ever?<p>Do you know how to write testable or mockable code?
softwaredoug超过 4 年前
You say &quot;programmatic &amp; design qualities&quot; but I actually think a senior developer is more productive because they enhance team health by creating vision, mentoring junior devs, and effectively articulating their vision. This ultimately is the difference: can you expand your productivity by setting the team&#x27;s pace and get others bought into a vision on how things should be done? If no, you could be the smartest tech wizard in the world, I&#x27;m not sure you&#x27;d be an effective senior dev.<p>A senior dev helps ensure the team is healthy. What&#x27;s a good team?<p>- Do they get sh*t done. Do they deliver what they need to? Does it ultimately work?<p>- Do they work well with others. Do they serve their customers and stakeholders? Or are they perceived as a bunch of a-holes?<p>- Do they have a healthy mix of new talent&#x2F;ideas and seniority?<p>- Does the team develop emotional safety and trust? Are constructive differences of opinion brought into the open, or is dissent stifled causing conflict to fester?<p>- Do they know what they&#x27;re after? Have they self organized around shared culture, principles, and working practices for getting there?<p>A good senior dev is like one of the &quot;team captains&quot;. The team captain is a top player that pushes the other players to produce, but also learns how to leverage and mentor fellow teammates in the game.
评论 #26027505 未加载
评论 #26032417 未加载
austincheney超过 4 年前
Suggestions differ between theory and practice. As a JavaScript developer here is my experience, not my preference or wishes:<p>* Know a framework and many of its supporting tools.<p>* Don’t spend any time learning the technology or how things work except where the framework dictates.<p>* Spend lots of time on code reviews instead of writing code yourself.<p>* When making changes do not refactor or improve the code. Keep the lightest footprint possible, as determined by your diff, to minimally complete the current business requirement.<p>* Don’t ever write original code. Use multiple NPM packages, or other code from elsewhere, to produce a solution. Software written by you or your team should be considered less valuable than anything you can find externally.<p>* Prepare lots of documentation for new hires. Defer all other documentation to project managers, information architects, and product owners.<p>* Don’t spend any time on security or accessibility until the layers tell you to. Most senior engineers just assume they are experts here anyways.<p>* The word <i>innovation</i> sounds important. Use that word as much as possible on anything that leaves the team.<p>* if a problem is too hard or requires something original you can always hire a contractor and then value them less for not being an employee and because they are foolish enough to write original code.<p>* Never be a contractor unless the employer is a sinking ship.<p>* When it comes to design that which is shiny always wins.<p>* Always remember less isn’t more.<p>I personally disagree with all these points. I have been a senior developer for many years, only because I can provide solutions others cannot, but my career is basically peaked unless I want to do something else.
martinopp超过 4 年前
&quot;A senior developer can develop a whole application from scratch by himself. Senior devs know about design patterns, architecture, automating testing, performance, security, debugging, bug fixing, testing, validation, etc. This doesn&#x27;t mean they don&#x27;t have questions or make mistakes, it means they know how to identify problems and where to find the right answers. That&#x27;s why they are the ones who get assigned highly complicated tasks that require an exhaustive level of knowledge.&quot;<p>Source: <a href="https:&#x2F;&#x2F;lightit.io&#x2F;blog&#x2F;identify_seniority_level&#x2F;" rel="nofollow">https:&#x2F;&#x2F;lightit.io&#x2F;blog&#x2F;identify_seniority_level&#x2F;</a>
RustyRussell超过 4 年前
Fear.<p>In particular, fear of complexity. The perfect is the enemy of the good, to misquote Voltaire.
评论 #26021614 未加载
d--b超过 4 年前
My view is that senior devs do not roll out features for end users, they roll out features for other devs.<p>As a senior dev, your end-users are more junior devs. And the product you’re building is the Api you give them.<p>So a good senior dev will do what good product people do. Talk to their users, find where their pain points are, make sure they have the most delightful experience one can have, etc...<p>It’s like senior engineers in car factories. They’re not building the cars, they’re building the robots that build the robots that build the cars...
评论 #26031234 未加载
hkarthik超过 4 年前
I can throw an ambiguous business problem at you and you can reasonably solve it with technology.<p>Your seniority is based on how big a problem you can solve and how reasonable your solutions remain.
jmchuster超过 4 年前
Three things:<p>- know all the tradeoffs and possible options you need to make<p>- have the judgement to balance and choose correctly<p>- be able to execute no matter the mix of choices
lkstart超过 4 年前
You get stuff done with minimal supervision. You have solved different types of problems and can make the judgement of the best tech to use to solve a new, ambiguous problem.<p>You have led projects, mentored team members, are the go-to person for something (could be a project, tech).<p>You are able to scope a solution in terms of time, # of devs, storage needed etc.<p>FYI, I&#x27;m launching a resume builder tool for tech roles and would love feedback! If interested please sign up at <a href="https:&#x2F;&#x2F;calendly.com&#x2F;learnable-beta&#x2F;uxr" rel="nofollow">https:&#x2F;&#x2F;calendly.com&#x2F;learnable-beta&#x2F;uxr</a>.<p>In exchange for up to 30 mins of your time, I&#x27;m offering 30 mins of ask-me-anything career coaching!
jimmyvalmer超过 4 年前
It&#x27;s a safe bet to inversely correlate quality of coder with SLOC.
评论 #26022910 未加载
AnimalMuppet超过 4 年前
Knowing the right direction to go to build what needs to be built. If you don&#x27;t know, knowing how to find out.<p>Writing fewer bugs. Trying to expose the bugs you&#x27;ve written. Checking on corner cases.<p>Handling errors rather than assuming they won&#x27;t happen.<p>Naming things well.<p>Using appropriate languages, frameworks, tools, and coding paradigms for the problem at hand.
segmondy超过 4 年前
knowing how to start.<p>knowing what things to say no to.<p>knowing how to simplify.<p>knowing how to focus on the core that counts before everything else.<p>knowing that simple is not necessary equivalent to easy.<p>knowing how to separate research &amp; development and not commingling them.<p>knowing how to keep going, knowing how to be unstuck when stuck.<p>knowing how to finish.<p>not falling for most new shiny things.<p>being resourceful with the things you have.
cbanek超过 4 年前
Using the right tool &#x2F; pattern for the job, vs rather than hacking at it. Generally simplicity and lack of code I think show a veteran at work.
giantg2超过 4 年前
If you work in the finance sector... fancy new car, expensive clothes, offload all your home work tasks to others (drycleaner, lawn care, mechanic, contractors, etc). It&#x27;s all about the prestige and reputation.<p>Edit: Nice to see my personal experience is considered worthless by the downvoters.
评论 #26026968 未加载
convolvatron超过 4 年前
to invest whatever is necessary to get the team and the project over the finish line - not just my piece.