最近几个月,工作上的事情很忙,很少有自己的时间,所以我的博文很久没有更新了,但是经常看到一些同学看了我的博文之后希望我给出demo,其实我写这些东西的时候确实是我项目中遇到的问题,很多代码都是项目中抽离出来的,没有专门为了写博文而做一个demo。我写这些东西的初衷是希望有地同学在工作和学习的过程中遇到了问题能够通过我的博文能有一些帮助,解决一些实际问题,并不是为了仅仅是出一个可以跑的小例子。所以我有时候看到那些要求我发例子的同学的邮件或者回复我也有些遗憾,因为我更希望他们能和我讨论我代码中的问题,或者一些解决问题的方法经验。如果是仅仅给出一个例子,然后可能某些同学就拿这个例子直接用在项目中,却没有很好的理解这个方法的用意,更不要说引入这个例子带来的bug。

说了这么一些终于引入我今天想说的话题了,如何更好的学习和思考(当然更多是讨论成为一个更好的程序员,但仍然对其他的领域普遍适用)?当然我今天说的这些仅仅适用于还在学校,或者像我这样毕业时间还不太长的程序员,可能有些主观,并不对所有人都合适。一方面我自认为自己不是很牛掰的程序员,另一方面自己所学的,所经历的未免还是有些匮乏,如果看到的同学觉得我说的并无太多的营养,就当是在看一个灌水帖吧。
        下面开始我的一些思考:

 1 .征求专业人士的意见,但无论是征求谁的意见,都要有自己的思考。

先举2个我大学时候负面的例子:第一件事情是我认识的第一个师兄,学生会副主席,各种社团的负责人,刚去大学我各方面都征求他的意见。有一次我听他说java好,于是我开始看java方面的书,当然我当时并没意识到上机操作才是学习编程的最重要的手段。有一天我拿一本java书去问他,他说,我没学过java啊,我当时就特无语,当时心里怎么想的记不太清楚了,只是从此不再看java书了。第二件事情是,大概是大2了有了转专业的机会,当时我已经学过几门计算机的课程了,觉得学计算机蛮有意思的,想直接转去计算机,但是就找了我们辅导员,问问他的意见如何。他当时就说了,计算机专业的课程很枯燥,转了干嘛(太无语了,这位牛掰的辅导员据说后来去了国务院,国务院果然慧眼识珠.....).后来当然我也没转去计算机专业,所有在之后工作中遇到关于算法,设计模式,计算机组成原理诸如此类的知识我都是自己看书,查资料才略有了解。可想而知,当时如果我是碰到一个以编程见长的师兄,以善于引导学生做自己感兴趣的良师,当时我范的错误有二,1.我没有去征求以编程见长的师兄或者老师的意见,2,我轻易的在重大的抉择上做决定。如果不是那样,我现在的知识体系将更加的完善,可惜我时间不可能回到过去。

所以在之后的日子中我都深刻记住了这2次教训,遇事自己仔细思考,不轻易听信别人的,而是自己仔细分析。但是往往很多人还在犯这个错误,很多人就亲信家里,亲戚的的建议,进入IT这个行业。自己喜欢不喜欢不要紧,别人觉得好,就干下去。很多的人每天都在挣扎,所以他们都是既不成功也不快乐的那些程序员。每个人都是最了解自己的,所以做决定,尤其是重大的决定的时候,再多的思考,再多的衡量都是必要的。

2.多些正能量,少些抱怨,多些学习,少些浮躁。


大学一年级开始关注csdn的论坛,我当时特喜欢看灌水区。灌水区真是名符其实,各种程序员(所谓的程序员)整天在抱怨工资低,加班多,我当时就觉得这个行业太不好了,所以大学四年最后才决定从事这个行业。直到现在,我偶尔有时间去看看,还是很多这样的程序员,其实这是个悲剧。通常这些程序员会抱怨社会不公平,制度不合理导致他们怀才不遇等等这些,除了抱怨我觉得他们很少去想自己的原因,自己是不是足够努力,是不是真的能为老板创造价值,你有没有给足够的理由能让老板给你加薪或者升值,如果你自己是老板会不会解雇自己,老板会喜欢一个整天抱怨,不认真干活的程序员么?

说到抱怨,其实很多人都应该有些不满,现实中存在各种问题,平庸的人只是抱怨,牛掰的人会去寻找解决或者规避的办法。如果我们都身在某国或者采用你你所希望的体制,社会的不同层次和社会的竞争还是存在的,恐怕这些喜欢抱怨不愿意实实在在干些事情的人还是处在这样的位置吧。套用一句话,彪悍的人生不需要解释,为何不收起你的抱怨,做一些能改变现状的事情呢?

