答读者问(29):三个在校学生有关在校学习、考研、编程语言、未来工作的疑问及答复

【来信1】
周学长:
您好。不好意思打搅了。我本科是重庆邮电大学的。

学的是微电子,从CSDN上看到了,想麻烦请教几个问题。


昨天研招网上收到了大连海事的一个省实验室的复试通知,调剂的是计算机专硕。正好认识个东软的学长,他说大连海事这些省部级的实验室实力普遍弱。相当于边缘地带,都是搞非常多理论性的课题和研究为主,也有物联网的项目,但不多,按他的意思是小实验室其它项目基本接不到。
但优点就是能够正儿八经的学计算机,补算法和数据结构,能够好好的巩固下我薄弱的基础。我一直非常想从事数据库数据挖掘方面的。这个实验室也正好有这个方向。
那么问题来了,还是恳请学长指点下:
第一:边缘地带的小实验室出来工作肯定会被看不起,但这个比重究竟有多少?通过加强理论和基本功的学习是否能弥补呢?
第二:这个实验室如今看来非常重视算法理论研究。那么将来找工作,是理论层面搞的好的会有优势,还是说项目和实习接的多的学生有优势呢?
第三:工作单位是否非常看重研究生项目阶段的经历呢?是专精一个项目好(仅仅有物联网) 还是说你研究生阶段非常多项目都有涉猎好?
谢谢学长,这是我的思考和顾虑。还望给小弟指点下。谢谢了。

【答复】
你好!
在考研这个事情上,我总是告知大家要三思而后行,一定要有自己的想法,由于这涉及到自己未来若干年甚至是一生的职业发展方向。
从你的邮件里,我了解到你最大的疑虑是想利用研究生这几年补充下计算机方面的理论知识。但又怕太偏重理论了而不好就业。现实的情况是假设你不想继续深造(读博)。那么在研究生阶段一定要做一些实践性强一点的项目,这样对找工作有优点,毕竟用人单位也希望你能够尽快上手。而不须要又一次培养非常长一段时间。
以下来详细回答你的问题:
问题一:是不是小实验室出来的并非最重要的。最主要是看你做过什么、学过什么。是不是合用人单位的胃口。举个样例。假设你在研究生阶段做过的项目也是未来的雇主正在做的。那么你就有非常大的机会被录用。

通过加强理论和基本功的学习仅仅能让你知道的理论知识多一点,关键还是看你的动手能力、实践能力、举一反三的能力,看你拿到一个东西之后是不是能够非常快学会它。
问题二:这个要看你未来找的工作的性质,是像研究所里面那样搞理论研究的呢,还是像一般软件企业做产品开发的呢。只是,依据我的了解。一般企业还是喜欢项目和实习经验多的学生,由于他们做过实际的东西。在接触到新东西之后能够更快地上手。在读研期间,这两个方面都不要荒废,在学习的同一时候要实践,在实践的同一时候也要学习。


问题三:工作单位确实非常看重研究生阶段的项目经历,由于这显示出了你做事情的能力、态度等。项目的多少不重要,重要的是你从这些项目中学到了什么,是否通过做这些项目提升了自己的能力。

假设你做过非常多的项目。但基本上都是在打酱油,啥也没学到。那不如专精一个项目来得更好。如今物联网非常火,假设做了这方面的有实质性内容的项目。对你未来的就业还是非常有帮助的。
研究生阶段与本科阶段非常大的不同在于前者对于个人自主能动性的要求更高。你必须要主动地去研究一些东西、去做一些感兴趣的项目。仅仅要你确实学到了真本领,那么找到惬意的工作应该不是非常难的事情。你的努力决定了你的未来。


我的以上建议,请參考。

希望你做出最合适自己的决定。并选择好自己未来的发展道路。感谢你的来信及对我的信任。请继续关注本人博客。


【来信2】
周老师,你好!


我是计算机专业的在读研究生。如今对于IT行业的工作还不是非常清楚,在学校根本不知道企业里面职位还有详细工作内容,想提前了解一下,如今我所知道的有开发(就是须要编敲代码和文档),还有測试,维护,销售,这些都听说过。可是详细工作内容也一点都不了解,所以想请教步入IT行业能做哪些,到时候能够自己选择。

【答复】
你好!
IT行业的分工非常的细。我仅仅能就我所知道的情况给出答复,请參考。
企业里面的招聘分为校招和社招两种。对于这两种性质的招聘,企业的选人标准是不一样的。一般的大型企业每年都会有校招和社招的名额,而初创型的小企业更倾向于社招。由于社招的人能够非常快独立承担起工作。
为了便于说明。我将IT企业分为两类,一类是技术类企业,还有一类是非技术类企业。技术类企业是须要独立开发软件产品的企业。像BAT、华为、中兴等;非技术类企业是不须要独立开发软件产品而以运营为主的企业,像三大运营商。

