开端学习
谭浩强的C言语程序设计(最根底的入门书)强烈主张将课后习题打一遍,因为刚入门的同学的逻辑水平和数学技能要远强于代码水平,很简单出现眼高手低的情况,练得少就会一下手就出bug
C++ primer plus中文版,这便是C++最畅销的书本了,主张细心阅览,以了解C++各部分与库的用法为主,有时刻有毅力的能够把感兴趣的部分手敲一遍(全敲就强人所难了)
程序员面试笔记C/C++、算法、数据结构 这是本红皮书,我觉得这本书在C++11新特性上边解说的比较清楚,比C++ primer plus要生动一些,里面会解说许多经典算法与面试题,能够参阅一下,最重要的是要了解概念
进阶学习
数据结构了解概念与功能,有必定代码功底的能够挑选把一切数据结构复现一遍,刚入门的同学也不要怕,刷题的进程中会了解的更加深刻。
去一些OJ网站,比方计蒜客、牛客网等等,这些能够在线提交,要好于许多校园的OJ,里面能够挑选难度,从根底的开端,也能够去一些为高中生比赛预备的网站例如:洛谷,我也不嫌丢人和一群高中生一同评论,究竟技不如人,就得虚心请教。当你能够应付根底标题后就能够看第三条了,因为许多网站都是为ACM和NOIP预备的,究竟我们学习不是为了比赛,而是为了进公司做项目。
在leetcode上边刷题,主张挑选easy难度,从第一题就开端刷,刷50道左右的标题来习惯,leetcode的特色不是难AC,而是每一道题都有最优的处理方法,就我目前来说,见过的easy标题绝大多数都能够在线性时刻下完成的。接下来就能够分类型刷题了,算法的主要几块必定要熟练,比方暴力、分治、DFS、BFS、动态规划、贪心,还有很数据结构相关的标题:链表、栈、堆、各种树还有图,leetcode的图论标题可能出的相对简单一些,假如觉得自己图论还薄弱的能够去acm的网站上再刷些标题。
当你在leetcode上边达到了中等标题能够思考一会或者调试一下能够解出来的话,那是就能够考虑笔试了。
面试预备
硬件预备我就不说了,许多博客说的很清楚了,我先说一下我的预备阅历,我一向觉得算法岗位是一个很有逼格的岗位,所以开端积极预备机器学习方面的常识,这大概在我大三上的时分开端预备,没错,便是立刻要投简历的时分才开端的,我一向以为算法便是数据结构,可是我错了,当我意识到的时分,时刻已经不多了,我去网上找了门课程,是小象学院的机器学习算法精讲(我不是做广告的),然后将典型的算法比方:LR,SVM,决策树、随机森林、adaboosting手推了一遍,那段时刻我真是连课都不上了,天天学算法,最终我投了华为的算法岗,果然功夫不负有心人,我被录取了,做的是机器学习的作业,并且得到了主管和导师的赞扬,仅仅我最终挑选持续进修,没有留在公司。时隔一年,正好今年华为的软件精英挑战赛用的华为云,我当时做的项目也是关于华为云的,尽管我知道我写的代码绝对不可能被使用,但仍是有那么一种自豪感。我现在还在做算法和软件的作业,并且我现在仍是酷爱它的,仍是很幸亏当年毅然决然的转码。
我面试了好几家公司:cvte、拼多多、京东、华为等等,我发现公司对学生的期待仍是可培养性,即使做的不是代码作业,只要阅历丰富都会加分的
留意:阅历不要乱编,问了答不出来就等死吧
计算机原理、网络技术、数据库这几部分我们仍是需要预备的,仅仅这些与言语和算法无关,我没有列举在上边
笔试必定要好好写,尽全力,因为笔试好,面试也会加分的,面试官看的到成绩
最终,主张我们将每天刷题变成习惯,能够让自己始终保持手热,做更难的标题也能够不断进步自己的逻辑水平--A8站源码交易平台