• 【转】怎样看待大学期间的代码练习


    前几天,与院长一起到学院调研学生软件技能的学习情况。当时,我谈到尽可能多得去写代

    码,只有代码量达到足够多时,才能提高水平。软件开发是实践特强的技术,只有更多的实

    践才会有本质的提高,量变引起质变这毋庸置疑。

    有学生问写多少代码量,会达到什么水平呢?这个有人这样描述:代码量是评判程序员水平

    高下的方法之一。微软要求应聘程序员在大学四年间至少要写10万行代码。李开复也建议计

    算机类的学生争取在大学四年中积累编写十万行代码的经验。由此可见代码量积累的重要性



    当你编写过100行代码的时候,应该对编程有了一个朦胧、感性的认识。

    当你编写过1,000行代码的时候,应该已经掌握编程的基本结构了(顺序、分支、循环)。

    当你编写过10,000行代码的时候,可以用自己喜欢的编辑器做自己喜欢的小玩意儿了。

    当你编写过100,000行代码的时候,你会对自己编码能力充满自信,并且发现公司中至少

    70%的人水平在你之下。

    当你编写过1,000,000行代码的时候,恭喜你,终于成为老皮了,哦,我是说程序高手、高

    手、高高手,请给我一张你的名片。

    首先,在这所描述的“写”不是Ctrl+c 与Ctrl+V。是真正手打出来的,并且是设调完成无

    bug的可用代码。其次,写代码与不是抄代码,将书上或老师写过的再重新打一遍,而是按

    自己业务逻辑编写的代码,编写代码的过程也是一个学习与思考地过程。还有,在写代码时

    ,要不断优化,不断重构,这个过程对学习来讲更重要,如果尝试各种方法对比,再找出最

    优的方法,完成,尽管此时完成代码量不多,但进步更快。优秀的成长过程,会不断发现此

    前所写代码是多么“烂”,多么不完善,此时,如有时间一定要实验一下新的思路是否正确



    如果你在不停的重构代码,不停的思考更好方式,也不停的接触面向对象,学习设计模式,

    研究各种开源的架构。那去做开发时,可能更多得是思考,去分析,写代码时间会少,完成

    项目的代量可能也会不多,但此时才是登堂入室了。大部分程序员只会使用语言编写程序,

    但不知道这个源程序究竟是如何变成可执行代码、变成什么可执行代码,这些可执行代码的

    执行时间是长是短。因此,要从根本上提高程序的效率,需要程序员深懂源程序到可执行程

    序的过程,深懂编译原理、深懂汇编语言、深懂汇编中的系统调用。对于数据库而言,程序

    员要深懂数据库原理、深懂数据存放方式和数据查询方式,深懂数据库操作与I/O操作与内存

    的关系。而这些深懂是需要长时间编程积累的。

    写代码更要讲质量,前面所说不停的改,不停的思考,实际也是提高编写代码质量的过程。

    代码的质量包括代码结构,清晰性,可读性,对于性能要求高的软件,还包括算法的复杂性

    等是衡量一个优秀程序员的标准。大部分程序员只会使用语言编写程序,但不知道这个源程

    序究竟是如何变成可执行代码、变成什么可执行代码,这些可执行代码的执行时间是长是短

    。因此,要从根本上提高程序的效率,需要程序员深懂源程序到可执行程序的过程,深懂编

    译原理、深懂汇编语言、深懂汇编中的系统调用。对于数据库而言,程序员要深懂数据库原

    理、深懂数据存放方式和数据查询方式,深懂数据库操作与I/O操作与内存的关系。而这些深

    懂是需要长时间编程积累的。要达到这个标准,是需要一个量变到质变的过程的,而质变的

    目的也是为了达到高质量代码。所以,有时,写过很多行代码,未必就是优秀程序员。我曾

    经面视过,几个不求上进的老码农,从他们做过的项目看,代码是写了不少,可比优秀程序

    员差得很远。原因,第一次写过代码,完成了功能,第二次再用,就考过去,稍加改动就可

    ,至于代码性能如何,是否可维护,是否可读,性能怎么样,根本不去多想。这样下来,水

    平一直不会长进,自然会被社会淘汰,去努力得找工作!

    下面谈一下,作为技术总监从代码怎样去确认程序员。好的程序员写的代码,整洁而规范,

    视觉上自然有一种美感。空白错落有致,注释恰到好处,命名和排版遵守统一的规范,有一种

    精心雕琢而成的一致性。程序的好坏几乎总是取决于它们是否“漂亮”,不“漂亮”而好的

    程序,除了C++ STL源码,而又好又“漂亮”的代码则随处可见,如Linux Kernel,InnoDB

    ,JDK,JUnit等等。

    差的程序员写的代码则经常出现过长的函数,前后不一致的命名方式和排版,过深的嵌套结

    构,非常复杂的表达式,随处可见的数字等毛病。

    从代码也可以看出一个程序员的团队协作精神。注意团队合作的程序员,会严格按照团队规

    范写代码,而风格与团队规范不一致的程序员则很可能欠缺团队精神。注意团队合作的程序

    员会注意给模块的对外接口加以重要的说明,如前置条件、后置条件、参数能否是NULL等等

    ,不注意团队合作的程序员懒于处理这些细节。在此要重点说一下注释,因为发现学生基本

    上不写注释。注释并不是越多越好,但多的注释总比没有强。优秀程序员,不仅将必要参数

    ,调用说明写上,将改动过程注明,也将业务逻辑做简单说明,还可能在必要地方写上思路

    与思考过程,可能引发问题。

    好了,先写到这,抛砖引玉了。
                                 
  • 相关阅读:
    iOS的生命周期
    【iOS开发】在 App 中加入 AdMob 广告
    iOS性能优化:Instruments
    动态的计算行高 加载数据源 有多少显示多少 tableView 包含 colloctionView 显示复杂的界面写法
    Java String.split()注意点
    Java eclipse export jar包 包括第三方引入的jar
    微信网页授权获取用户基本信息
    android连接本地tomcat服务器,报timeout
    iOS内存管理retain,assign,copy,strong,weak
    static与全局与局部变量的区别
  • 原文地址:https://www.cnblogs.com/firecode/p/2460885.html
Copyright © 2020-2023  润新知