这里,我介绍一下技术类企业的职位和详细工作内容。


对于计算机相关专业的学生来说。应聘的岗位主要有这几个:开发、測试、运维和销售。当中,又以开发和測试居多。
开发者,也就是所谓的程序猿,主要做这些工作:
1) 对软件需求说明书进行评审,明白须要开发的软件的功能。
2) 编写软件详细设计、单元測试和集成測试规程文档。

软件详细设计文档是最重要的文档。在里面,要写清楚自己程序的流程、函数设计、异常保护考虑等。在动手敲代码之前,一定要将软件详细设计文档写好,等评审通过了再写代码。


3) 编写代码,用程序实现软件的功能。

非常多人觉得的软件开发就是写代码,事实上这是一种非常狭隘的理解,写代码在整个开发流程中,仅仅占了非常小的部分。
4) 程序写好之后。开发者要对它进行单元測试和集成測试(也叫自測)。确保程序的正确性。这里就出现了“測试”二字。但与软件測试所做的“測试”是不同的,他们做的是“系统測试”。等自測通过之后。而且相关文档也写好之后,就能够提交程序版本号。供測试人员进行相对专业的測试了。
5) 解决软件故障并制作软件升级包。是程序就会有bug,无论是測试中发现的问题还是客户反馈回来的问题,开发者都要在第一时间将其解决掉。另外,非常多软件都会有版本号的演进,这就须要对已经执行起来的软件进行升级。开发者要制作软件升级包并指导相关人员进行升级操作。
測试人员主要做这几件事情:
1) 搭建測试环境。这个是非常重要的,也是比較难的事情。什么是“測试环境”呢?就是说。无论什么软件。都有个执行的条件,如操作系统类型、參数设置及配套软硬件设施等,这些统称为“环境”。为了保证程序功能的正确性,要在软件公布之前。尽量模拟软件实际的执行环境,这就是搭建測试环境时要做的事情。非常多软件在正式商用之后出问题。就在于測试的时候没有还原现场的环境所致。
2) 对软件进行系统測试并输出測试报告。

所谓系统測试,就是指将配套的全部软件都执行起来,看一下全部的功能是否正常。

当出现故障的时候。要及时和开发者联系,以修正软件缺陷。


3) 指导现场人员安装软件程序。并在必要的时候亲自出差到现场去安装软件。因此。測试人员也可能会常常出差的。
运维人员的主要任务是保证软件产品的正常执行,假设发现产品有故障,要在第一时间叫专业人员来将之解决掉。

运维人员一般不会接触到软件的程序代码。但会编写一些简单的脚本来获取软件执行状态或安装定时任务等。
销售分为售前和售后,据我的了解。售前的主要工作是向客户推销软件产品。力求签订软件购置合同。而售后的主要工作是安装软件产品,并对软件产品进行维护。非常多销售人员都是由开发和測试人员转过去的。

比如。有些开发者工作了几年过后。想换一下工作的性质,就能够考虑转到销售岗位上去(在大型企业里面,非常多开发者都是这么做的)。

一个人步入IT行业能做哪些。取决于这个人的综合能力。我总结了一下。对于研发类工作岗位(开发和測试),要求有以下这些:
1) 对详细编程语言的要求。如C/C++开发project师、Java开发project师、数据库开发project师等。就须要大家分别熟练掌握C/C++、Java和SQL语言。

因此,大家在学校一定要熟练掌握至少一门编程语言。
2) 对专业知识、英语等的要求。假设想应聘通信类的研发岗位,那么大家就要对通信原理、通信网、移动通信等基本概念和原理有一定的了解。假设应聘计算机类的研发岗位。那么大家就要对计算机组成、计算机操作系统、计算机网络等比較熟悉。

此外,某些岗位对英语也会有要求(本科生至少过4级,研究生至少过6级)。


3) 对学习能力的要求。

一般公司都会要求应聘者具备较强的学习能力,由于到了单位之后,要学习的东西还非常多。怎样体现大家的学习能力呢?在校的获奖证书、所做过的项目、实习经历等,都是非常好的证明。
4) 对人际交往能力的要求。非常多公司会要求应聘者具备较强的沟通能力,这是由于大家是在一个团队中工作。不会开口是不行的。在学校的时候,大家要适当地參加一些社团和班级所组织的活动。培养自己与别人打交道的能力。

对于在校学生来说。能够看一下心仪公司的心仪岗位相应聘者的要求。这样开展针对性的学习。你会感觉到每天过得都非常充实。
我的以上意见,是从我自身的经验为出发点的,不一定都对,请參考。能够去往哪个公司,取决于你每天的努力和选择的方向,请依据你的实际情况制定出学习的计划并坚持执行之。希望你找到惬意的工作。

再次感谢你的来信,请继续关注本人博客。


