第一次这么详细地写我的经历,算是对本身大学几年学习编程的总结吧。我不是什么计算机大佬,也没有所谓的计算机天赋,这一路走来磕磕绊绊的,踩过许多坑,走了不少弯路,最后也是靠着一些运气,以一个应届生的身份加入到了完美世界(北京)。如今公司安排的员工公寓中,等待HR下发最后的通知,不出意外的话,周一就能正式开始实习了。趁如今,写一下我的感想吧,但愿能对一些同窗有启发!前端
这个总结关于技术的不多,更多的是一些我的的感悟。。有同窗关心的面试问题,我在这里统一说一下:我没有笔试,直接两轮面试和HR面试。。第一轮是C++基础知识,牛客网上不少dalao都有总结,并且比问个人问题都全面,可能有一个智力题,你们没事多看看就行,反正我没想出面试官心仪的答案。第二轮主要是谈项目,穿插了几个算法题,由于是电话面试,无法展现代码,加上我的的表达能力不是特别强,所以说了很久。。。。最后一轮是HR会谈,就是说一下我的经历,为何来北京啊,将来的人生规划之类的。程序员
感谢牛客网给的各类经验,后续会继续积极回报社区。。。面试
//////////////////////////////////////////////我是分割线////////////////////////////////////////////////////算法
增长了几个新的总结,言辞激烈之处还望包涵,个人见解可能也是错的,大家就有选择地吸取。
PS:实习审批又要延后了,在北京多玩几天吧😂反正住员工公寓,完美世界这一点真心不错啊。。编程
//////////////////////////////////////////////我是分割线////////////////////////////////////////////////////
增长了一个新的总结
PS:Offer终于批完了,下周一入职,看来这一周又要玩几天了,顺便刷点题,写点代码。。。。。小程序
个人本科就读于一所普通的院校(非98五、211),如今是大四,明年正式毕业,专业是计算机科学与技术,感谢个人学校给我提供的一些环境,让我能够有今天一点点小成绩;也十分感谢那些帮助过个人老师和同窗们,很幸运能够遇到大家。vim
故事要从高考前开始提及。高考以前,像不少北方的男孩子同样,我是想着去报考军校的或者当一个飞行员的,很不幸,因为某些因素,这两个愿望都落空了。当时也不知道本身想要干什么,因此选择了飞行器有关的专业(可能仍是很喜欢飞机之类的吧)。高考结束后,根据本身的实际成绩报考专业,第一志愿也很幸运地被如今地母校的飞行器专业录取,开始了个人大学的第一个阶段,飞行器与机械大类专业。后端
大一上学期,都是高数、画法几何等的一些基础课程。我当时没有一些确切的目标,可是大致上想的时能进一些研究所之类的,因此这些课程学的很是认真,虽然我心里里不是很喜欢画各类工图。固然,有付出确定是有回报的,个人成绩在专业里也很是靠前,再加上是学校的王牌专业之一,不由有些飘飘然的感受。如今再回想起来,当时的我挺幼稚的。在该学期,也经历了不少的课外活动,好比情景剧、辩论赛和各类的知识竞赛等,虽然有一些小的成绩,但老是感受少了些什么。数据结构
真正触动个人,是学校计算机博弈协会的宣讲。我原本对计算机程序设计毫无兴趣,甚至报志愿前,专门避开了计算机类的专业。原本我是不打算去的,也多亏了个人助导,他那时候是大三,并且他邻班的一个同窗在这方面取得了很好的成绩,因此助导一直催促着我去,在抱着试试看的心态下,我和班里的另外一个关系很好的同窗就去听了一下宣讲会。上面提到的助导,如今某航发集团公司工做,并且算是他比较想去的公司吧;助导的邻班同窗,也是我很佩服的一个学长,如今是北京某211高校的计算机专业硕士,也很是的优秀;另外一个关系很好的同窗,正在准备今年的考研,方向也是飞行器类的,衷心祝愿同窗能够考研成功!架构
宣讲会上,不少内容我都忘记了,可是有两点对我触动比较大:老师说协会的同窗都是很优秀的;计算机之后的收入比较高,不少同窗是10K起步的(税前、不扣除五险一金、正式转正入职)。当时听了很心动,尤为是收入上,由于以前老是对月薪年薪等缺少具体的概念,不是到多少是合适的。抱着试试看的态度,我加入了机器博弈协会。上面提到老师的说法,如今来看部分是正确的,只有那些少数真正能投入精力进行学习的同窗,才是比较优秀的;计算机若是学的比较好,就单纯看月薪或者年薪的话,真是很高的,至少若是我转正,是很轻松超过老师说的那些的(具体数额不方便透露),甚至说10K根本都不考虑去了。
寒假里自学C语言,开学后,在某个学长的指导下,我完成了第一个五子棋人人对弈的小程序,只是一个控制台的,能判断胜负等。我心情最激动时候,是写出下面这段很经典的入门代码:
#include <stdio.h> int main() { printf("hello world !"); return 0; }
当时,我对计算程序设计的错误认识就没有了,取而代之的是一种能够本身掌控计算机的知足感,这也极大地激发了我在这方面的学习兴趣。
大一下学期到大二下学期转专业以前,是我技术一个进步期,也是各类采坑和走弯路的时期。大一下学期,为了准备机器博弈校赛的选拔,我开始本身去研究那些博弈程序。很惋惜,当时没有遇到正确的引路人,全都是靠着本身摸索。那时候,我一直觉得C语言(或者说是编程)就那么几个模块,好比顺序、选择、分支和循环等,甚至以为指针没什么用处。我不知道有算法和数据结构、不知道有ACM等的一些比赛、不知道有Github等的一些网站、不知道什么是面向对象程序设计、不知道软件工程、不知道前端后端等,总之就是各类不知道,一直被局限在本身的思惟里,如今想一想,真是好笑至极。
后来被选去参加国赛,为了这个比赛,我“专门”地去学习C++,当时地想法也很幼稚:C++就是比C语言多了一个class,把printf、scanf等关键字换成了cout、cin等,反正也是各类无知,再加上咱们组里都不是计算机专业出身的,因此就十分的尴尬了。又由于当时的信息不对称,不知道该怎么学、向谁请教等,致使我连DFS这种简单的算法,都是到比赛前一个月才忽然有了灵感(大佬们就别喷我了,真的很菜。。)。不过还好,以前学长有写过搜索框架,我和当时的学长英语能力都还能够,而后照着论文去搞了一下评估函数,最后成绩还行,不过仍是有些心虚。
大二上学期,认识了几个计算机同窗,知道了有数据结构和算法这些东西。当时借了一本C++的数据结构,我就像发现了武林秘籍同样,知道了原来本身还有这么多不会的,瞬间感受被打脸了。我把这本C++的数据结构的全部代码和练习题,本身上机实践了至少一遍,理解了C++语言的一些基础、基本的面向对象的思想,更重要的是有了算法和数据结构的一些基本思想,基本上能读懂一些大佬们写的技术博客了,那是我感受最充实的一个阶段之一。
后来,为了能更好地学习有关计算机地技术,我在大二下学期申请转入计算机专业。当时不少同窗和我专业的负责老师,认为我这人不正常,非要从一个王牌专业转入一个非王牌的专业。如今来看,我我的感受这个决定是很对的,至少从收入看是这样的。可能一年后,不少以前专业那些直接就业的同窗的月收入(都是税前、不扣除各类金),能有个人1/3就算比较高的了,并且这是不算项目奖金,年终奖之类的。别喷我,我没装×,我我的是只想赚钱,你有你的价值观,我有个人判别标准,并且这是由行业性质和社会趋势决定的,并且我暂时不是什么大佬,牛×的人远比我赚的多。。。
刚转来计科,就被数电和模电教作人了,,我曾经一度怀疑我学的不是计算机。。。数据结构这课,就去听过两次,由于以前很认真的自学了,期末成绩和课设成绩都很高。。。就这样,个人计算机专业之旅很是奇葩,,软件方向基本没话多少心思,最多考前突击一下,就能搞个还能够的成绩,,硬件和电路方面多亏了有同窗的帮忙,才能勉强度日。。。谢谢那些帮助过个人大佬们。。。。
在计算机专业里,还发生了不少事情,我就不赘述了,仅仅挑出一些对我职业生涯影响很是大的几件事情吧。
第一个是接触到了ACM校队的同窗,跟着他们一块儿刷题、搞算法、包括大二暑假一直留校刷题等。虽然我没在这方面取得一些突出的成绩,可是这些基本的算法思想却深深印到个人脑海里了(算法dalao就忽略我这种小菜鸡啊)。
第二个是一直坚持写代码。其实即便是转入了计算机学院,我仍是很迷茫的。我不知道本身到底应该干吗。在这期间,我尝试过各类技术,从前端到后端、从PC端到移动端、从AI到区块链等。固然,这些具体的编程语言我都忘得差很少了,可是一些基础的思想仍是刻录在了头脑中。
第三个是一直保持着一个还算能够的学习劲头吧。虽然我没能像那些dalao们同样,能在各类国际类大赛上一展身手(有部分缘由是我找不到方向),可是我心里了仍是很怕本身落后的,即便没找到具体的突破点,可是我任然是一个想要加入一个优秀的团队并不断学习的渴望,因此“不断学习”这根弦一直在紧绷着。我认为,不过是那个行业,都得有不断学习的观念,都要树立终身学习的意识,靠一个技能吃老本的时代已通过去了。
不知不觉到了今年上半年,由于我想要加入一个优秀的团队、想要学习更多的东西,可是却一时想不出有更好的方式,因此选择了考研。不过,考研期间,也就是大三下学期,我仍是有些心有不甘,老是以为大学期间少了些什么。这学期,有我最喜欢的软件工程课,这门课不只仅是老师讲解理论,更重要的是能够去实践,包括团队项目等,并且咱们是ZX老师组织的一个全国性的软工课程,还能够参考其余院校同窗的实践状况,我我的比较推荐这种方式;也感谢个人软工老师ZYF老师和助教ZR老师,在两位老师身上学到不少实际开发的流程经验。并且这期间,我还接触了一下区块链等的一些东西。虽然是在准备考研,可是却总想进入业界看一下,这也是后期放弃考研而秋招的一个伏笔。
终于仍是厌烦了每天刷题的应试教育,加上家里的一些缘由,有2-3个月处理的时间,我最终仍是决定来业界。此时已是9月份末期了,不少秋招都结束了。原本是计划着一直学习到明年春招呢,如今来看,两个月前的想法仍是挺幼稚的。10月末的一个周三下午,我投出了第一份简历,这种行动一致持续到周末。原本觉得要0offer了,没想到第二周来了好多的笔试和面试的机会。从投出简历到收到第一个电话期间,个人心里仍是很是波动的,情绪也是很不稳定。不过好在后来一份份的邀请冲淡了个人不良情绪。
我有收到小米、三七互娱、多益科技等一些大厂的,也有一些我我的认为比较有前景的创业公司的。不过多益科技的笔试谜通常的挂了(我我的感受作的最好的一个😂),小米的岗位不是十分想去的,三七互娱一直没有回复,直到忽然收到了完美世界的面试邀请。总共两轮面试,原本觉得挂掉了,结果最后经过了,仍是很是高兴的。以后三七又给了面试机会,不过既然完美世界要给offer了,那么我也不去三七互娱了,我的倾向于北京。
以后,就是如今在完美的员工公寓里等待最后的实习计划了。
感谢我遇到全部的HR和面试官,无论是大厂仍是小厂,也无论是大公司仍是创业公司,这些HR和面试官们的有很高的职业素质,我从他们身上学会了不少东西,但愿这些公司发展顺利,这些人事业有成!!
如下是我我的对于怎样学习的一些总结,这结合了个人一些经历,尤为是各类坑。但愿能够对各位有所启发吧。可能这更适合新手。
下面不是按照重要性来的,,别误会了。。。。
编程中的“完美主义”是很是致命的。举个简单的例子,咱们要学习某个技术,并把它应用到实际开发中。若是是之前的我,那么我可能会把与该技术有关的书都借来,而后研读每一个细节,直到全部的点都弄明白,而后再动手尝试着去开发。其实这就是一种所谓的“完美主义”,绝大多数原由于咱们以前的应试教育的阴影。正确的作法应该是尝试着去作,边学边作,这样才能够更加高效的学习,并且能够知足项目的进度。以前的方式,不只影响进度,并且会让咱们迷失在细节的汪洋大海中,失去兴趣。学中作、作中学。
以前,我在学习某个技术的时候,一直在想这个东西有没有用,学了能够干什么。老是在纠结这种问题,很难全身心的投入到学习中;并且,纠结的时间,就几乎能够入门某个技术了。更要命的是,咱们的知识体系不够,或者说是咱们不了解整个知识框架,才有这种幼稚的想法。其实多学习一些技术,在不少时候能够拓宽咱们的知识面,虽然不少东西会忘记,可是一些基本思路和基本方法都会有较深地印象,一些资深架构师、技术专家和项目负责人等,都有很广阔的知识体系。
首先,我要说明,词法语法很重要,这是程序能运行的基础,可是在刚开始学习的时候,不要过度的纠结于这些细节,要把主要的精力放在语言自己特性上,若是是新手,还要注意学习算法和数据结构。
举个简单的例子,C++自己的特性至关复杂(看看标准手册就知道了),号称最难的语言。若是咱们有了C语言的基础了,再学习C++的话,最好不要直接看那么复杂的手册。其实应该C++的基本特性入手(我不是C++高手,不当的地方还请包含):C++相比于C语言,最核心的是扩展了面向对象部分和泛型编程(包括STL)部分(先不考虑C++11以及之后的版本),所以咱们在学习的时候,先把这两个基本点弄清楚。或者说,这两个点的基本用法先弄明白,搞清楚怎么回过后,在一步步地深刻拓展下去;而不是天天都看标准手册,我估计那样正常人都会GG。。拓展的时候也是,每一个点都要边学边练的策略,由浅入深。我以前踩的坑是刚开始就像搞明白全部的东西,结果最后搞得身心疲惫,以致于很难学精,并且丢了兴趣。
一样的例子,若是由C++转Java,咱们须要了解Java语言的基本特性是什么。先不考虑JVM的状况下,主要的区别有两大点:面向对象的部分和自动垃圾回收的部分(包括指针引用之类的)。掌握了基本特性,在一步步地去解决,不只效率高,并且不会丢失兴趣。
我遇到过不少同窗,包括以前的我在内,老是容易钻牛角尖。好比说,未来是要作后台的,那么前端的东西一点都不碰;或者说,我认为Linux才是一个合格开发者必备的工具,用Windows显得很菜(可能通常是是服务端同窗这么想);又或者说,大佬们都用vim or Emacs,用IDE显得没有那么Geek等等。这样相似的问题有不少,我我的把它们归结为钻牛角尖。其实,如今来看,这种想法是很幼稚的,连基本的东西都搞不明白,就一味地追求所谓地“高手地配置”,没什么卵用;并且,只要能高效地解决问题,就不要管那些是不是“Geek”的东西,编程的本质是为了解决问题(需求)
如今,各类新技术层出不穷,使人眼花缭乱,别说是新手了,就是有必定编程经验同窗,也会纠结各类各样问题。可是,以我如今的观点来看,形成这种现象的一个很重要的缘由是,咱们没能搞明白本身的真正需求。技术老是学不完的,若是再像 应试教育那样,非要搞明白每一个知识点,那么确定完不成任务,正确的作法是先弄明白本身到底要干什么,而后再去搜集有关的资料等,最后肯定解决问题的大致步骤,而后根据步骤来有计划地、分部分地学习。不少时候,编程学习须要不求甚解,这是和应试教育最大区别,也是咱们最须要克服的障碍之一。
“程序员是最骄傲的一个群体”,这话不是没有道理的。甚至能够说至关一部分的程序员,都想要证实本身的牛×高明之处,老是有想要证实本身比别人聪明、比别人强,总要成为整个项目的最最最核心的人物,老是有强烈的我的英雄主义情结。我认可,曾经的我也是这样的,后来接触的人和事情多了之后,我也一直在反思本身的不足之处,我也一直在努力地克服本身的缺点。
《商业的本质》一书有一句很经典的话:“商业的本质是一个团体活动”。我我的十分赞同这句话,咱们在IT界,先排除那些纯粹公益性质的开源项目,咱们中的绝大多数人编程是为了作商业性质项目来获取收入的。那么,咱们从事的活动本质上也是一个商业活动,那么也就是团体活动了。而上述的行为,是很是“反团体”的,这种行为确定会对真个项目组形成极为恶劣的影响。
人都有有本身的个性,可是不能把这个做为一些坏毛病的借口,所谓“人不能够有傲气,但不可无傲骨”。咱们要学会欣赏并学习周围同窗(同事)有点和长处,多和他们交流,取长补短,真正地去发挥团队的力量。要记住一句话:别人老是有地方比本身聪明的。
这一点和别钻牛角尖相似,在这里单独拿出来,是为了再次强调。不少人遇到问题老是想本身去解决,老是认为参考别人的思路或者代码就显得本身很low,非要和本身较劲。其实才是这是一种很是low的想法,编程自己是一个思想活动,而思想最重要的仍是交流,思想交流的价值不言而喻。所以,若是有本身确实解决不了的问题,应该及时向搜索引擎或者懂的人请教,这没什么,重要的是解决问题和学习新的思路与方法。
编程和写做有不少相似的地方,都是一个将思惟反映在“纸面”上的活动,不过写做是一个比较“模糊”的映射,而编程须要一个精确的“映射”。成为一个优秀的做家,巨大的阅读量是一个先决条件;同时,只看不写也永远成不了做家。编程也是同理,要多看别人写的“文章”,同时也要本身不断练习,只有这样,才有机会成为dalao。
“吾日三省吾身”,总结本身的得失,思考和反思本身的优劣,并合理地调整自身,才能够取得长足地进步。做为IT人,博客多是一个最好的方式了,技术人要有本身的博客,至少是做为本身的笔记。
这和我本身踩的坑有关,我在这里不想指责谁,也不想埋怨有些事情,只能说当初选择“Leader”和“Team”的时候,确实是经验不足,不过这正好是一个很宝贵的经历,至少让我有了比其余同窗更多的阅历!“悟已往之不谏,知来者之可追”,这些都过去了,重要的如今和将来。在这里,我只想说一句:选对方向、作对事、跟对人。
这一点不用多说,对于准备从事IT行业的大学生来讲,更进一步说,对于想要成为将来某一个领域的精英来讲,熟练的英文都是必不可少的,不要仅仅把本身局限于所谓的四六级上。我更要对一些普通院校的同窗强调一下这一点,由于普通院校学生高考时的英文平均水平就相对来讲低一点,而后大学的学习氛围可能远不及那些重点院校的,所以好多同窗到大四甚至还没过四级,若是是IT类专业的同窗,我也只能表示很无语了。
大部分最新的资料或者文档等,都是英文的;全部的顶级期刊的论文,也都是英文的;还有其余不少等,都是英文的。别跟我说有翻译软件,首先,翻译软件的能力还远不能精确无误地处理处理全部的语句,这在不少场景下是致命的;其次,这只不过是你不肯意去学习英文的一个借口罢了。我见过一些同窗,老是爱拿本身英文底子很差做为借口,不去学习,真是好笑至极。你就是天天学习一点,四年的大学积累也足够你熟练阅读科技类文献了,咱们都不是英文母语,谁也不是天生就会的,都是靠后天本身学习的,遇到困难老是爱找这样或者那样的借口,这种人很难成功,作一个熟练的底层码农就能够了,还每天幻想本身能成为顶级架构师和资深技术专家,简直是痴人说梦,呵呵。。哀其不幸。。
“物以类聚,人以群分”,我很同意这句话。尤为是到了大学里面,咱们会遇到各类各样的人,会加入到不一样的圈子里面。我想给各位的意见是,不要被周围那些很差的环境给同化掉了 ,要时刻提醒本身,时刻记着本身的目标。那我本身经历过的一些事情来讲,在我还在飞行器专业的时候,每当背着书包去看书时,有时遇到一些很“奇怪”的声音,好比:“哟,×××又去学习去啊”,再加上那种东北特有的声调,你能够想象一下那场景,不过好在没有被那些每天混吃等死之类给同化;即便是来到计算机,也很惊讶地发现,好多科班学生的代码量总和都没有我一个学期写的多,好多人连基本的代码都写不了几行。。(上述的一些状况,可能很大程度上与学校有关,这些经历可能更贴近那些普通院校的同窗)。
对于这种状况,咱们不必跟那些人进行理论,最有力的反击是用收入来吊打他们,反正钱赚了是本身的。。。并且,不少时候,不要本身一我的前行,还须要一些志同道合的伙伴一块儿,你们能够互相激励,取长补短。
最后一点是最好不要和那些满身都是负能量的人常常接触,不然咱们也可能变得那样。记住,前途是光明的,可是发展的道路多是曲折的。咱们要作的是坚信光明的前途,正视道路的曲折并想办法克服!!!
重要的事情说三遍:情商很重要、情商很重要、情商很重要。没有人愿意每天和一个冰冷的“编码机器”打交道,即便这个“机器”很牛×。不要感受本身能力比别人强一点,就目中无人,到处体现本身的优越感。这在IT人身上很是常见。我认可,我曾经也犯过相似的错误,不过我如今更加清醒地认识到情商地重要性了。
前面提到过团队的重要性,一个好的团队是成功的基石。团队是否优秀,不只仅取决于团队成员的平均水平;团队成员的协同能力也很是重要。而协同力须要成员之间的互相配合,这和智商无关,取决于情商。
若是你和那些成功人士接触过,你会发现和他们交流是一种享受。这很大程度上,是由于他们不只仅知识渊博、阅历丰富,更是由于他们还有很是高的情商!情商的培养,不是一蹴而就的,须要在平时中逐渐养成,若是你也想成为一个成功人士,那么如今开始就要注重情商。
我犯过一个很是致命的错误:总想一次性解决一个问题,没有考虑对难题进行分解,也不去想着分阶段解决问题,问题过长的时候老是缺少耐心而放弃。我感受,可能好多同窗都有过相似的错误或者经历。我总结了一下我会犯这种错误的缘由:
缺少科学合理的指导与训练。这是最主要的一个缘由,咱们之后须要解决的都是工程应用问题,而以前接受的都是一个个离散的点的知识,若是没有科学的训练和指导,很难把问题分解成为咱们学过的知识。所以,我建议若是有机会,你们就要想办法加入一个项目组,感觉下实战的氛围。
心里的自负。我总想一次性解决问题,这样才能显得比较“牛×”。如今想一想,真是好笑。那些大型的项目,都是一点点分解成小的可解决的项目,而后分步解决,最终组合起来的。不多有一次性能解决的问题,所以要拜托不正常的心态,积极应对。
应试教育的后遗症。这也是比较有争议的一点,我感受我在这方面受到了部分的影响,你能够有本身的见解。
这里的阅读,不只仅是技术类的。固然,若是做为技术人,技术类的书籍确定是最多的。可是,在技术类以外的,还要普遍阅读其余类型的:政治、历史、经济、人文、军事、心理和职场类等,都要有所涉猎。我的认为,对IT人来讲,将来的竞争是以技术做为突破点,比拼综合实力的过程。
补充一点,那些毫无养分的书籍就不要看了,这里主要是指那些给屌丝们用于YY的书籍,毫无养分价值不说,还会让你沉迷于那种纯粹是痴想的境界,具体书籍我就不举例子了,主要是那些个 ruo zhi 的小说类的。。。。有这功夫,仍是想一想怎么赚钱吧,23333333333。想要放松式的阅读,就多看下那些名著之类的,比那些la ji xiao shuo不知强了多少倍。。
前边提到的那一个“有本身的判断力”是这个的子集,大学学的不只仅是知识,更重要的是思惟方式。知识咱们会忘记,可是养成的批判性思惟方式会是最宝贵的财富之一。这里,强烈推荐一本书《学会提问》,这部书能够做为批判性思惟方式的入门书籍,多读几遍!!!!!!!等你读完这本书以后,剩下的不用我说,你也知道怎么办了。
我是今年年初开始写博客的,博客里面有各类配置过程,学习的一些知识,各类坑之类的。博客是最好的笔记,若是你没有本身的博客,那么如今就开始写。
PS:博客园里的主要是个人软工做业。。。我实际的博客在CSDN,可是我不会告诉你个人地址的,23333333
其余的还有,时间缘由,后续不断补充。