Posted on 2009-09-09 08:04
王君 阅读(4910)
评论(57) 编辑 收藏
经常有同学问“这么多技术我该怎么学,某某和某某两个技术哪个更有前途”。因此我写了下面的小文章,也算是和如鹏网所有同学的一个交流常见总结吧。
一、这多东西啥时候能学完?
现在IT新技术日新月异。就常用编程语言而言,有c/c++、汇编、java,c#、Python等;操作系统平台有unix/linux,windows系列;开发工具有VC、VisualStudio2008、Eclipse、NetBeans等;每个大平台下,还有很多的的方向:如网络、数据库、脚本、HTML、动态网站、游戏开发等;有人还在学Dreamweaver做网页、Flash做动画、Photoshop做美工、3DMax做三维动画…………是的,我们什么都想学。恨不得把所有的知识统统都塞到肚子里去。看到什么,想学什么!
今天看这VC的书,明天又看Java,后天又看C#,东搞西搞!看到别人做网页。自己兴趣了来了。好,学html语言,我也做网页,听说做网页要会“网页三剑客”,所以又想学Dreamweaver、Flash。后来开始知道有JSP、PHP、ASP.NET做动态网站这玩意儿。也想去学,学学学……
这是几乎所有在校大学生的通病。但是,这不是坏事,甚至可以说是好事。说明了你“求知欲”高!总比那些,生活没有激情,整天知道泡妞、上网、打游戏、混日子的强。
但是如果你今天想学这个,明天又想学那个。这样你就能永远徘徊在技术的门外。很多人都有过或者正在经历这样的苦闷日子:总觉得有“太多东西”要学了,然而人的精力是有限的,总有永远学不完的感觉,所以心理特别急,整天惶惶不可终日,不知道先要学哪个,一会儿拿起这本书,一会拿起那本书,折腾了几个月,突然发现自己什么都没有学到……
每一个大方向如果没有上几年的学习,很难能学习出什么来。但程序设计的最根本的东西是相同的。所以我们学习要抓根本。俗话说:通一理,融百里。
学程序设计就像习武一样,如果内功学的好,其他功夫就很容易上手。君不见《倚天屠龙记》中的张无忌练了“九阳神功”8年,练“乾坤大挪移”只需12个时辰吗?
习武之人,谁不想在“江湖”上扬名立万,谁不想成为万人敬仰的大侠?大侠之所以能成为“大侠”,当然有他们的看家本领。狄云的“神照神功”,金世遗的正邪融合的“乔北冥内功心法”,张无忌的“九阳神功”,段誉的“六脉神剑”,令狐冲的“独孤九剑”,哇,太多了...
古人历经千辛万苦才能找到这些“武功秘籍”。我们现在这些后辈,比起古人来说:简直太幸运了。去书店,各种各样的心功心法,剑法,拳法,应有尽有,看得你眼花缭乱...你选什么呢?今天练“六脉神剑”几式,明天去学“降龙十八掌”几招,后天又去练“发暗器”,这样何时才有个尽头呢?你说,你什么武功都会,但是“形似而神不似”,不得要领,不够火候。一上擂台,就被别人一掌打趴了。试问哪个软件公司敢要一个号称任何编程语言都会,而是每种语言只能写出个“hello world!”的程序员,你不被人家扫地出门才怪。
二、学**还是学**更有前途?
看了上面的话,有的同学已经开始烦了,“知道了知道了,不止一个像你这样的所谓的‘老前辈’跟我说过‘学什么都一样,思想才是最重要’的大道理,可是你们站着说话不嫌腰疼呀,现实是有很多技术需要学,比如做Web开发就有JSP、PHP、ASP.NET等好多方向,我总得选一个吧!到底学哪个有前途呢?我必须要选择一个有前途的,选错了就麻烦了。”
其实像“学**还是学**更有前途”的话没意义,因为“选择JSP还是选择PHP”的前途的差别不像“选择英语还是选择日语”的前途差别那样大,不存在“选错方向”的问题,因为都是相通的,你也不能保证你毕业以后搞的就是你学的那个方向,更不能保证你靠你学的这点东西就能吃一辈子。比如我上大学的时候一直在钻研是Delphi语言,可是毕业校园招聘的时候我照样在Java职位的考试取得了第一名,而且工作以后经过简单的学习就掌握了Java语言,并且后来还写了三本关于Java语言的书;再如我毕业后两年多的时间一直在用Java开发,后来公司要做一套基于.NET的产品,我只用了一个礼拜熟悉了.NET体系以及C#的语法,然后就开始进行开发。
不过就像上边说的“做Web开发就有JSP、PHP、ASP.NET等好多方向,我总得选一个吧!”这个问题是非常实际的,因为只有先学一个才能深入这个方向,把这个方向学通了才能想以后“一通百通”。因此我的建议就是学校教过什么语言,你就继续深入学习这么语言,而不要去问“这么语言有没有前途”这样的傻问题。尽量不要去学一门所谓“有前途”的新语言,因为你去学一门新语言就要把很多精力耗费在语言、语法本身,而耽误了编程的实战,而以一个已经学过的语言来学习的话,起码语法本身不用再去学、开发工具本身不用再去熟悉,只要研究怎么使用这门语言开发有用的程序就ok了。比如大部分同学都学过C语言(有的学校直接开了C++的课,但是C++的面向过程编程部分还是C语言),所以咱们就开了用C语言写Windows程序、用C语言写网络程序、用C语言写游戏的课程,让同学们把精力放到学以致用上,而不是学“有前途”的新语言上,这也是这个思想的一个体现。
举几个例子。咱们如鹏网的《计算机专业职业发展测评系统》是我用PHP开发的,但是在这之前我从来没写过PHP程序,但是我以前写过JSP、ASP的程序,因为写网站程序的原理都是相通的,只是语法不同而已,因此我只用了几个小时的时间熟悉了开发PHP用的工具并且快速浏览了一下PHP的语法,然后用半天时间就开发出了这个测评系统。想像一下一个整天在今天学JSP,明天学ASP,后天学PHP,大后天仰天长叹“到底学哪个有前途”的人能用半天时间学会一门新语言吗?
我大学时有一个同学,他看我当时Delphi学的比较好,写了很多程序,他就说他也想学软件开发,让我教他Delphi,可是我们专业前一个学期已经开了PowerBuilder的课,因此当时我就建议他还是继续深入学习PowerBuilder,用PowerBuilder写又实用价值的东西,而不是像上课那样写HelloWorld的程序。当时Delphi还是如日中天的流行的编程语言,而PowerBuilder则市场占有率比较小,他就说不想继续学PowerBuilder,因为PowerBuilder没前途,我就给他讲了“一通百通,从自己最熟悉的入手”这个道理,然后他就踏实的深入研究PowerBuilder起来,到了毕业的时候他已经能用PowerBuilder写非常复杂的程序而且还学习了用PowerBuilder写Web程序。毕业后没多久就应公司的要求用Delphi写程序,他只用了不到一周的时间学习了Delphi,然后就写出了一个符合公司要求的系统,当时他就给我打电话向我报喜。前一阵子我听说他已经开始指导一些新员工用Java开发一个中型规模的企业级系统了。可以说他的成功就得益于“一通百通,从自己最熟悉的入手”这个原则。
总结一下,不要管“哪门语言好就业、有前途”,因为那些“好就业、有前途”都是纸老虎。尽量不要学新语言,从自己最熟悉的语言入手,深入研究,出山后你就是被用人单位争抢的红人。
三、企业里都需要什么方面的才能?
这个要视用人单位的要求而定了。你现在还没有毕业,也不知道未来要面对什么样的岗位。因此建议大家在上学期间不要偏科,所有的课程都要好好学,学好专业课,培养自己的“内功心法”,然后进入一个大公司,那么大公司自然会为你安排一个人才培养计划,在工作的环境中学习就更有目的性。
Feedback
值得学习!,可惜我已经毕业了,可惜,我现在还是在徘徊!
这个是别人的文章吧,转过来的也不注明下,就不要放在主页了。
职业生涯初期,应该以横向为主纵向为辅,多了解,广泛涉猎,这不是说门门不精,而是能多了解行业发展趋势,技术发展动向,为今后选择某项发展做好关注的准备。同时兼顾技术的核心基础,某门主流语言,专研某一项。
中期,慢慢向纵向为主,横向为辅靠拢。学精某一项或某几项。
语言不是重要的,技术趋势是重要的。CTO很多技术都略知一二,某些方面很精深,这就是一种发展方向。
PM或其他岗位,技术需求不多,不过同样需要上面的规划趋势。毕竟在国内,技术还是最核心的影响力。
这么多废话干吗,你这不是老调重弹吗,其实本质上就是:多花点时间,多学点,就多会点,工资就涨点
你一同做NET,你天才~~~还不是皮毛~~~还在这写书,中国就是有你这样的人才太多了~~~所以就那么多的垃圾教程~
请你自己看看自己写的blog,我都不好意思说你,真的。哪一篇文章能稍微展现你的实力,
你水平这么菜,有什么资格解惑?先解答你自己吧
一周做NET,你天才~~~还不是皮毛~~~还在这写书,中国就是有你这样的人才太多了~~~所以就那么多的垃圾教程~
一通百通纯属瞎扯蛋,语言语法学习,哪个是快,但是会语法不等于就能用。API的熟练掌握,以及这门语言调试开发经验这些是要靠积累的,这些经验不同的语言并不是互通,把一门语言学精不管是什么落后的语言,只要你是专家,无人能取代,工资自然就高。门门通等于门门松,什么都懂代表什么都不精,没用的。
这个很好决定啊,哥哥来教你:)
如果你将来准备做企业应用程序开发(假设你选择.NET平台的),
做CS架构的
就学 C#,SQL SERVER, WINFORM,在多看看 .NET FRAMEWORK;
如果是BS架构的,就学 C#,SQL SERVER, ASP.NET再加一门JS,多看看 .NET FRAMEWORK;
就那么4,5门够了,勿需学的太多,这些都是基础,一定要化时间学好,就跟“语数外”一样重要!学好了到哪儿都可以做开发!
当然如果如果你想进一步深入的话,可以学一些其他的框架啦,比如说WF,WCF,SL等。
关键是选定一个平台,然后把那个平台下的几个基础的学科好学,有时间的话可以补充一下那个平台下其他的框架啦。
就这么简单啦。
@qingyun163
为什么这么多人嫉妒心这么强呢?
跟着我学,我不记得我迷茫过了,也不会觉得有方向选择上的麻烦。
你是杨中科?我记得他不是上次发了什么文章被人反驳,然后大骂博客园都是一群疯狗,于是删光自己所有文章,立志再也不来博客园了吗?咋又回来了……
写了三本Java的书……但这三本书有价值吗?这么说我能写很多书啊,Java,RoR我也都能写,信不信由你啦。
@
君不见《倚天屠龙记》中的张无忌练了“九阳神功”8年,练“乾坤大挪移”只需12个时辰吗?
人家葵花宝典还自宫呢,楼主真干了?
这些文章转来转去真没意思……
人慢慢成长中,会思考后,自己自然会选择一条道走下去,如果不会选择,死在岔路上很正常。
会忽悠才是王道!企业嘛!托好领导就行了!什么技术都没用!
"一通百通,从自己最熟悉的入手".这篇文章的精华所在,也是我所认为的。不错
对的啊,编程很多地方都是相同的,学会一站,另一门入手也是很快的啊
没你那么牛
虽然我觉得我现在也学习的很杂的
但是没有丢失方向
一开始学习的c# sql
而后学习了代码规范,设计模式,代码重构
之后又看了看clr
然后学习的html css javascript
在学习的前端优化,前端架构
然后看了几个cms
现在在学习设计ppt
一路下来我只能感觉到知识体系的完善
倒没感觉到有什么乱的
貌似楼主的功力也不怎么深,每门也是皮毛吧。竟然一个礼拜搞一门语言,不知道开发出的东东怎么样~~~
我支持楼主的观点
本文其实是写给那些对"该怎么学"的疑问的初入行者看的.
那些入行深,在这方面不再有疑问的人就不要再在这里发表高论了,因为本文不适合你们看.
楼主很厉害,学习能力非常强,一些人不理解,说楼主是忽悠,吹牛...我不觉得,虽然我没有楼主那么能干,但在精通一门技术后,花几天时间掌握相近的一门技术,只要用心,确实不是什么太难事.
IT技术是一个大体系,其中的每一门技术都不是孤立的.都是相通的.所以学什么要可以,关键是一开始学就要学精,然后就可以以一通百了.要有方向,选好的方向就不要再东张西望了.
老调重谈,对着教程写个hello world就叫会一门语言了?严重的吹水嘛,如果像你这样还出书的话,纯粹是误人子弟!因为你只懂些皮毛...
写 ap 的,就学好: 数学、会计、财务、某产业 know-how 和供应链。
写 driver, firmware: 学好数学、专精一门低阶语言 即可。
其他以后再说。
这里拍砖的很多,基本上都是匿名,有些人就是嗜好这个,估计是cnbeta上的那帮,楼主别太放心上。
发现你这里很多java基础教程,最近想了解下java,你这里很不错。
希望你坚持下去,谢谢。
感觉那门都有用..最主要是精..杂而乱而不精,多学了也没什么用..
我有个朋友,学的是Office下的VBA开发..现在一样做得很牛..
@权限设计方案
因为你跟LZ都以为搞技术就是学会越多的某公司产品的用法。所以你俩在真正的“技术”上都没啥可说的。
他们2个就是倚老卖老啊,哈哈,你没看出来吗 大家都在娱乐他们
今早我才看到各位大侠的评论,真是出乎意料,那么多。相当认真的看完每一个评论,最后我觉得我有必要写点东西向大家解释下。
首先声明,这篇文章是我从如鹏网转载的,相信大家一定是在转载区发现此文章的。不光这篇文章是转载的,我这里的大部分文章都是转载的。
我申请这个博客的原本目的是要把我在各大网站找到的认为有用的文章集合到一起,方便自己查阅学习。如果在我这里能有一篇文章会让进来的朋友觉得对他本人有用的话,那我真是无比荣幸。
但想不通有些朋友说的话,带着疑惑的去看、去读,这本无可厚非。但带着批斗眼光找问题,永远学不到别人的长处;只会看到别人的毛病也永远不会进步。相信每篇文章都会有或多或少的问题,因为作者是人,不是神!如果你认为看完一篇文章后,哪管对你有那么一丁点启发,那这文章起码对你本人来说,就应该是好文章。如果你觉得没用,大可不必如此愤青。与其在这愤青,倒不如多拿出点时间辅导下初学者。
我们本应该互相帮助,这才是体现你自身价值的机会,而不是在这,鸡蛋里挑骨头。更不要在这大放厥词。
谢谢各位的宝贵意见。