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

科技回声

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

GitHubTwitter

首页

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

资源链接

HackerNews API原版 HackerNewsNext.js

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

Ask HN: Senior software engineers, what are CS areas you are bad at?

2 点作者 dondraper36将近 2 年前
Recently, I have been thinking a lot about the gaps in basic CS areas like networking, computer architecture, operating systems.<p>Regardless of how very often high level programming languages abstract away such fundamental knowledge, it still feels wrong not to know how web servers work under the hood.<p>My approach is similar to what Julia Evans does (except that I don&#x27;t write about it in such a talented way as she does). Whenever there is something I don&#x27;t understand, it becomes a small investigation.<p>What are some areas that you don&#x27;t understand but would like to know better?

2 条评论

RattlesnakeJake将近 2 年前
Time management. I don&#x27;t know how anyone can build a system for juggling:<p>- Continual questions&#x2F;mentoring&#x2F;working sessions with Junior Devs<p>- Random &quot;{{github_ticket_num}} ASAP&quot; messages from the boss<p>- Troubleshooting requests from other teams who never catch that the problem is always on their end<p>- Four status update meetings a day<p>- My own deliverables
coreyp_1将近 2 年前
[Edited for formatting]<p>When I find gaps, I have a tendency to build projects.<p>The lower the level of the project, the more low-level parts I find myself needing to explore.<p>A recent rabbit hole:<p><pre><code> - I designed a template&#x2F;scripting language. - I wanted it to be a library (dynamically-linked, .so) for use by other programs, so I had to figure out how to do that. That took me down a rabbit hole of the problems of compiling against libraries not globally installed, the compiled program, and their respective paths relative to the compilation directory. In short, using Makefiles and compile targets into any directory other than the current directory causes problems. - What about making the library globally-installable? That&#x27;s the rabbit hole of how versions work in libraries and the symlinks required, as well as how Ubuntu locates libraries. - How to responsibly install and uninstall libraries. - How to make multiple libraries coexist from the same project. - How to make the library compile flags integrate nicely (pkg-config) </code></pre> My current rabbit hole: writing a HTTP&#x2F;1.1&#x2F;2&#x2F;3 client&#x2F;server library, which is necessitating a deep-dive into TLS communication and reading a bunch of RFCs.<p>I&#x27;m thinking that most low-level or implementation details would be a candidate for a deep dive. In CS, we have a tendency to focus on the abstractions and leave the implementation details to someone else. For example, most people understand zip files, but markedly fewer would be able to write a compression&#x2F;decompression algorithm.<p>Other examples I can think of:<p><pre><code> - File formats: jpg, png, gif, pdf, etc... - Large project best practices (exceptions, memory management, source code file layout). Context: most students have only seen 1- or 2-file projects in a single directory, and have never worked on something that other people also need to work on. - Native application development (not using QT, for example) - Window&#x2F;desktop managers - Device drivers - Date&#x2F;time storage and representation (not just timezones and DST, but time massively in the past or future. Dates vs timestamps, etc.) </code></pre> Probably not the direction that you are thinking, but I love this low-level stuff!