前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >解读施帝芬.密斯考特的2021年10大编码原则

解读施帝芬.密斯考特的2021年10大编码原则

作者头像
老九君
发布2021-05-31 16:32:52
3170
发布2021-05-31 16:32:52
举报
文章被收录于专栏:老九学堂老九学堂
前言

StudioWeb.com网站发起人、1995年入行的骨灰级程序和教育家施帝芬.密斯考特(Stefan Mischook)

在2021年初谈起了一个话题:2021年排名前10的编码原则!这是我的参考翻译,原文是《Stef's Top 10 Rules of Code in 2021 ... Game Changer!》

参见YouTube网站截图如下

我们老九学堂认为这个“歪果大叔”说得非常务实、接地气,他说出了我们的老九学堂的心音。因此,我们想借着对施帝芬.密斯考特“2021年10大编码原则”的理解和解读,在这里分享给广大粉丝,希望给我们的粉丝在2021年带来元气满满的信心,以及找到在IT业发展的方向。

原则1

我们参考翻译一下:第一条.编程语言没有好坏之分。请大家不要把这个翻译当成标准,不足之处,请大家指正、补充。

解读

在当今时代的IT行业发展很快,编程语言种类繁多。下面我们给TIOBE网站的2021年3月份的编程语言排行

在TIOBE网站随便一搜就有50种当今最流行的编程语言,虽然TIOBE给这些编程语言排了名,但是它们真的好坏之分吗?答案肯定是否定的。

因为没有哪一种编程语言可以解决所有的实际问题,其实为了这个理想:使用一种编程语言解决所有的编程问题,Java曾经为了个努力25年也没有成功,当然C/C++更做不到。现在非常流行Python也做不到,我们只要看一下Python开发招聘岗位就知道了,Java是最多的岗位,其次是JavaScript为体系的前端岗位,第三名是C++系列的岗位。

可能有的童鞋要说了,那么Php呢?算了吧,Php和C#差不多,曾经的第一,现在已经日落西山无人顾啦。但是,说不定哪天Php或者 C#,或者Object-c等这些语言又重新冲上了Top 1的位置呢。这个现象说明了一个事实:编程语言无好坏之分!只有热门或者是不热门之分。

比如,我们老九学堂就非常看好现在排名41位的TypeScript编程语言!原因就是20年IT从业经验,从来都是能够紧跟IT发展趋势。

原则2

我们参考翻译一下:第二条. 写代码的速度比调试运行的时间多。请大家不要把这个翻译当成标准,不足之处,请大家指正、补充。

解读

当今的计算机机硬件设备和软件IDE都非常强大,我们现在写代码的时间再也不像过去的编程环境那样缓慢,即使我们使用Python这种脚本来开发,它的调试和运行速度也不比Java慢多少,包括在我们使用Php来开发大型复杂应用时.

现代的硬件环境开发环境和IDE都可以帮助我们高效地、快速地编写代码,然后快速调试运行,在我们开发环境中运行和调试的速度都不比使用Java或者C++编写的程序慢多少.

因此,在2021年的应用开发中,我们应尽量选择开发速度快速的编程语言来满足用户应用程序的功能要求,提高我们的综合项目开发效率。

原则3

我们参考翻译一下:第三条.专精一门编程语言打牢编程基础。请大家不要把这个翻译当成标准,不足之处,请大家指正、补充。

解读

因为现在常用的编程语言是非常稳定的,参见下图所示:

常年霸占编程排行前10的语言也就这6种:

  • Java
  • C++
  • Python
  • JavaScript
  • Php
  • C#

并且这些编程语言还要一直不断演变,功能越来越强大和稳定。所以,Stef建议学习程序时不需要把所有50种编程语言都学习一遍,我们在这6种语言中选一门来专精学习,打好基础为我们未来触类旁通学习其它的语言作好准备。

否则结果就是,我们好像什么都会一点,但是每一样都不精通。这样的程序员在这个行业走起来很困难,同时,也会在这个行业的发展中被逐渐淘汰掉的。

我们老九学堂的CTO的亲身经历就这样:从专精Java编程10年的EPR应用开发,然后转行做C++手机游戏编程开发,到现在最时髦的基于Node.js平台的JavaScript/TypeScript的全栈应用开发。

