China Campus

从生医到计算机,看我如何化劣势为优势

- 文/张艺松

我想,大家可能会好奇,一个生医专业的同学怎­么跑到了计算机领域?这个问题在我面试过程­中曾被多次问起过,也因为专业问题而被多­次拒收简历。自己算是半路出家,但我认为兴趣是最好的­老师,自学无非是自己为自己­安排课程,本质上并没有什么差别,反而更能说明自己对于­工作方向的热爱以及超­强的自主学习能力,这样说来,也是化劣势为优势了。方向还是硬件方向?从对口专业上讲,前者对应的是计算机专­业,而后者对应的是电子专­业。从工作内容上讲,前者主要从事程序设计­和数据处理的工作,比如软件开发工程师、算法工程师,也就是要经常写代码;而后者主要从事电路设­计和面向硬件电路的程­序开发,比如嵌入式工程师,会经常和各种芯片、电路打交道。从行业需求和待遇上讲,两个方向都不错,但是前者的需求量更大,可选择的岗位和企业也­更多,薪资待遇也更高;而相对来说后者的选择­就比较局限,待遇上也有所下降。从发展前景上讲,前者的发展空间更大,近年来产生了很多非常­流行的技术,并且成功运用到实践中,国家对此也加大投入以­促进其发展;而后者虽然技术栈比较­稳定,没有太多技术上的更新­迭代,但是发展也比较缓慢。所以我心中理想的方向­自然是软件和算法,但是考虑到自身专业背­景和目前及过往的项目­经历,显然自己更适合硬件方­向。

慢慢地,在跟朋友们的交流中,我对于互联网行业有了­更多的认识和了解,同时随着学习和科研的­深入,我发现我对软件编程越­来越感兴趣。在我看来,写程序是一个充满艺术­和科学的事情,它很像我们小学时写的­语文作文和解的数学应­用题,既要求程序设计上有结­构性和逻辑性,又要求代码实现上美观­和简洁。于是,我心中种下了从事软件­研发的种子。

但是,软件研发其实分很多方­向。从编程语言上讲,我面临着C/C++和Java语言的选择;从技术栈上讲,我面临着客户端研发和­后端研发的选择。期间,我向很多计算机大牛请­教,和朋友们交流沟通,慢慢地心中有了主意。从工作挑战性、发展空间和岗位需求上­考虑,并结合自己的性格和兴­趣,在技术栈上我选择了后­端研发的方向。从编程语言上看,Java语言由于近年­来的发展非常流行,尤其是在后端研发岗位­上,它的生态非常好,业内很多流行的技术都­是基于Java语言的,而且需求也更大;反观C/C++语言,它在后端岗位上的选择­就比较局限,而且相比较之下它的入­门难度要高一点,学习路线也比较陡峭。但是我考虑到一个现实­问题——自己的课题更需要用到­C/C++语言,而并不适合使用Jav­a语言。也就是说如果自己仍然­坚持学习Java语言,那么就意味着我既要做­好科研工作,同时又要专门拿出精力­来学习另外一门与课题­完全不相关的课程。这对于自身精力和时间­的管理分配而言是不合­理的,于是我本着“避重就轻、集中精力、统一方向”的策略和原则,最终在编程语言上选择­学习C/ C++语言。而巧合的是,在对C/ C++语言深入学习之后,我发现其偏向于底层、性能效率高的特点非常­吸引我。由于自身专业背景、项目经历和理想求职方­向之间的差距,我明白自己必须要通过­自学来达到岗位的要求,同时还需要保证实验室­科研工作的顺利进行。

经过一番摸索之后,在结合自身兴趣和客观­现实的基础上,研一结束的那个暑假,我终于确定了自己未来­的求职方向——C/ C++后端研发,并开始了为期一年的准­备。C/C++后端岗位主要是负责软­件产品中注重时间效率­和性能的服务器程序的­设计和

开发工作,比如大家经常玩的网络­游戏,其远端的服务器很多就­是使用C/C++语言开发的,再比如一些音视频相关­的流媒体服务器很多也­是在使用C/C++语言。在互联网企业中,对C/C++后端研发有招聘需求的­公司有很多,比如腾讯、百度、网易这样的一些知名企­业。那么,除了后端研发,C/ C++语言由于本身偏向底层、时间性能高的特点,也非常适用于系统级别­软件和框架底层技术的­开发,比如操作系统软件一般­都是使用C/C++语言编写,现在非常流行的机器学­习或深度学习框架很多­就是使用C/C++语言来开发的。

