如何通过自学找到一份开发的工作?

转载 2018年01月10日 00:00:00

点击上方“程序人生”,选择“置顶公众号”

第一时间关注程序猿(媛)身边的故事


640?wx_fmt=jpeg&wxfrom=5&wx_lazy=1

注:本文转自知乎 origin 的回答,发布已获原作者授权。

https://www.zhihu.com/question/26421707/answer/53879709

01

学习过程

  1. 比较仔细的学习了《c++primer》,并对每个习题都自己写代码实现了一遍,包括稍微复杂一点的例子。

  2. 认真读完了《effective c++》,《effective stl》。

  3. 比较仔细的学完了《数据结构与算法分析》,并把其中的每种数据结构和算法都用c++实现了一遍。包括各种线性表,树(二叉树、AVL树、RB树的各种操作),图(BFS、DFS、prim、kruskal、djkstra、floyd、拓扑排序、关键路径等)查找算法,排序算法。

  4. 2-3个月认真学完《csapp》并做完书上的课后习题(由于时间的关系,没有在做家庭作业),顺带学习了一些gcc的嵌入汇编的用法。

  5. 读完了《深度探索C++对象模型》,对象C++底层实现机制有了一定的了解。

  6. 读完了《TCP IP详解卷一》

  7. 读了《APUE》的大部分内容以及《UNP卷一》有关TCP/UDP的部分,略过了SCTP的部分。

  8. 研究学习陈硕的muduo网络库源码,受益良多,在期间发现过其中的一两个小问题,提了几个pull request,研究完了muduo源码后又看了其相关的书《Linux多线程服务端编程 》

  9. 学习了云风的skynet网络库的小部分源码,主要为了了解actor模式和reactor的异同。

  10. 学习了google test框架的部分源码,弄懂了内部的的运行原理。

  11. 刷《剑指offer》的所有习题。

  12. 刷leetcode,代码在liyuan989/leetcode · GitHub,由于时间的关系大约刷了130道就开始找工作了。


0?wx_fmt=jpeg



02

关于练手项目

写了简易STL,C++协程库,以及一些http server,rpc之类的。


0?wx_fmt=jpeg



03

关于找工作

由于基本都是同学朋友内推,不存在简历被HR筛掉了。

其实自己都惊讶在找工作的时候有些异常顺利,因为面试官问的问题很少有答不上来的。绝大多数问题个人感觉不难,大多都是问的一些比较基础、底层的东西,比如互斥锁底层是怎么实现的?如何用C语言实现C++的异常,说说基本思路这样的问题。然后就是根据简历上写的东西来问。

另外一个要说的就是纸上手写算法题了,手写代码和机器上写代码的感觉不一样,我个人是没事自己在纸上写写一些基本的算法来熟悉,比如快排、堆排序之类的。

然后面试要问的算法题一般都不难,多数都是翻转链表,判断链表是否有环,回文数,找出链表倒数第k个数这样的题目。

很少遇到问二叉树的问题,没有遇到过问图的相关问题。唯一碰到一个动态规划的问题,就是最典型的最长公共子序列问题,难点的就是百度第一面最后问了一个leetcode上hard难度的原题,总的来说刷一些题还是很有必要的。


0?wx_fmt=jpeg



04

驱动力是什么

对于我来说驱动力就是兴趣和坚持吧,再一个就是有一种「做一件事就要把它做好的信念」。

讲一下我个人的两个经历。

在我中学的时候对篮球很有兴趣,但是刚开始的时候运球都运不稳,更别说上篮、突破、三威胁之类的高级动作了。然后我就在网上找到了张卫平老师的篮球教学系列视频,学基本的运球动作,投篮动作以及基本步法,在家里没事都会练练步法。每天晚上傍晚看不太清的时候都去练投篮找投篮感觉,然后看NBA学一两个实用的晃人、假动作技巧,再慢慢练习。最终在高中的时候进了当时的校篮球队,拿了当时市高中比赛的冠军。

另一个就是关于WOW了。高中毕业的时候被一帮从地球年代就开始玩的同学拉去玩WOW了,由于之前没有玩过类似WOW的网游,什么都不懂,完完全全的一个小白,一下副本就被队友、同学骂。然后呢,我就去NGA看各种攻略贴、精华帖、视频。仔细研究每一个技能的描述,冷却时间。慢慢的,下各种副本团队时候DPS都超过了我的同学,再到后来加入了服务器FD团队,拿过几个服务器首杀,单个BOSS的DPS排行也进过WOL全球前10。PVP方面也是的,开始在奥格门口是个人都能虐我,然后我每天观摩那些高手怎么放技能,怎么衔接,然后每天泡在奥格门口决斗练习,看NGA刀锋山的各种精华帖,看各种PVP视频,慢慢的在奥格门口几乎没有对手了,成为了所谓的门神。后来觉得决斗没意思,就开始玩竞技场,也是这样的一个学习过程,最后也打到了角斗士龙。


0?wx_fmt=jpeg


