应届生如何找到一份基础架构方面的工作?

2018-12-16 10:55:39 +08:00
 gwxignotus
感觉如果能够找到一份 infra 方面的工作对于技术成长会很好,也比 crud 有意思,想问应届生想找一份这方面的工作该如何准备呢? java 这方面的工作多吗?
6505 次点击
所在节点    程序员
37 条回复
yangzhezjgs
2018-12-16 11:25:23 +08:00
这种工作一般要求 c/c++/go,系统编程,网络编程,并发,分布式,存储,Linux,对数据结构和算法要求也高
laike9m
2018-12-16 11:26:07 +08:00
infra 对技术的成长未必很多人看不上的“业务”要好。

我就说一个区别。你在公司内部做个工具,最多也就几百人用,大多时候遇不到 scalability 的问题,也不可能积攒解决的经验。而写业务你不想考虑也得考虑。
lucahan
2018-12-16 11:26:57 +08:00
这就是标准的眼高手低
cuzfinal
2018-12-16 11:29:04 +08:00
只要你有架构经验你就能找到。
rockyou12
2018-12-16 11:54:52 +08:00
没写过 crud 的人,对基础设施需要做成怎样是没得概念的...大部分业务直接莽就行了,搞复杂高级的底层设计反而是浪费人力
scnace
2018-12-16 12:09:39 +08:00
@laike9m 那也不一定 要看对 infra 的划分了 infra 往往是保证业务高可用的
jingyulong
2018-12-16 12:10:39 +08:00
像一楼说的,那些东西理论部分你首先得会了,才能真真意义上的算作是架构,如果对基础不太熟,做架构有点难度。
以前有个带我的师傅,问他什么问题都能解决,同事一个月的工作量,他一周搞定,剩下都在看书。
回到家里,每天至少 4 个小时的阅读量。
laike9m
2018-12-16 12:11:30 +08:00
@scnace 我写的是“未必”。我想驳斥的是类似 “ infra 最高,写业务的都是垃圾” 的言论。
scalaer
2018-12-16 12:16:33 +08:00
别问,问就 mit6.824
gwxignotus
2018-12-16 12:29:55 +08:00
@yangzhezjgs 老哥 infra 这块一般是 c++是嘛? web 这块 java 造的轮子多吗
gwxignotus
2018-12-16 12:31:38 +08:00
@laike9m 老哥我并没有看不上业务的意思,没有业务也就没有架构,只是在校接触的少所以想问问各位工作的老哥们
gwxignotus
2018-12-16 12:32:38 +08:00
@jingyulong 明白,自己也想成为技术极佳的人
gwxignotus
2018-12-16 12:33:14 +08:00
@mggis0or1 我这也准备考完试就开始刷
scalaer
2018-12-16 12:35:26 +08:00
应该是 java 生态更好吧。。
yangzhezjgs
2018-12-16 12:57:49 +08:00
不要以语言来区分,如果你想深入到计算机底层,c/c++不会是不可能的,但是不是意味着其他语言不会用到,像大数据领域的基础设施基本上都是用 Java 实现,阿里也有很多基于 Java 的中间件,运维领域 k8s 之类的是用 go,他们共同的基础都是系统,网络编程,分布式理论相关的内容,语言只是术,理论才是道
misaka19000
2018-12-16 12:59:23 +08:00
去看看相关岗位的 jd 就知道了,例如阿里中间件团队
yidinghe
2018-12-16 13:02:05 +08:00
机会很少,必须要有人带,而且自己要表现出值得带你的潜力。
scnace
2018-12-16 13:19:25 +08:00
@laike9m 不过我也同意 infra 需要业务的沉淀就是了…
hobochen
2018-12-16 13:51:31 +08:00
楼上居然还有直接说是眼高手低的,@Livid 是不是不友善啊?

一般来说有 Infra 强需求的只有大公司、极少数小公司(比如直接做 Infra 产品,如 PingCAP );那么问题就转变成如何去这些地方工作(或者创立一个这样的地方)了;我这里简单猜测一下我们组招应届生的标准

一般来说需要:

1. 好的代码能力,语言一般是 C++, Java, C; 以及少部分机会可能是 Go, Rust ;
2. 好的计算机基础,尤其是分布式系统、体系结构、网络、算法;如果有编译器、高性能计算、操作系统内核的相关经验也可以加分;
3. 其他软实力,这些就和非 Infra 的岗位比较类似了;比如英语、和别人一起快乐工作的能力等。

以及为了能通过最开始的简历筛选,可能还需要好一点的学校本科或竞赛获奖或好的实习经历。

最后,对于一个努力认真的人来说,Infra 带来的提高还是多于 CURD 的;以及我可不认为做一个几百人用的东西就是做 Infra 了。
shijingshijing
2018-12-16 14:14:49 +08:00
说眼高手低其实并不过分,做架构本来就是一件要求极高的事情,相对于做业务类的架构,做基础性的架构要求更高,毕竟最后搞出来的东西不仅仅是一个产品,而是使用频率超高的基础设施。

@yangzhezjgs #1 楼说了很多技术上必须具备的能力,我再补充一点,还需要掌握 UML,SysML,熟练掌握泳道图,时序图等,对 OOP 有非常深入的理解, [精通] 各种设计模式,工具上要熟练掌握 Enterprise Architect。基础性的东西为了追求性能,很多都是直接用 C/C++写的,如果系统足够复杂,会用到自动代码生成,这部分又是一大堆东西。
然后,这都只是工具和手段,比这些更重要的是你的思路和思维方式,考虑问题是否全面。

除了上述实现上的考量,你还要考虑可扩展性,可维护性,系统鲁棒性,安全性等其他各种方面的问题。

此外,除了上述技术方面的考量,你还要考虑成本,后续实现的人力开销,用了第三方的组件或者第三方的服务还要考虑知识产权和法律风险,考虑第三方缺失带来的风险,还要考虑如果整个系统挂掉了的应急和备份方案。

一个优秀的系统一定是一个或者一群厉害的架构经过千锤百炼打造出来的,做架构的不仅要求知识面广,而且各个方面都要足够深入,所以不是新手三两下能倒腾出来的。

当然,我也不是为了吓唬楼主或者劝退楼主,事实上架构也是从新手村出来的。对于想学习如何做架构的人来说,最好的方法就是从一个小一点的系统做起,循序渐进,不断改良,不断寻找 Best practice,同时自己也会逐步提升。

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

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

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

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

© 2021 V2EX