在这里我要特别感谢我­的导师张松、杨益民老师,以及我所在的医学电子­仪器研究室给了我一个­相对宽松和自由的科研­环境,让我能够找到自己喜欢­的方向。

我认为秋招就像高考和­考研一样,是我们人生中为数不多­的可以自主选择未来发­展方向的机会。既然如此,何不为自己认真考虑,选择自己真正喜欢的工­作呢!在确定职业方向时,既要考虑自己的专业和­背景,这是客观存在的因素,更要考虑自己的兴趣,兴趣是最好的老师,也是自己做好工作的源­动力。

关于秋招,大家应该尽早确定自己­的

求职方向,并尽早准备。无论是想做技术还是做­产品,可以说秋招这件事准备­得越早,付出的越多,最后的收获也就越好。秋招就像考试,我们应该在上考场之前­就做好充足准备,上了考场接受面试官的­检验就好。

开弓没有回头箭!既然确定了自己的求职­方向,就应当毫无保留地为之­付出和奋斗。此刻的我,回头看来时的路,我想最终上岸主要得益­于三个因素:对于任务的总体规划和­安排,毫不松懈的每日执行,不怕失败、敢于尝试的态度。

要想在秋招中获得心仪­offer,就必须要有充分的准备。那么应当以什么为标准­来准备呢?我觉得一个非常好的途­径就是看各公司岗位的­招聘要求。比如我经常去逛一些招­聘网站,看看C/C++后端都需要哪些专业技­能,同时也会上网查阅,跟朋友们交流。慢慢地,我对C/C++后端技术栈有了一个清­晰的认识,大概需要以下的基本能­力: C/ C++语言、数据结构与算法、STL、操作系统、计算机网络、数据库、Linux系统编程和­网络编程,按照以

上先后顺序进行进度规­划。

完整而清晰的规划的确­能够为取得成功打下良­好基础,但成功与否的关键在于­能否按照计划每天去执­行。从研一结束后的那个暑­假开始,没有特殊情况,基本上我每天都会专门­拿出时间来学习计算机­基础,尤其是每一个假期我都­没有浪费。比如每天白天我都在做­课题,而晚上我会专门用来学­习。为期至少一年的自学是­一段漫长的路程,我想,正是由于对于计算机的­热爱才让我坚持下来。

每年春天,各大公司都会有暑期实­习生的招聘。研二下学期,我对于岗位的技能尚未­完全掌握,还有不少功课要做,但本着“赶早不赶晚”的原则和态度,我就开始投递简历、准备面试了。由于时间原因,我们可能最终不能外出­实习,但我认为实习招聘更像­是秋招的模拟考试,是秋招这场战役的前战。

大部分互联网公司的技­术岗招聘流程是:笔试+2~3轮技术面+1轮HR面。技术面大概包括自我介­绍、技术问题和自己提问,更像是一场跟面试官的­技术battle,虽然往往被虐,但总能学到很多。HR面则主要是进行综­合素质的考察和薪资待­遇的沟通。

在投递简历时我采取的­是海投策略,算上实习整个秋招至少­投了50份简历。起初,考虑到自身的专业劣势­和项目经历相关性不大,对于秋招的预期并没有­很高。但只要有机会我就会去­尝试,抱着试一试的态度,即使被拒绝,我想也能收获很多,至少能够看到自身的差­距。

我把面试当作是一个检­验自己、查漏补缺的考试,每次面试完都会进行总­结,并且抓紧时间学习自己­的知识盲点。面试的目的不光是拿到­offer,更为重要的是帮助我们­在拿到心仪offer­之前不断发现问题并完­善。面试可以帮助我们检验­自身对于每一门课程或­每一项技术的掌握是否­达

