这周我需要到一所当地高中去做一个关于程序员的演讲。这是志愿者行为,我只想将我现在的工作给大家讲一讲。这个学校这周有一个技术主题日,所以对这方面的内容非常感兴趣。因为我就是搞开发的,所以我要讲的就是这个。我之所以认为软件开发是一个非常棒的职业主要是以下 5 个原因:
1. 创新
如果我让你说几个需要创新的职业,你可能会说作家、音乐家和画家。但是很少有人知道软件开发工作也非常需要创造性。这几乎就是毫无疑问的,因为我们需要自己创造以前并不存在的各种功能。而且解决方案在结构和细节上也是千变万化。所以经常需要权衡得到一个最佳的方案。而这些都需要创新。
2. 协作
很多人认为程序员就是呆坐在电脑前整天写代码的独行侠。但是,很遗憾,这些人想错了,软件开发事实上需要整个团队的共同努力。我们需要和同事讨论编程问题和解决方案,还要和产品经理、测试人员和客户讨论需求和其他问题等。而且现在结对编程(两个开发人员在同一台电脑上一起编程)也非常受欢迎。
3. 人才需求大
越来越多的人在使用软件,就像 Marc Andreessen 所说的,“软件正在吞噬世界。”即使现在有越来越多的年轻程序员加入进来,但还是供不应求。经常有软件公司抱怨说招不到好的开发人员。貌似没有多少行业像这一行这样渴求人才。
4. 薪资优渥
软件开发能创造很多价值。多次出售一个已经开发完成的软件完全不需要额外的边际成本,再加上开发人员目前的需求量如此之大,所以很多软件公司开出的薪水都非常丰厚。当然也有很多工作岗位也许你可以赚更多的钱,但是相比大部分群体,我相信软件开发人员的报酬应该算相当不错的。
5. 永不过时
很多职位会消失,这是因为计算机和软件可以取代它们。但是从另一个角度看,因为我们需要不断开发和维护这些程序,所以这么一想,程序员的前景是不是很美好?
但是……
关于外包。软件开发会不会外包给一些报酬比较低的发展中国家?想法很好但是不切实际。软件开发是一种脑力活动,有比较敏感的利益合作关系。特别是当主要产品就是软件的时候,开发过程中收获的各种知识能力是一种非常具有竞争力的优势。所以掌握在自己手中才是最好的。
还有一种看法是,软件外包到现在已经有了很长一段时间。但是还是有很多公司宁可自己花更多的钱去聘用开发人员,那是以为他们觉得这个成本花得值。
关于 win
我一直都认为软件开发是一件令人愉悦的事情,但是它可能并不适合每个人。幸运的是,尝试的门槛相当低。现在的网络无所不能,你可以找到各种学习编程的资源,例如 Coursera 和 andUdacity 的入门级课程。如果你从没写过代码,那么可以试试这些免费课程和教程来感受一下。
找一个自己真心喜欢的工作至少有两个好处。第一个是,因为兴趣而工作总比因为赚钱而工作要快乐得多。第二个是,如果你真心喜欢编程,那么以后你一定会有所专长。由于编程的薪资优渥,而且又喜欢的话,那么你有很大的可能到达上图中的中间——win!