百科问答小站 logo
百科问答小站 font logo



如果想让中国程序员水平高于美国程序员水平,中国互联网公司应做出哪些变化? 第1页

  

user avatar   wang-jian-10-88 网友的相关建议: 
      

要有做工程的思维方式去写程序,我觉得中国有,但可能还不是普遍现象。其实美国公司也并不是都有工程思维的,所以其实烂的东西很多,但是几个大的公司,特别是谷歌的工程真心做得很好。

我曾经有过在两个公司中有过和国内同事一起工作的经验,我发现国内的同事特别注重算法和代码的复杂程度,我不知道这是不是国内的普遍现象。好在这两个团队是我在带的,所以我用了一两年时间把这件事纠正了过来,我对他们一直强调的一件事就是:科学强调的是好奇心、探索方法和复杂程度;但工程强调的是简洁、可维护性和可延展性。

我觉得在软件开发这一块,有许许多多的人,不光是国内的,美国和欧洲的程序员也很容易地混淆这两个概念,有些程序员甚至追求自己的代码写得漂亮和有艺术性。我对我团队里的程序员说得很清楚:如果你们周末不想加班,晚上不想加班,不想在维护别人的代码时看不懂代码,那就想办法简洁化;我对我的团队的指导很简单,要是我们团队里任何队员需要一个小时以上读懂你的30行代码,你的代码对我来说就是垃圾,需要重写,我希望看到的代码是不懂代码的人也大概能看懂你的代码。

如何使代码简洁化就需要工程力量了,要做标准化版块,要设计升级的延展性。这个道理其实很简单,假使你汽车的刹车磨损了,你可以去换两块新刹车皮,而不是把车给换了,可惜在软件行业坏了刹车换新车的例子太多了,很多996就是这么来的。可维护性和可延展性就是工程的基础,标准件,统一流程,简洁功能的基础是复杂的工程能力。比如逻辑模块能不能独立出来?数据访问到数据对象化能不能独立出来?测试模块能不能独立出来?build/deploy版块能不能本地远程一体化?能不能debug复杂的平台?当问题的数据线有很多软件参予的时候,如何能迅速找到问题所在?

一个好的软件工程平台,任何新手都可以在这个平台上迅速开发自己的新功能,比如谷歌的程序员可以迅速对Pb的天量数据作ML的模块,与其欣赏该程序员的能力,不如欣赏谷歌的能力,在谷歌做5分钟的运算,很可能在其它公司需要几天甚至几星期甚至大半年。

中国互联网经历了20年的开疆拓土,已经开辟了自己的天地,完成了原种积累,应该静下心来沉浸技术,去创造软件界的高铁了。




  

相关话题

  如何使用 python 写一个简单的表达式解释器? 
  本科即将毕业,打算5个月学编程当码农,往哪方面学比较好? 
  如何评价 @左耳朵耗子 关于建设团队的一条微博? 
  程序员属于什么阶级?上升空间如何? 
  大三下学期了,比较熟悉C#但哪都看到JAVA薪资和发展都比.net好,想转学JAVA,还来得及吗? 
  一百行以下有哪些给力代码? 
  为什么国内每天都在说 Python 有多好,真正招聘的时候却不需要呢? 
  CSDN现在发展怎么样? 
  在宿舍写代码总被一个室友认为在装逼,该怎么办? 
  学编程的人从来没有想过让程序自动编程吗? 

前一个讨论
年过 30,现在努力还来得及吗?
下一个讨论
雪球上有哪些值得关注的用户?





© 2024-05-20 - tinynew.org. All Rights Reserved.
© 2024-05-20 - tinynew.org. 保留所有权利