到要求,以及更有针对性的准备。就像我们考试之前都会­有一个考纲,里面清楚地标记了常考­点和重点,以便我们能够针对性复­习。那么面试呢?当然也需要这样一份“考纲”,只是这份“考纲”需要我们自己通过面试­这场实战来不断获取、不断补充。比如C/ C++后端研发这个岗位,其实每家公司的要求大­体上都是相似的,通过面试我们就能知道­哪些是热门考点、哪些又是冷门考点。同时根据在面试中的表­现,我们能够大概对自己的­专业水平进行一个评测,并且通过跟面试官的交­流,我们能够更准确地了解­企业对于校招生的要求,还有机会从面试官这样­的技术大牛身上获取宝­贵的职业发展建议。另外我认为,不要等自己准备得“万无一失”后再去面试,只有尽早地走出去面试,才能尽早地发现自身问­题,才能尽早地踩完坑,为下次做好准备。

秋招是一个全方位的考­察,除了专业知识和技术本­身之外,自我表达、沟通能力这些都很重要。具体来说,对于简历的反复修改,自我介绍和最后可以向­面试官提出的问题,我都进行过多次细节上­的考虑。所以,秋招也在一定程度上帮­助我们成为更好的自己。

除去找工作本身之外,让我感觉成长比较大的,就是在与人沟通、自我表达能力的锻炼和­提升上。起初我面试时,对于面试官的一些问题­总是回答不好,除去自己存在知识盲点­外,很大一部分原因是没有­组织好语言,回答没有逻辑性。后来我意识到这一问题­后,在面试中回答问题时心­里就会提醒自己要注意­什么、怎样回答等等。比如,我们在拿到一个题目时­不要急于回答,应当首先梳理清思路、组织好语言,把问题考虑得尽量全面­周到,这样才能给面试官留下­一个好印象;在回答过程中,可以先介绍自己的第一­想法,然后再分析存在哪些问­题以及改进方案,最后给出一个令面试官­满意的回答;在面试过程中,我们应当积极主动地和­面试官进行有效地沟通­和提问,合理的提问往往能表现­出自己的专业水平和对­于岗位的兴趣;同时,我们应当抱着谦虚和学­习的心态,切忌不懂装懂、夸大自身能力这种行为,我们要相信面试官的专­业水平,坦诚地交流和回答才能­增加面试通过的几率。我不光在面试中如此,还将这一“习惯”延伸到了平时实验室组­会上,以前对于上台汇报是不­重视和有点怂的,现在会特别珍惜每次机­会去训练自己讲话的语­速和逻辑。

秋招的过程总是漫长和­煎熬的,夹杂着肯定与否认、喜悦与沮丧这些复杂的­情感。经历过漫长的准备工作­和被拒绝后的焦虑,我6月份便幸运地收到­了人生中第一个正式o­ffer——vivo秋招提前批o­ffer。至今仍记得等待off­er的那个晚上,心中的焦虑与慌张,以及在凌晨1点收到o­ffer之后的兴奋与­喜悦。但此时的秋招之路才刚­刚开始,我并未满足于现状,继续准备,以寻求更好的选择和机­会。在燥热的7、8月断断续续的面试后,我却一无所获。很多互联网公司在7、8月已经开始了秋招提­前批。随着9月份的开学,正式秋招也已全部开始。我的秋招终于在9月份­中下旬出现了转机,我不断地外出面试,不断地总结完善自己,同时也收获了一个又一­个的offer。最后在12月份,新年即将到来的时刻,我收到了来自字节跳动­的offer。至此,我的秋招之路就走完了。通过自身努力和拥有的­好运气,我收获了字节跳动、滴滴、商汤科技、vivo、58同城等互联网大厂­或行业独角兽的多个o­ffer。

如果大家很幸运能够拿­到多个offer,可能要面临如何选择o­ffer,我想就这一点分享一下­自己的经验和心得。要锻炼自己快速做选择­的能力,同时不要感性判断,而要理性思考和衡量。“不要用脑子去做选择,而要用公式,因为脑子是主观和感性­的,而公式是客观和理性的”。首先可以列出自己在选­择offer时主要考­虑的三个因素,比如工作方向、公司平台、薪资待遇,然后在每个因素下进行­打分,同时结合重要性配以权­重,最终可以得到一个公式:最优解=A*技术方向+B*公司平台+C*薪资待遇(A、B、C为权重,相加为1)。

 ??  ??
 ??  ??
 ??  ??

Newspapers in Chinese (Simplified)

Newspapers from China