今天的文章来自SAP成都一位实习生,曾经和Jerry同在C4C成都开发团队一块儿工做过。在Sunshine最后一个工做日里,Jerry和Sunshine一块儿吃饭的时候,她曾经聊到接下来的保研打算和未来工做的努力方向。一位大三的学生,对于本身的未来有如此清晰和长远的规划,这让Jerry佩服不已。git
而在结束了SAP成都研究院的实习后不久,Sunshine就实现了她我的规划的第一步,也就是即将在这篇文章里给你们分享的她的保研历程。Jerry在这里预祝Sunshine未来的硕士学习生活能和当初在SAP成都研究院同样收获满满。面试
下面是她的正文。算法
你们好,我是电子科技大学一名本科生,曾经在大三下学期时,有幸在SAP成都研究院的C4C开发团队实习过6个月。数据库
我很是高兴在实习期间可以融入SAP成都C4C开发团队这个你们庭之中。在这里,收获到的更可能是人生的成长和对本身的思考。编程
现在回顾本身这6个月愉快的实习生涯,我总结出对本身将来的研究生学习和职场之路很重要的三点,但愿对你们也能有点启发。网络
1. 持续学习的能力session
我加入的SAP成都C4C开发团队负责的是C4C UI框架的开发,使用的编程语言是JavaScript。虽然我在学校里也作过一些简单的Web开发,可是当我第一次按照组里有经验的同事写的帮助文档,在我本地搭建C4C开发环境时,我仍是感到了深深的震撼:源代码clone下来以后,包含git修改的历史记录.git文件夹在内,一共将近1GB,超过1万个源文件。数据结构
在组里其余同事的帮助下,解决了各类本地环境问题,成功地在本地运行了C4C UI以后,我接下来面临的问题就是熟悉项目文件,确保本身接到开发任务后,能准肯定位到须要在哪些文件上作增量开发。框架
在开发过程当中,我发现本身在学校里学到的那点少得可怜的JavaScript开发知识根本不够用,所以JavaScript的持续学习也贯穿于我这6个月的实习生涯中。接下来我发现,开发的代码写完只是万里长征走完了第一步,单元测试,持续集成,检查产品标准,按照SAP的标准流程发布新开发的功能,等等都是我须要去学习的。同时,我开发的这些功能,背后是有什么客户的需求在驱动?帮助客户解决了哪些痛点?上下文涵盖了哪些业务场景?我真的感到要学得太多太多了。编程语言
我很好奇,是由于我是一个初入SAP大门的实习生,因此才有这么多东西要学么?在问过组里一些有过多年SAP工做经验的老同事,我才知道,持续学习在企业软件开发领域里是一个常态,不论你是一个初出茅庐的大学毕业生仍是一个工做多年的SAP老兵。
我想,持续学习这个原则,不管是我未来进入计算机行业的哪个具体领域进行工做,都是很是重要的。
2. 保持严谨的学习和工做态度
在我本科学习期间,在学校专业课上也了解了一些软件测试的概念,对于单元测试有个模糊的认识,可是进入SAP成都研究院后,没有想到单元测试在这里是执行得如此严格。每次本地用git提交代码修改以后,触发对应的单元测试,测试覆盖率不得低于SAP定义的基准,若是没有达到,哪怕差1%也没法提交代码。这种流程使得每一位开发者都认真严谨地对待本身的每一行代码:完成功能开发只是第一步,更多的精力放在了各类边界条件(Boundry Condition)的处理和负面测试上。
这篇文章的后半部分我会向你们介绍我那不算顺利的保研道路,其中就包含了我各类机试的滑铁卢。说来惭愧,我后来反思一下,有些我没有完成的题目,背后的知识点都很基础。若是我平时在学校的学习,都是抱着严谨的治学态度,把这些基础知识点的方方面面搞透彻,而不是像我如今这样学个似是而非,以为本身达到差很少懂的程度就知足,那么个人机试必定是另一个结果。
3. 团队协做
在进入SAP成都研究院以前,我对敏捷开发,持续交付和集成等概念也只是据说过而已。很庆幸本身能有机会加入到SAP成都C4C开发团队这样一个极具活力,进取心以及凝聚力的团队。
在这个以敏捷开发模式进行C4C功能交付的Scrum团队里,你们各司其职,工做,技术迎难而上,互帮互助,在编程马拉松等各项活动中都彰显了团队的实力以及魄力;各类session分享,每一个开发周期结束后由同事轮流进行的功能展现等方式给我的能力的提高营造了很大的空间;组内聚餐和团队建设,生日蛋糕会,周末羽毛球等活动丰富了团队的文化,就如一个你们庭般舒适与团结。
初尝职场的我学到了不少,无论是从我的能力仍是人生启蒙。这里感谢成都C4C团队的每一位同事,很庆幸曾是这个你们庭中的一员!
结束了6个月愉快的SAP成都研究院实习以后,我开始了新的旅程。现在, "浩浩荡荡"的保研之路总算是过去了,在这一路走来,过程虽然波折艰难,但皆是人生成长。一路的探索追求中,吸收到了很多的经验教训,因此记下来,但愿能给以后的学弟学妹们一点启蒙。
前期准备
成绩:毫无疑问,好的成绩是通往学校的敲门砖。要想在大三结束后得到保研资格,须要年级排名靠前的成绩;想要在申请学校时不被拒绝,须要好的成绩;想要去到理想的学校,更须要一个好的成绩。并且,成绩排名越前越好,由于若是想申请像清华北大这样的学校,不是前1%是不可能的。
准备时间:固然是越早准备越好,我的推荐是最好从大三上学期结束后的寒假开始,就能够开始关注各大保研论坛,看看过去几年优秀的帖子,找好本身的定位,明确本身的目标以及各个阶段的复习内容以及计划。同时,这个阶段能够开始机试题目的练习。(做者当时没有意识到保研之路的艰辛以及竞争,准备得太晚——四月份才正式开始,所以,致使参加夏令营时准备不充分而遭遇的各类滑铁卢惨败经历)
简历:简历就像是一我的的门面,打造一份精确而且出彩的简历的重要性不言而喻。简历最好突出学习成绩,同时获奖经历,科研,项目经历这几个方面须要浓墨重彩。但要注意一个大忌就是不要一味为了彰显本身而过分的夸大,吹捧,将本身不够熟悉的方面写在简历上面,这样你在面试的时候将会被怼的很惨,所以简历上面的每字每句都须要慎重。
另外,简历的书写能够采起迭代的方式,每一版本能够在前一版本的基础上不断地修改,精细,提炼。
算法机试:正如网上流传“得机试者得天下”,在夏令营各大学校中,如清华北大,中科院计算所,南大等都会有相应的上机测试,经过这种方式直白的考察一我的的代码能力。所以,在前期的准备中,针对机试的准备是很是重要的,并且必须开始得早,由于上机写代码的能力不是简单的一两天就可以提升的。
在我四五月准备机试的过程当中,因为白天在SAP成都研究院实习上班,天天只有晚上的时候刷题,时间,效率都很是低下,度过了比较煎熬的一段时间。也正是因为机试方面的准备不充分,使得我参加的夏令营都全军覆没。对于机试,建议必定要有充足的时间准备,而且要有规律,连续性。
部分刷题网站:poj(北大),leetcode,pat(浙大),牛客网,VJ等等,刷题网站不少,选择适合本身的就行。
计算机基础:在保研面试环节中,除了针对项目经历对学生的工程,科研能力的提问外,为了考察学生的专业基础以及思惟方式,老师都会对相应的计算机相关的课程基础进行提问。
根据个人面试经历,被提问的频率大体按照下面的顺序排列,固然每一个学校不必定彻底相同:
算法与数据结构>高数>计算机操做系统>数据库>计算机网络>计算机组成原理>编译原理
若是时间充足,复习书本固然是最全面,最稳固的方式了;若是时间不够充裕,也不必将大量的时间都投于此,则能够重点复习常考,核心的知识,网上一般会有各门课的知识点总结,进行理解记忆即好(学会利用谷歌度娘~)
申请材料:申请学校夏令营或预推免(具备得到保研资格后参加学校的推免面试的意思)时通常都会要求提交不少的材料,如申请表,我的陈述,研究计划,排名证实,成绩单,专家推荐信等等,这些材料最好提早准备,否则可能后面盖章什么的让您手忙脚乱。
夏令营
大多数夏令营通常集中在7月份,6月开始出相关的通知,但也有比较早的,像清华叉院,南大的lamda实验室和上海交大的直博都是在6月,所以你们必定要尽早关注各个学校官网,或是各类论坛等消息通知,若是由于错过期间而没有去到想去的学校就得不偿失了。
我当时抱着多尝试的心态,因此报的比较多(9个),但因为今年保研竞争异常的激烈,因此最后入营的只有计算所和南大。
7月15日~20日 计算所
计算所的夏令营比较长,有五天,前两天主要是各个实验室的介绍以及相关的论坛讲座,主要让你们对各个实验室有个更清晰的认识便于选择一个实验室参加考核。后三天便是各个实验室开展的笔记,机试,面试工做,各个实验室的形式不同。
我当时选择的实验室有机试和面试,结果是二者综合起来的成绩。机试是头天下午,但因为机试题目比较难,准备不充分再加上又是第一次等各类因素,机试结束后整我的跌到谷底,对次日的面试根本不抱什么但愿。因为到面试还有一段时间,而后就去其余的实验室看看还有没有机会参加,所以也参加了一些机试笔试,一样作的很不理想(没错,就是太菜了~)。次日面试,因为面试人多时间比较紧,因此面试时间不是很长,感受还将就,但机试太差最后仍是被刷了!
如下罗列一些遇到的问题。
机试:
一、真假式输出 (栈)
二、背包问题,而后输出哪些背包?
三、拓扑排序(孩子糖果贪心)
笔试:
一、排列组合?
二、快速排序的实现?
三、最长递增子序列?
四、英文翻译?(甚至有诗歌)
五、写一下BP模型的推导过程?
面试:
一、数学建模主要负责什么?能讲一讲怎么实现的,题目要求是什么?
二、C语言中的static有什么做用?
三、Linux如何实现相关的原语操做,好比copy,如何进行具体实现的(系统调用)
四、栈能够用什么进行实现?
五、说一下dijkstra算法?如何进行优化?
六、你最喜欢的一门课是什么?为何让你印象深入?
七、你的编程能力怎么样?以为本身的机试如何?是怎么进行刷题的?
7月24日到26日 南京大学
在去南大的整个过程当中,心情比较低落,对于机试也有必定的恐惧心理。南大一共两天,宿舍条件真的极好(四星级酒店),头一天也是参加实验室的宣讲,介绍,与老师交流。
由于在此以前我已经提早联系过老师了,因此就基本留在宿舍中准备机试(据说南大的机试是很是难的,整我的对机试都是畏惧的)。次日上午先是面试,主要问一些项目经历以及相关的计算机基础,感受还不错,心想着下午机试正常应该没什么问题….然而,事实是残酷的,题目确实比较难,在加上现场一些情况连连,机试,又败了。
机试:
一、最大子矩阵(dp)
二、寻找n中位进制中1不相邻的个数(斐波拉切数列的变形)
三、最大递增子序列的变形(须要进行转换成这个原型)
四、Dfs搜索
五、各类条件限制杂合
面试:
一、操做系统的死锁是什么?哲学家进餐有哪些实现方式?
二、存储过程以及触发器?为何要使用存储过程—>预编译、提升代码的屡次利用
三、说一下快速排序?如何寻找第k个数?
四、用英语介绍一个项目?
五、数据库的ACID特性,事务回滚,如何解决数据的不一致?信号量,共享资源保护。
就这样,我全部的夏令营就这样以失败了结,整我的笼罩在失学的边缘。在悲伤之余则是将全部的但愿寄存在预推免,所以,整个暑假,都在学校全力备战着……
预推免
到了九月,个人战斗再一次打响了。可能因为前一个月准备得比较充分,因此面试表现还不错,顺利拿到了中科院的offer。
最后一战浙江大学,因为浙大只有直博夏令营,而硕士的招生是在预推免。浙大的第一关是英语,其形式是抽取红白纸,当时运气贼差抽到的内容彻底看不懂没听过,因此英语关表现得很差,接着开始问项目,基础知识等的,整体来讲问个人比较难,比较深,不少都须要彻底的掌握才能答出来,因此不少点都没能答出来。所以结束后整我的心情沮丧,觉得就这样与心仪学校擦肩而过。
当最后公布结果时,看到单子上面有我时,整我的都是热泪盈眶的,并且排名还比较靠前,后来仔细想了想为何,或许问的难,问的深并非坏事,老师只是想探查你了解的深度,只要在这个过程当中你很好的表达出本身的一些思惟方式和看法,大方地向面试官展示出你的实力,足矣!
机试:
一、链表的移位
二、快速排序算法的相关实现
面试:
一、斐波拉切数列的几种实现方式,而且比较复杂度
二、你对操做系统这门课的理解
三、cache的几种映射方式
四、讲一下极大似然算法
五、矩阵的秩?线性相关,线性无关?
六、讲一下最短路径的优化问题?
七、讲一下ARIMA算法(数学建模中用到)
后记
机会是留给有准备的人的,只要明确目标,一路向前,作好准备,机会和幸运终将走到你的身边~
要获取更多Jerry的原创文章,请关注公众号"汪子熙":