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

科技回声

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

GitHubTwitter

首页

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

资源链接

HackerNews API原版 HackerNewsNext.js

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

Ask HN: What should be a software engineer's core competency?

11 点作者 FahadUddin92超过 6 年前
What should they dive deep into?

8 条评论

mtmail超过 6 年前
As you said yourself a couple of days ago, there are many not a single one. I could answer &quot;problem solving&quot;, &quot;project management&quot; or &quot;time management&quot; but that wouldn&#x27;t fit the &quot;area in tech&quot; answer your employer is looking for.<p>&quot;My new employer is telling me to develop a core competency (pick up an area in tech and become really good at it)&quot; <a href="https:&#x2F;&#x2F;news.ycombinator.com&#x2F;item?id=18038148" rel="nofollow">https:&#x2F;&#x2F;news.ycombinator.com&#x2F;item?id=18038148</a>
BjoernKW超过 6 年前
Engineering is about solving real world problems.<p>In order to be able to so you need to be able to communicate, as in &quot;listen and ask good questions&quot;. Good engineering starts with accurately assessing requirements.<p>Design and design skills are vital, too. As an engineer you shouldn&#x27;t just consider specific technical solutions but also take into account how those fit into the bigger picture and benefit the customer or - more generally - the user of the thing you&#x27;re building.
sp527超过 6 年前
Creating value. It sounds abstract but so far it&#x27;s proven to be the most reliable and incontrovertible motivating ethos in my career. When you adopt a value-creation mindset, it washes into the calculus of just about every decision you make.<p>So, for example, if you&#x27;re an early-stage company, a value-oriented mindset will lead you to the most efficient approach to get a working MVP. You might think about how you&#x27;ll evolve the system, but you won&#x27;t do something stupid like try to manage a complex Kubernetes deployment from the outset. You&#x27;ll be careful not to introduce too many components into the system, understanding how even things that appear simple invariably affect the total risk profile of your system and, by extension, your business. You proceed in a manner such that the tech is responsive to and mirrors the business&#x27; requirements.<p>In data analysis, you won&#x27;t go down stupid rabbit holes asking questions with answers that no one would care about. You&#x27;ll prefer reliable, grokable statistical modeling on larger datasets to say using a deepnet to fit noise on a gratuitously tiny sample. You&#x27;ll understand and accept that there are often questions you simply cannot accurately answer with the information available to you. You&#x27;ll do the sometimes monotonous work of helping to instrument your business with metrics, because you understand that a business that can&#x27;t quantify itself is effectively DoA (and therefore good instrumentation is among the highest value contributions you can make).<p>Honestly, I&#x27;ve discovered that the technical problems are nearly irrelevant. There&#x27;s almost always a way. It&#x27;s deterministic. What&#x27;s so much more important is knowing how to identify the best use of your effort to drive value. The 10x engineer, in my mind, is someone who knows how to avoid blackhole projects and shitty decisions that eat up resources in exchange for a paltry or highly indeterminate return.<p>Note the above is largely relevant to resource-constrained businesses, which is most orgs other than maybe FAANG and similar.
评论 #18206861 未加载
crunchlibrarian超过 6 年前
I think the most upvoted answer will be problem solving, but instead I think it should be a broad liberal arts education, ethics, and learning how to say no. We&#x27;ve had enough of building machines as efficiently and ruthlessly as possible, it&#x27;s time to start questioning the what and the why instead.<p>I have a friend who quite literally works on cluster bombs at Lockheed Martin and says they see no connection between their work and anything else in the real world. They just make &quot;tools&quot; like people at Facebook, it&#x27;s not up to them how the tool is used.<p>We don&#x27;t need any more software engineers like this who are good at solving problems and not much else.
MrEfficiency超过 6 年前
This is far too generic, but here are some types of competencies-<p>&gt;For Full Stack<p>Being a database expert, being a data expert, and API usages.<p>&gt;For Embedded<p>Electrical Engineering(Primary) and Mechanical Engineering(as needed)<p>&gt;For Automation<p>I&#x27;d simply recommend to prove yourself on Automation. When others are dazzled, you made it.<p>---<p>Any of these would be something that co-workers will be coming to ask you questions about.
mathattack超过 6 年前
Curiosity and Persistance
matt_the_bass超过 6 年前
Learning quickly and understanding implications of cause and response.<p>IMHO This is a skill that should be a core skill in nearly all professions.
mindcrime超过 6 年前
It&#x27;s kinda up to you to decide, and what you decide will help dictate how your career evolves. It may be the case that your employer has some idea(s) in mind, in which case you should probably just ask - at least if you intend to stay there a long time. OTOH, if you accept that you&#x27;ll likely move around throughout your career, and treat the whole thing as kinda fuzzy&#x2F;probabilistic, then you have a lot of freedom to choose your core competencies... but recognize that you may evolve to the point where changing jobs (possibly even having to relocate geographically) may be necessary to keep on the path you choose.<p>All of that said, I can think of a few possible things to consider developing as core competencies:<p>1. Deep, deep knowledge of a specific language (Java, Go, Python, Rust, C++, COBOL, Agda, whatever)<p>1a. Deep knowledge of a lot of the associated tooling &#x2F; ecosystem <i>around</i> your chosen language. For example, if you decided to become, say, a Java specialist, then the natural extension to that would be diving deep into an IDE like Eclipse or IntelliJ, a build tool like Maven or Gradle, popular libraries and tooling like JMS using ActiveMQ or HornetQ, the Servlet API stuff (if you want to build web apps), testing tools like JUnit, TestNG, EasyMock, etc., etc. If you chose Go as your language there would be a similar, but slightly different, list of &quot;associated stuff&quot; to consider. Note that Go or Rust might have a smaller &quot;ecosystem&quot; than, say, Java or Python, simply due to being younger. Further note that if you chose something a bit more esoteric (by modern standards) like, say, COBOL, then environment around that would likely be markedly different from that around more mainstream platforms like Java, Python, Javascript, etc.<p>2. Big Data -- you could choose to dive deep into Hadoop, Spark, Flink, Storm, and all of the trappings of the &quot;Big Data&quot; world.<p>3. HPC -- you could focus on C++, FORTRAN, etc., using MPI, OpenMP and the like, building Beowulf clusters, focusing on scientific computing, etc.<p>4. Machine Learning &#x2F; AI<p>5. Embedded Systems -- firmware, device drivers, other low level programming. Maybe doing assembly language, or C&#x2F;C++<p>6. Front end development - learn all about Javascript, HTML, CSS, React, Vue, etc.<p>7. Cloud -- learn all things cloud development --&gt; all about one (or more) of AWS, GCE, Azure, Alicloud, etc.<p>Of course you could also look at all of those domains and try to pick out &quot;what is common across all of these areas&quot;, and you&#x27;d probably wind up with something like &quot;problem solving&quot; as others have noted. And that <i>is</i> kinda core to everything. But it&#x27;s arguably also just the price of entry, and something that should just be assumed for a competent software engineer.<p>Note to that there is always <i>some</i> overlap. Even if you are a &quot;front end developer&quot; there could well be times when you need to know some SQL or something. So you want depth and breadth of knowledge at the same time. Hence the idea of the &quot;t-shaped&quot;[1][2][3] person. Of course you can have more than one vertical bar, so you could be sorta &quot;n shaped&quot; or &quot;m shaped&quot; as well. Anyway, it&#x27;s just a metaphor so don&#x27;t get too caught up in it.<p>[1]: <a href="https:&#x2F;&#x2F;en.wikipedia.org&#x2F;wiki&#x2F;T-shaped_skills" rel="nofollow">https:&#x2F;&#x2F;en.wikipedia.org&#x2F;wiki&#x2F;T-shaped_skills</a><p>[2]: <a href="http:&#x2F;&#x2F;coevolving.com&#x2F;blogs&#x2F;index.php&#x2F;archive&#x2F;t-shaped-professionals-t-shaped-skills-hybrid-managers&#x2F;" rel="nofollow">http:&#x2F;&#x2F;coevolving.com&#x2F;blogs&#x2F;index.php&#x2F;archive&#x2F;t-shaped-profe...</a><p>[3]: <a href="https:&#x2F;&#x2F;stemfoundation.org.uk&#x2F;asset&#x2F;resource&#x2F;%7B3EA5228A-B620-4783-AE91-190F2C182DAA%7D&#x2F;resource.pdf" rel="nofollow">https:&#x2F;&#x2F;stemfoundation.org.uk&#x2F;asset&#x2F;resource&#x2F;%7B3EA5228A-B62...</a>