写给学软件的师弟师妹们.doc_第1页
写给学软件的师弟师妹们.doc_第2页
写给学软件的师弟师妹们.doc_第3页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

写给学软件的师弟师妹们今年软件工程被提升至一级学科,没有挂在计算机科学之下了,而且软件学院开始招收工程博士生了,真是可喜可贺。 我读软件学院本科的时候,软院才刚成立不久,35所示范性软院之一,那个时候想找个师兄问一问大学四年该怎么度过,软院第一届的师兄们都还没毕业呢,也很懵懂,咋给我经验呢。只好自己摸索着学习了。现在,我从软院研究生毕业了,就让我来给大家讲讲在软件学院的本科该如何学习吧。 大学本科的教育重点是基础教育,软件学院也应该是(但实际做法可能不是)。大家不要把诸如j2ee,.net当成什么不得了的技术,你们去大专学校的主页看看,现在大专生都学这个,而且只学3个月,如果你大学本科四年只会这个东西,那你学到的东西真的很少。 我觉得本科就是要掌握基础知识,学软件首先需做到两点: 第一、精通一门编程语言; 第二、精通算法。 做到这两点,你本科毕业就能找到不错的工作了。对于找工作,比如j2ee跟.net都是锦上添花的东西,利用大三的选修课,或者大三的暑假学学吧,大专生都只学三个月的技术,你难道要学四年吗?切不可本末倒置,得了芝麻,丢了西瓜。下面从时间分成四个主题,按时间顺序来说明我认为在软件学院大学四年该如何学: 精通一门编程语言 讲讲大一。如果你中学的时候没接触电脑,那就先练习一下打字吧,因为打字太慢会影响编程的,安装一个金山打字通,每天睡觉之前打字30分钟,坚持一个月。买个笔记本,现在笔记本便宜了,不像我上本科那会用台式机,配置的话内存至少2G,CPU频率过得去就行,价格在4-5k就可以,实在没钱就买神舟笔记本,据说有几款性价比不错。 大一是肯定学编程语言的,不管学的是哪门语言,都要做到精通。精通一门就好了,开始的时候别想学太多,这样对你掌握语言反而不好。我建议你学C+,因为我学这个,嘿嘿。学习C+,主要是学习面向对象的思想,还有要清楚C+是如何分配内存的,以及派生,多态,重载,虚函数,构造析构,STL等,特别关注内存泄露。如果是入门学习的话,建议你看看书籍Essential C+,C+ Primer,然后再去读读C+编程思想,Effective C+,深入理解C+对象模型,设计模式这几本书。编程环境建议使用VC+,或者Linux上的GCC。 如果你是想做java程序员的话,java就简单许多了,经典的书籍也很多,比如Java编程思想,自己网上搜一搜吧。 当然,大一你可能还会学其它东西,但是精通一门编程语言是你最重要的任务。 算法是软实力的体现 大二的时候,该学数据解构和算法了吧。软件学院的学生,常号称自己动手能力强,真的强吗?你听说过ACM竞赛吗?如果想证明自己动手能力强,就该去参加这个程序竞赛,搞.net,只会拖控件这也叫动手能力强?想想自己本科那会真是天真啊。 如果你用大二一年的时间去参加ACM竞赛,这绝对对你的职业生涯产生不可估量的影响。如果你基础好,应该从大一的下学期就参赛。最好经常去北大,浙大的ACM网站做题目。买几本算法书,如果是入门级别,给你推荐的书籍有:数据解构与算法C+描述,算法竞赛入门经典(刘汝佳),编程珠玑,提高的书籍有:算法艺术与信息学竞赛(刘汝佳、黄亮),实用算法的分析与程序设计(吴文虎、王建德)。这些书在书店或者当当网上都可以买到。如果你周围的同学有对编程感兴趣的,可以一起报名参赛ACM,这个比赛是三个人一组的。本人本科的时候,软件学院对于ACM竞赛一点也不重视,很多软院的同学不知道有这个东西的存在。我跟几个同学经常去参加比赛,虽然没获得好名次,但是对本人的编程能力有很大的提高。 观察清华,上交,浙大,北大这些计算机名校,每年都有本科生在国际的ACM比赛中拿奖。在北软读书,我了解到北大计算机的本科生有很多都参加这个比赛,基本上每个学期都举行全校级别的比赛。北大计算机也开了ACM的相关培训课程,所以北大计算机本科生的算法实力都非同一般啊。清华计算机的吴文虎老师是国家ACM竞赛的教练,还有,上海交大计算机也有专门的ACM培训班,今年浙大是ACM竞赛世界冠军。虽说算法不是计算机的一切,但是反应了这些院系学生的“软实力”,这跟各个学校的软件学院一比,软件学院的学生就显得“软实力”不够了。 大一大二,对于计算机类的基础课是一定要好好学的,比如数据库,离散数学(学学组合数学),编译原理,操作系统原理(建议学学Linux),计算机图形学等,都是不错的课程。我本科那会,学院不重视计算机硬件的教学,这很失策,十分不利于编程能力的提高。如果你的本科学院也不够重视,建议你大二的时候自己去钻研深入理解计算机系统这本书,里面介绍了很多浅显的硬件知识,世界上很多计算机名校都教这本书。 大二可能会学很多专业基础课,但是算法是重中之重。 为找工作积累技术 大三是专业课集中的一年吧。软件工程的本本是要读一下的,不过别报太高期望,以本科生的见识和功底很难吸收其精华,但是里面的方法论可以拿来读读,以后慢慢体会吧。可以读一读人月神话,代码大全,这都是软件工程领域巅峰之作。 如果你打算毕业之后做一个java程序员,你可以学学j2ee(主要是MVC架构),现在的参考书真多,我也就不推荐了。当然,你还得学学各个开源的框架,比较流行的有Hibernate,Spring,Struts,最好研究一下这些框架的源码(选一个来研究)。我本科那会流行这些,我好几年不搞这个了。 如果是想做.net程序员,那就简单多了,熟悉各个控件的使用。 你可能还得补充一些其他知识:比如html,javascript,ajax(jquery),css之类的;Linux服务器的搭建,Shell、Python脚本编程,mysql数据库安装备份,apache服务器、网络管理等。比较高级的一些还包括:分布式图片服务器设计,数据挖掘等。 如果你还是坚持做一个C+程序员的话,太好了,跟我是一个阵营的。你可以学学MFC程序设计,这方面的书籍有windows核心程序设计深入浅出MFC。你可以考虑加上OpenCV,使用VC+搞游戏编程。 切不可东学一下,西学一下,不管你走哪条技术路线,要精通。 实习和就业 大四的实习和找工作。软院的学生在大四都要出去实习至少6个月吧。软院的学生毕业之后找份工作是很容易的,但是找什么样的工作才是我们关心的。我建议大家在实习的时候一定要找准。尽量去一些好点的公司实习,然后留下来,这样你就不需要再投简历笔试面试地找工作了。本人认为好点的软件公司有:腾讯,阿里巴巴,淘宝,百度,华为,人人网,盛大,网易,新浪,深信服,华为3COM,金山,金蝶,用友,toplink。深圳也有一些小的IT公司待遇也不错,这个可以自己去网上搜啦。 微软,google,intel,ibm,甲骨文,这些外企基本上都只招硕士,如果你能进入这些公司实习,得打听一下能不能留下来。 如果实习不打算留下来,就得准备参加笔试了,算法是肯定会考察的,还有就是计算机的基础知识了。总之,找工作是容易的,找个好工作才是你的目标哦。 现在大家常说程序员是IT民工,这不无道理,如果你在一家IT公司的软件生产线上干着一些不重要、重复体力的活,人家想把你换掉就换掉,那你就是IT民工。所以大家在工作中应注意学习公司的核心技术。如果你掌握了公司的核心技术,还担心被替换吗?如果真那样,你可以自己出去开公司了。 另外,也有些同学想创业

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论