目录

1.职业规划。

2.刷题。

3.看书。

《剑指offer》

《数据结构算法与应用:C++语言描述 》

《Effective C++》

《C与指针》

4.异步刷题。

5.未来。

C/C++

TCP/IP 和网络编程

Linux服务器开发

其它


这也是一个总结2018年7月的博文。

1.职业规划。

在各公司的招聘网站看岗位需求具备的条件。我确定了求职大方向。c++工程师和算法工程师(图像处理;视觉开发)。

可见这两个岗位的核心都是具备 精通C/C++ 的技能。

我决定先从c++开发开始学。

作为一个c++开发者,必须具备的技能如下。

我求助了本科学长狗哥关于刷题的方法。

开始刷题。

2.刷题。

我刚开始刷题是刷基础小题,没有经验。大概就是把所有面试会考的题库都包括,然后从零开始刷,边刷边做错题记录。后来我发现这种效率很低,没有专项训练,也没有系统地去学每个分支体系,顶多是应试罢了。

然后我放弃了题海战术。

开始看书。

3.看书。

《剑指offer》

第一本书是《剑指offer》,里面有66个题目。书的结构如下。

基础知识

  1. 编程语言
  2. 数据结构
  3. 算法

高质量代码

  1. 规范性
  2. 完整性
  3. 鲁棒性

解决问题的思路

  1. 画图
  2. 抽象问题具体化
  3. 复杂问题简单化

优化效率

  1. 时间效率
  2. 空间和时间效率平衡

其它能力

  1. 沟通和学习
  2. 知识迁移
  3. 抽象建模
  4. 发散思维

两个面试案例

开始每天下班回来看一个题目。因为很久没编程。所有最开始的几道题我做得非常艰难,阅读解决思路,然后复制答案,就修改了几处就在在线编程中运行测试。实际上还是无法自己写出这样的代码。然后我做到了第七题的时候,我就开始认认真真地分析思路,并在草稿纸上默写出自己的代码,画图分析数据结构。这种方法大大加深了我的印象。我开始自己在在线编程上写代码调试了,测试结果也accept了,当时是非常喜悦的。我开始每天这样,一天做一个题,就很满足了。

知道我看到了算法部分。第11题。已经开始有点看不懂了,因为C++基础并不牢固,我看答案的时候,对于&的含义都模糊不清。而书中并没有详细的说明。可能这些都是基本常识。这时我意识到我该回去好好补补算法基础了。


我求助了本科同学,武大cs专业。他现在已经拿到了offer。

他推荐了两本书,《算法导论》。《深入理解计算机系统》。

我买了 《数据结构算法与应用:C++语言描述》。《深入理解计算机系统》。

第二本真的太难了,我不打算看完,准备作为参考书,工具书。

开始看第一本。


《数据结构算法与应用:C++语言描述 》

这是一本讲算法的书。都是每天下班后晚上看的,所以花了几天才看完了第一章 (c++回顾)。

函数与参数

  1. 传值参数
  2. 模板函数
  3. 引用参数
  4. 常量引用参数
  5. 返回值
  6. 重载函数

异常

  1. 抛出异常
  2. 处理异常

动态存储空间分配

  1. 操作符new
  2. 一维数组
  3. 异常处理
  4. 操作符delete
  5. 二维数组

自有数据类型

  1. 类currency
  2. 类的封装
  3. 操作符重载
  4. 友元和保护性类成员
  5. 条件编译语句

异常类

递归函数

  1. 递归的数学函数(阶乘,斐波那契数列)
  2. 归纳证明法
  3. c++递归函数(阶乘,求和,排列)

标准模板库STL

测试与调试

主要讨论了C++的特性。很粗略。但是给我了一个非常不错的学习C++的框架视图。我认为我有必要更深入去研读C++的原理。尤其是标注成红色的内容。当我终于看懂递归方法的全排列的时候,豁然开朗,算法真的很有趣,数学也很美,尤其是完全理解了解决问题的思路后。当我看到STL时,我依然弄不清楚底层的算法,意识到光是STL就可以让我好好学习很久了。

