刚才和我弟弟通电话聊了聊这一段时间的学习以及下一阶段的学习规划,我弟弟在读大二,是计算机专业。今天和他聊电话,感触颇多,倒不是因为我发现了新的东西,而是因为竟然连他都不相信我说过的一些我认为非常根本、非常核心的话,“连我的亲兄弟都不信我说的话,那些在XX网上随声附和我、捧我臭脚的同学右有几个真正信我说的话的同学呢?”,想到这里心里不禁一片悲凉。
到底他说的那句话触动了我呢,那就是“我现在C++语法学的差不多了,刚才买了一本C#的书,想寒假的时候看看C#,然后下学期C++、C#同步学。”我问他“你难道不知道我经常提醒‘不要在多门语言间徘徊,把一门语言玩熟了其他语言都是纸老虎’吗?”,他说“知道,但是看毕业找工作都是招C#、Java的,招C++的特别少。”,我说“我说过多少次我自己的例子: 我大学大部分时间都是在搞Delphi,然后找工作前突击了半个月的Java,然后就拿到了Java工程师的Offer,而且还是笔试成绩第一名 。
如果你现在什么语言都没有学,你说看C#挺好,以后想找C#的工作,那么我就建议你去学C#就好了,因为那样会‘一步到位’。但是你已经学C++半年了,刚把C++的基础语法学了一个大概,又要去学C#,那你就又浪费了半年时间,等半年以后也许你又发现Java挺不错,又去学Java的基础,那你这大学四年就完全是在‘学语言’了。”
为了让他更清楚的明白这个道理,我举了一个例子:学游泳,很多人的目标都是蛙泳、自由泳、蝶泳、仰泳都会,那样才酷。但是有的人学游泳就是练两下蛙泳,练两下自由泳,又练两下蝶泳,折腾了几个月,还是什么姿势都不会。而有的人则是从蛙泳练起,把蛙泳游的很顺以后,就有了‘水性’了,所谓水性就是“对水的感觉”,也许练蛙泳需要一个月,但是一旦把蛙泳练成了再学自由泳就很快了,如果一开始上来就蛙泳、自由泳一块学,一个月以后很可能还是在乱扑腾。
“同步推进”看似是效率更高了,可能会认为“同时学C++、C#,这样以后我就两种语言都会了”,但是其实学编程一开始都有需要一个“ 形成编程感觉 ”的过程,假设学会语言的基础语法需要3个月,真正把语言玩儿到一个比较熟练的程度、找到“编程感觉”需要9个月,那么,如果你一直只学一门语言,那么12月以后就等到达有“编程感觉”的程度了;而如果你是两门语言一块学,或者学完一门语言的基础又学另外一门语言,那么你的基础语法、“形成编程感觉”的过程都至少增倍了, 本想提高效率,反而事倍功半了。
遥想当年我大一大二的时候也走过类似的弯路,当年感觉Web开发“有前途”,因此放弃了学了几个月刚有点感觉的VB,去学Web开发的语言,依次把ASP、PHP、JSP学了一个遍,但是最后仍然是什么都不会,只记得for循环、函数等一些模模糊糊的词汇。反而是后来一门心思搞Delphi,而后又把Delphi里边一个用来开发Web的IntraWeb的框架玩熟了,回头再来看ASP、PHP、JSP,发现其实无论什么Web语言,都是处理Form、Session、Request、Response、Cookie等这些东西,大同小异。我之前走过弯路,浪费了时间,希望同学们吸取我的教训,不要再走这种弯路。
他问到“现在总是.net、.net的炒的那么火,学C#多好呀”。我说“学了一阵子C#你又发现‘现在总是J2EE、J2EE的炒的那么火,学Java多好呀’,你就变成了大学四年一直在学语言的‘语言专家’了。按照火的程度,C#、Java已经是过气的明星了,现在很多新语言也出来手舞足蹈了,如果你一直追星的话会累死你”。
社会上某些人士出于自己的目的总是在炒作“大学学习要和社会保持”同步的舆论,适当的同步是可以的,但是如果总是追着社会上的流行路线跑,永远学不到真东西,想学唱歌不应该今天去听张靓颖的演唱会、明天去听F.I.R的演唱会,而是应该跟着中央音乐学院的教声乐的过气大妈来学;有人总是说IT行业‘技术更新太快’,其实我要说IT行业技术更新一点都不快,因为技术的进步不是推翻性的,而是改良性的,一门新技术的推出是为了解决老技术的一些问题,但是他们的不同只有10%,剩下的90%的根基部分则是完全相同的,而且那10%的不同部分也是“相同的问题,不同的解决方式”,同一个目的不同的途径的技术能有多大的差异性呢,很小很小。
我弟弟又问“我大学一直搞C++,那找工作的时候那么多C#、Java的职位我就放弃吗?”我回答“别担心,你一直玩C++,把C++玩熟了,找工作之前如果想应聘C#、Java的职位,可以到时候再找C#、Java的书对照性的突击一下,学习的方式也会和初学的时候不一样了,只要对照一下C#和C++的异同点进行对照性的学习就可以了,你会发现大同小异,很快就可以从C++的高手变成C#的高手,照样可以突击几天的C#而把那些自称‘精通C#’的人打的稀巴烂”。
刚才在一个网站上看一个同学列出的学习计划:
需要和打算学习的和要了解的:
编程语言:c#,Java,c,c++,jsp,php,Delphi,Python,ruby,perl,ActionScript3.0
数据库:SqlServer、Oracle、MySQL、db2、PostgreSQL、SQLite、access
.net:wpf,Silverlight,winform,wcf,linq,mvc
html+css+JavaScript(jQuery)
软件:vs2009,vs2010,blend,visual C++,C-Free,Photoshop,flash,Dreamweaver...
相信这样‘伟大’的学习计划是很多同学都列过的,也包括我。希望大家以后不要再犯这种‘大而不精’的错误,编程语言选一门足以,数据库找一个就行,‘多多不善,浪费时间’。
C#、C/C++、Java……世上语言千千万,不存在哪个语言好、哪个语言有前途之类的问题。如果你没学过任何语言,那么你根据自己的意愿选哪门语言都可以,但是一旦选择了就不要再移情别恋,用情专一的让自己找到编程的感觉,以后就可以根据实际情况很轻松的另寻新欢了。举一个我以朋友说的例子,虽然太三俗,但是很形象:泡完一个妞再泡另外一个妞不难,因为泡第一个妞已经知道怎么取悦女孩子了,再泡第二个、第三个就驾轻就熟了;难的是同时泡好几个妞,到最后只能是颗粒无收。
朱老师前两天给我说了三个字“知信行”。知:知道这个道理;信:相信这个道理;行:照着这个道理去行动。“知信行”就是学习的三个层次,只知不信不如不知,只信不行不如不信,只有“知道、相信、行动”这个这是才真是你的。xx网上的一些关于‘一通百通’、‘不要在语言间徘徊’、‘坚持就是胜利’、‘越容易得到的越不值钱’等道理的文章是达到了让同学们‘知’的程度,然后一些同学的案例证明了这些道理,则可以帮助你‘信’,但是‘行’没有人能代替你,只能靠你自己了。
作者:杨中科
来源:https://www.cnblogs.com/cnchg/p/12639553.html
喜欢 就关注吧,欢迎投稿!