`
zwchen
  • 浏览: 795940 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

一个在读学生的疑问及我的回复

阅读更多
我经常收到类似的站内信,然后花上半个来小时回复(我摆文字真的非常非常慢)。
这个邮件的回复只是我的一点体会,我承认任何人都有思维定势,我也不例外,所以仅供参考。

如果有人还有类似的疑问,就在这篇文章后提问吧(因为我总是重复写一遍类似的文字)。如果没有ITEye账号,可以通过微博私信(zwchen),然后我copy到这儿。

引用
博主,您好,首先非常感谢您能抽空看看这条短信,第一次就给您发这样的短信,觉得有点不好意思或者说是愧疚,我时不时的看过您的博文,感觉很实在很中肯,希望能从前辈那里得到一点指导。

小弟目前是一所二流本科大学软件工程的学生,目前大二了,因为学校不是很好所以有考研的打算,准备考MSE,而不是计算机科学(这个难度大点)。考研是希望学到更多的东西,也希望能找到更好的工作。

目前有些不太清楚的地方,想问问:

1、算法,由于我选的是j2ee方向,目前感觉算法在平时的项目练习(大多是web应用)中运用的很少,但是有时候又觉得算法是很重要的东西,也听学长说做那么多项目还不如去积累有用的算法,所以很想知道对于以后工作中需要用到的算法,应该如何去学习和掌握(曾经试过做ACM,不过发现上面的题都比较难,再由于练习的很少,所以设计算法的能力也不是很好。数据结构这门课,虽然是也学了点,不过感觉能用上的很少)

2、英语,这个一直是比较头疼的问题,久了不去复习就会很快的遗忘,但是复习又要花很多时间(语法,单词,短语....),不是因为考试或者做题,也基本是不会去看的。阅读对我来说虽然问题不大,但是否工作中就真的需要口语能力?

3、对于技术的学习,就目前只学习了java基础,struts1.3,jsp这些课程,感觉自己除了会用点之外,其他的什么都不知道。后面还会学习hibernate,spring,ajax。其实就是觉得,老师就只是教会了我们如何使用工具,但是没告诉我们为什么,虽然我认为要成为一个优秀的 java程序员就会这些还远远不够,但是自己也不知道该怎样学习来让自己更加透彻的了解自己所学的东西。
博主,您好,首先非常感谢您能抽空看看这条短信,第一次就给您发这样的短信,觉得有点不好意思或者说是愧疚,我时不时的看过您的博文,感觉很实在很中肯,希望能从前辈那里得到一点指导。


XXX同学:
一个大二的学生,会思考这些问题,本身已经超越于很多同龄人了。
我有如下建议:
1、坚决不要读研,计算机是一门应用学科,强调实践(化学、医学、历史可以考虑读研)。再说,你听说过多少IT技术是在实验室发明的?读研学习三年,不如工作一年,而且对你找工作并不利(硕士毕业上海一般6/7k,但实际上还不如本科工作两年的),我很少见到读研是因为对计算机感兴趣,而不是延迟就业。

2、工作后,看你进入研发还是开发。研发一般非常细分,比如视频解码,开发一般都没有多少技术含量,特别是软件外包(可能贡献了中国软件产业60%以上的GDP)。工作中需要的技术,如果有大学的理论功底,学起来非常快,像Hibernate、Spring这类框架其实很简单,如果你理解背后的思想。但理论功底不是看书学来的,而是做项目,然后回过头来思考那些理论,如数据库的索引原理及实现。
你可以,多读框架源码
你可以,用Sniffer hack、分析网络数据包
你可以,多看书,一年看上二三十本
当然了,兴趣是一切成功的钥匙,如果你喜欢钻技术,我所说的都是废话,因为你都会悟出来。

如果你想学习一门技术,一定要反复问自己一个问题:这门技术是解决什么问题的?或者说,为什么会产生这种技术?
我先提几个问:为什么会出现Hibernate?Thread是解决什么问题?EJB的本质是什么?
大家可以花几个月来思考。

3、算法,不一定是排序和查找,大学只是以此作为算法的入口,你想,如果不这样,还有其它更好的题材教授算法吗?数据结构永远优先于算法,垃圾结构,最好的算法都要打折扣,就如同房子建歪了,再好的钢筋水泥有什么用呢?
绝大部分规范都是以数据结构形式展现的,如TCP、BT、MP3、JPG、SOAP,甚至flash通讯的AMF二进制流...
你不一定要精通大学教程的算法,不过它对你毕业面试很有用,工作基本上用不着(属于基础类库),但是你必须精通一些。你可以了解一下图片格式或文本格式,如pdf规范,可能对算法和数据接口更宏观些,也有趣些。
学习只能在有乐趣时才能深入、持久。

有几门大学课程务必学好:操作系统原理和实现、数据库原理、TCP/IP协议、离散数学、计算机组织与结构等,同时精通一门语言及用该语言实现的算法,这些我曾经都是自学的。但最好的学习是实践,你可以参加一些开源项目,以它为线索,带动你的学习。
孤立去考高分,效率是非常低的。

4、英语,你要是没兴趣就别学算了。不过,英语是计算机的母语,深入的计算机知识,需要查wikipedia和英文帮助文档,而这是英文的。
你了解Event Driven Architecture吗?有深入的中文文档吗?,不了解它就不了解GUI编程。
没兴趣,基本上英语学不好,有人读整个大学,70%时间都是考CET-4,可惜啊。

5、学习任何时髦的框架,都必须在项目中实践,当然看书也是必须的。边做项目边看书。读书和工作那几年,我几乎把Java和IT领域所有知名书籍都翻过了(我买过好几千块的IT书)。

最后,重复一点:单纯看教程、然后做习题,这类中学六年延续的学习方法,非常枯燥、低效,必须改进。尝试自己动手做项目,比如做一个媒体播放器。

分享到:
评论
12 楼 zwchen 2011-07-20  
podormeijia 写道
    要不要考研,我与博主有点不同意见,因为经历过。若是2本院校,考研是一个重生的机会,一些好的学校,找工的机会是完全不一样的。(我从一个非211院校考入全国前十的院校,对此感慨很多),其实考研与技术学习原本并不冲突,彼此互相印证,相得益彰,(当然政治除外)。好的学校,好的老师,好的氛围,会改变你很多观念,3年里你一样有很多机会很多时间可以去好公司实习,回到实验室还可以有时间做一些技术上的沉淀。当然你损失了些金钱还有工作经验。
   考研是一场不容失败的战争,它本身就是一个博弈的过程。
   我也是刚进入社会,仅供参考。

你说的很有道理。
名校是一种身份,是一个敲门砖,有光环效应。如果要考研,一定要考名校,否则就算了。几年的工作,我也感觉到了。
11 楼 podormeijia 2011-07-20  
    要不要考研,我与博主有点不同意见,因为经历过。若是2本院校,考研是一个重生的机会,一些好的学校,找工的机会是完全不一样的。(我从一个非211院校考入全国前十的院校,对此感慨很多),其实考研与技术学习原本并不冲突,彼此互相印证,相得益彰,(当然政治除外)。好的学校,好的老师,好的氛围,会改变你很多观念,3年里你一样有很多机会很多时间可以去好公司实习,回到实验室还可以有时间做一些技术上的沉淀。当然你损失了些金钱还有工作经验。
   考研是一场不容失败的战争,它本身就是一个博弈的过程。
   我也是刚进入社会,仅供参考。
10 楼 zwchen 2011-07-17  
3w1h 写道
看了你的贴子很是受益哈  从你文章层面来看
您应该做软件这行好几年了吧  我刚入这行没多久  想请教您几个问题
你在看技术书籍的时候是如何进行的啊  我发现我看技术书籍效率很低
还有您现在应该是管理者吧 您对您项目组里的开发效率低的员工是做何
感想啊?  请教下哈

1、关于看技术书籍的问题
看技术书籍,最重要的是选对书。比如说《Core Java》是本好书,但如果你没有Java或C++基础,看这本书非常吃力,如果你看过《Java:How to Program》这本入门书,或是Sun的《Java Tutorial》,再做做练习,然后再看《Core Java》,就比较容易读懂了。

另外,看书时一定要结合练习,如果你学Hibernate,开始不要啃《Hibernate in Action》这部经典,你可以看看台湾林信良的网络读书笔记,非常浅显易懂,然后做做例子,做做小项目,如留言本。过两周再看《Hibernate In Action》,效率就高了。
学习一定是阶梯式的,别人认为的好书,不一定适合你现在的阶段。像《Java虚拟机内幕》,是绝不适合初学者的,看书效率会非常非常低。

我始终强调一点:学习一定要兴趣驱动、任务驱动! 有兴趣,任何方法或手段都会来,即使方法笨,也只是一个时间问题。

2、关于团队里效率低下的员工
对于效率低的员工,分两种,对技术感兴趣的和不感兴趣的,还有,就是态度问题。
如果该员工对技术感兴趣并且态度好(愿意和上司配合,认识到自己的生产力低于平均值应该比别人花更多时间在工作上),这样都很好办。我会帮他分析他之所以生产力低的原因,并且在工作上照顾他。比如他不会Struts,我可以告诉他如何学,它的技术原理,并且结合当前项目;在任务上,分配简单的活,可以照葫芦画瓢。
但他一定要知道一件事情:他应该下班后、周末花一天在家学习。

如果他不花业余时间学,或是不改进自己的学习方法(如做Service层测试总启动Tomcat而不是写Test Case),当然了,就是那种对技术不感兴趣的,我虽然还会重复上面的做法,但如果他几周还没有态度改变或行为改变,我会再让他孤立几周,看看是否是我限制了他,如果还没有改变(代码格式也是一团糟),可能会要求他离开项目组,至少不会再在他身上投入多少精力。
这种情况极少,除非我在做低端外包的公司,周围才会出现这样的人。像我这种性格的人,把教练式领导当做自己的理念,我不喜欢咄咄逼人或是很威严的上司,我也不会做那种人,不就是混口饭吃吗?

反正对于像我这样的人,对自己的耐心、同理心和包容性都很有信心,曾经我们项目组一个MM,我教她Flex技术,每天一个多小时,持续了大半年,直到她可以独立开发简单的模块。你也知道,项目中简单模块一般有50%以上,可以让这类人做。

我可能有些标榜自己了,呵呵。但说实话,我从来没有给人怕的感觉。不过,真实的IT企业,那种严厉、强势的上司,要求你无条件加班的,还是占绝大多数。看你运气了。

人没有笨的,我是自学进入IT的,很清楚学习方法和兴趣的重要性。让初手做的都是简单项目,而且有同组其它人的代码可参考。


9 楼 3w1h 2011-07-16  
看了你的贴子很是受益哈  从你文章层面来看
您应该做软件这行好几年了吧  我刚入这行没多久  想请教您几个问题
你在看技术书籍的时候是如何进行的啊  我发现我看技术书籍效率很低
还有您现在应该是管理者吧 您对您项目组里的开发效率低的员工是做何
感想啊?  请教下哈
8 楼 jackra 2011-06-28  
我个人建议吧。上学就多看看书,好好锻炼身体吧。
如果想进入IT这个行业,最少头开始的几年是需要你有足够吃的老本。如果身体很好的话,在从coding转变的过程中也可以承担更多的压力而不会垮掉。如果在30多岁还能保持充沛的精力和快速的反应速度,成功就不会太遥远了。
7 楼 zwchen 2011-06-27  
Dreadmist 写道
做项目确实能锻炼技术,楼主能不能说几个比较值得去做的项目?
额..框架源码一般在哪里能找到还有如何参加开源项目的开发?

忘了说一个源码框架:mysql jdbc Driver
对于了解jdbc规范和实现的关系、网络编程、sql语言原理等非常有帮助。你无论怎么做jdbc编程,都是停留表面,但了解内幕,一切都柳暗花明。

不过,这个需要有一定的网络编码和sql开发经验。
6 楼 zwchen 2011-06-24  
Dreadmist 写道
做项目确实能锻炼技术,楼主能不能说几个比较值得去做的项目?
额..框架源码一般在哪里能找到还有如何参加开源项目的开发?

1、框架源码
因为你才大二,你可以看Java SDK,如java.util包里面的ArrayList、HashMap,从简单的看起。注意

如果深入点,比如:
数据库:hsqldb
Web Server:Jetty
即时通讯:Spark和WildFire
至于Spring和Hibernate,有一定项目经验再读,因为代码庞大,会一头雾水。
Struts很容易看懂,可以试着写一个简单的Web框架。
以上源码因为我都读过,所以有些体会,不过你完全可以看其它框架。

学习,一定要讲究由浅入深、循序渐进,这样效率最高。

2、开源项目
你可以上sourceforge或国内的oschina,反正一google全知道了。
因为你现在还处在入门阶段,这个你可以两年后考虑,自己写点小程序,如写一个博客程序。



5 楼 Dreadmist 2011-06-24  
做项目确实能锻炼技术,楼主能不能说几个比较值得去做的项目?
额..框架源码一般在哪里能找到还有如何参加开源项目的开发?
4 楼 zwchen 2011-06-24  
zwchen 写道
我对高清视频概念一直模棱两可,因为在iPad和高清电视上会用到它,而我需要下载或购买(淘宝上),所以必须先了解各种格式,如mp4、MKV、TS等。
....................

其实,我想表达的意思是:技术无处不在,只要你想学习。
3 楼 zhangyou1010 2011-06-24  
大二就考虑到这些,已经很不错了,我差不多到大四才开始接触点程序,那时才知道csdn,根本都不知道有javaeye。
2 楼 zwchen 2011-06-24  
我对高清视频概念一直模棱两可,因为在iPad和高清电视上会用到它,而我需要下载或购买(淘宝上),所以必须先了解各种格式,如mp4、MKV、TS等。

作为一个IT人,当然需要寻根究底,于是我耐心地查看wikipedia,官方文档,如FLV格式规范,H264格式规范,MKV文档,都是英文的,看上几天,比起网上那些通俗的介绍深入不知多少倍。一次了解,一生受用。
于是,如何转码、如何操作(字幕选择)都非常清楚、视频编码和硬件的关系。了解原理后,所有一般涉及到高清视频的问题都解决了。

研究收获:一般人都以为iPad只能播放mp4格式视频,用第三方播放器一般都很卡,特别是分辨率超过640*480后,用iPad是可以看720pMKV高清视频的,因为MKV一般是封装H264编码的视频,而iPad支持H264硬件解码,我用《速度与激情1》的720P高清视频测试过,不过解码最好的是AVPlayer,几乎和MP4格式一样的效果,BuzzPlayer次之,最差是OPlayer,内置iPod不能播放。
如果我不了解MKV内幕,怎么会有这样的发现呢?

1 楼 zwchen 2011-06-24  
特别提醒,要想在IT领域有所作为,大学学生年代,千万不要沉迷于游戏。
游戏会一天吃掉你至少10小时,一晃眼,可能就是三年(大二到大四)。
但技术没有几年的积累,毕业后非常难以翻身,除非一直在软件外包行业做低端coding,干到40岁失业为止。
当然了,你可以不做软件开发,但这是毕业后的敲门砖啊,你总得有一技之长。

大学一般都比较孤独、无聊、空虚,如果没有gf的话,这时游戏和网聊可能是最有效的解除痛苦的方式。无聊时,看A_片都比打游戏好,因为A_片看多了就会麻木,不会沉溺,都是年轻人嘛。知道怎么下吧?用emule。

大学生一般都很穷,而丰富的业余生活也需要经济做保障,就说找个gf,到外面租房都是很花钱的事情。

最好的解决无聊的方式,就是开发软件,可以加入一个开源项目,也可以为Apple AppStore开发app,虽然大学生很难做一个实用的软件(不是技术难度问题)。不过这个得需要一个iPhone,对于学生来说是一大笔钱。

搞IT技术是个最容易自学成才的职业,就如同写作行业。你只需要一台电脑,然后自己计划一个小项目,干上几个月,然后再做一个,很快你就脱颖而出了。因为像这样做的人,即使在名校,也不到10%的人。


相关推荐

    大学生在校在读证明模板.docx

    本文将详细介绍如何制作一份规范的大学生在校在读证明模板,并探讨其重要性和使用场景。 首先,证明的格式必须规范严谨,体现正式性。证明通常由学校教务部门出具,以确保其权威性。模板的结构一般包括以下几个部分...

    针对华农在读学生的轻量级app

    一款针对华农在读学生的轻量级app(20160523还未完全实现) 华小龙

    在读证明_中北大学本科生在读证明(中文).docx

    在读证明是中北大学本科生在读证明的模板文件,该文件提供了学生在读期间的基本信息和身份证明。下面是对该文件的详细分析和知识点总结: 一、文件基本信息 * 文件标题:在读证明_中北大学本科生在读证明(中文)....

    大学生在读证明范文.docx

    大学生在读证明范文.docx

    吴厚军在读证明1

    2. **学号**:每个学生在入校时都会被分配一个独一无二的学号,用于在学校内部进行身份识别和管理,是学生身份的重要标识。 3. **硕士学位**:高等教育阶段的一种学位,通常在完成本科教育后,通过进一步的学术研究...

    教师资格证在读学籍证明模板.pdf

    【教师资格证在读学籍证明模板】是教育领域中一个重要的文档,它主要用于证明申请人在校学习的状态,特别是对于那些正在攻读教师资格证的在校学生而言,这份证明是必不可少的材料。以下是对该证明模板及其相关知识点...

    学生学籍管理系统流程图

    学生学籍管理系统是一个重要的信息化工具,它用于高效地管理和跟踪学生的学籍状态,包括入学、在读、成绩、转学、休学、退学等各项事务。在这个系统中,流程图是一个关键的设计文档,它清晰地展示了不同操作的流程和...

    陆诗琦在读证明1

    一份正式的教育证明,如陆诗琦在读证明1,不仅是个人教育背景的官方声明,也是其学术旅程中的一个关键节点。在当今知识经济时代,教育证明不仅是求职者的敲门砖,也是评价个人能力和专业素养的重要依据之一。 从陆...

    学生管理系统的用例图、类图、活动图、状态图.pdf

    用例图是 Unified Modeling Language(UML)的一个组件,用来描述系统的功能需求和用户交互。用例图的主要组成部分包括:参与者、用例、关系等。参与者是系统的用户或其他外部实体,用例是系统提供的功能,而关系则...

    XXXXX大学在读研究生学籍证明.pdf

    一个高效、公正的学籍管理体系,对维护教学秩序、保障学生权益有着至关重要的作用。正是基于这样的管理体系,学籍证明得以顺利开具,并且其内容和形式都能得到严格审核,确保信息的真实性和准确性。通过这样的方式,...

    the贷款机构中国银行北京海淀支行贷款对象商学院注册的在读mba学生分享.pdf

    the贷款机构中国银行北京海淀支行贷款对象商学院注册的在读mba学生分享.pdf

    关于研究生在读期间公开发表学术论文要求的规定(2019年6月修订)1

    对于有志于在学术界深耕的研究生来说,这些规定无疑是一个挑战也是一个机会,通过这些学术活动,研究生不仅可以提升自己的学术研究能力,还能锻炼自己独立思考和解决实际问题的能力。而那些能够在高水平学术期刊或...

    陈记新在读证明1

    它见证了一个求知者如何通过夜曲大学计算机学院的严格培养,逐步成长为一名具有扎实理论基础和实践能力的计算机科学人才。这份证明也凸显了高等教育机构在培养和造就高级技术人才方面所发挥的重要作用。

    网上学习在读平台 Accp 5.0 S2

    "网上学习在读平台 Accp 5.0 S2" 是一个专为学员...总的来说,"网上学习在读平台 Accp 5.0 S2" 提供了一个全面的IT学习路径,通过理论与实践的结合,帮助学生构建坚实的IT基础,为将来在IT行业中的职业生涯做好准备。

    邵攀娜在读证明1

    邵攀娜作为夜曲大学计算机学院的一名研究生,他的在读证明正是这样一份文件,详细记录了他的个人资料与学术历程,为我们提供了一个关于其教育背景的清晰画像。 邵攀娜,一名男性,按照在读证明的记载,他于1990年8...

    魏芬芳在读证明1

    在读证明是一份正式的文件,由教育机构出具,用以确认学生正在该机构接受教育的情况。这份在读证明是关于魏芬芳女士的,她是一名在夜曲大学计算机学院就读的硕士研究生。以下是该证明涉及的具体知识点: 1. **个人...

    C++课程设计实验报告——学生管理系统

    本次课程设计的任务是设计并开发一个中学生成绩管理信息系统,使用C++编程语言,重点在于实现信息管理系统的功能,并锻炼学生的C++编程能力和数据结构应用能力。该系统的主要目标是为用户提供对学生成绩的录入、查询...

    初中语文语文论文在读中放飞激情

    【内容摘要】: 这篇初中语文论文探讨了如何在阅读教学中激发学生的情感,提升他们的语文素养,并通过具体的教学策略来实现这一目标。文章强调了语文课堂应是情感交流和个性展现的平台,以“读”为核心,让学生在读中...

    学生管理系统.rar

    总的来说,《青岛滨海学院学生管理系统》是一个全面且实用的工具,对于初学者来说,它提供了学习和实践Web开发技术,特别是ASP.NET和数据库应用的良好平台。通过理解和掌握这个系统,开发者可以进一步提升在实际项目...

    宋启军在读证明1

    宋启军女士目前正处于其教育旅程的一个重要阶段,根据在读证明文件,她是一名在夜曲大学计算机学院攻读硕士学位的在读生。这份证明文件的重要性在于,它不仅为宋启军的学术成就提供了官方认证,同时也在实际生活中为...

Global site tag (gtag.js) - Google Analytics