这个时候我有点不想继续看这本书后面的知识了。因为我觉得我的C++基础知识真的很薄弱。然而我又不想从头开始看那本厚厚的primer,我这时候翻出来我很久之前买的一本《Effective C++》,我的计划是从框架体系入手,也就是从高级开发的角度入手,再去追求细节的完美。过分讲究细节会拖延我的进度。因为我还有很多东西要学。tcpIp网络编程,还有tmp,Linux之类的。这是条不归路哈哈。

开始看《Effective C++》。


《Effective C++》

这是一本超级酷的书。尤其是翻译者。翻译的太好了!

学一个语言的最终目的就是去学会去应用它,而这本书告诉你如何更优质地去使用这门语言。对于一个没有写过自己独立程序的人来说,这本书可以帮助我从一开始就养成好的编程习惯。

对于其中的C的细节,我都会在《C与指针》里面找到解释。

开始看《C与指针》。作为参考。


《C与指针》

这本书既基础又深刻,关键还是97的老书,C99版本之前的。所以有的细节我读的都很费力。

同时这也是这本书的优点,这本书真的太细了!我看了二维数组,讲解的非常细致,好好看,就会理解的很深刻。

但是弄懂细节需要大量的时间。

这是一个时间分配的问题。也许我看多了自然就知道怎么处理了。

4.异步刷题。

后来我无聊的时候,就开始刷C++专项训练的题。只不过现在的刷题不是为了刷题,而是无聊刷题,所以我叫它异步刷题。

比如出去胡吃海喝的时候,我就刷个五题。

拉屎的时候,也来个五题。

刷牙的时候,来个五题。

睡前,再来个五题。

有次做得太兴奋了,搞得失眠了,所以不建议睡前刷。睡就好好睡。

也有段时间,因为想搞懂题目,花了很多精力去查资料。导致进程卡死。但是刷题的目的是为了查漏补缺,不是学习。

5.未来。

C/C++

  1. 试图寻找些开源项目自己看。现在的水平不够。
  2. 读读STL源码。

TCP/IP 和网络编程

Linux服务器开发

其它

  1. 把简历做得更好。
  2. 还要花时间去做个PPT,告诉老板我在想什么,为什么不在公司实习了。

总之未来会很忙很忙。

我的offer之路(一)的更多相关文章

  1. 二本非科班,秋招,实习,面试,offer之路

    不知不觉已经工作一年多的,我是2019年7月毕业的,但是如果算上实习就工作差不多两年了的吧. 最近不是刚刚过了圣诞节吗?然后又准备到元旦了,迎来2021年!在微信公众号上看到小部分公众号在总结2020 ...

  2. 痛吻过YY寻找到真爱的三非渣本春招之路

    写下这篇文章可能就不是大家乐于见闻的面经了,更多是深入一些面试细节. 前言 我猜拿到了BAT等一线互联网公司Offer的小伙伴或者那些老鸟看到这条标题的时候会不屑一顾,认为YY这种级别的公司是属于二线 ...

  3. 面试杂谈之我的实习求职之路(7个offer)

    现在是5月11号,刚从北京到家,总算也可以歇歇了,最近一段时间真是忙于奔命的感觉,也确实体会到了找工作的艰辛,总而言之,求职之路,如人饮水,冷暖自知. 我想把这段时间找工作的体验和经历分享出来告诉大家 ...

  4. 求职之路(拿到百度、美团、趋势科技、华为offer)

    求职之路(拿到百度.美团.趋势科技.华为offer) 版权所有:无缰之马chhuach(CSDN和博客源),转载请注明出处.CSDN地址http://blog.csdn.net/chhuach2005 ...

  5. 秋招打怪升级之路:十面阿里,终获offer!

    本文转载自:https://gongfukangee.github.io/2019/09/06/Job/ 作者:G.Fukang 开源项目推荐: JavaGuide: Java学习+面试指南!Gith ...

  6. 程序人生|从网瘾少年到微软、BAT、字节offer收割机逆袭之路

    有情怀,有干货,微信搜索[三太子敖丙]关注这个不一样的程序员. 本文 GitHub https://github.com/JavaFamily 已收录,有一线大厂面试完整考点.资料以及我的系列文章. ...

  7. [转]9个offer,12家公司,35场面试,从微软到谷歌,应届计算机毕业生的2012求职之路

    1,简介 毕业答辩搞定,总算可以闲一段时间,把这段求职经历写出来,也作为之前三个半月的求职的回顾. 首先说说我拿到的offer情况: 微软,3面->终面,搞定 百度,3面->终面,口头of ...

  8. 【转】如何拿到半数面试公司Offer——我的Python求职之路

    原文地址 从八月底开始找工作,短短的一星期多一些,面试了9家公司,拿到5份Offer,可能是因为我所面试的公司都是些创业性的公司吧,不过还是感触良多,因为学习Python的时间还很短,没想到还算比较容 ...

  9. 如何拿到半数面试公司Offer——我的Python求职之路

    从八月底开始找工作,短短的一星期多一些,面试了9家公司,拿到5份Offer,可能是因为我所面试的公司都是些创业性的公司吧,不过还是感触良多,因为学习Python的时间还很短,没想到还算比较容易的找到了 ...

