精明的程序员——爱学习

上一篇说到,尽可能少地去做重复的工作,因为它很难让人进步。这篇说说如何寻求进步,答案就是学习。

先说说我的大学经历吧:一二年级打基础,三年级开始做了第一个大项目,四年级就实习了。要说哪个阶段收获多,什么时间进步少,其实感觉每个阶段收获都很多。

上学的期间一定要把基础打扎实,有很多知识看似眼前没有什么实际用处,其实不然。

刚上大学的时候,觉得所有必修课里,数学最难,于是下定决心把数学搞好。整整一年的时间,几乎每天一有时间就埋头自习室做数学题。烦躁的时候会疑惑,自己的专业是软件,可为什么要这么拼命去学数学,当时也想不明白,但是是必修课啊,考不好就没有奖学金了(其他计算机类的课程没有画太多功夫,反而成绩都不错),于是继续拼命地学,最终终于保持在90分之上。到了大三做的那一个三维重建的项目,发现里面大量用到了各种矩阵空间转换的知识。真是非常感激自己当年好好学了线性代数。如若不然,为了应用很多必要的数学原理,或是为了看懂人家论文里面的公式和术语,又要重新拿着书本去啃了。

我经常对自己说, 基础越深,行的越远。有人说动手能力很重要,没错,常常看到一些同学刚学会一个语言就能编出一个完整的程序。但是后来发现,这些所谓的“geek”们工作时仍然是在靠体力吃饭。这样的人在程序员这个行列里,实在是数不胜数。如何能跳出这个体力劳动圈子,我觉得,关键就是看一个人的基础是不是够深厚。就像武侠小说里,那些男主们不是偶遇大牛真传,就是吃了奇奇怪怪的毒蛇蛤蟆,导致内力深厚却不会什么招式。与之相反,反派往往都是拿到一本剑谱就去苦练的人,就会欺负些二流角色,最后与男主的对决中总是被KO得一败涂地。

做项目的时候,或是实习的时候,感觉单纯学习的时间变得及其少。有个和我一组的同学,项目之余,经常还会去自习室自习,让我很是佩服。因为我认识的大部分开始接触项目的同学,泡自习室的时间大打折扣,完全是换了一种生活方式。加之“老板”们要催进度,或是项目有期限,很难挤出时间来学习。后来去实习了,连自习室这样的环境都消失了,看书的时间明显变少。

我很害怕,自己在忙碌中会停止进步,但是我发现没有,我感觉自己大三大四两年的收获并不比之前少。从这两年一边干活一边学的过程里,积累了不少经验。可以拿来分享一番。

现在回想,做三维重建的大半年年时间里,我读了有几百篇paper!为了改进一个小小的算法,就要读十几篇甚至几十篇。当时我还是本科,读的paper大都是研究生们的著作,刚开始还是在“拜读”,后来就能分得清良莠,知道那些是抄袭,那些是原创。看了人家的一个想法,自己去实现一下,就可以验证他的数据是真实的还是杜撰的。我觉得在这个过程里,进步会非常快。一般读几十篇,基本就可以掌握一个领域比较核心的知识。当然,这个方法有局限性,与项目密切相关。就像后来在北大软件学院做的Android应用,这样的项目,就不太适用了。

开发多的时候,在实现或者设计的时候,就会遇到工程性而非学术性的问题。甚至对某一门语言是否能灵活驾驭,就会马上表现出来。这时,我就爱上了博客。看别人的技术博客对自己提高很大的。另外,有些问题,用搜索引擎是不容易搜出来的。比如,像定义一个像printf这样的函数,可是还不知道variable-argument这个词;或者,在shell里$* $# 神马的都是什么意思。遇到这些问题,最终一定是搜到某一篇帖子里得到答案的。这种方法积累知识的速度很快。缺点是不像读书一样,能够建立一个完整而扎实的知识系统。

还有很多小技巧。请教别人显然就是一个不错的方法,如果坚持读一些比较经典的书籍那是最好不过了,至于哪些书籍是经典的,还是建议先去请教别人,否则你可能会在“深入前出xxx”或者“21天学会xxx”上面浪费很多时间。我还经常打印一些主题,大概有一两页那么多,坐一次地铁的时候就看一个主题,否则感觉好多时间会浪费在路上,及其心疼。

不论是工作了,还是在上学,要想进步,就必须好好学习,作为前提,必须保持着爱学习的心态。有人说工作忙,“忙”拆开来就是“心亡”二字,无论要做的事情再多,人再忙,心一定不能忙,要冷静地从每一件事中学习可以学习的东西,这样你做的事情越多,能学到的就越多,进步也就越大。 学而不思则罔,切不可无谓的重复,停止思考而是用身体去记忆。不然,就真的成了“代码工”了。

