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



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

  

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

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

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

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

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

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

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




  

相关话题

  为什么现在很多人对网络空间安全专业持劝退态度? 
  既然报个培训班就可以成为码农,那学计算机专业有什么用? 
  如何看待华为自研编程语言「仓颉」试用开启,汉字编程靠谱吗? 
  .NET 会翻身吗? 
  如果加班是自愿的,你们会为了钱加班吗? 
  学习机器学习应该看哪些书籍? 
  你遇到过哪些代码优雅的C#项目? 
  你见过哪些神一样的优化操作? 
  感觉算法在程序员中快被吹上天了,如果只是搞编程的话,是不是没必要死磕算法? 
  C#中关于List<T>和HashSet<T>应用的效率问题? 

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





© 2024-06-02 - tinynew.org. All Rights Reserved.
© 2024-06-02 - tinynew.org. 保留所有权利