随机推荐

  1. Node.js的安装与使用-Windows系统

    首先到官网下载node.js http://nodejs.cn 下载完成后一直下一步Next即可安装完成,路径可以自己设置 然后配置环境变量,将node安装的目录配置到Path中 例如: cmd打开命 ...

  2. ReentrantLock锁 源码分析

    根据下面代码分析下ReentrantLock 获得锁和释放锁的过程 ReentrantLock lock = new ReentrantLock(); lock.lock();//获得锁 lock.u ...

  3. Luogu P4403 [BJWC2008]秦腾与教学评估【二分答案】By cellur925

    题目传送门 这道题:真·凉心出题人. 二分答案,个人感觉其实并不只适用于有明显的"最大值最小/最小值最大"条件的题目,其实也可以称它为一种"优化的暴力".这题就 ...

  4. java基础第九篇之final和内部类等

    final关键字:final:最终,终极 final:作用:修饰类,变量,方法.成员变量的访问 1.final修饰变量: final修饰局部变量: 把这个局部变量 变成一个厂里,这个厂里只能被赋值一次 ...

  5. LeetCode 刷题笔记 (树)

    1.  minimum-depth-of-binary-tree 题目描述 Given a binary tree, find its minimum depth.The minimum depth ...

  6. Continuous Integration

    https://dzone.com/articles/continuous-delivery-toolchain

  7. html select change事件触发

    做小组内使用的一个简单工具,其中要实现的一个小功能是当某个下拉菜单的选择值改变时触发另一表单元素的属性变化.自然的想到使用select表单元素的onchange事件. 下拉菜单部分的代码如下: < ...

  8. mysql in和exists性能比较和使用

    in 是把外表和内表作hash 连接,而exists是对外表作loop循环,每次loop循环再对内表进行查询.一直以来认为exists比in效率高的说法是不准确的. 如果查询的两个表大小相当,那么用i ...

  9. Java编码优化

    Java编码优化 1.尽可能使用局部变量 调用方法时传递的参数以及在调用中创建的临时变量都保存在栈中速度较快,其他变 量,如静态变量.实例变量等,都在堆中创建,速度较慢.另外,栈中创建的变量,随 着方 ...

  10. 多线程串口通信 MFC CSerialPort

    写在前面: 晚上应该继续完成未写完的代码,但Chrome上打开的标签实在太多了,约30个了,必须关掉一些,所以需要把自己看的整理一下然后关掉.本次主要写点MFC环境下多线程串口通信相关的东西,这包括线 ...