没人告诉我的关于软件工程师的事
我七岁左右的时候,爸爸就开始教我 Basic 语言。从那时起,我就知道自己想以开发软件为生。这显然是一件有趣又实用的事情,而且我能做得很好。但是,“编程”和成为一名专业软件工程师之间有着巨大的——我的意思是,巨大的——区别就像大峡谷一样。
以下是一些关于在科技行业担任软件工程师但却没人告诉我的事情(无先后顺序):
- 测试行数比生产代码行数多是正常的。
- 在我的职业生涯早期,我别无选择,只能使用
vi
这些按键绑定。 - 我们花费了大量时间来设置构建、发布和常规工具。有时,我们花在编写代码上的时间和我们一样多,甚至更多。(更别提运维、值班以及所有其他将“编程”变成“用户手中的产品”的过程了。)
- 我的性别、年龄、种族、性取向、体重或衣着都可能(将会!)影响我所开发软件的感知质量。(或者,换句话说,这并非真正的精英管理制度,做好工作远远不够。)
- 编写代码只是交付生产软件的一小部分。
- 我的大部分工作生活都取决于那些几乎不了解情况的风险投资家和毫无行业经验的初次创业者的选择。
- 一切旧事物都在不断地焕然一新——从 MySpace 到 Facebook,从 IRC 到 Slack。PHP 再次风靡一时,函数式编程也成为一种潮流。
- 在某些人看来,虽然我拥有良好的人际交往能力,但我的技术能力却受到怀疑。
- 学会管理自己的精力和心态是完成复杂的调试和复杂的代码审查时最重要的技能。
- 做同样的工作,基本工资可能会有 100% 以上的差异,这取决于你是在一家小型初创公司还是一家大型公司工作。
- 在当地文化中,并非所有软件工程职位都享有同等的声望。(或者说:优秀的前端和测试自动化专家被严重低估了。)
- 在小型初创公司工作就能致富的想法已经过时了。如今几乎没有公司上市,如果你在一家规模更大、更稳定的公司工作,更容易攒钱。
- CSS 是最复杂的现代编程语言。
- 实习工资应始终按照市场价格支付。
- 那个充满活力的在线图书供应商将成为分布式基础设施的代名词。Altavista 的新竞争对手将成为不那么糟糕的微软 Office。新版 My Space 将会损害世界各地的民主。
- 在这 15 年左右的时间里,我的主要专业贡献可以概括为:推动人们编写更好和/或更多的测试,并让人们相互交流。
- 最好的技术并不一定能获胜。事实上,通常情况下并非如此。
- 测试第一次通过时,我竟然会如此怀疑,不得不反转我的断言,强制测试失败,并让自己相信一切按预期进行。(题外话:为什么这不是测试框架的标准功能?我希望找到某种方法,重新运行测试,反转一些断言,以确保它们测试的正是我所认为的。)
- 恰当地使用表情符号将成为一项重要的沟通技巧。
- 从上到下,全是人。他们(大多数)都很可爱,而且不像乌龟那么硬。
作为一名软件工程师,什么事情让你感到惊讶?
最初发表于https://anaulin.org/blog/。
文章来源:https://dev.to/anaulin/things-nobody-told-me-about-being-a-software-engineer-3pa5