雷军语录:写程序有写诗一样的感觉

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 漂亮和易用了很多。

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

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

原文地址:https://www.cnblogs.com/ftl1012/p/9503043.html

时间: 2024-08-14 19:59:45

雷军语录:写程序有写诗一样的感觉的相关文章

思考程序与写程序的关系

首先引用孔夫子的一句话:学而不思则罔,思而不学则殆. 首先,学而不思者罔这句话的意思就是如果做一件事情,我们只是为了完成任务才去做这件事情,如果我们不对问题进行思考,那么我们就会感觉知其然而不知其所以然. 思而不学则殆这句话就是,如果我们不动手去做,而一味的去思考结果,那么就会在一个点停滞不前. 其实我很赞成孔夫子的话,我个人认为这2句话很适合编程的人,当然“学而不思者罔”这句话,我个人觉得更适合于我们程序员. 其中造成学习而不去理解它的原理有几点原因. 任务本身的进度很赶,没时间去研究那么深刻

写程序引发的思考

 最近2个月除了完成日常的工作以外,还在练习数据结构这一块的知识,因为感觉数据结构自己还不是很熟悉,最近 完成的练习如下: 数据结构练习连接:http://blog.csdn.net/qlx846852708 1.顺序表的实现 2.单向链表的实现--通讯录 3.队列的实现--银行排队系统 4.c语言猜数字小游戏 5.计算圆周率 6.输入年.月.日计算星期几 7.linux下tcp和udp的通信 8.熟悉了makefile的编写 9.linux下文件夹加密小程序 多动手: 总之,感觉就是还是要

一个平时写程序通用的Makefile样例

//需要目标名和程序名字相同 .PHONY:clean all //伪目标 CC=gcc CFLAGS=-Wall -g BIN= //目标 all:$(BIN) %.o:%.c $(CC) $(CFLAGS) -c $< -o [email protected] clean: rm -f *.o $(BIN) 平时写程序肯定需要反复的修改,有了这样一个makefile程序会方便很多的.动手试一下.

用CIL写程序:写个函数做加法

前言: 上一篇文章小匹夫为CIL正名的篇幅比较多,反而忽略了写那篇文章初衷--即通过写CIL代码来熟悉它,了解它.那么既然有上一篇文章做基础(炮灰),想必各位对CIL的存在也就释然了,兴许也燃起了一点探索它,掌握它的欲望.那么小匹夫就继续扯一扯CIL,接下来的几篇文章也都以上一篇文章中的那个CIL实现的Hello Wolrd程序为基础,继续通过写CIL代码实现一些功能的方式来和各位探讨交流,同时也加深自己对CIL的掌握和印象. 人生就是做加法 "我的肩上搭着她得衣裳,我嗅着她留在衣服上的体香..

019写程序在一棵二叉树中找到两个结点的最近共同祖先(keep it up)

写程序在一棵二叉树中找到两个结点的最近共同祖先. 分两种情况来讨论这个题: 第一种情况结点中没有指向父结点的指针 第二种情况接种有指向父节点的指针 我们先看第一种情况,结点中没有指向父结点的指针. 我们可以采用暴力搜索每一个结点,如果这个结点的子树中 有已知的两个结点,那我们就继续沿着左右子树找,如果左子树 能找到,我们就继续沿着左子树找,如果有子树能找到,我们就 沿着右子树找,不存在两个子树都能够找到. 代码: struct TreeNode {<pre name="code"

代写程序|java二叉树字典查询(qq 928900200)

This assignment will help you practice and understand better the Binary Tree and Binary Search Tree data structures, their operations and implementations. You are to design a small dictionary using the Binary Search Tree data structure. Each entry ma

关于郭天祥51开发板无法烧写程序问题的解决(Prolific USB-to-Serial Comm Port)

1. 事件背景: 由于使用了win8系统,之前购买的郭天祥C51开发板在通过一个两头都是usb口的下载线下载程序时出现了问题:下载工具stc isp无法连接到开发板上的串口,所以无法下载程序到c51开发板上,错误显示如下 2. 寻求解决方法 本人尝试了网络几乎所有的方法,包括更新驱动.恢复驱动到旧版本(可能有用,我没用)等等方式都没有成功.这导致本人当时几乎放弃了这块板子.在尝试过程中我也想过用u转串连接板子上的串口到电脑的usb口来下载程序,但是也没有成功. 3. 踏破铁鞋无觅处,得来全不费工

我要把你写进我的诗

最近突然想学弹钢琴,想想年纪一大把了,朋友说现在学会不会太晚了.我觉得是不早了,但应该还是可以学的. 我一直觉得,人活着就是一个认知的过程,即使活到七老八十,自己不知道不会的东西依然有很多,其实,你活着,你有意识无意识,你每天都在学习.所以,想学什么,什么时候开始学都不晚.只要有心,一定可以学好.至于过了最佳学习阶段,也许是前人拿来劝学的手段,也许真有这一说.但在我看来,时间永在消逝,现在弥足珍贵,抓住现在,做好时下,就好了.毕竟东榆已逝,桑榆非晚. 其实想学钢琴的念头已经由来已久了.以前因为没

可变变量常用用于在写程序的时候不确定需要用哪个变量去处理数据的情形

可变变量常用用于在写程序的时候不确定需要用哪个变量去处理数据的情形.$gif = “logo.gif”;$jpg = “logo.jpg”;$png = “logo.png”;假设用户可以填写一个表单,以决定其想要什么类型的logo图片,$f1 = $_GET[‘fileType’]; //用户选择所需要的图片类型的后缀,可以是“gif”,“jpg”,“png”sendFile( $$f1 ); //假设sendFile()可以发送文件,