精明的程序员——爱学习相关推荐

  1. 【跃迁之路】【578天】程序员高效学习方法论探索系列(实验阶段335-2018.09.06)...

    [跃迁之路][578天]程序员高效学习方法论探索系列(实验阶段335-2018.09.06) @(跃迁之路)专栏 [跃迁之路]奖励金计划正式开始 从2018.7.1起,[跃迁之路]奖励金计划正式起航, ...

  2. 2020年Java程序员应该学习的10大技术

    对于Java开发人员来说,最近几年的时间中,Java生态诞生了很多东西.每6个月更新一次Java版本,以及发布很多流行的框架,如Spring 5.Spring Security 5和Spring Bo ...

  3. 霍炬:程序员爱写脚本是种病

    霍炬:程序员爱写脚本是种病 投递人 itwriter 发布于 2016-09-16 22:00 评论(22) 有3033人阅读 原文链接 [收藏] « » 如果你就是程序员,或者你熟悉程序员这个群体, ...

  4. 精明的程序员——小程大爱

    精明的程序员--小程大爱 虚伪的大项目 在参加软件学院研究中心面试的时候,老师们问我有什么项目经历.记得我当时的回答是这样的: "我的项目经历主要是在Intel公司的一年实习经历,这期间主要 ...

  5. 从阿里社招面试,看“野生”Java程序员的学习道路

    引言 很尴尬的是,这个类型的文章其实之前笔者就写过,原文章里,笔者自称LZ(也就是楼主,有人说是老子的简写,笔者只想说,这位同学你站出来,保证不打死你,-_-),原文章名称叫做<回答阿里社招面试 ...

  6. 程序员英语学习之英文官网查看Kafka(三)

    程序员英语学习之英文官网查看Kafka(三) 1. 背景 作为程序员,由于计算机软件本身历史原因,最新和最全的资料很多都是外网上的英文资料.部分有中文版,但受限于官网或者爱好者精力,并不会很全面和很新 ...

  7. 2020年Java程序员不得不学习的10大技术

    对于Java开发人员来说,最近几年的时间中,Java生态诞生了很多东西.每6个月更新一次Java版本,以及发布很多流行的框架,如Spring 5.Spring Security 5和Spring Bo ...

  8. PHP程序员的学习路线

    最近刚好有一个同学对编程很有兴趣,所以前来询问我该如何学习,从哪一步学起.刚好我自己也想总结一下,也是给他,也是检验一下自己,看看自己的学习之路是否正确. 一.入门篇 1.关于编辑器 (1)我们要学习 ...

  9. ajax不执行_好程序员Java学习路线分享原生Ajax的使用

    好程序员Java学习路线分享原生Ajax的使用,首先我们先来看一下什么是 AJAX AJAX 是一种在无需重新加载整个网页的情况下,能够更新部分网页的技术. AJAX 就是 异步.JavaScript ...

最新文章

  1. 国家标准油类计算机,食用油新国标正式实施 产品配方将不再是“机密”
  2. Ztree节点增加删除修改和Icheck的用法
  3. C#读取SHAPEFILE文件总结0--大纲
  4. 《构建之法》第三周阅读笔记
  5. 程序集强命名与GAC
  6. sift线特征提取代码_车道线检测LaneNet
  7. android项目 之 记事本(6)----- 加入手写
  8. Ngui之UI框架的层级处理
  9. java - 求最大公约数和最小公倍数
  10. Servlet规范简介
  11. CIO40:家电巨头数字化运营历程(IT-DT-OT)
  12. python可以写什么视觉特效_Python实现视觉特效:一行命令给头像自动戴上口罩的案例...
  13. vscode中建立vue项目
  14. Windows10设置挂起(休眠)
  15. 【GIS】PostGIS使用案例
  16. 微信怎样查绑定的服务器地址,你的微信绑定了哪些网站和应用?这个方法可以一键查看......
  17. Trino-378安装部署
  18. wechat微信小程序panda我的界面(登录、我的基本信息的修改和保存)
  19. Spring Boot上传文件报UT005023 MultipartException NoSuchFileException
  20. java计算机毕业设计紫陶文化传播与学习交流网站源码+mysql数据库+系统+lw文档+部署

热门文章

  1. 使用Kong的oauth2.0,请求重定向url,返回“no route and no API found with those values”
  2. HTML好看的时钟倒计时源码+雪花飘落特效
  3. 快速上手:图聚类入门 Graph Clustering
  4. 【爬虫实战】汽车之家——1.0
  5. 使用阿里云ECS构建微信公众号管理系统
  6. eslint,prettier
  7. Brave Song
  8. 计算机职称photoshop,计算机职称考试Photoshop6.0图像处理考试大纲
  9. 常见用户行为分析模型:用户留存分析模型
  10. 在iOS中为ViewController构建自定义过渡