软件开发之比于建筑

  软件开发是软件工程中的一个分支,和算法开发有着显著的区别,算法可能关注某个面,软件开发则关注整个功能是否可用。在实践过程中,我更感觉软件开发就像是建造房子一样,一个个demo就像是简陋的小屋,而大型的,好用的软件就像是漂亮的高楼大厦。

  在招聘市场上,很多都要求2-3年以上的经验,或者高级工程师。显然我目前还不能达到这个要求,我的目标是软件工程师,是在公司能够负责一个模块开发的人,一个可以指导他人开发的人,这都需要我在实践过程中积累,这条路对我来说仍然很遥远。我不知道什么时候能找到工作,在没找到工作时,我只能不断的学习。这并不是说这个行业人才过剩,而是说作为开发人员,我们远没有达到马上就开始做一款产品的能力。学习的过程越艰难,漫长,也会把别的人挡在门外,你的价值也会更高。当然我也希望能够早日找到工作,但是我必须要有长期艰苦生活的心理打算。

---------------------------------------------2020--------------------

  如何自己也能够建造高楼大厦,无非就是都看别人建的,自己不断的去建,然后再去建,直到建造出美丽的房子为止。在这一方面,我们应该感谢公司提供的实践机会,让我们有机会接触到复杂的系统,提升我们的能力。如果我们一直停留在demo阶段,我们就永远无法成长。

  IT技术和行业飞速发展,但是也有其脉络。

  一本《黑客于画家》,可以看到一些计算机行业发展的脉络。本书的不少文章写于2001年,英文版于2004年,中文版2010年。想想作者写本书的2004年,中国是什么情况?现在这本书仍然没有过时,这本书算不算是领先于时代?至少是领先于中国的。如果有人当年把书中说的话当回事的话,也可以成为今天的马云,刘强东了。所以说有时候没有找到发展方向,是没有接触到先进的idea。而书籍往往是慢半拍的,更快的方式是通过网络博客,专题报告和新闻,以及身边的人等。

  创业者为什么会成功?绝大部分原因可能是走在技术的前列,比如马云做电商,是在国外看到电商的模式,而同期的国人则没有认识到。

  但是也有很多是不变的,值得反复认识,比如

  如何设计一个系统,如何评价一个系统的好坏?

  如果说,程序=数据结构+算法,那么,系统=数据+流程。评价一个系统,核心数据有没有管理好,完成用户的流程是怎么样的?

 

  使用代码对现实世界进行抽象,软件设计和思维。程序员应该是世界上,智力超群的人。

  

posted @ 2019-04-25 21:59  懂得了才能做一些改变  阅读(352)  评论(0编辑  收藏  举报