写给即将步入大学,主修计算机专业的青年们的一封信
大家好,新入学的学弟学妹们!
离开了高中烦闷迂腐的课堂之后,恭喜您终于走进了大学的殿堂。尤其是学习计算机专业的你们,是祖国未来的IT精英,我们国家的信息化建设,未来世界的信息战的主力军就是你们了。因此作为一位过来人,我感觉有必要把我这么多年,走过的,看过的,听过的告诉大家,希望对大家未来的学习有所帮助。
其实这两年随着高校的扩招和IT人才的日趋饱和,IT人才的就业前景也不容乐观了。如果你自认为长相或者才艺出众,并且希望毕业后找到好的工作。我首先建议你去参加什么超级女生,超级男生之类的比赛,如果走红了,在演艺圈发展赚的钱要比搞IT多的多。
如果不是上面所说的这类人,那么就请继续往下看。
首先,我们来看看目前中国的大学环境,大学就是一个社会,因此你必须学会在这个社会里面与别人竞争。我们先来看看学校里面有哪些人群。第一类,学生干部们。如果你不希望以后留校作辅导员,那么不要参加所谓的学校的学生会之类的组织。那些所谓的学生干部就是打杂的。除了这些学生干部之外,此外学校里面还有几种人:一是拼命学习指望拿奖学金和保送读研的。这些人通常成天泡在自修教室里面或者图书馆里面。3年级之后,也许会进入导师的实验室。 二是家里有钱,整天除了打游戏就是泡美眉的。如果你想打游戏,卖装备赚钱,那你就一门心思投入进去,否则还是不要玩。至于交女朋友,劝你还是不要想,浪费时间,浪费钱,还不会有结果。此外还有就是做生意的,当然这里包括做推销买数码产品的,生活用品的,牛奶水果,反正卖什么的都有。当然,还有那些参加数学,物理比赛的,考证的,搞创新的就不赘述了。
不过说到底,我们都是搞IT,我个人推荐大家一条路,那就是1,2年级把专业课搞好,拿点奖学金和争取保送名额,同时打好搞开发的基础。3 4年级抽出时间做项目,赚钱。
计算机这门课非常特殊,基本上国内的基础课都非常的落后,而且和实践完全脱节。所以很多课大可以不去上。考试前一个礼拜突击一下就可以应付。当然别忘了去打印店或者网上找历年考试的试题。
计算机必须要修的重要课程有:1 汇编语言,这个非常重要,你以后破解软件会需要 2 C语言,C/C++是语法Java ,PHP等很多优秀语言参照的,因此,掌握C/C++的各种语句结构,熟悉面向对象思想也非常重要。3 数据库基础:这门课很重要,如果你想做项目赚钱的话,SQL就是最重要的工具。4 数据结构和算法,数据结构将会教会你如何把现实世界中的信息存入到计算机内,而好的算法,尤其是程序的灵魂所在。
为了不和实践脱节,你一定要1 2 年级就开始大量使用程序和熟悉程序架构。感谢Open source,它让我们免费的获得很多企业级项目的源代码,让我们可以一探究竟。你可以去www.sf.net上,下载你感兴趣的程序,无论是桌面的,还是web的,把他们安装起来,运行,运行,看看他们的页面是如何布局,导航,提交数据的。通过看代码,积累一些设计方法。如果遇到问题,去Google上面查找。记住,凡是你遇到的问题,Google上一定有解决的方法,就看你能否掌握搜索的技巧了。
当然,别忘了申请一个CSDN的Blog,把你看过的东西,学到的东西,遇到的问题,全部记下来。随着不断的积累,这将是你人生的一个重要的知识库。
你必须每天更新IT业界的最新东西,所以你要选择一个好的新闻聚合器,推荐你使用Google的聚合器,定阅诸如csdn,theserverside,infoq,javalobby,devx.com等各个主流的IT媒体。
通过这些学习和积累,你必须掌握两样东西:1 搞清楚IT到底是个什么东西?搞清楚开发软件到底是个什么东西? 2 掌握学习的本领,学习新知识的本领。以及在此过程中,独立克服困难的本领。
大学本科应届毕业生的工资水平通常也就3000元左右,因为绝大多数公司都认为你不具备开发经验。当然大学里面当然有一些编程天才们,早早的就能做项目,作外包,不过那也是凤毛麟角。所以不要和我抬杠。
当然,我在这里所说的不是计算机科学,而是计算机应用。如果你愿意投身到计算机理论的研究中,那自然非常好,但是国内目前普遍的学术风气就是浮躁的。要知道,如果你通过实践具备了开发经验,毕业后, 你就可以多一条创业的机会,目前国内对软件的需求还是非常大的,尤其是政府和中小企业,需要大量的定制软件开发。一个人雇几个人,一年做个几十万的项目还是很容易的。诸如数学之类的基础学科固然很重要。但是如果你的公司有了钱,你还怕雇不到人给你搞算法么?
今天还是要比较忙,我这里简单说说搞开发应该具备的技能把:
1 你必须掌握一门桌面应用开发语言:VB,DELPHI,PB都是你的选择,这些计算绝对没有过时,反而他们的开发效率是新的工具,Java,.NET无法相比的。
2 你必须掌握web应用的开发能力:首先你必须学会做网站。html,css,xml你必须非常熟悉。最好也自学一些photoshop,flash之类的开发,这样遇到小的美工设计,可以不求人。
之后你就要掌握开发网站管理系统的能力,也就是现在常用的CMS。这其中,你也会接触到基本数据库使用的方法
3 掌握了基本web应用开发能力之后,你要开始学习企业级应用开发
J2EE是世界上最伟大的企业级开发,你需要学习什么是设计模式,MVC,ORM,中间件,分布式事务,工作流BPM,业务流程BPEL,业务规则,SOA,ESB,SSO,MDA,各种JSR等等。J2EE的学习过程就是一个丰富的缩写库。当然这中间你会学习到各种web服务器,应用服务器,Portal,LDAP,等各种企业级服务器的安装和使用。
4 之后你还要学习软件开发流程,包括传统瀑布模型和流行的敏捷软件开发,CVS,SVN实现版本控制,Ant,Maven构建自动化编译,版本发布。以及工作任务分解,项目团队交流协作,项目文档的撰写等等。
5 掌握了企业级应用的开发以后,你要记住现实的开发不需要照搬任何的模式,而应该根据需要灵活应用,做到以无法为有法。
6 大学四年的时间是非常充裕的,这段时间内,你可以多学学其它课程,比如营销类,管理类的课程,对你今后会很有帮助,“东方名家”系列讲座真的非常不错,建议你一定要去看看。
如果你能掌握上述的所有开发技能,加上你自身的努力,做个十几个项目,既可以赚到钱,让你的父母不要辛苦的供钱你读书,也可以为以后的工作积累资本。毕业后找到8000以上的工作就会很容易。
(待续)
记住,千万不要浪费分分秒秒的时间。必须每天都充实的过。
这两天比较忙,不料这片文章反映这么大,下面一并回复各位亲爱的朋友们
(将C/C++混为一谈,似乎有误导之嫌。)
学c是为了掌握其语法,学c++是为了掌握对象技术
(汇编和反汇编似乎也不能混为一谈吧)
不同汇编的基本语法,又何来返汇编
(觉得你并不是很懂,别耽误了别人的前程啊。你想想你现在是怎么个基层,
混出了个什么样子,如果...就别拿出一副很有阅历的样子。因为你真的不行。)
这真是中国人无知的表现,你又不认识我,还评价什么呢?等你月薪赚到10W以后再过来和我说吧
(同意Spring,不要拿汇编和C++充面子。)
汇编和C++有何面子可充?无知
(你提出的学习方法和实践方式的实际可行性是个问题。)
这个是当然的,所以我们在不断实践
(天啊,汇编你竟然用来破解这么无聊,感觉你的技术真的没有什么,可能就是做的项目多点,经验比较多点而已,
说真的,大学难得的4年,还是先学好基础的,项目不是不要做,但要分轻重,要想想什么时候才应该做)
每个人都可以走不同的路,但是国内绝大多数大学的计算机基础课教育程度和老师的水平就不想评论了
(看来作者在计算机应用方面搞的还不错, 但仅仅是计算机应用,不是计算机科学,.离计算机科学还差的很远.)
我承认,我谈的不是计算机科学,但是看看每年那些人山人海的毕业生么,我觉得,还是让应用来的多些吧
(大三大四开始做项目.?做什么项目呢?
嵌入式?mis?还是其它
根本需要不同的技术.
你以为学了学校教的那些汇编,c/c++就能做外面的项目了?)
我那篇文章后面写了个待续,这两天项目繁忙,没时间写完,你们这些家伙连文章都不会看,怎么就评价了呢
(但是在用过hibernate之后,立马就不用了)
还在搞ORM,那你开发的应用的水平还很低
(“凡是你遇到的问题,Google上一定有解决的方法” )
我文章是写给初学者的,初学者遇到的什么问题,网上没有?
(我觉得要看一个人怎么学要看偏向哪方面。赚钱,还是搞研究。)
我这篇文章是看到每年那些毕业大军和他们的工资水平,而写的,其他人不要抬杠
(数据结构都不用学吗?)
我那篇文章不是写了待续么?
(上大学就是为了赚钱吗?)
没钱能上大学么
Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=1116793
高薪没有捷径——唯有专业享受高薪 签北京就业合同http://www.uplooking... |
软件项目外包,软件交易,发项目接项目一切轻松搞定http://prj.csdn.net |
好工作好前途尽在CSDN,快来试试吧http://job.csdn.net/... |
没毕业的真该好好看看。
没毕业的真该好好看看。
另外,你提出的学习方法和实践方式的实际可行性是个问题。
当你要写出国内大部分一般本科水平的同龄人写不出来的东西时,就会觉得这个真的是非常的好。
另外,在看C的时候因该努力适应一下那些比较不爱讨好你眼睛的表达式(诸如 ? : )
如果想增强自己的技术适应能力(或者说不想一直作coder),最好还是再学习面向对象语言的中后期开始狂看设计模式和重构方面的书,其实我觉得这可能是最能让你和别人拉开档次的东西了。
因为比底层的东西如算法、编译原理、操作系统你不如名牌大学的研究生;比项目经验或者业务流程的理解你不如已经有实际经验的人。而OO和模式这方面的东西,有很多工作了好几年的人和工作一年的人是一个水平的,所以有的人只消2~3年左右就能做的不错,薪水翻了又翻,而有些人干了3~4年还只能做coder(指的是那种不需要动多少脑子的coder,可不是进行硬件编程或者对算法要求很高的那些),拿的钱比第一年多不了太多。--这里说的情况不适用于20人以下的公司。
其实啊,如果理解了OO的思想,又知道各种模式的适用范围,最明显的帮助可能在于你看别人优秀的代码,当然你自己设计一个功能模块时也会有一个知道思想。
试试就知道了,当你用一个月的时间写出了超过2~3千行代码的程序,再试着向里面添加几个核心功能,到时候不晕就是天才,怎么办?用OO和模式对你的代码进行重构,Fowler说的好,模式为重构提供了指导思想。当然,你的重构过程会比较痛苦,而且有时候你会觉得干脆把代码重写一遍得了,不必,等重构几乎完成时再说。搞定后你就会发现至少因该使用了4~5种设计模式(经典的有23种)和几乎所有的OO原则(一共没几条),当然要看需求本身的复杂度。
这里如果你学的是Java、C#这类语言,那就试着写一个记事本程序(涉及很经典的文件输入输出操作和字符串操作),这是GoF书上的例子;更有针对性地,如果是Java,写一个用JDBC实现的,通过图形界面指定关系数据库类型(Oracle、SQLServer等)和数据库中特定表格的增、删、改、差代码并按一定命名规则写到文件中的小工具,然后再添加新的功能,这个小工具如果写得好以后工作一定用得上,因为只要添加新的功能就可以帮你写代码了(我写过一个,当时非常的痛苦,不算Swing的相关代码,1500行,没有用任何OO原则和模式,现在想以它作基础它生成一套B/S的CRUD代码时发现基本只能重写了)。知道吗,这样的东西在公司里真的会顶掉几个初级程序员的,我见过这样的情况。
说了这么多,肯定有很多与大家的实际情况不符,没关系,我只是把我的经历和所见所闻絮叨絮叨。
想扔板砖或者豆腐的,生生力气吧:-)
或许,是你在这里说屁话说话的资本!
有一点搞笑,不过也可以理解,呵呵。
是不是有一点搞笑?呵呵。
感觉lz也是刚入门的人...
大三大四开始做项目.?做什么项目呢?
嵌入式?mis?还是其它
根本需要不同的技术.
你以为学了学校教的那些汇编,c/c++就能做外面的项目了?
这种工具我不是没写过
但是在用过hibernate之后,立马就不用了
还什么将来一定用得上,鸟,不如去看Spring源码
另外这个什么tag:java什么意思?不是纯粹误导么
如果作者真的这样认为,那么他的水平一定不高,很多稍难的问题是不可能通过google搜索到的,要不然,收费的学术搜索还开什么?
要我说,google搜索不到的才是问题
-------------------------------------------------------------
我怀疑搂主是真懂还是假懂
C有个屁面向对象思想在里面
有空呢,多看看linux的核心
尝试一下修改并运行linux
然后你真牛得不行,就去看java虚拟机的规范
然后用c写一个虚拟机出来
然后再往上,就去看tomcat和jboss的代码
能做到这一步之后,直接向美国那些牛大学教授发邮件联系
交流一下你看这些代码的经验,很有可能给你fellowship让你去美国
知道Rod Johnson在哪么?斯坦福
模式什么不用太早看,没有大量代码编写经验
看了也是白看,更不用说国内的模式书籍翻译得一塌糊涂
google搜索不到的东西多了
除非是初级问题,比如什么是面向对象,如何安装jdk
如何使用某种框架之类的,这种煞笔问题倒是很容易找到
----- 看来是搞反向工程起家的,同时也在鼓励别人走这条路;补充一点,要学会各种木马病毒的常用技巧,盗点Q币什么的补贴补贴……
从大一到大四的侧重点是: 尽情的玩 -> 广博学识 -> 有所专长。
当然,若从专业的角度说的话,专业基础课必须学好;还是那句话,万丈高楼平地起。你对专业的认识程度决定了你未来在该专业上可以走得多远。所有技术应用万变不离其中的都会在专业基础课中找到实现的原理和方法。
这些基本都是上层一点的,没有提到下层.
下层看看Linux内核满好的.
在就是一些脚本语言Bash, Perl, Python, Rudy在公司用的很多的,可是学校基本不讲.
也许你的课程成绩不是很突出,但是这都不影响你在IT上发挥你的实力的。
加油哦D2PZ2
你们一个个说LZ这里不懂,那里误导,说话片面,既然你们都很明白,怎么不像LZ一样,也写一下文章,来引导一下我们的大学生呢?首先可以肯定的说,LZ是一个有社会责任感的人,再看看你们丑恶的嘴脸,对LZ的行为不但不支持,反而还厚颜无耻的JJYY,顺便提高一下自己的地位,哎,典型的国人的民族LVE根性,希望你们看我的回复,能够自省一下,做一点对祖国对人民有意义的事情吧,MMD,气死我了!!!
楼主的眼光无疑太狭隘了,
不要在这里误人子弟,好吗?
我想说的是编程只是计算机的一个方面,
我们有很多个选择,象硬件开发等等,
以偏概全,我希望楼主不要打肿脸冲胖子,其实你在误导知道吗
虽然你的自我感觉非常好,但我告诉你
这不真实
请停止这种自以为是,好好反思!!
看完这篇文章后受益非浅,在此谢谢作者.
我实在是痛很现在的大学体制,真的是让很多人白白浪费四年的时光。时间也是一种资本,如果把这个资本好好的利用起来,民族复兴就指日可待了!
看了这句话。。汗,除了 马哲,政经,毛选之类 你可以不去。其他和计算机相关的必需去学。那些都是基础中的基础。现在的人都幻想着没有地基的高楼大厦。一定要学好各种数学:高数、线代、概率、离散。