最后,我很喜欢刘未鹏先生说过的一句话,送给大家:

兴趣遍地都是,专注和持之以恒才是真正稀缺的。


如果你在自学编程上有可以分享的个人经验


欢迎投稿给我们

征稿要求:

①稿件字数以800~1500字左右为宜,多于2000字的文章在手机上阅读起来比较麻烦,少于800字的文章看起来不过瘾;

②你有自己拍的适合做文章插图的照片也可一并附上~如果不方便,程序和小七也会帮你配图~

0?wx_fmt=gif

加程序人生编辑们的微信,备注#投稿#:


程序 微信ID:druidlost  

小七 微信ID:duoshangshuang  


我们在这里期待你的故事!


另外

0?wx_fmt=png


THE END -


点击图片get往期内容

0?wx_fmt=png

0?wx_fmt=png

0?wx_fmt=png

0?wx_fmt=gif

程序员,我们应该如何去学习

IT技术的发展日新月异,新技术层出不穷,具有良好的学习能力,能及时获取新知识、随时补充和丰富自己,已成为程序员职业发展的核心竞争力。本文中,作者结合多年的学习经验总结出了提高程序员学习能力的三个要点。...
  • jdsjlzx
  • jdsjlzx
  • 2014年08月22日 15:24
  • 4838

如何从业余爱好者自学进阶成专业开发者

关注一下又不会怀孕!作者|Ken Rogers译者|王练, Tocy, 边城编辑|moomoo几年前,我交替干着园艺工作和餐饮的工作。那时候我刚离开大学,还不知道我这一生到底该干什么。我有很多想法,但...
  • MIcF435p6D221sSdLd2
  • MIcF435p6D221sSdLd2
  • 2018年01月07日 00:00
  • 3729

机器学习系列(16)_怎样找到一份深度学习的工作(附学习材料,资源与建议)

如果你是一个软件工程师(或者你现在正在学习这一方面),你肯定有机会听说过深度学习(有时候深度学习缩写为”DL”)。它现在是一个热门、且快速发展的研究领域,解决工业界的一系列问题,从图像识别、手写识别到...
  • yaoqiang2011
  • yaoqiang2011
  • 2016年10月10日 14:43
  • 28494

自学编程的人,都是怎么找到自己的第一份工作的?

每年毕业这么多大学生,很多被培训机构弄去培训了,但是更多的还是选择在大学期间,自力更生去自学,自学的人很多都觉得没有方向太难了,自学怎么坚持下去,自学完了怎么去找到自己的第一份工作。   带着这么...
  • xiongshengwu
  • xiongshengwu
  • 2016年12月16日 18:45
  • 457

资源 | 普通程序员如何自学机器学习?这里有一份指南~

机器学习工程师自学指南本文将会介绍机器学习的方方面面,从简单的线性回归到最新的神经网络,你不仅仅能学会如何使用它们,并且还能从零进行构建。以下内容以计算机视觉为导向,这是学习一般知识的最快方法,并且你...
  • dQCFKyQDXYm3F8rB0
  • dQCFKyQDXYm3F8rB0
  • 2018年02月15日 19:32
  • 1245

如何在三个月内获得三年的工作经验

只要方法正确,3个月能做的事很多,并且,最重要的是:不仅要学,而且要习,那样才能真正有用。很多职场新人都谈到了工作经验的问题,似乎招聘公司不给你机会,你就没办法获得必要的工作经验,其实并不一定。很多资...
  • u011116672
  • u011116672
  • 2016年07月11日 19:26
  • 2594

java初级程序员如何快速找到一份适合自己工作?

在下小程序员,刚步入java行业,学的是后台开发这一块,第一份工作应该如何去找?...
  • zhuofengCSDN
  • zhuofengCSDN
  • 2018年03月02日 14:55
  • 274

关于如何自学Java到找到工作的一点思考

直接切入主题: 目前Java培训机构鱼龙混杂,四个半月的培训学费动辄几万,据我了解,这四个月的培训仅仅是项目实战。完全是南辕北辙。不用考虑IT行业,拿我们小时候举例,正确的学习方法和态度是何等重要。...
  • linfujian1999
  • linfujian1999
  • 2018年03月14日 09:12
  • 83

learn more study less:如何高效学习

博主狂言 几句有用的话 两个序 前言 如何使用本书 整体性学习策略-learn more study less 什么是整体性学习 结构 模型 熟悉的结构成熟结构 高速公路 整体性学习的顺序 获取阶段 ...
  • a10747029
  • a10747029
  • 2017年10月20日 17:26
  • 132

Netty学习

本指南对Netty 进行了介绍并指出其意义所在。 问题 现在,我们使用适合一般用途的应用或组件来和彼此通信。例如,我们常常使用一个HTTP客户端从远程服务器获取信息或者通过web services进行...
  • hnulwt
  • hnulwt
  • 2015年06月05日 14:24
  • 1917
收藏助手
不良信息举报
您举报文章:如何通过自学找到一份开发的工作?
举报原因:
原因补充:

(最多只允许输入30个字)