一意孤行做 C/Linux 系统底层是否有前途?

2016-06-01 17:36:51 +08:00
 jamesarch

额 不算是专业程序员,只是对操作系统底层特别感兴趣,自从几年前开始折腾 Linux 之后就开始研究 C 语言和 Linux 之类的系统底层了,以前一直想做一个程序员,做啥都可以,什么 Web 开发啦,服务器维护之类的都可以,只是为了想成为程序员,后来慢慢的开始发现学会 C ,就像是自己一直没有达成的愿望一样,一直在断断续续的学习这门语言,比如想学一门其它的语言,但是转来转去还是会回到 C,而且买了很多比较经典的书籍,比如代码大全C语言三剑客(专家编程,指针,缺陷陷阱)APUE、UNIX编程艺术之类的。很是喜欢开源文化和黑客精神。虽然不知道自己能不能学会,但是还是一直在坚持,不知道这样是否正确,求大神解答

PS :自己经常作死比如说买 HHKB Type-S 机械键盘之类的,不知道是不是为了接近和程序员的差距,是不是有点虚荣?或者说程序员的信仰,虽然实际体验确实不怎样

10203 次点击
所在节点    问与答
55 条回复
jamesarch
2016-06-01 22:40:56 +08:00
@fewspider 嗯,先做出来东西再继续发展……可惜自己连东西都做不出来😁,最近在看美剧 硅谷 才感受到一个好的产品不止是一个程序那么简单,原来里面还有那么多道道
mogging
2016-06-01 22:43:23 +08:00
有人说要看智商,我觉得不敢苟同,能走多远看的是天赋,有些人再努力也走不远
cankoor
2016-06-01 22:45:36 +08:00
@mogging 我看过一段话,很多人远没有到拼天赋的时候。
fewspider
2016-06-01 22:46:11 +08:00
做东西也算是练手啦,没做都不知道会遇到什么坑,填坑也是锻炼自己解决问题的能力,不一定要做一个很 nb 的东西,至少自己觉得好用就可以了
JamesRuan
2016-06-01 23:03:09 +08:00
来我们公司吧, Golang 开发,需要懂 Linux 和 C 底子好的人。
incompatible
2016-06-01 23:13:53 +08:00
@notgod 你的观点没有任何说服力。不信你把“底层”二字换成“厨师”看看,一样说得通。
notgod
2016-06-01 23:17:36 +08:00
@incompatible
一个生态里的刚需 类似于人的吃 /喝
Reficul
2016-06-01 23:23:36 +08:00
无责任安利一波 Go ,语法简练如 C 一样,一致性好,非侵入性接口,自动异步的协程。
lechain
2016-06-01 23:31:07 +08:00
跟楼主非常像…不过我还在读书…蛤蛤…最近在刷 cs:app 一周把汇编学完了…感觉自己萌萌哒
ilotuo
2016-06-01 23:53:12 +08:00
写在这里吧。
大二时 我也和你差不多 撇了一眼 linux 和 android 底层的一些设计 哇 好牛逼 好有意思
然后大三时找不到相关实习 找了个做图像相关的小公司 做视觉跟踪和三维重建相关 我了个艹 这个更牛逼更好玩!
瞬间激情被点燃 以一个三流本科生的基础苦学半年企图踏入这行学术领域
现在过了半年 又跳槽换方向了 也算见识了见识了大大小小的不少工程 其实每个领域都有让人叹为观止的设计 至少能让你老老实实学个一年也未必精通

还有关于兴趣和工作 其实大多数时候不是兴趣在驱动你干活 想想工作需求能有多少契合你的爱好?程序员那么忙 公司并没有太多时间让你去深入研究某个子系统的实现或者某篇论文的原理 (也可能是我还没当上核心开发吧。。)
总之工作了 大部分驱动力来自己写的代码 为公司创造的价值
说到创造 问题又来了。在我刚才说的领域 国内各大视觉实验室能出原创性革命性研究成果的也就几个大牛 剩下的无非把国外的研究成功搬回来小修小改 耗尽学涯也未必弄懂人家的原理 你又对自己智商水平有多自信 相信自己能在这些高深的领域有所成就?
如果没有 不如听劝一句 咱们老老实实搬砖 养活自己再说吧
--来自一位学渣的感悟
fcicq
2016-06-02 00:12:52 +08:00
底层这条路看起来不错但并不适合推荐. 长期看基础不合格的人一定留不下是确定的, 仅仅凭这一点点资料判断不了楼主有没有这方面的天分, 不能直接给建议.

