|
[努力找工作] - 对做Linux底层开发的移友的一些建议
本帖最后由 harrytaurus2002 于 1-11-2013 06:36 编辑
先自报家门,LZ本人有近10年Linux开发经验,主要集中在kernel, device driver,以及和SELinux的各个方面(著有440页SELinux学习笔记)。用户态编程除了SELinux toolchain之外,大部分都是集成、移植的工作,而且C和Shell占了绝大部分,C++的直接产品经验至少最近这6年没有,因为做Linux平台开发实在没有啥地方需要用C++啊!
但是来了澳洲才发现,几乎没有纯要求用C和shell, assembly编程的岗位,很多情况下还要求C++的产品开发经验。总的感觉是这边更希望一个工程师能够是个多面手,可能以某种编程语言为主,但是在需要的时候也可以参与其他应用的开发。比如,我就曾经看到过和TOPCON相关的一个开发职位的描述,和GPS设备研发相关,既要求底层Linux device driver的经历和开发firmware的经验,也要求有用户态C++应用的经验。有意思的事,差不多有三个猎头发布的信息都和这个职位相关,而且描述都无一例外地包含如下字眼“Commercial C++ experience in Linux kernel”,所以可以断定这些猎头的职位描述信息都是从雇主那里抄过来的,而且雇主内部负责招聘的人也不太了解Linux内核,不知道C++根本不会应用到内核中,呵呵。
如果猎头自身再对所招聘岗位所需要的核心素质理解不到位的话,就很容易出现猎头机械地根据职位要求来匹配应聘者的简历的情况。我自己在北京的时候也招人,差不多有70%匹配就可以考虑安排电话面试甚至当面面试了。澳洲这边不同,你的简历看上去哪怕差一点,猎头也会表现的很为难,不愿意继续为你推简历了。
个人感觉从纯C转到C++的跨度应该是最小的。所以可以恶补一下C++的有关抽象、封装、继承、多态的基本知识和语法,然后再对照这Effective C++的中文版看英文版,就应该能很大地提振自己从事C++的信心了。猎头一般不会问具体技术问题而仅仅是工作经历。只要能通过雇主的技术面试相信工作中就没有任何问题。一定要看技术领域的英文版图书或资料,准备相关技术词汇,否则无法通过技术面试的。
当然,如果还有Python甚至PHP的开发经验那机会就更多了,这边相对大把大把的是.net, python, php, html/xml, java等开发机会。不过这些领域对于专注于Linux底层开发的工程师而言就显得有些陌生了,故和本帖涉及的情况不符。
如果打算转Linux System Engineer,即负责服务器的运维,个人建议可以在登陆之前除了进一步巩固shell编程/脚本自动化的技能外,有条件的话争取学RHCE和RHCSA证书。很多云计算服务提供商部署的好像都是RHEL,所以有红帽的相关证书应该是不错的敲门砖。如果到布村这里再学,估计就会贵很多了。另外从其他类似讨论帖中看到,如果条件许可,可以在中国租用某些云计算、云存储服务提供商的服务几周时间,从而搭建相关的网络,学习实际操作经验。这样在简历和面试的时候能够更好地自圆其说。
对于严肃的从事Linux底层开发的工程师,我相信或多或少都有参与open source的经验。如果在开源的git tree上能找到自己的git commit,无论是bug fix,还是新feature,无论是否是Linux内核源代码树,或者任何开源project,都是绝好绝好的证明材料!一定要体现在自己的简历中。我在参加和具体技术人员的正式面试前和相关技术负责人闲聊的时候,问他是否会有关于考察编程能力的笔试题,他笑着”说当然不会有了,因为你之前所做的工作我们都已经知道了!“
呵呵,我还曾经仔细地准备过程序员面试攻略等材料呢,以应对雇主出C/C++编程的题目。对于技术牛人自然不足挂齿,但是对于从事Linux底层和设备驱动开发为主的工程师而言就有些必要了,毕竟很多情况下我们的工作是integration + bug fix,至于新特性的开发那是最后的事情了,所以C语言编程的细节问题还得仔细扣一下。心里话。
先总结这么多,如果再想起其他什么东西再补充吧。哎,衷心地希望布村能多一些从事Linux开发的工程师,这样每个人将来的路就都可能更宽一些。 |
评分
-
查看全部评分
|