TODO清单/任务工具:你的公司应该已经有了某种任务管理软件了,但你自己也有类似的个人系统是有帮助的。使用便利贴或者像Trello或者Todoist之类的软件。
笔记:开会一定要记笔记,要致力于改进现有文档并且建立个人的知识库。使用Evernote、OneNote或者笔记本。使用这些工具似乎有用力过度之嫌,但日后在回顾这一耗掉了你3天时间才想清楚的晦涩的开发过程时你会感谢自己的。不做丰富笔记的好的软件开发者我一个都没见过。
图表/可视化:人是视觉动物,创建流程图和架构可帮助你和其他人理解复杂的话题。在跟非技术人员沟通时图解尤其有用。可使用Lucidchart、Visio或者白板。
知道何时使用库
简短回答:随时都要。
详细回答:99%的时间内你都不应该重新发明轮子。在大多数的软件工程岗位,实现特定类型的东西都属于纯粹浪费时间。这并不意味着你不应该知道所使用的算法和数据结构是怎么工作的,因为这可以帮助你决定用什么以及什么时候用。
为了成为一名高效的软件工程师,你需要理解自己可以任意支配使用的那些库。大多数流行语言的标准库都是极其有用的,其规模比你想象的要大。此外,代码库也许也会利用了额外的特殊库。阅读其文档,知道什么使用去使用它们。
你还应该不要害怕去建议额外的库,如果它们将节省时间的话。然而,你需要确保自己选择了一个好的库供行业使用。好的库的标准是:
开源,这样你就可以验证自身代码的质量,并有可能修补对应用非常关键的bug。
按照MIT和BSD等方式进行的授权,这样你的公司使用起来就不会遇到任何问题。要小心GPL,因为它会让你不小心就将整个代码库都开源出去。
成熟,比方说出来已经有一段时间了,并且功能集非常丰富。
维护性强,新版本推出很密集。
别的公司或者项目也使用,这个可以充当品质认证确保有行业支持,能持续维护下去。
持续改进
为了替自己创建新的职业机会,除了学习会让你更擅长日常工作的技能以外,你还需要持续改进自身技能并且学习新技能。
其实学习的机会有很多,而且其中很多都是你可以负担得起的:
在线课程:向领域内最好的教授学习的机会,而且方式灵活,不容错过。现有技能的补充性教程可以去可以看看Coursera、Udacity以及edX等。
在线硕士学位:在线硕士学位是最近在顶级大学流行起来的一个趋势,这种方式可以灵活地继续你的正规教育。相比之下,这种继续教育方式费用没那么昂贵,修完整个学位大多数在1万美元左右。乔治亚理工大学、UT以及加州大学圣地亚哥分校等大学均提供此类学位。我个人推荐乔治亚理工大学的在线硕士虚伪,我去年刚从这里毕业。
博客:博客是开发者社区的重要组成部分。诸如Coding Horror、Joel on Software等博客或者甚至更加诙谐的网站如The Daily WTF等都可以为你提供信息,了解到作为软件工程师该干什么不该干什么。浏览Medium、r/programming, HackerNews等新闻流也能让你找到好博客和好文章。
(编辑:开发网_开封站长网)
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!