不过从社区的一个侧面可以想到一些问题. 很多人给开源做贡献的目的是自己常用的某种 workload 效率不高或者有优化空间. 添加功能 /特性的想法通常也是因为用过项目才能想到的.
从这里展开, 首先你自己或者你的雇主是开源项目的使用者. 要有一定的诊断调试能力去确定自己环境中的问题所在. 然后通过你的观察, 去设计并实施你设想的修改方案. 最后是把你的方案推给主线 /上游.

这一条线上有很多问题. 抓出其中一个比较重要的来, 就是对自己的环境来说有效而很可能会损害全局或者其他人环境中性能的修改方案实在太常见了. 正确的设计需要相当长期的经验和对系统体系的整体理解.
遵守这样一种不破坏的规则严格讲也是不对的. 社区更需要有胆量创新的人, 但现实是万一审核人看不懂或者稍有意见就很容易破坏潜在贡献者的积极性. linux kernel 里面很多东西只是属于"争论正确", 是开发者们打架扯皮的权衡结果. 有很多优秀的设计走不通这个流程被主线拒绝了, 彻底看不到合并的希望. 其他项目也同理但矛盾可能没有那么明显.

底层系统和应用不一样的地方可能在于, 应用做糟了应该还是能强推出去的, 堵上耳朵装听不见不好用的意见就是了, 所以只要做出来就可以赚到快钱. 底层更倾向于确实做对了才有奖励.
327beckham
2016-06-02 00:29:18 +08:00
同意之前楼上一位同学的观点,底层的东西门槛相对高,工资相对少。想要在这方面有前途,得有强大的毅力,付出的时间精力比其他方向多很多。

如果你这方面的兴趣到位了,能坚持学个几年,如果乐在其中,那么必有前途。如果中途略有犹豫踌躇或者兴趣下降,建议立马换个方向搞。
msg7086
2016-06-02 04:46:49 +08:00
对企业来说,能挣钱才是最重要的。
如果你底层搞得滚瓜烂熟却没办法用在业务上,没办法给公司带来利润,那就没啥用。
msg7086
2016-06-02 04:52:15 +08:00
(除非你已经财务自由希望把玩一番,否则还是先专注于怎样提高收入吧,毕竟现阶段钱还是很重要的。)
jamesarch
2016-06-02 06:35:53 +08:00
@msg7086 嗯,财务算不上自由,但是努力赚钱还是很重要的
@327beckham
@fcicq
嗯嗯,会认真考虑这个问题的,基础也应该会比以前踏实些,之前也看到过不少帖子,说底层这条路确实不是那么好走的,哪怕就当是学基础课了,再次感谢二位的认真回答

@lechain 哈 一起加油(๑•̀ω•́๑)
@Reficul
go 的话也看过一些基础教程之类的,因为自己基础太薄弱了,所以又回头学 C,不过 GO 确实很强大, Ubuntu 的 snap 包管理上次看了下就是用 go 写的,好像还有不少服务端的东西也是用 go 开发的,之前看了下 gopher 2015 的 PDF 才知道原来 go 可以那么强大


@fewspider
现在头脑一片空白,之前一个劲儿的学 Python 学完之后又是想用 flask 做博客,又是想做爬虫的,结果又回头学 C 了,对自己也是无语 O__O"…

@JamesRuan 先谢谢啦,我还是先把基础打好吧,等到自己可以独立写一些小项目练手的时候再说吧,要不去了也是添乱
ㄟ(≧◇≦)ㄏ
cxbig
2016-06-02 06:43:10 +08:00
做什么都好,问问自己坚持是为了什么,如果这个答案是真心喜爱,而不是钱或虚荣心作祟,那就坚持下去。
郭德纲说过一句话:坚持下去,把别人都熬死了,你就是艺术家了。这个道理放哪个行业都管用。
jamesarch
2016-06-02 08:25:03 +08:00
@cxbig 嗯 自己算是乐在其中吧,其他爱好没有,就这一爱好了 哈哈
Ixizi
2016-06-02 09:31:59 +08:00
just do it 。
NeoAtlantis
2016-06-02 09:46:54 +08:00
民科心态啊……
jamesarch
2016-06-02 10:06:54 +08:00
@Ixizi o( ̄▽ ̄) 好哒
@NeoAtlantis 额 民科?

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

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

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

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

© 2021 V2EX