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

科技回声

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

GitHubTwitter

首页

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

资源链接

HackerNews API原版 HackerNewsNext.js

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

Ask HN: Job prospects for pure C and C++ programmers?

28 点作者 rrao84超过 4 年前
I am looking long-term - 15 years at least and I want to know from the HN folks, what prospects do I have as a C and C++ programmer with a good grasp of algorithms.<p>What other fields should I pick up along the way? And, do I need to have significant knowledge of AI&#x2F;ML&#x2F;Cloud-computing&#x2F;Data-Science, etc. to sustain myself in the long-run (long-run being defined as 15 years)

15 条评论

gregjor超过 4 年前
I wouldn’t build my career around a programming language. Languages are one of the least important factors in a programming career.<p>That said, if I had to choose a couple of languages for the rest of my career I would choose C, C++, and SQL. All of those have enjoyed huge success since they were introduced, with mountains of legacy code and plenty of new development.<p>Once you master C and C++ a lot of similar languages should be very easy to learn: Java, C#, Python, Go, Ruby, PHP, Swift... they are all more alike than not.<p>As a hiring manager I would not be very interested in someone who only worked in one or two languages, or only had language expertise to offer. A candidate stuck with two languages for years would send the wrong message for sure.<p>To build and sustain a long career you need to solve problems and add value. You need to get along with people and contribute positively to a team. You need to learn business domains, not just languages and tools. You need to be the person who says “I can figure it out,” not the person who says “Leave me alone, I only want to write C++ code.”
评论 #24529860 未加载
评论 #24526050 未加载
abnercoimbre超过 4 年前
I run a low-level programming conference [0] with professionals who rely on C and C++ day-to-day or just low-level stuff in general.<p>While this is a plug, I genuinely believe joining the event and talking to them would help you. The networking &#x2F; hallway effect, even virtually, shouldn&#x27;t be underestimated either.<p>Good luck -- there&#x27;s definitely lots of system software people needed, as someone else here pointed out.<p>[0] <a href="https:&#x2F;&#x2F;www.handmade-seattle.com" rel="nofollow">https:&#x2F;&#x2F;www.handmade-seattle.com</a>
评论 #24527155 未加载
rramadass超过 4 年前
So there is the <i>Problem Domain</i>(specific subject expertise eg. ML, Big Data etc.) and there is the <i>Solution Domain</i>(Languages, frameworks, platforms etc.) As a <i>Programmer</i> you need to become good in the latter so as to apply it in any problem domain that you might be asked to do in a specific job. IMHO, a decent mastery of C&#x2F;C++ is a must. Because that entire ecosystem allows you to work on everything from dinky little MCUs to honking big servers your opportunity space is large. They form the underlying bedrock and a &quot;glue&quot; between everything. The added benefit is that you are forced to understand how Computers really work. Thus you can fully focus on the problem without simultaneously struggling to map it into a specific language&#x2F;framework&#x2F;toolchain&#x2F;HW. Of course in any non-trivial system, you may need to pick up different languages but that can be done as need arises (for similar type of imperative&#x2F;OOP languages). C&#x2F;C++ will never go away and will always be needed.<p>On the Problem Domain front, Cloud Computing and Data Science are here to stay. They are fundamental shifts in the computing space and hence one needs to become knowledgeable in them. I am not too gung-ho on the AI&#x2F;ML fad since there is too much hype around its supposed benefits but of course you can study it for its intellectual challenge and apply as need arises.
评论 #24527841 未加载
verall超过 4 年前
There are lots of jobs in systems software that almost all C and C++ with some scripting languages. I think in this field the most important things to understand are operating systems, Linux pthreads &#x2F; syncronization, some hardware fundamentals so it memory coherence and fences make more sense.
treebog超过 4 年前
I agree with gregjor, and I’ll just add that I recommend checking out these (highly entertaining) videos by Alex Stepanov, creator of the C++ STL: <a href="https:&#x2F;&#x2F;www.youtube.com&#x2F;playlist?list=PLHxtyCq_WDLXFAEA-lYoRNQIezL_vaSX-" rel="nofollow">https:&#x2F;&#x2F;www.youtube.com&#x2F;playlist?list=PLHxtyCq_WDLXFAEA-lYoR...</a><p>In the first few lectures he lays out what he thinks it takes to be a great programmer. I’m pretty confident that there will be a job market for great programmers for at least the next 15 years.
评论 #24526384 未加载
oaiey超过 4 年前
My experience with our C&#x2F;C++ devs: they do a wide variety of software. From old Windows programs, Embedded firmware with or without operating system, drivers, or extensive Linux based UI programming.<p>They are hard to replace, are tough problem solvers and deliver code in our toughest environments.<p>I think all this data&#x2F;ai focus is nice, but I think hardware is the real deal breaker. Have an eye on Rust in all the regards.
评论 #24527821 未加载
joeld42超过 4 年前
I&#x27;ve found in every job I&#x27;ve had the best results were from being good at mixing c++ code with other stuff. I know how to work with a lot of languages, but am not really an expert in any of them except C&#x2F;cpp. Some examples: ios&#x2F;android apps (objC&#x2F;java) but the visualization part is cpp. Huge rendering pipelines in Python, with specialized converters and renderers in cpp. Large complicated web thing but it needs to encode video fast, so that part is in a standalone cpp tool. At least half of the job is getting good at knowing what parts to write in cpp and what to write in something else.
papaf超过 4 年前
I used to be a typical C++ programmer but lately I have mostly been using C&#x2F;C++ with other languages.<p>- C as a workaround for a Docker problem.<p>- C++ with C# in Unity.<p>- C++ in Android with Kotlin<p>As you hinted in the question, it is good to combine C++ with other skills.<p>If you want to stay purely in C++, then the automotive and aeronautical industries are heavy C++ users.<p>But as @gregjor says its best not to stick to one language. To add to that, I would recommend not to define yourself by the language you program in and instead be prepared to stay flexible and keep learning.
评论 #24526430 未加载
IceDane超过 4 年前
My 2 cents: anyone selling themselves as an X programmer would immediately lose points as far as I&#x27;m concerned if I were hiring. Programming languages are tools. Being a C programmer is like being a hammer woodworker. It makes no sense.
评论 #24527814 未加载
pjmlp超过 4 年前
Depends on your goals to start with.<p>Regardless of what I think about C, it is undoubtly the king of UNIX&#x2F;POSIX platforms and embedded development. So that might be an area you feel at home with.<p>Although C++ has lost the full stack role it once enjoyed with the 90&#x27;s OS stacks, it is the current king of GPGPU programming (CUDA, Metal Shaders, SYCL and HLSL), HFT, what game engines use at their core.<p>Finally as many are pointing out, don&#x27;t silo yourself with one language, most of use many languages at once.<p>For example using C++ alongside either Java or .NET is quite common.
评论 #24527816 未加载
jake_morrison超过 4 年前
It&#x27;s more important to focus on the problem domain than the specific tools. Figure out where you would like to work and the kinds of problems you would like to solve, then evolve your technical skills with them.<p>C is mostly used these days for embedded systems. C++ for high performance network services. Higher level and more sophisticated languages are coming for those domains, e.g. Rust. Lua is interesting for embedded systems, and the Erlang VM for network services.
EliRivers超过 4 年前
Loads. If you&#x27;re a programmer capable of programming well in C and C++, with a good grasp of algorithms, you&#x27;ll have no trouble finding software jobs. Many of them will use other languages, but that&#x27;s no great impediment. You&#x27;ll have a lot of opportunity to learn them.
fisherjeff超过 4 年前
Not sure if I’m too late to the party, but if you get into embedded bare metal and RTOS programming you can easily get 10+ years out of C&#x2F;C++.<p>FWIW, I am on year 16 of my own C&#x2F;C++ only career.<p>EDIT: Huh I’m old
02020202超过 4 年前
very good, neither of them is going anywhere any time soon...or ever. but it is mostly about what yo uwant to do and learning the language to get you there. c and c++ are the low-level languages so you will be doing low-level stuff. it might be fun or not, depends on you.
cpach超过 4 年前
I guess in embedded, C is still strong?
评论 #24526449 未加载