程序猿应该了解的内容以及程序猿如何强迫自己学习(算法篇)

发布时间:2013-09-23 01:11:00作者:左潇龙阅读(3104 )评论(30)

               记得LZ的第一篇博客发于2013-01-27 16:10,是LZ有一次上班闲下来的时候写的一篇文章,关于Jquery源码的研究成果。至今为止,断断续续也写了大半年博客,自从写博客以来,LZ间断性的收到过不少猿友的提问,这些提问中有很大一部分,是问LZ这样的问题,有很大的重复性与近似性。

               “LZ,你不是学计算机的,你是怎么学习的?”

               “LZ,你是怎么看书的,为什么我看着看着就玩游戏看电视去了?”

               “LZ,你都看些什么书啊,能不能给点建议。”

               “LZ,你平时下班回去都是如何学习的?”

               “LZ,我天天加班,没时间学习,怎么办啊?”

               “LZ,我工作好几年了,可是感觉技术没什么提升,怎么补救呢?应该看点什么书呢?”

               “LZ,你觉得Java Web和android哪个更好呢?”(这个问题,真的是难住LZ了,0.0)

               

               这些问题总结起来主要有两种,第一种是不知道要看什么,第二种是看书看不进去怎么办。

               针对不知道看什么这种问题,说真的,LZ很多时候无法回答,因为我们从事的工作内容可能不同,比如LZ是JAVA,你是.NET,LZ是web,你是移动。就算恰巧我们做的领域几乎都一样,应该看那些书也是不能一概而论的。比如可能LZ想做架构师,而你想做技术总监,可能LZ想做研发经理,而你想做项目经理。

               因此LZ觉得不能把自己看过的或者准备看的书名哗啦哗啦往那一堆,然后说,“喏,我都看这些,你也跟着看吧!”

               不过尽管我们的领域可能不同,但是既然都是程序猿起家,肯定还是有一定的共性的,本次就以LZ的见解来简单说一下,程序猿必须了解的知识是哪些,之所以LZ没有说必须看的书有哪些,还是因为那句话,知识有共性,书没有共性,找到适合自己的就行。

               【这些话是后来LZ加上来的,没想到不知不觉写一个算法写了这么长,我去,善了个哉的,由于时间关系,本次LZ就将本文又拾掇拾掇,写成(算法篇)了,后面再补上其它的内容。】

     

    算法

     

                有的猿友可能要说了,LZ你这不是废话吗?程序猿懂点算法最好,这事谁不知道?还用你来教啊?

                猿友们莫要激动,要蛋定,请耐心看下去。

                首先LZ不得不承认,我们很多时候几乎用不到算法。其它不说,就说LZ现在的工作,是针对企业IT建设的开发工作,大多数情况下都是以业务为主的工作,猴年马月能让你用到算法,哪怕是一个冒泡排序。

                但是,but!

                LZ想说的是,首先,我们说要掌握算法,并不是说你要把《算法导论》仔仔细细的来一遍,到时候LZ给你随便出个算法,你都能在一分钟内轻松搞定。

                不是这样的,no!

                那到底要如何?

                我们先不忙说到底是怎样的,我们先把文章的对象范围限制一下。

     

    对象范围

     

                这里首先限定下对象范围,是为了避免引起不必要的争议,更是为了避免给不适合的人带来不好的建议。因此如果你尚且是一位学生,LZ没什么好说的,如果有算法这门课,那么你只管好好学习就好了,以下内容与你无关。

                LZ这里所说的对象范围,首先得是已经毕业参加工作的,而且主要是指那些大学是非计算机专业,没有算法课程,或者大学虽然是计算机专业,但是压根就没怎么认真学过算法,或是一毕业就将算法全部还给了老师们的这部分人。

                总而言之,言而总之,这里的对象范围主要是指已经工作,但是算法不怎么地的这部分人,倘若你的算法原本已经高深莫测,那么请参看“如果你尚且是一位学生”。

     

    算法与工作

     

                说真的,真正工作了以后,哪有时间让你研究那几百上千的算法?

                更重要的是,我们研究这些算法,就算全部研究透了又能怎么样呢?

                或许有的猿友可能会说,研究透了,BAT随我挑啊。

                LZ不得不承认,全部掌握了当然是有好处的,那我们把排名前十的语言全部学会进去的概率就更大了,难道要去学吗。我们参加了工作以后,毕竟时间有限,相信大部分已经工作了的人都深有感触,随便学点什么东西,时间都是挤出来的。

                这就牵扯到一个取舍问题了,我们费尽心思的去学习这么多算法,有这个必要吗?

                如果你不能在研究完所有的算法以后,创造出新的算法,或者说在算法领域有所成,说真的,就算是BAT,也不一定就仅仅因为你懂几十几百个算法就要你的,而且他们也肯定没时间去考试你那么多算法。因此,疯狂的学习算法显然是没有必要的。当然了,如果你每天的工作本身就是与各种稀奇古怪的算法打交道的话,那LZ就不说什么了。

                那为什么LZ还支持猿友们学习算法呢?

                这里LZ先给各位讲一个LZ的小故事,本故事几乎是真实的。

     

    小故事

     

                LZ非常清楚的记得大学里教LZ高等代数的老师,那是一位非常值得尊敬的老师。

                有一次上课,同学们都在各自忙着自己的任务,比如偷菜的,发短信的,补觉的,更有甚者,是跟身边的女朋友亲热的。

                老师看到这种情况,就不慌不忙的说,“你们是不是觉得学数学出去没用?”

                异口同声的,绝对没有商量的,同学们答:“是!”

                老师听到后没有露出任何尴尬的神色,而是自然的笑了笑说,“或许你们搞了四年的证明题,等你们出了校门,你们一道证明题也不会做了,而且工作中也很可能用不上,但是它给你的是四年的逻辑思维锻炼,是你潜意识里逻辑思维能力的提高,这,就是学了四年证明题给你最大的礼物,出了校门以后你绝对再收不到这样的礼物。”

                说真的,当时LZ听到这句话,直接就和LZ的小同学们震惊了,但是不出意外,几乎所有同学,包括LZ,依然都是异口同声的,没有商量的,说:“切...!”

                但是LZ却将这句话深深的记在了心里。

     

    小算即可

     

                小故事告诉我们,我们工作中确实不可能让我们去证明为什么两点决定一条直线,但是不得不承认这些证明的过程,会让你的逻辑思维能力得到锻炼。

                对于证明题是如此,对于算法亦是如此。

                因此LZ一直都说,小算怡情,大算伤身,强算灰飞烟灭(一位猿友在评论里补上的,0.0)。

                小算就是为了时常锻炼我们的逻辑思维能力,让我们不至于在出了校门以后,看到一大堆的数学符号就想撞山丘。因此我们平时看些算法,还是有好处的,但是不可贪多,否则很容易得不偿失。

                不可贪多主要有两个原因,一个是学习算法很容易枯燥,没有设计模式等这类内容看起来有意思。另外一个是,算法的迅速提高,很多时候对我们的工作没有太大帮助,我们浪费大量的时间在这上面有点亏。

                因此,LZ还是觉得小算即可。

     

    LZ的小建议

     

                具体如何学习算法,LZ的建议如下,觉得适合自己的猿友不妨尝试一下。

                1、买一本你喜欢的算法书,可以是任何书,LZ对这个不做建议。

                2、制定一个周期,每到一个周期学习一个算法,比如一个月,不宜太长,也不宜太短。

                3、坚持,凡事不坚持,说什么都白说。一旦定好了时间,一定要雷打不动。

                这样学习算法的好处是,一个月一次或者某个周期一次,不会因为每天看一堆算法而觉得枯燥,而且长此以往的坚持,两三年就足够你掌握数十种算法,就算你想跳槽去BAT,算法上也差不多足够你去应付了。

                更重要的是,这相当于每一个月都给了你一次逻辑思维能力的锻炼,这就跟锻炼身体似的,定期的锻炼身体对身体是有好处的,那么定期的锻炼逻辑思维能力,其实对逻辑思维能力的提高也是有好处的。

                这样看来,那厚厚的算法书不应该再是你恐惧的东西,而应该是你犒劳自己的奖赏,你应该慢慢的去享受它,定期的享受一次逻辑思维能力的锻炼和挑战,而不是痛苦的快速把它干掉。

                


    版权声明:本文版权归作者(左潇龙)所有,欢迎转载。但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

    16
    精彩
    0
    感动
    0
    搞笑
    0
    开心
    0
    愤怒
    1
    无聊
    0
    灌水
    0
    惊讶