3.热爱并坚持

在我暂时还不太长的职业生涯中,我认识一些牛掰的程序员,也接触过很多很一般的程序员。我发现他们最大地差别是,水平一般的程序员不太喜欢编程,编程只是他们谋生的  手段,生活和工作是完全分开的,甚至有时候工作还干点别的事情。我刚毕业的时候认识一个三年的女程序员,干了三年并不比我刚毕业强,在学习能力和对编程的理解上比我差多了,薪水也只比我多那么一点。 牛掰的程序员都是很热爱编程,把它当做乐趣在做这件事情,生活中离不开编程,工作之余还在不管学习,讨论技术方面的心得。我有些同事编程十多年对写代码的热爱还是一如从前,经常自觉学习新的技术,和人讨论技术心得。

其实我觉得前者不是真正的程序员,他们不热爱编程,所以他们在技术上提升不快,做出的产品不是那么的好,当然他们的薪水和职位都不是那么高,久而久之,他们和另一些提升快的程序员拉开差距,对程序员这个行业愈来愈不感兴趣,形成了一个死循环。一方面,真的热爱编程的人,则越来越得心应手,快乐的从事自己喜欢的工作。(以上关于牛掰程序员和平庸的程序员的论断绝对适用,肯定存在一些天赋奇高或者特殊的牛人。)

我说的很明白了,真的不喜欢编程的人从事这个行业是比较悲剧的,因为程序员经常加班,赶进度,不是那么喜欢编程的人没有兴趣支撑的人是无法适应这个工作的,所以如果你不喜欢编程,乘早选择你喜欢的行业,并坚持下来。

4.坚持学习

有一次我调试一个接口,搞了2天,很沮丧。当时一个工作了十多年的程序员(真正的资深,我非常佩服)跟我说,别灰心,继续学习,所有的行业都遵守一万小时定理。等你的时间到了,你自然就了解了。这所谓的一万小时成就大师,道理很简单经过7-10的时间,成为一个专家。程序员是个需要不断的学习的行业,汇编,通讯,硬件,app,大数据,脚本,高级语言等等这些每一个小的领域都非常深,都需要不断的积累,不断的学习。就我做的这一块而言,我总是感觉自己的知识不太够用,经常要向别人请教,上网查资料,所以我经常在地铁上看一些书,周末也坚持学习,花了很多时间在编程上面,即便如此我还是觉得技术上不是那么的自信(当然我逐渐的有了一些自信)。我周围的很多程序员也都是这样,会要花很多的时间在学习上面,关于具体技巧的,关于理论的,太多了。所以如果不能持续的学习,无法成为大师。

    5.我的一些学习的方法。

1)最好的办法是看别人的代码,如果自己team中有很好的程序员,那是最好的,看完高手的代码,能学到不少的东西,学完你还能亲自去请教。2)关注牛掰人的博客或者论坛,推荐刘未鹏,徐宥,tinyfool这些大牛的blog。3) 看一些经典的书籍,代码大全,head first,C programming language, C++ primer,算法导论等等这些。4)不断的反思,这一点我要多说几句。反思,包括我们在解决实际问题的过程中不断的思考更好的解决方法,总结失败教训或者成功经验,也包括在和人的交往中自己处理不当的思考,人只有在不断的总结中才能成长,不然我们掉到同一个坑里,以前的种种失败和挫折就毫无意义了。

6总结

关于我最先提到关于要demo的那些同学,其实我觉得从一个人的博文中能得到某些启发就不错,然后结合自己的实际问题去分析,逐步的分解问题,解决问题。这样你的解决问题的能力才会得到提高,即便你套用了某个例子暂时解决了一个问题,但总不能每次遇到问题都套用例子吧。其实有时候遇到麻烦问题的时候,别人一个指点,或者在搜索引擎上找到一个关键的术语也许就是你解决问题的关键,等待别人完整的解决方案是不现实的,自己也失去了价值。我决定,以后我每次分享的时候我会附上一个demo,但是我希望诸位同学能和我讨论而不是直接下载例子,这样才是正确的学习的方式。

