像雷军一样成长

0d5afaca9b07e9adb7a8950c6e7ef79f.jpeg

hi,大家好,今天分享一些雷军的成长心得,希望我们可以从中学到一些东西,启发我们如何快速成长,大家也可以关注8.14雷老板的直播分享。

b688b9f41e9e17928e4fe0fdeae12608.jpeg

雷军看了硅谷之火后,雷军认为,计算机的世界很大,程序员可以主宰一切。毕业后成为了一名程序员,而且一干就是10年。之前网上出现一篇“刘强东的代码水平如何”的文章,有网友在下面回复“代码只服雷军”。早在十几年前,微博上就曾流传过雷军早年所写的一段完整的汇编代码:

6b51fae58f0f9dcc994be8167a5b7bd6.png

ee8c704a347afbc7bffce16ec0aab070.png

(部分代码)

很多人都对此发表了看法:

d985d2036baa69b60151984747c36511.jpeg

01

写程序还是自己最擅长的事

也是最喜欢的事

刚毕业的时候,编程不仅仅是爱好,而且也成了一辈子的工作。整天不知道写些什么东西,觉得特别没劲,找不到感觉,特别灰心。后来,才明白,只有全身心地投入,程序才会有感觉,唯有热爱才能克服各种问题,可以肯定我会干上一辈子,虽然我没有打算一生只干这一件事。

e30d71fdfb45ee39ae4a97a414476731.jpeg

用一生来编程序是一件既容易又困难的事。如果碌碌无为,为交差写点程序,这样的日子太好混了。但如果想全身心地写程序,写十年就不是一件容易的事。

面对电脑的时候,写程序还是自己最擅长的事,也是最喜欢的事。

02

编程是技术,更是艺术!

有人认为编程是一种熟练工种,也有人把编程说成是艺术创作。

我们换个工种来看,石匠应该是熟练工种,属于工人,更和艺术似乎沾不上边。但正是这些石匠,给我们留下多少文物古迹,如乐山大佛、莫高窟等等。应该说这些石匠给我们留下了无穷的文化财产。

现代软件工业已具相当规模,很多软件的完成需要的是大兵团作战。一名普通程序员接受编写某一模块的任务后,往往只是写代码,发挥的余地很小。

在大项目中,很多程序员只能了解到和自己所编模块相关的很局部的细节,另外还受到开发环境的限制,真的很难体会到自己在从事艺术创造,更多的时候是感到自己在从事重体力劳动。

有的时候还担心自己苦苦参与的这个项目究竟有没有意义,是不是在同类产品中有竞争力,会不会开发出来以后就因为硬件的发展,操作系统的换代而过时……

编程应该说两种属性都有。编程不仅仅是技术,也还是艺术。编程是技术活,才有可能大规模进行,才会有软件工程和软件工厂。也正是编程是艺术,才会有如此多的好产品,让大家如痴如醉。

03

像工匠一样写够十万行代码

又须像写诗一样来写代码

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

计算机是一门实践性的科学,没有动手能力做支撑,很难做出好的科研成果。

我的一个学长是美国卡内基梅隆大学的博士,卡内基梅隆大学计算机系在全世界都非常出名,他说每个博士生必须写十万行代码才能毕业,卡内基梅隆大学博士生进任何一个大企业基本不用面试。

而国内培养的大部分研究生、博士生,动手能力都偏弱。没有写过足够代码量的程序员,想成为高手是不可能的,只能纸上谈兵!

那么,怎样像写诗一样写代码呢?很简单,买几本经典的编程书,把书上所有例程全部重新写一遍,逐个比较和书上范例的差距,一步一步改善自己编程的风格和技巧。时间长了,自然就能写出像书上例程一样的代码,甚至可以比书上写得好。基础扎实后,多看看Linux等系统级的源代码,看看高手是如何写的,就有感觉了。

还有,一定要牢记软件工程的铁律:可能出错的地方一定会出错。每个变量都做初始化,引用每个参数都要做有效性检查,在可能出错的每个地方都要做边界条件检查,这样开发出来的程序一定会稳固很多,就是出错也很容易修改。

04

时刻保持好奇心

不要局限在技术本身

计算机技术更新换代非常快,每年都有各种各样的新技术出现。

需要时刻保持好奇心,不断学习各种新的东西,才能在未来的几十年职业生涯中不落伍。

人的精力有限,高手往往工作压力也比较大,如何在有限的时间内掌握整个行业动态,的确不是简单的事情。我的经验是经常看业内的各种技术杂志,参加各种聚会,可以节约很多时间。

最重要的是,交几个博学的技术高手,多和他们交流,一定受益匪浅!

现在的软件研发越来越强调团队协作,不少团队都配置了专门的需求分析工程师、用户界面及用户体验的设计师,软件研发的分工越来越细。

很多程序员以为只要把技术搞好,不用管用户需求和用户体验。实际上,需求方案及界面方案不可能写得非常细,具体的实施还是程序员自己来实现的。这个时候,好坏的差距很快就体现出来了。

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

05

不要被追求的目标

限制自己的抱负

有的人学习编程技术,是把高级程序员做为追求的目标,甚至是终身的奋斗目标。后来参与了真正的商品化软件开发后,反而困惑了,茫然了。

一个人只要有韧性和灵性,有机会接触并学习计算机的编程技术,就会成为一个不错的程序员。

刚开始写程序,这时候学得多的人写的好,到了后来,大家都上了一个层次,谁写的好只取决于这个人是否细心、有韧性、有灵性。掌握多一点或少一点,很快就能补上,成为一个高级程序员并不是件困难的事

c4b685e1d800518cacfee4e55e418241.png

当我上学的时候,高级程序员也曾是我的目标,关键是你的技术能否被市场认可,能否成为领域的专家,为社会创造财富。成为高级程序员绝对不是追求的目标。人生还很长,我想做点事情,每个人的timing不同,不妨先把第一步走好,先做一个优秀的程序员,让自己感到满意,优秀的人总是成长很快。

如果立志想成为一个优秀的人,欢迎校招和社招同学加入极客星球,一起学习,一起快速成长:

  • 修炼基本功:分享多年基础技术深度理解,基础概念深度解析,经典书籍推荐和读书分享,如何阅读开源软件源码等,不定期直播分享和答疑解惑;

  • 扩展技术和商业视野:分享海内外热门技术发展,大厂技术内幕,业界解决方案;

  • 校招/社招就业专家指导:模拟面试,简历修改,面试题分析,各类后端学习路线就业指导,如何面试高薪工作指导等;

  • 职场普升/技术专家:分享各种不同公司宝贵的职场普升经验,技术方向选择指导, 大厂经验,快速普升,技术专家,少走弯路;

  • 专属交流群:开阔眼界,分享心得,每天成长,厚积薄发,技术问题可以咨询,讨论,交流!

分享深入理解系列

  • 深入理解计算机系统

  • 深入理解操作系统(调度,内存,网络,IO)

  • 深入理解并发技术全景指南

  • 深入理解编程语言

  • 深入理解算法与数据结构

  • 深入理解网络协议

  • 深入理解网络编程

  • 深入理解性能优化

  • 深入理解分布式技术

  • 深入理解数据库

  • 深入理解代码设计

  • 深入理解架构设计

详细了解:极客星球  ,现在加入超级优惠,早点加入一起学习成长,早点突破成长瓶颈:

a3ac209fa113c55f9a3ec350f9ae7bff.png

扫码加入,加我微信:fr35331508,拉你进极客星球群。

        谢谢大家在看,转发,点赞

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值