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



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

  

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

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

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

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

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

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

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




  

相关话题

  国内的老程序员最后都去哪儿了? 
  程序员找不到对象到底是为什么? 
  如果按国家分,哪个国家编程最厉害?有没有代表人物? 
  学习编程的过程中是否真的需要敲代码?复制粘贴不行吗? 
  如何看待 Deepin 操作系统创始人王勇离职? 
  黑客比普通程序员高在哪里? 
  如何理解 “c++缺少对象级别的消息发送机制” 这句话? 
  作为一名码农,女朋友比自己更能码,是种怎样的体验? 
  cygwin和mingw选哪个? 
  什么是递归? 

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





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