【来信】
贺老师您好!
这是我第二次向您请教问题了。非常感谢您上次给我的建议!(注:上次来信见http://blog.csdn.net/sxhelijian/article/details/7760011)
如邮件主题所述,我是一个即将大四的学生。我学的专业是数学与应用数学,在大二上学期的时候,系里曾经开过《C++ 程序设计》这门课,当时我和其他同学一样,没认真听过,甚至没上过几节课,凭借着期末考试前的突击,给过了。这是我最开始接触到的C++吧,当时甚至都不清楚像C、C++这些东西到底是什么。
然后到了大二下学期,这个时候我同班上其他同学一样,开始考虑自己以后的打算了,考虑到各种因素,我最终决定不考研。一次偶然的机会,得知我们专业08级毕业的学长学姐,就业情况非常不容乐观,就业率仅仅只有29.6%(不排除少数找到工作的学生未统计在内)!这个数字当时令我震惊,由此我也决定,自己应该考些证书并开始做些打算了。后来,因为准备二级C++考试的原因,发现自己还挺喜欢学C++的,也在图书馆借了本大学自学教程有空的时候看看,也差不多看完了。之后的两次(前后相隔两个月)基于性格的职业倾向性测试均表明我比较适合从事于:计算机技术 理论研究、学术领域 专业领域 创造性领域,后来又注意到08级仅有的几个找到工作的学生大多是做软件开发的,由此我也决定,自己将来要从事的行业可能就是软件开发了。
当然我做如此重大决定的原因,也不仅仅是因为以上原因。上学期寒假看过《黑客与画家》,或许是因为这本书本身就具有的趣味性,我居然对它爱不释手。看完后有段时间,我甚至想自己以后要能称为一名黑客就好了(至少也要成为一名极客)!本学期看了《IT 通史》一书,发现自己对里边的许多章节都很感兴趣,尤其是讲述某些耳熟能详的IT/互联网公司的发展历程时,当然对IT行业中硬件的发展依旧不是很感兴趣。我喜欢互联网,喜欢Google,喜欢那些很酷很炫的技术和服务。最近也喜欢上了Ubuntu。然而我对软件开发这个行业中的一些情况却知之甚少。08级那几个进了某软件开发公司的,据我后来了解,是做软件外包的,在业内出了名的待遇差。而他们几个之所以能进,很可能是因为他们大三暑假参加了该公司的所谓种子计划(按协议之后的大四寒假、大四下学期均需要参加)。
之后大二暑假,没能在南昌找到适合的实习。就一边当家教老师,一边看您给我介绍的《C++ Primer》中文版(确实是本好书)。两个月下来看了许多章节,可能因为那时候重理论而轻实践,导致大三上学期的二级考试就败在了机试。这学期机试过了,但同时发现,对于一个程序员来说,这张证书确实没什么用。
后来,包括大三上学期和下学期(现在)我大多课都逃了,一直在专心在学习C++。这学期借或买了许多我应该看的书,基本都是计算机相关专业的基础课程,包括《数据结构》、《操作系统教程》、《汇编语言》,我们自己系里也开过《离散数学》、《数据库原理》、《计算机网络原理》。其中许多课程依然在学习。当然我打算本学期重点学习的是MFC,自己买了《深入浅出MFC》,也借了不少书。反正感觉要学习的东西真的是原来越多。
上个星期的样子,正好在微博上认识了一位我们学校的学长(已经工作一年了)。他建议我别走弯路了,放弃MFC,好好学习C,再学C#(.NET)或Java。我也比较关注IT/互联网的进展,知道现在Java、Object-C、C#很热门。但我觉得自己MFC学到这个时候是不应当轻易放弃的。可是这段时间对招聘网站的观察,发现招MFC开发的真是少之又少,大多都是招快速开发(.NET)、Android开发或者ios开发。其实我现在挺喜欢MFC,但我真的非常担心大四时的找工作问题。
一方面,我觉得自己应当沉下心来,好好学习下C/C++和数据结构以及算法,但另一方面我又担心,没有任何实习经验、项目经验大四找工作甚至找实习都会很困难。这个月开始,自己也一直在投简历,前几天有两家南昌的公司打电话过来,叫我去面试,虽然这两家看起来主要是做IT人才培训的,但我还是想去看看。算是积累下面试经验吧,。
还久没写邮件了,啰啰嗦嗦说了很多废话。其实我的困惑可以总结为:
1)也许.NET真的即将取代MFC,但我真的应该选择学习其他语言(C已经开始学习了)或开发工具/平台吗?
2)我首要考虑的还是大四能否真的找到一份合适的工作,您觉得我还应该做些什么?
3)其实我更希望自己毕业后能进入一家互联网公司,您认为这些公司如果用C++的话是用在哪方面?数据库?网络编程?还是我应当另外学习些什么?
希望还能得到贺老师的建议!
再次感谢!
祝贺老师工作顺利、家庭幸福!
ps:附件是我在CSDN上给老师您的第一次留言以及我的职业倾向性测试。
【回信】
又一个从大学“混日子”中找到自己的案例。在我关注的“学习力再塑造”中,需要你这样回到学习正途的同学分享自己的变化,给正在不知大学该如何安排的低年级同学以勇气。
你的信中谈到了自己的奋起是由于知道了就业率低这样一个事实。不知你想到了没有,其实这样低的就业率背后,专业需求或许是一个方面,更重要的是,诚如你上C++程序设计课那样,没上几节课凭考前突击就过了。真的没有学到知识和技能啊。这样学出来的人,用人单位如何委以重任。所以现在就业市场上的一个现象就是,很多地方求贤若渴,但仍有相当多的毕业生找不到岗位。你的转变很及时,有些人真的就在等待中学无所成,被迫当了就业率的分母的。而这一切,就是在大学中的不学。不少人将学习与快乐对立起来而放纵,学习被视为负担,而找到真正的学习之路时,这种快乐又岂能是他人理解。当什么时候,就业率只由需求、市场决定时,那将是我们期望的局面。
回到你的问题上来。你的课外学习历程值得肯定,主动看书、拓展,使自己有机会面临一个个不得不面对的选择。而你提到的逃课,我真不敢苟同。在计算机进入大数据时代的背景下,你的专业课中承载的内容,本是你将来能够长期立足,以及能够走得更远的资本。理想情况是“道”、“术”兼顾,而你只盯着就业,舍“道”只求“术”,这是一个重大的损失,信息与计算科学中包含着多少决定核心竞争力的内容,不知你以后有没有机会体会到,而你面临的可能会是一种技术流行过去之后,必须经历一次伤筋动骨般的转变。你把所有的鸡蛋放到C++(这仅是一门语言)这一个篮子里,面窄了。写这段话,一是避免看到这封回信的读者延续你逃课的得意;二是提醒你,编程是计算机、信息科学中的一部分,但根本的还是可以从学过的课程中找一些,马上大四了,将考前突击过了的课程,用很快的速度从真正学习的角度回顾、整理一下,给以后发挥作用留有机会。
关于你的困惑。(1)从就业角度,可以果断放弃MFC,MFC帮助你了解框架,了解利用类库的开发的历史使命已经结束。在学习过程中,一切语言平台只是学习的一个介质,舍弃并不意识着白学。而现在面临就业的实际需要,就你现在实质上已经确定的走应用开发的路线,.Net(C#)可以是一种选择,Java、Object-C也是。目前这个阶段,只需要选择其一,做精做强。(2)为找到工作,选择好语言,真正学会编程,了解并实践一些在工程中需要关注的问题,在找工作前,亲手做出一个能代表自己水平的“产品”来。为此,实践型的学习要坚决执行,看一些软件工程、设计方法,如UML、设计模式、敏捷编程之类的书。(3)可以看出你不想放弃C++,其实C++的市场也并不太窄,不过要进互联网公司,更多的机会应该并不针对C++程序员。至于还要另外学什么,为长期在行业中立足,参考软件工程、计算机科学与技术、信息科学专业的教学计划;为当前找工作的直接需要,现在开始上招聘网站,看你心仪的岗位提出的要求是什么,各种岗位要求不一,需要你找中入手点后再确定。基于你目前的情况,如果有实习的机会,可以更有针对性地去实践,或者也可以考虑找一家好的培训机构借力。
就写这些,学有所成!