Gerow 发表于 2018-9-20 09:25:42

普通学校找工作总结,不进来看看?

如果有不妥的地方,不要喷我 >.< ,请指出,我一定改正
更新一下---------------------------------------分割线------------------------------------------------------------------2016.9.10
我发现大家比较感兴趣我是怎么在5个月内看了这么多书,并且还刷那么多题的。我说说我的方法,但是不一定适合你,如果觉得有可取之处可以看看。
在学校,不可能一天12小时都干自己的事情的,导师分配的活肯定得完成吧,那么算下来时间更少了,有时候偷偷的学。
我一开始在计划整个过程的时候也感觉不可能完成,特别是找实习很受打击,还消沉了好一阵子,幸亏我的一个好朋友,华工大神愿意搭理我,也让我坚持继续复习下去。
一开始以为对这些知识的学习曲线会是一条斜率接近于0的方式,那么我想,怎么都不可能看完这些所有的书并理解相关知识点,并且还要深入,事实上深入反倒帮了我,因为前面的基础比较好,后面的知识很容易串联起来,甚至可以根据前面的知识反推后面的结论,因此后面学起来会很轻松,并且很快。
所以问题其实在于刚开始的时候怎么坚持下来,可能我唯一的优点是自控力很强,自己计划的事情一定能做完。有难到简,从基础到复杂,后面看起来复杂的知识点不过是前面东西的堆积罢了,除非是一个新领域,比如突然跳到机器学习。想设定一个小目标,当然不是先赚一个亿,也不用拿蘑菇街的offer,把c++prime基础语法看明白就OK了,到这个时候你肯定会有很多疑问,疑问就是学习最好的方向,慢慢的,当你要去解决这些疑问,这是知识就是你真正掌握的了,因为你连问题都能解决,连原理都能弄明白,还有什么不会的呢。这里我说的是应付面试,不是真正精通c++啊。
对于写代码来说,不懂很自然的就是去看源代码了,所以linux源代码本身就是一本很好的参考书,由于内容过多,方向不容易搞明白,因此跟随一本不错的参考书是有助你加速理解其中的奥秘的。很有可能在看了源代码之后,还是不明白,我的建议是,大家肯定比我聪明,智商比我高一大截,自己多想想,理解是不会有问题。
如果是网络编程或者进程通信或者线程同步,问题就是你学习的最好方法,没有遇到问题,要么是你是在太聪明,一切问题对你来说都不是问题,要么就是你没明白。
更新一下---------------------------------------分割线------------------------------------------------------------------
先介绍一下自己的情况,不是每个人都能有一个很好的学校做背景,我想在这里像我这样的普通学校学生更多,本科一本,研究生没考上 985 ,然后。。还是。对了,学业成绩最后一名,什么奖学金是没有的,另外比赛就只有华为的一个比赛,还是抱的别人大腿。我还是电子专业的,有一点 c 语言功底,今年三月份开始想以后到底要走哪一条路,毅然决然开始学习 c++ 和后端架构。
然后说说我到今天为止,拿到的 offer ,百度笔试通过(应该没问题了),腾讯电话确认(变化应该几率不大吧), CVTE 中研院深度学习,携程后端架构(正式 offer ),华为云计算在资源池
跟大神来比,什么都算不上,但我希望能够帮到一些像我这样比较“渣”的朋友。
首先,你需要有一个努力的方向,想清楚自己到底要不要转到计算机,毕竟要自学的东西有点多,转到计算机之后想要从事哪一方面的工作,前端后端客户端还是算法,语言选择 cpp 还是 java 或其他的,想好了之后就开始坚定的学习,别人的嘲笑最好不要影响你。
从开始投简历到拿到 offer ,我认为对我来说是简历能不能过,目前简历过的我都拿到 offer 了,其他的简历全部没有通过,所以没有项目经历,没有实习,没有奖励比赛如何通过简历筛选是最难的一个问题,而简历关恰好又是第一关,很容易打击自己的信心,所以简历一定要好好写,我三月份开始找实习就没人理我。。。
我从三月份想以后从事后端工作,需要一些什么样的技能能够通过层层的面试,自己一定要清楚,从哪里找这些信息呢,其他网站上的招聘要求,别人写的面经等等,最后发现其实都差不多,面试从来就没问过很难的题
我也总结一下我所经历的面试,但不会详细的写每次面试都问了什么,因为那些都是变化的,而本质是不变的。
1、 c++
c++ 是我选择的一门语言,因为我还比较熟悉 c 语言,那时候认为两者没什么区别,以为将 struct 写成 class 就是面向对象了。哎
基本很重要的 c++ 书籍 《深入探索 c++ 对象模型》、《 effective c++ 》、《 more effective c++ 》、《 c++ 沉思录》、《 c++ 模板元编程》这几本书籍,最后一本可以只是了解一下,但是前面几本一定要看懂、理解。任何人问你,你都能举一反三,相互联系,比较严谨的逻辑讲给别人听。
那对于面试官问里面的相关知识时,多态是最多的,我一般按照这个方法来回答, c++ 是怎么设计的,为什么要这么设计,有什么样的好处,如何使用 c++ 达到类似的效果等等自己可以继续扩展,总之就是一定要非常的深入。
2、 linux
这应该是比较难的一部分了,包括
1 、常用命令, ls 这些就不算了,主要有 grep 、 awk 、 sed 、 ss 、 top 、 find 等等还有一些性能调优的命令
2 、操作系统知识,线程、进程,他俩的区别于相同点,何时使用它们,同步(通信)方式,这就又延伸到共享内存、信号、信号量、各种锁。同样的回答这些问题时,你要回答的不一样,比较深入才行。比如从原理,历史来源、论文、改进方式、源代码开始讲,一层层的讲出这些设计的本质,面试官会比较喜欢的。
3 、源代码
重点部分:文件系统、进程管理、进程切换、内存管理这几个部分,其中文件管理和内存管理尤为重要。包括 vfs 虚拟文件系统,一个完整的文件操作过程比如 read 、 write 等等,文件映射 mmap ,共享内存等等可能需要花一点时间理解这些东西。
3、 网络部分
网络不管你是想从事哪个方向,基本都是重中之重
我的学习方式:看书和看源代码,由于 tcpip 是开源的,可以仔细看看其中状态转换过程。
Tcp 最为人知的三次握手和 4 次挥手,你一定要能够讲得出为什么,每一次出现错误会怎么样,为什么要 3\4 次,少了行不行。
比如什么情况会有 flood 攻击, timewait 攻击等等
在 tcp 中如何实时监测断线情况,以及实现断线重连等等
另外还有很重要的拥塞控制、拥塞避免,慢开始算法、快重传快恢复, ttl 时间计算。
推荐一本很好的书《 linux 高性能服务器编程》、以及《 Linux
网络编程实战》也不错。
当然啦 unix 网络编程, tcp 三卷是不能少的。
4、 数据结构和算法
这个东西在面试和笔试时都比较有用,并且能够在白纸上手写,数据结构问的最多的并且会难一点的应该就是二叉树了,包括 bst 、红黑树,一般二叉树的各种遍历,非递归,红黑树的性质,插入删除操作, tree 树的简历,还有 hash 的冲突处理方式。
至于算法
就练习 leetcode 或者牛客的吧,至少把 easy 和 medium 刷好几遍,然后 hard 部分题目多刷几遍,因为 dfs 和动态规划很多好题目都在里面。
我面试过程中,写过这些代码,图的 dfs 、 bfs 、 dijkstra ,树的各种非递归遍历、很简单的动态规划,字数组系列。
5、 开源库阅读
我也没有读很多开源库,但至少 stl 要非常熟悉, boost 部分熟悉, linux 内核部分很熟悉, libevent 、 memcached
、 redis 还有 nginx 尽量熟悉。
6、 面试技巧,加分项
不管是现场面还是视频或者电话面,不卑不亢,自信很重要,将你知道的东西娓娓道来,逻辑性一定要强,毕竟写代码还是需要一点逻辑性。
7、 最后给大家来点鼓励
可能是因为我运气比较好,面试的所有东西都是基础,并没有问过于难为我的问题,因此你只要基础扎实一点,大部分面试都是没问题的。
最后再次强调一次,简历是第一关,如果过不了,后面的都不用谈了,所以一定要好好改简历,你想想我这种最后一名、无项目、无奖学金、无学校名气的学渣都能找到工作,你们肯定可以的。

转载自:https://www.nowcoder.com/discuss/9166
页: [1]
查看完整版本: 普通学校找工作总结,不进来看看?