软件工程师生存指南

点击上方“码农突围”,马上关注

这里是码农充电第一站,回复“666”,获取一份专属大礼包

真爱,请设置“星标”或点个“在看”

首先,学会向他人展示你的经验成果。用连贯而引人入胜的简述总结你的简历内容,就像电梯演讲一样。

另外,熟知你自己的简历!这听起来很傻,但是我却看到过很多应聘者挣扎着说不清楚他们简历上的某个特定细节。你应该有能力回答有关你简历上的经历的任何问题,并讲清楚这一经历如何让你更加适合应聘的岗位。

其次,展示你在 GitHub (或者其他代码仓库)的示例代码。

眼见为实。有机会亲自看到你的代码的面试官都会忍不住想看一眼的。另外,这也表明你对于版本控制系统是有一定理解的。

这些示例代码不必太复杂,但是要整洁并展示良好的编程习惯。这是你展示无现场编程面试的时间压力下的编程习惯的好机会。

一旦你完成了以上两步,就需要考虑参与开源项目了。这将展示你可以在已有代码基础上工作,并且可以和其他程序员协同。

这将是你在尚未真正身处工业环境时最接近工业环境编程的了。这是迄今为止最难的也是最耗时间的项目,所以如果没有完成我前面提到的低难度任务,先不要做这个。

反过来面试你的面试官

在匆匆忙忙、紧紧张张的找工作过程中,很多应聘者忘记了面试是个双向通道。在公司试图搞清楚你是否是这个岗位的合适人选的时候,你也应该搞清楚这个公司是不是适合你。

确保自己要提出以下问题中的几个,就算是邮件面试也要提。要记得,大多数情况下,公司都不会像遵守最佳工程实践一样给员工清晰的定位,所以要逐字逐句的阅读。

以下是一些你可以提出的问题:

“对这个岗位而言,一个典型工作日是怎么样的解特定岗位的需求是很重要的,因为软件工程师岗位千差万别。比如,你可能需要长期维护服务器或者直接和客户沟通。

红色警 :“我不太确定”→意味着面试你的人不和你在一个团队,或者他们没有想清楚为什么要聘用你。

“你们如何做软件测试想状况下,要检测代码质量,需要综合使用单元测试、人工测试和自动测试。

红色警 :“哈哈,我们写的代码没有 bug。”→这么回答的人,就是那些写出 bug 的家伙。

“你们采用何种版本控制系统本控制系统(Version control systems)对团队协作是极其有用的,在专业团队配置中,没有任何理由不采用版本控制系统。

红色警 No.1:“呃……什么是版本控制系统赶紧跑,跑得越远越好。

“你们采用何种软件开发流程论实际细节如何,流程对软件工程都是至关重要的。关于什么是最优软件开发流程的细节还存在激烈的争论,但是,仅仅存在一种商定的工作方式就能最大限度地减少混乱并确保所有人都在同一个频道上。

红色警 :“我们的流程是受自由爵士启发而来的。”→很可能整个部门都是在战火纷飞的状态,没有清晰目标的情况下应对一个又一个的突发紧急状况。

“你们如何解决技术债问题术债是代码库中的过时技术和糙快猛解决方案的长期累积造成的。强调技术债对于代码库的长期健康是重要的,并且应该持续的改进。

然后呢候重新学习这些关于编码和工作的繁文缛节了。因为我们是程序员,所以就从代码开始讨论吧。

良好的工业级代码

良好的工业级代码具备以下特性:

可读性。代码只需写一次,却需要阅读和维护远不止一次。在写完代码之后若干年,对于其他开发者而言,代码意图依旧必须清晰明了。

防御性,也就是防御性编程最佳实践。防御性编程是个独立话题,但是其要义在于,你要确保未正确使用的类和方法不会导致软件崩溃。

最优化。这是清单中排在最后的,所以不用过于担心这个。这并不是说,存在线性解的情况下,还可以写出复杂度是 O(n3) 的破烂代码。但是,工程师通常急于试验并且在根本不必要的情况下过度优化,结果往往损害了代码的可读性和防御性。你需要随时可以证明,损害这二者而做的那些优化真的是值得的。

既然你已经知道了什么是良好的工业级代码:

你没有多少时间写代码!

这可能会令你大吃一惊,不过大部分时间你都不是在写新的代码,而是在

  • debug

  • 阅读已有代码

  • 开会或者写邮件

  • 看看做些什么才能够不写代码

所以写代码以外的技能对于你的职业生涯相当重要。

测试代码、研读代码

有热门推荐strong>

1、阿里巴巴Java 程序员常用的 10 款开源工具!用好了,事半功倍!

2、年底再现暴力裁员!患病员工被关小黑屋,摄像头监控,工作量超其他人!

3、花了三个月终于把所有的 Python 库全部整理了!可以说很全面了

4、工作9年程序员去华为面试要一万月薪,被淘汰后才发现:要少了!

软件工程师生存指南

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2019年11月15日
下一篇 2019年11月15日

相关推荐