他从Java开发到其它编程语言的开发,每一次转身都是非常的轻松、华丽,并且现在一直在IT行业中过得轻松、惬意。新技术对于他来说是如此简单,可以快速上手开发。

原则4

我们参考翻译一下:第四条.不要抱着学习心态写项目。请大家不要把这个翻译当成标准,不足之处,请大家指正、补充。

解读

所谓“Tutorial Hell”是指我们写项目心态是抱着了解和学习的心态来写项目,是写给自己,而不抱着给用户写项目的心态来写项目!每一个在写项目从不考虑用户的需求的程序,他永远不可能成为一个真正厉害的程序员,最多就是一个“码农”而已。

我们老九学堂因为深知这个真谛,所以在线下训练营的教学中把为用户写程序的理念,一直贯穿在整个教学过程当中的。

原则5

我们参考翻译一下:第五条.养成代码重构的习惯。请大家不要把这个翻译当成标准,不足之处,请大家指正、补充。

解读

什么是代码重构?简单地讲就是,我们写完一遍功能代码之后,需要再次优化写过的代码,然后再次不断优化写过的代码,并且一直循环下去,这个过程就是代码重构,并且它是真正程序员必备的素养!

这个原则可能对于大多数据的学生来说可能是很难理解的,因为一般都会这样认为:我都使用洪荒之力写了,还要让我重新不断的优化?这是不能接受的要求。

但是,如果我们想成为优秀的程序员,这个是必须的职业素养。我们老九学堂也深知这个职业素养的重要性,所以在线下训练营的授课过程中,把这种理念一直贯穿在整个教学过程。

原则6

我们参考翻译一下:第六条.掌握设计模式在开发中的应用。请大家不要把这个翻译当成标准,不足之处,请大家指正、补充。

在上世纪90年代的IT业发生了两个重大事件:一个是1995年Java编程语言诞生,另外一个是1994年由“四人帮”(GoF)发布《Design Patterns:Elements of Resulable Object-Oriented Software》一书问世。

从此,设计模式的概念正式进入到软件行业,并且一致蓬勃发展到今!我们这里不深入讲解设计模式的概念,简单地说,我们可以把设计模式理解为:经验的总结。它可以反复用来解决软件开发中的问题。

并且,设计模式思想也是现代程序员必须学习和掌握的知识。真正的资深的程序员是能够正确的使用设计模式来解决自己的实际开发问题,比如设计模式在各种框架技术中被广泛使用,以至于我们日常代码都是被众多设计模式给限定的。

暂且不说软件设计模式如何能够让我们写出高度重用性的代码,如何能够构建高维护性的项目等,就拿现在我们应届生去任何一家IT公司面试,如果不能说几个设计模式在实际开中发动作,那肯定是过不了面试关的!

老九学堂在线下训练营,会带领大家阅读MyBaits源代码、Spring框架源代码,这样可以快速提高学生对设计模式的理解。

原则7

我们参考翻译一下:第七条.掌握使用多种语言进行混编的能力。请大家不要把这个翻译当成标准,不足之处,请大家指正、补充。

解读

学习编程语言除了要根据自己喜好来学习之外,最重要的是在实际开发中,要根据实际的项目复杂度、工期要求等来进行技术选型。而复杂项目的技术选型是很复杂的,并且使用的编程语言肯定会是多样性的,因此,这就要求我们在实际开发中必须掌握使用多种语言进行混编的能力。

打个比方,在微服应用开发中,我们微服客户端如果是手机,那么一般会使用微信小程序编写界面,外加一个使用需要跨双端(Android和iOS)APP应用程序,该APP应用程序一般可能使用HTML5技术来实现,或者使用uni-app技术来实现。

这里会涉及Android原生开发和iOS的Object-C或者Swift的原生开发,而后端的微服技术使用的技术就很多,一般会涉及Java、Php、Node.js、C++等等技术来实现微服后端应用程序,并且还要反它们整个在一起使用。

因此,真正的程序员必须在实际的开发中掌握使用多种语言进行混合编程的能力。我们老九学堂线下Java全栈训练营提供了这种能力的训练。

原则8

我们参考翻译一下:第八条.掌握与他人沟通能力。请大家不要把这个翻译当成标准,不足之处,请大家指正、补充。

解读