#1楼     时间:2013-09-23 07:36:00      来源:codezyc
支持楼主的三条建议。
#2楼     时间:2013-09-23 07:50:00      来源:Zery
有道理,算法是急不得,得慢慢来,急了容易伤脑筋,
#3楼     时间:2013-09-23 08:16:00      来源:狄云
一毕业就将算法全部还给了老师的人低调飘过。。。
#4楼     时间:2013-09-23 08:47:00      来源:mygxlgz
最缺的就是耐性,或许程序员这行真不是我能干的!
#5楼     时间:2013-09-23 09:02:00      来源:左潇龙
@ codezyc
施主,谢谢支持了。0.0。
#6楼     时间:2013-09-23 09:05:00      来源:左潇龙
@ Zery-zhang
贫僧被伤过,现在不相信爱情了。0.0。
#7楼     时间:2013-09-23 09:10:00      来源:左潇龙
@ 紫色的奶牛
在要回来吧,施主。
#8楼     时间:2013-09-23 09:12:00      来源:左潇龙
@ mygxlgz
施主指哪方面没耐心,0.0。
#9楼     时间:2013-09-23 09:15:00      来源:Wackysoft
@ 紫色的奶牛
+1,同样将算法还给老师的路过
#10楼     时间:2013-09-23 09:30:00      来源:yonkers
看到LZ说不是计算机专业的,倍感亲切!学习方法很不错,以后按这个来学习算法了
#11楼     时间:2013-09-23 09:48:00      来源:pulihe
就是做农民种地也需要耐性一年才有收成。
没耐心没思维能力要靠自己努力去坚持去突破。
#12楼     时间:2013-09-23 10:05:00      来源:左潇龙
@ yonkers
加油,希望施主能有所突破。
#13楼     时间:2013-09-23 10:09:00      来源:左潇龙
@ pulihe
@mygxlgz
pulihe说的挺有道理,mygxlgz这位施主还是要多多培养耐心。不过贫僧还是比较好奇mygxlgz这位施主说的是哪方面没有耐心,如果可能的话,贫僧希望可以给施主提点建议锻炼下施主的耐心。0.0。
#14楼     时间:2013-09-23 12:07:00      来源:幕三少
你的文章很有深度,继续关注
#15楼     时间:2013-09-23 13:40:00      来源:左潇龙
@ 幕三少
多谢施主,三少是园子里有名的活跃人士了,贫僧久仰。
#16楼     时间:2013-09-24 00:41:00      来源:Rainbow_
支持楼主~ 受教鸟~~
#17楼     时间:2013-09-24 08:04:00      来源:naijoug
期待LZ的待续.....
#18楼     时间:2013-09-24 10:33:00      来源:Alexia(minmin)
不懂算法,面试这关过不了
#19楼     时间:2013-09-24 12:26:00      来源:KoMiles
支持一下,继续更新。
#20楼     时间:2013-09-24 15:14:00      来源:gw2010
虽然还给老师了,但是书还是留到的.
#21楼     时间:2013-09-24 15:21:00      来源:绿茶丶咖啡
博主的文采不错。
#22楼     时间:2013-09-24 15:34:00      来源:贤勇
算法真心不怎么会,只会算每月还剩几块零花钱,打算买本书来慢慢啃,LZ推荐一下吧 0..0
#23楼     时间:2013-09-25 13:55:00      来源:javaFlow
废话真多 感觉最后一段有点用