如何更好的思考和学习相关推荐

  1. 转:学习为了什么?我一直说学习是为了学会更好的思考,其实更通俗的讲学习是为了避免犯大错误...

    ㊣华哥日记㊣ 3.22 学习为了什么?我一直说学习是为了学会更好的思考,其实更通俗的讲学习是为了避免犯大错误,兄弟姐妹们,你们知道一个大错误可以让我们浪费几年甚至十几年吗,人生承受不住大错误,可我们大 ...

  2. 元胞自动机:更接近人类思考的智能模型

    前段时间,一则"计算机首次通过图灵测试"的新闻被众多媒体报道,似乎人工智能已然离我们不远了. 在未来,计算机真的会拥有人类一样的自主思考.学习能力吗,甚至出现未来的"机器 ...

  3. 由SecureCRT引发的思考和学习

    由SecureCRT引发的思考和学习 http://mp.weixin.qq.com/s?__biz=MzAxOTAzMDEwMA==&mid=2652500597&idx=1& ...

  4. 实用主义的思考与学习 读书笔记

    手头的这本书是"Pragmatic Thinking and Learning: Refactor Your Wetware" 直译过来就是"实用主义的思考与学习:重构你 ...

  5. 因计算机而强大在线读,读书分享会丨《因计算机而强大:计算机如何改变我们的思考与学习》...

    <因计算机而强大:计算机如何改变我们的思考与学习>一书,构建了不同于我们通常理解的计算机角色,作者对计算机和教育问题的探索主要集中在两大主题: 第一:儿童可以轻松自如地学习使用计算机 第二 ...

  6. 《抓住听众心理——演讲者要知道的100件事》一第 1 章 人们是怎样思考和学习的...

    本节书摘来异步社区<抓住听众心理--演讲者要知道的100件事>一书中的第1章,第1.1节,作者: [美]Susan M. Weinschenk 译者: 杨妩霞 , 杨煜泳 责编: 赵轩,更 ...

  7. 一份帮助你更好地理解深度学习的资源清单

    摘要: 深度学习朝着可解释的方向发展,理解背后的基本原理显得更加重要.本文是一份帮助读者更好地理解深度学习基本过程的清单,便于初学者和部分起步者针对性地补充自己的知识体系. 人工智能和深度学习太火了, ...

  8. 一份帮助你更好地理解深度学习的资源清单 1

    摘要: 深度学习朝着可解释的方向发展,理解背后的基本原理显得更加重要.本文是一份帮助读者更好地理解深度学习基本过程的清单,便于初学者和部分起步者针对性地补充自己的知识体系. 人工智能和深度学习太火了, ...

  9. 人为什么要学会思考(学习)?

    人为什么要学会思考(学习)? 不下决心培养思考习惯的人,便失去了生活中最大的乐趣. -----美国发明家 爱迪生 思考是一种享受,我思考所以我快乐.吃得再好也只是量变,不是质变(心脏和大脑的变化),人 ...

最新文章

  1. 如何安装和配置 Rex-Ray?- 每天5分钟玩转 Docker 容器技术(74)
  2. uva 10401 Injured Queen Problem(dp)
  3. 图灵今年的生日礼物,是新版50英镑纸币
  4. linux磁盘分配方案,安装Linux系统磁盘分配方案.doc
  5. mysql查询时给字段加内容,mysql数据库查询之对应库对应表中的注释信息查询以及加字段查询...
  6. 帧布局(FrameLayout)及属性
  7. 埃尔米特(Hermite)插值
  8. 【数学】奶牛编号(jzoj 2932)
  9. STM32项目(四)——暗室网关
  10. java、python什么意思_Python为什么叫Python,Java又如何而来?
  11. [php基础]PHP环境变量$_SERVER和系统常量详细说明
  12. C# Socket SSL通讯笔记
  13. 牛牛以前在老师那里得到了一个正整数数对(x, y), 牛牛忘记他们具体是多少了。 但是牛牛记得老师告诉过他x和y均不大于n, 并且x除以y的余数大于等于k。 牛牛希望你能帮他计算一共有,,,
  14. java遍历d盘所有文件夹_java遍历指定盘符的所有文件和文件夹
  15. github第一次使用--创建hello-world
  16. 易语言界面开发系列教程之(EX_UI使用系列教程(15)--EX组件(列表框EX))】
  17. 回归分析什么时候取对数_为什么相关或回归分析时 x和y取log
  18. 什么是cc攻击以及个人网站遭到cc攻击的解决方法
  19. 计算机组成原理--填空,简答,判断,计算大题
  20. 利用华为手机给台式机提供网络

热门文章

  1. android 控件美化,Android UI 美化
  2. 备份 mysql数据
  3. js 时间运算,时间加减
  4. 8代CPU安装Ubuntu14.04教程(解决无线无能用分辨率低问题)
  5. Assemle 基础知识总结
  6. 唱吧创始人:可能再过半年,这一波创业潮就彻底消失了
  7. 【开源】23个优秀的机器学习数据集,推荐!
  8. 实训...实训...
  9. SVN使用教程(详细)
  10. 『 云原生·Docker』Docker存储