外界人士总是会误解我们程序员这个职责,一般都戏称我们程序员为“程序猿”,意思就是程序员就像猿人一样不会说话表达,只会吼叫、拍胸口似的。甚至有的同学因为自己不喜欢说话,所以他就去学编程,就是因为他觉得程序员就是不说话的行业。

但是,实际上这个根本就是一个笑话!如果我们程序员不具备与沟通的能力,相信第一次面试就不可能过关。这个和考研的一样,很多人是因为面试未通过才考研失败的。

另外,真正厉害的程序员不仅技术非常厉害,他们与客户和其他人员沟通的能力都是很强的。这样程序员才具备可以快速帮助用户解决问题的能力,并且会受到我们客户和其他同事、领导的喜爱,从而让我们自己的职业生涯过得非常顺利、开心。

原则9

我们参考翻译一下:第九条.掌握尽可能使用框架开发的能力。请大家不要把这个翻译当成标准,不足之处,请大家指正、补充。

解读

真正的程序员,他们的天性都是喜欢书写代码的人,并且从心里以自己书写代码为乐的人。比如数据结构和算法,这些在软件开发中都是涉及的。

像什么单向链表、双向链表、栈、队列这些数据结构,在我们学习时一定要求自己来书写并实现这些算法,并且在面试C++开发岗位时,通常要都笔记和机试算法代码实现,以考查应聘者对数据结构和算法的掌握能力。

但是,我们在实际开发中,一般是不会使用自己的算法来实现某些功能,而是采用别人框架来实现算法功能,比如Java中的LinkedList类实现链表功能,而不需要自己实现链表算法。

比如,我们使用标准C++库中的sort函数来实现排序,而不需要自己另外手写一个快速排序算法的函数来解决问题。为什么?因为这些Java工具类和标准C++库函数都是经过长期的使用,在实际开中已经验证了它们的正确性和可靠性。

所以,我们在实际开发中就是要直接拿这些标准类和工具函数来用,从而加快开发效率,减少代码出错率,降低了项目开发成本。

一句话,真正程序员是具有产品思维和项目管理思维的程序员,并不是一般人认为程序员就只是敲代码的人。我们老九学堂的线上Java训练营教授大家当今流行的各种前端框架,比如jQuery、Bootstrap、Vue.js、Element UI、React.js等框架技术,后端Spring Boot、SSM、Spring Cloud微服等框架技术,帮助用户快速就业。

原则10

我们参考翻译一下:第十条.不要妄想自己成为超人。请大家不要把这个翻译当成标准,不足之处,请大家指正、补充。

解读

可能我们大家都知道这样一句话描述中国人:一个人是一条龙,一群人是一条虫。我们提这句话不是想贬低咱们自己,而想说明一个现象:中国人是全世界都公认最勤劳的人民族,每个人的潜意识都是希望自己能够搞定一切的优秀民族啊!

但是,实际上在复杂应用程序开发中,一个人是搞不定的啊。如果真能一个搞定,那么就不会有这么IT公司存在了,对吧?老板一个人就自己搞定一切三。

同样,在实际项目开发中,我们程序员要学会与其他分工合作,不要想着当超人:什么都在写,以显示自己比别人牛逼。结果就是,三个人的开发小组,不还是一个来写的效率高。

所以,最后请牢记:就算我们已经成为了真正很牛逼的程序员,必须要会切分功能,合理分配项目成员分工,从而让一个三人项目发挥出五个的功效来,而不是只一个人的功效。

作者:技术大黍 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

<END>

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2021-05-27,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 老九学堂 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 原则1
    • 解读
    • 原则2
      • 解读
      • 原则3
        • 解读
        • 原则4
          • 解读
          • 原则5
            • 解读
            • 原则6
            • 原则7
              • 解读
              • 原则8
                • 解读
                • 原则9
                  • 解读
                  • 原则10
                    • 解读
                    相关产品与服务
                    项目管理
                    CODING 项目管理(CODING Project Management,CODING-PM)工具包含迭代管理、需求管理、任务管理、缺陷管理、文件/wiki 等功能,适用于研发团队进行项目管理或敏捷开发实践。结合敏捷研发理念,帮助您对产品进行迭代规划,让每个迭代中的需求、任务、缺陷无障碍沟通流转, 让项目开发过程风险可控,达到可持续性快速迭代。
                    领券
                    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档