两点决定一条直线 是公理 是不用证明的
#24楼     时间:2013-09-25 17:23:00      来源:左潇龙
@ 不玩眼神流
是不是废话,这个贫僧没什么好说的,人人都各有所爱,如果施主觉得文章就应该写3个建议其它什么都没有的话,那贫僧也只有抱歉了。
不过对于公理和定理的问题感觉有点鸡蛋里挑骨头了吧,当时就是随便一写,意思就是想表达一下工作当中不会让你做证明题而已。施主何必纠结公理和定理的问题。。。
#25楼     时间:2013-09-25 17:24:00      来源:左潇龙
@ 贤勇
贫僧一直不太会给猿友们推荐书的,觉得每个人适合看的书不太一样,不过贫僧入手的是算法导论。。。。
#26楼     时间:2013-09-25 21:58:00      来源:DrizzleAlley
有时间赶快更新啊!
#27楼     时间:2013-09-26 08:52:00      来源:绿箭侠
周期学习这点貌似可以有效的利用时间呀。。
以前疯狂学习算法。。现在1年多没碰过。。碰到算法就有点虚了
#28楼     时间:2013-09-27 09:22:00      来源:贤勇
@ 历史的风尘
昨天也入手了算法导论,大部头啊,得啃多长时间才能啃完^_^
#29楼     时间:2013-10-31 09:00:00      来源:跳跳虎
@ 贤勇
个人觉得算法导论不太适合初学算法者,《算法概论》或者《算法》会好点
#30楼     时间:2013-10-31 09:21:00      来源:贤勇
@ 跳跳虎
谢谢兄弟建议,现在觉得书倒不算太重要,重要的是学习的那颗心,快没了
发表评论

站内搜索

最新评论