zoukankan      html  css  js  c++  java
  • 雷军语录:写程序有写诗一样的感觉

    01 只有真正喜欢才能写好程序

    喜欢写程序,做程序员就是上天堂;

    不喜欢写程序,做程序员就是下地狱。

    ——雷军

    程序员需要整天趴在电脑前,经常没日没夜的,非常辛苦,而且工作来不得半点虚假,少写一个标点符号都不行。喜欢的人,日子过得非常开心,每写一行代码,都会有新的成就,尤其当自己的作品被广泛应用的时候,那种自豪感油然而起。不喜欢的人,坐在电脑前极端无聊,被进度压得喘不过气来,天天为找bug改bug生气。

    02 把程序当艺术品,象写诗一样来写代码

    如果每个人写程序的时候当艺术品来写,写每行都认认真真、干干净净的,虽然速度略微慢了一点,但综合的开发成本会低很多。

    ——雷军

    现在很少有公司做 codeview (对写好的程序做代码级检查),于是很多人在进度的压力下潦草应付,只要测试通过就算搞定。表面上看,开发速度很快,进度有保障;但实际上,这样的程序连开发者自己都很难读懂,一旦有bug,很难调试,将来维护升级都非常困难。这样的代码多半只能重写,浪费自然严重。

    如何写像诗一样美的代码呢?雷军给出了几个方法。

    2-1

    多做代码练习

    买几本经典的编程书,把书上所有例子全部重新写一遍,逐个比较和书上范例的差距,一步一步改善自己编程的风格和技巧。时间长了,自然就能写出像书上例子一样的代码,甚至可以比书上写得好。

    2-2

    多看系统级源码

    基础扎实后,多看看Linux 等系统级的源代码,看看高手是如何写的,就有感觉了。

    2-3

    牢记铁律

    牢记软件工程的铁律:可能出错的地方一定会出错。每个变量都做初始化,引用每个参数都会做有效性检查,在可能出错的每个地方都会做边界条件检查,这样开发出来的程序一定会稳固很多,就是出错也会很容易修改。野路子出来的高手,一般开发速度很快,但做完后bug很多,经常需要很长时间修改。而真正的高手,追求的境界是 bugfree code(零缺陷代码)。

    03 必须写够十万行代码,不要心存侥幸

    程序员象木工一样,熟能生巧。程序员必须写足够代码量的程序,才会有感觉,这是一个苦力活,没有任何捷径可走。

    ——雷军

    计算机是一门实践性的科学,没有动手能力做支撑,很难做出好的科研成果。雷军的一个学长是美国卡内基梅隆大学的博士,卡内基梅隆大学计算机系在全世界非常出名,他说每个博士生必须写十万行代码才能毕业,卡内基梅隆大学博士进任何一个大企业基本不用面试。而国内培养的大部分研究生、博士生,动手能力都偏弱。

    没有写过足够代码量的,想成为高手是不可能的,只能纸上谈兵!

    04 时刻保持好奇心

    计算机技术更新换代非常快,每年都有各种各样的新技术出现。在他过去的职业生涯中,仅编程语言,雷军就用过 basic、masm、pascal、c++、vba、Delphi、java 等。需要时刻保持好奇心,不断学习各种新的东西,才能在未来的几十年职业生涯中不落伍。

    谁也没想到,仅仅几年,Python就成为最火的语言,并且还进了高考,连小学生都开始学Python了。前几天还看一个老父亲在评论区留言说,想我老大三十多的编辑为了降低以后被淘汰的几率,现在咬着牙和一堆十几岁的娃娃一起学Python……另一个妈妈则忍不住偷笑,因为自己的孩子进了以编程为特色的小学。

    05 不要局限在技术本身,多关注用户

    一个真正的高手需要知道用户需要什么,如何做出让用户满意的产品。

    ——雷军

    现在的软件研发越来越强烈团队协作,不少团队都配置了专门的需求分析的工程师、用户界面及用户体验的设计师,软件研发的分工越来越细。很多程序员以为只要把技术搞好,不用管用户需求和用户体验。实际上,需求方案及界面方案不可能写得非常细,具体的实施还是程序员自己来实现的。这个时候,好坏的差距很快就体现出来了。

    写程序的最终目的是满足用户需求,不是简单完成需求规划方案中的功能。所以,程序员一定要认真揣摩用户心理,能明白用户的真实需求。

    其次,怎么设计交互界面,让用户觉得好用,用起来舒服,这里面学问很大。

    雷军举过一个小例子,每个程序窗口右上角都有三个按钮,如最小化、关闭等。乔布斯觉得不好看,不易用,他提出改用红绿蓝的交通灯。这样修改后,果然 Mac OS 漂亮和易用了很多。

    目前互联网和手机上的应用开发,都非常强调小团队研发。这样研发模式速度会快很多,但对程序员的综合素质的要求也就更高了。

    雷军强烈建议程序员不要仅仅局限在技术本事,还需要多点精力考虑和用户相关的问题,学会洞察用户的需求,并努力设计好用易用的产品。做到这点的程序高手,创业胜算就很大了。

  • 相关阅读:
    Checking Types Against the Real World in TypeScript
    nexus pip proxy config
    go.rice 强大灵活的golang 静态资源嵌入包
    几个golang 静态资源嵌入包
    rpm 子包创建学习
    Rpm Creating Subpackages
    ava 类似jest snapshot 功能试用
    ava js 测试框架基本试用
    The Architectural Principles Behind Vrbo’s GraphQL Implementation
    graphql-compose graphql schema 生成工具集
  • 原文地址:https://www.cnblogs.com/ftl1012/p/9503043.html
Copyright © 2011-2022 走看看