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



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

  

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

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

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

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

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

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

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




  

相关话题

  C#程序如何调用Python程序? 
  有没有那么一次,Java让你欣喜若狂? 
  为什么有些(可能只是一些)程序员工作经验越长、丰富,越谨慎,越不愿意用新技术新特性? 
  程序员为什么是吃青春饭,而不是像医生律师一样越老越值钱? 
  程序员工作压力大,身体也垮,为什么还这么多人想做程序员?是因为喜欢吗? 
  计算机专业的学生怎样练习编程才能把编程学精通啊? 
  有哪些生活小事让你感叹到「这个世界已经离不开程序员了」? 
  程序员都是怎么缓解找不到bug狂躁的心情? 
  java学成什么样子可以出去实习? 
  你的程序员学习之路是怎样的?你现在对于编程有哪些感想? 

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





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