C 语言底层开发怎么样?

2022-03-18 13:18:23 +08:00
 mikewang

应届生春招拿到了某大厂 offer 。当时选的 Java 语言面试的。
面试通过后,HR 说虽然面的 Java ,也可以考虑别的语言开发。
我了解了一下有 C 、C++、Java 、Python 等,然后对方说我基础不错,推荐去做 C 语言从事偏底层的开发。

现在我比较疑惑的是,大学期间没有接触过这一方面( C 语言教的十分简略,其他知识也都是在 Java 基础上学的),心里很没有把握。不过公司说,没接触过底层没关系,会有导师带。
然后底层开发还要熟悉汇编,现在也几乎是 0 基础(《编译原理》课写的汇编都是伪代码)

认识的同学和毕业生,从事底层的好像也比较少,还没了解到具体是要做些什么工作,前景如何。

HR 说,最终意愿看我,如果坚持 Java 开发也 OK 的。
所以我想问一下,现在 C 语言底层开发如何?
第一份工作选会的,还是选不会的?

11182 次点击
所在节点    程序员
149 条回复
tool2d
2022-03-18 16:25:07 +08:00
@ruogu C 就是造轮子,用 JAVA 才是项目实战。

从头造轮子打基础,经验都是 5 年起步的。假设一年后楼主想换公司,都不一定有人愿意要。

你愿意要一个什么项目都没经历过的轮子哥吗?
BrettD
2022-03-18 16:26:58 +08:00
Java 我不了解,玩 C/C++的话以后可以走嵌入式开发、驱动开发、操作系统开发、无人驾驶汽车、高性能计算、金融高频交易、音视频编码解码、工业软件开发这些领域,不一定去搞互联网
Seanfuck
2022-03-18 16:30:48 +08:00
选 C ,35 退休的概率要低些吧,感觉。。
mikewang
2022-03-18 16:53:26 +08:00
@tcdh 是自研数据库相关的开发。

@zzzkkk 从目前经历看来,对 C 的 debug 确实没有其他语言直观,也有可能是我经验不足

@freeup 哈哈感谢鼓励

@yehoshua 感谢鼓励

@Goat121 受教了,感谢

@BrettD C/C++实用性确实很强
qaweqa
2022-03-18 17:02:14 +08:00
C 和 C++不是一回事,不要觉得写 C 就可以写 C++,反过来也是一样。
sampeng
2022-03-18 18:16:20 +08:00
数据库相关的开发?
毫无疑问选这个。。。为什么?因为 java 你一辈子可能都用不上高级数据结构。在数据库层面就完全不一样了
ch2
2022-03-18 18:58:33 +08:00
纯 C 慎入,毕设用了一个 5W 行纯 C 的开源项目代码
说是底层但是翻来覆去都是查 unistd 的 api
其实这个项目不能用 Go 代替的部分已经很少了
开发效率差的非常多
hello2090
2022-03-18 19:40:55 +08:00
@mikewang 这,给你一个师傅带薪教你就值得你去了?那来三个师傅手把手教你扫地你去吗?编程语言从来不是哪个难哪个工资高,哪个需求大哪个工资高啊。那些选 C 的都是嫌 Java 卷吧,卷还不是因为赚的多么。。

我当然不是语言论者,我自己做了 C++10 多年,现在做 Java ,我也百分百肯定大厂基本不挑语言,我做 C++ 的时候也面试过 FB, Amazon 。 但好歹学门现代化的语言吧。C 可是连类都没有的,所有的变量定义都得放在函数开头的啊,这有啥好学的。。
hello2090
2022-03-18 19:43:44 +08:00
我的妈呀,还学 C 要数学好。。。C 要高考数学 140 ,C++要 135 ,Java 125 ,Python 100 是不是?
hello2090
2022-03-18 19:45:32 +08:00
随着工龄的增长,大部分会用到多门语言这是对的。但我怕对做 C 的,最多也就再接触下汇编吧。。。
janus77
2022-03-18 19:49:21 +08:00
选 java ,钱多。
什么 C/C++永不失业都是虚的,你前期赚的少,不失业又有啥用
而且选 java 的同时也不是不可以兼修,后期再转也没事
duke807
2022-03-18 19:54:35 +08:00
不懂 C 也就不懂計算機底層,使用高級語言想寫出高效代碼也離不開 C 基礎。
Samuelcc
2022-03-18 19:57:35 +08:00
我的话选 c ,能对计算机底层有更清晰的理解,以后转其他语言也很容易掌握,庖丁解牛。
dcsuibian
2022-03-18 19:58:39 +08:00
我选的 Java ,不过没考虑未来,只是 Java 的写法和应用方向我更偏爱一些。

在我看来 C 语言程序开发者应该是对程序性能、体积、速度有极高要求的人。如果你是这样的话,那选 C 吧。
hello2090
2022-03-18 20:01:30 +08:00
@duke807 用 C 的比用 Java 的多哪些底层知识?除了 malloc/free, 而且这也算不上啥底层知识吧
levelworm
2022-03-18 20:02:31 +08:00
我擦,这是梦想中的工作,这种工作虽然数量少但是会的人也少,多好。
hello2090
2022-03-18 20:06:33 +08:00
@levelworm 也要看收入啊
BrettD
2022-03-18 20:08:05 +08:00
@hello2090 想办法增加程序 IPC ,减小分支预测失误率,减小等待 CPU 缓存时间之类的,需要对计算机架构有了解
levelworm
2022-03-18 20:08:16 +08:00
@hello2090 他搞数据库引擎开发的,收入不会少吧我觉得。其实我觉得还是看喜不喜欢,不喜欢也不行。java 其实也可以写一些底层的东西。
BrettD
2022-03-18 20:09:06 +08:00
@hello2090 收入上限不会低

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/841252

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX