公司文化也许是个非常含糊的概念,但即便像开放办公室还是小隔间这样的小事情都会显著改变你与同事的日常互动。这方面没有普遍性的危险信号,但是要确保他们的答案是你可以按照每周40+小时的节奏持续相处数年的东西。
以软件工程师的身份工作
在这个阶段,如果你面试过程中表现不错并且喜欢面试官回答你问题的方式,你被录用的可能性就很高了。
祝贺,你正式成为一名工程师了!
那现在又该如何呢?好吧,现在是时候重新学习大量编码和工作方面的东西了。既然我们是程序员,我们就从讨论代码开始。
好的行业代码
好的行业代码有以下属性,依序是:
可读性,因为代码用来读和维护的频次要高于写。代码的意图必须清晰,让其他开发者在多年后依然理解。
防御性,就是要遵循防御性编码的最佳实践。防御性编码本身就是一个课题,不过其要义是:你必须确保自己所写的类和方法的不恰当使用不会导致你的代码搞得软件都崩溃。
优化,位列清单的最后未知,因为大多数时候你并不需要真正去担心这个。这并不意味着你应该编写糟糕代码,在存在线性解决方案的情况下以O(n)的效率去做某个东西。但开发者通常渴望尝试并且会在不需要的情况下过度优化,却牺牲了代码的可读性和防御性。你永远都应该能够证明牺牲了这些属性的特定优化是值得的。
现在你了解了如何去编写良好的行业代码了。
编码的工作你不会干太多的
说出来也许有点令人吃惊,但是大多数时候你都不用写新代码,而是相反,要做:
调试
读已有代码
开会或者写电子邮件
研究该怎么做以便不用写代码
因此编码以外的技能对你的职业一样关键。
调试和阅读代码
调试远不仅仅是用打印语句。一切使用广泛的语言和技术栈都有各种强大的工具。学会使用它们,因为这些会让调试轻而易举,节省你无数的时间。
理解代码库。大多数技术栈都有某种代码图谱生成工具来帮助你理解代码库的结构。企业级的IDE通常都内置了那种功能。你还可以利用ReSharper、grep或者Sourcegraph之类的工具来探索代码。
理解产品。你会对居然有这么多开发者在试图“修复”软件前不知道软件应该是怎么工作的感到惊讶。先看看文档再说吧。
组织你的思路
既然你的大量时间都是用在沟通、研究和多任务上,你需要一些工具来帮助一切井然有序。
TODO清单/任务工具:你的公司应该已经有了某种任务管理软件了,但你自己也有类似的个人系统是有帮助的。使用便利贴或者像Trello或者Todoist之类的软件。
笔记:开会一定要记笔记,要致力于改进现有文档并且建立个人的知识库。使用Evernote、OneNote或者笔记本。使用这些工具似乎有用力过度之嫌,但日后在回顾这一耗掉了你3天时间才想清楚的晦涩的开发过程时你会感谢自己的。不做丰富笔记的好的软件开发者我一个都没见过。
图表/可视化:人是视觉动物,创建流程图和架构可帮助你和其他人理解复杂的话题。在跟非技术人员沟通时图解尤其有用。可使用Lucidchart、Visio或者白板。
知道何时使用库
简短回答:随时都要。
(编辑:网站开发网_安阳站长网)
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!
|