【来信3】
周老师(可能叫你学长更合适。尽管我不是南邮的),我如今大四了。研究生阶段要读电子与通信project。如今在导师这里帮忙做东西。

我本科学的是集成电路,但由于和同学给外面的人做个小项目,就学习了软件开发(事实上主要是c#),如今也是做的c#,手里面如今有两个须要帮老师做的东西,也是用c#。如今有几个问题想请教学长。希望你能给点建议。谢谢。
1.c#如今好多人都不看好,我如今也不知道须要继续深入研究还是如今这样就去学习别的。

老师让我赶紧做完去学c++。假设我学c++的话。c#我还有必要去继续学习吗?
2.研究生阶段要学电子与通信project,假设仅仅学习软件的话总感觉和软件专业的相比没有优势,我看学长你微博是中兴通讯的,不知道对于这样的做嵌入式应用层(老师说不让我了解底层,不做驱动啥的)的要求是什么呢。假设将来有幸我也想去中兴,所以我想看一下要求把握方向。


3.在做如今的两个小软件曾经吧,我对自己还是比較自信的(可能也是自大吧),觉得学习的挺多了。如今自己写总是easy出现各种问题,有时候写着写着就写不下去了。我想知道学长在一个人的时候是怎么让自己坚持学习的。
一点小事就写这么长。总感觉非常抱歉,学长你有空就和我说一下。


非常感谢你的意见,祝你工作顺心,快快乐乐每一天。谢谢你。

【答复】
同学,你好!
软件行业变化非常快,没有哪一项技能是包治百病的良药。

为了用不变应万变,我们要掌握解决这个问题的思路和方法。要抓住变量后面的不变量。

对于你即将要读得研究生来说,非常多知识在本科阶段事实上都已经学过了,你一定要主动地、深入地研究一些自己感兴趣的课题,以此来训练自己的思维。千万不要流于表面、浅尝辄止。这样就失去了读研的价值了。
以下来详细回答你的问题。


1.有关编程语言的问题。
每一门编程语言既然存在,那么就有它存在的价值。

无论是C#也好,C++也罢,都有它们特定的应用场合。

因此,说不看好某门编程语言。事实上是比較片面和狭隘的。

更进一步说,你还不知道自己未来要从事什么工作,因此千万不要说自己仅仅须要学习某种编程语言即可了。

你如今要做的是依据自己的兴趣及未来规划来学习编程语言。当然,导师的意见也能够參考,但终于的选择权在你自己手上。你要学习的编程语言不限于C#和C++。但比較熟悉(或者精通)的编程语言最好不要超过两种。

2.有关未来工作的问题。
非常抱歉。我也不清楚对于嵌入式应用层的要求是什么,但你的老师不让你了解底层事实上是不正确的。假设你不了解底层。那么你就不会明白计算机和程序执行的机理究竟是什么,这样对于你学习更加高端的知识是不利的。

科学技术发展到今天,非常多专业之间已经是相通的了。更不要说计算机专业和通信专业了。你所谓的没有优势,我理解就是自己仅仅会编写代码。

每一个人都有一个专业(也就是研究生阶段的研究方向),把自己专业领域的大部分知识都弄精通了,这就是你的优势。

不光是中兴,差点儿不论什么公司都希望应聘者同一时候具备软实力和硬实力,软实力包含:分析解决这个问题的能力、与人沟通交流的能力、承受压力的能力、自我调节的能力、分享知识经验的能力等,硬实力包含:专业能力(学校里面的课程主要是培养这个)、业务能力(包含编写代码和文档的能力等)等。

希望你在学校好好培养这两种能力。

3.怎样坚持学习的问题。
学习是一件比較枯燥的事情,编敲代码也一样。

你的这样的情况。我也遇到过,一般说来,我是这样克服学习障碍的:
(1) 在感觉到有点疲惫的时候,我会从座位上站起来,到房间外面去呼吸一下新奇空气。等感觉疲劳感消失之后。再来接着学习。


(2) 在学习的时候,我会将社交软件(如QQ、微信、微博等)关掉,让自己全身心地投入。避免分心。
(3) 假设确实学不下去了,那么我不会再强迫自己学习。我会选择去參加一下体育锻炼。或者去看一场电影,等自己状态好的时候再学习。
此外,你能够找几个志同道合的“学友”,大家一起学习,共同提高。

当然。你一定要学会利用互联网来学习,向网上的牛人们学习。

我的以上意见,请參考。

希望你利用好研究生三年的学习时光,学到过硬的本领。无论别人怎么说,仅仅有你自己才知道想学到什么、想往哪个方向发展,仅仅有你才干决定自己的未来。加油!


本人微信公众号:zhouzxi。请扫描以下二维码:
这里写图片描写叙述

原文地址:https://www.cnblogs.com/yjbjingcha/p/7253423.html