我的编程能力从什么时候开始突飞猛进
点击上方“大鱼机器人”,选择“置顶/星标公众号”
福利干货,第一时间送达!
本文源于知乎回答,文末点击阅读原文,即可查看原问题,以下为原文。
-正文-
在啃掉一本本计算机经典书籍和写下大量代码以后。
疫情原因回不去学校,作为一个马上毕业,即将入职腾讯的大四生,分享一下自己的学习历程吧。
本人在大学之前从未接触过编程,最开始的编程学习还是在高考完后,从书店买了本C Primer Plus,然后暑假开始啃,前前后后也就看了几十页。
大一上的时候,来到了华中师范大学,还没有转专业到计算机,一直在自学C语言和看一些计算机入门书籍(编码、计算机科学概论)。
当时也很迷茫,不知道以后道路如何,所以也学了一些杂七杂八的东西(前端 python啥的),所幸的是,当时坚持把C Primer Plus结结实实地精读了一遍,而且几乎练习题都做了,算是比较好的开端。
大一下,转专业到计算机了,开始自学数据结构,算法和C++,部分看完了 数据结构与算法分析,并且把书上的数据结构实现了一遍,记得当时五月份给自己的flag是看完C++ Primer,然后每天上课看,晚饭吃完后也跑去七号楼刷书,最后囫囵吞枣似的看完了大部分。
大一暑假,txr大佬给我说他面试通过了华科的联创团队Unique Studio,而且给我说他们团队都特别厉害,有些人在军训的时候就把C++ Primer给蹲着看完了,当时十分钦佩,幻想也能够进入贵团队。
于是打算在大二上的时候,去报名他们的秋招。所以,那个暑假在学校自学,呆了五十多天。最初,拿起一本APUE,看了一章后感觉看不懂又放下了。
然后,又拿起一本红色封面的算法第四版,这本书看完了,并且用C++把上面的算法都实现了一遍。另外,听知乎大佬说CSAPP是必看的神书,当时也懵懵懂懂地看了前面三章,做了lab。
为了学习 linux,还看了一本叫 linux 命令行大全的书。武汉的夏天很热,只能寂寞待在宿舍的我,打开了 LeetCode 的世界,写了一百多道题。
大二上,十月,忐忑迎来了联创的面试,前面两轮都过了,直到其特色的“熬夜测试”环节,因为实力不足+精力不足,测试败北,没有通过。
清晨七点,在回学校的公交车上思考自己不足,总结是知识体系仍然不够完全,而且深度也不够。后来这个学期有点“误入歧途”的意思,入了 Machine Learning 的坑,记得当时花了好几个月刷完西瓜书和吴恩达机器学习课程的讲义(真佩服当时的毅力,都是英文和公式推导),后来想了想,ML/DL这个东西有点玄学,于是毅然决定成为一名做工程的程序员。
总的来说,虽然这个学期的时间都投入到 ML 的学习中,没有学习工程方面的东西,只有用python写了一点好玩的爬虫,但是给了我以后坚定走工程方向的决心吧。
大二下,这个学期是打下计算机知识基础的关键时期。从知乎找了一系列书单,看完了CSAPP(做了lab,为了bomb lab还通宵了,强迫症想让自己把炸弹都拆了)、半本算法导论、effective C++、计算机网络系统方法(前三章)、部分TCP/IP详解等,做了一些项目,比如正则引擎(这个是参考了轮子哥的教程)等等,尝试写JSON库(未遂)。
其实,因为学校只是一个普通211,找到好工作的学长学姐先例很少,一直是没有信心自己能去大厂,直到当时了解到孟永康学长在春招收割了一系列offer后,才有了些许信心,相信自己如果能够像他那样努力,那么也能够找到好工作(感谢myk学长那时的鼓励和指导)。
所以,定下了一年把自己水平提升到能够在大三下春招的时候拿下大厂offer的目标。
大二暑假和大三上也一直为这个目标奋斗,补上了APUE、部分UNP、深度探索C++对象模型、STL源码剖析、操作系统概念、操作系统真象还原、Linux多线程服务端编程、部分C++ template、部分C++ Concurrency in Action等书籍。
然后,也一直没有放弃刷题,LeetCode写到了三百多道。同时也做了一些项目,跟着操作系统真象还原写的操作系统、简单的协程库,阅读了一些优秀的开源项目,SGI STL、muduo、libgo、libco等。
中途还对haskell产生过兴趣,打印了一本Learn Yourself Haskell For Great Good,看完后感觉坑太深,还是专注找工作吧,haskell对我一直都有很强的吸引力,但是这种也只能作为爱好吧。
另外,编译器也是有这种魔力,看了部分编译原理(龙书)、部分现代编译原理(虎书)和部分Engineering a Compiler,多次尝试写自己的编译器,多次未遂(不过现在有空了,在补上之前的烂尾项目)。当年的笔记哈哈:
部分学习笔记
时间到了12月份,9号楼某个自习室内,txr大佬一直鼓励我去投简历找实习,本来我一直畏畏缩缩,对自己不太有信心,被鼓励后想着投就投吧。当时投了字节跳动和momenta的实习,面试都比较顺利,于是在大三上就在字节跳动开始了愉快的实习,比自己的计划早了大半年。
当时为了准备面试,看了好多牛客网的面经,查漏补缺式地补齐自己的知识盲区。
大三下,基本都是在实习,学习了很多工程实践上的东西,接触了go的技术栈,并且对devops和软件工程方面有了认知,包括代码管理、发布流程、微服务啥的。
然后实习的时候骑驴找马,找到了腾讯的暑期实习。因为这个时候没有了找工作的压力,所以开始学一些自己感兴趣的东西,包括Rust(至今水平还是不太行)、分布式系统(DDIA、MIT6.824等),零零散散学了点东西。
大三暑假,腾讯实习了两个月,开始学习kubernetes、各种中间件等实际业务用到的东西,这个时候就感觉拥有到扎实的计算机基础是最重要的东西。
最后,顺利拿到了腾讯转正和字节跳动的秋招offer,两家都给的比较高,选择了工作体验更喜欢的腾讯哈哈。
总的来说,学习计算机是需要积累的,花一两年时间啃下那些厚厚的经典书籍后,才能构建自己的知识体系,然后阅读大量优秀源码,做一些有趣的项目,编程能力就能突飞猛进啦。
现在回头来看,大学时光真是如此宝贵,这是人生中为数不多可以静心学习的一段时间,可以不用考虑任何其他事情,每天学习十多个小时。
部分藏书
-END-
往期好文合集
模块化编程到底有多重要?
厉害了!华为继鸿蒙OS后,即将发布国产编程语言,打破国外垄断!
2020年9月编程语言排行榜:C语言继续第一,你站哪个?
最 后
若觉得文章不错,转发分享,也是我们继续更新的动力。
5T资源大放送!包括但不限于:C/C++,Linux,Python,Java,PHP,人工智能,PCB、FPGA、DSP、labview、单片机、等等!
在公众号内回复「更多资源」,即可免费获取,期待你的关注~
我的编程能力从什么时候开始突飞猛进相关推荐
- 知乎高赞:我的编程能力从什么时候开始突飞猛进的?
作者 | 编程指北 来源 | 编程指北(ID:cs_dev) 知乎上有个提问: 你的编程能力从什么时候开发突飞猛进? 觉得挺有意思的,所以顺手回答了下,同时也发到我的公众号上来,这篇文章纯碎是记流水 ...
- 长篇连载(一):你的编程能力从什么时候开始突飞猛进?
今年的更新频率稍作改变,每周一篇技术文章的基础上再加上一点其他的东西,可能是互联网人物.见解或者这种类型的. 这个故事不会太监了,主要会以个人的历史为主,就从大学开始,会截止到现在为止,最多应该不会超 ...
- 长篇连载(一)你的编程能力从什么时候开始突飞猛进?
今年的更新频率稍作改变,每周一篇技术文章的基础上再加上一点其他的东西,可能是互联网人物.见解或者这种类型的. 这个故事不会太监了,主要会以个人的历史为主,就从大学开始,会截止到现在为止,最多应该不会超 ...
- 你的编程能力从什么时候开始突飞猛进的?
如果提到程序员,很多人的印象是:呆板.木讷.不懂浪漫.如果提到代码,很多人的印象是:枯燥.繁琐.很难理解.但其实程序员的浪漫是普通人想象不到的,有一个网友为了追女生,以自己和女生为主角写了一个战棋类R ...
- 怎么深入学习计算机,深入提高编程能力
笔者最近在学习计算机的过程中,好像遇到了瓶颈. 学了很多东西,但感觉都不是很精通,也不知道怎么深入下去,很焦虑很迷茫. 学了操作系统,学了计算机网络,学了数据结构与算法,深入学习了C语言,学了Pyth ...
- 备考12月份电子学会青少年编程能力等级测试(图形化)的公益训练营即将开营
一.考试安排 考试方式 考试形式:在线居家考试(全国) 报名时间:9月26日08:00 ~ 11月23日16:00 退费截止时间:11月23日16:00 准考证下载时间:11月30日 ~ 考前1天 考 ...
- 【青少年编程(第30周)】关于青少年编程能力等级测评的科普!
2021年09月12日(周日)晚20:00我们在青少年编程竞赛交流群开展了第三十次直播活动.我们直播活动的主要内容如下: 首先,我们奖励了上周测试超过60分的小朋友. 其次,我们一起分析了电子学会Sc ...
- 【复盘】如何培养小朋友的编程能力?
Scratch家长群已成立,微信后台回复[Scratch家长群],即可进入. 如果加入了之前的社群不需要重复加入. 前几天,我在得到听了 邵慧宁的故事,就想着把游戏化的思维应用于培养自己孩子的编程能力 ...
- 编程能力差,学不好Python、AI、Java等技术,90%是输在了这点上!
据了解,超90%的人在学习Python.Java.AI等技术时,都是在网上随便找个入门的教程就开始学起来. 然而多数人在看了不少教程后,还是很难独立完成项目,甚至反思自己为什么学了这么久编程能力还是这 ...
最新文章
- 我在 GitHub 上都见过哪些沙雕项目?
- excel Match函数不同匹配类型用法解析
- 数据结构源码笔记(C语言):冒泡排序
- 深入理解 Vuejs 动画效果
- C# 系统应用之清空回收站操作
- 双卡项目如何在状态栏显示或隐藏G,3G以及卡1和卡2的信号标识
- 使用Linux 显示日历 cal -y (可以快速制作简易万年历)
- idea java 快捷键_图示Javahtml5开发中IDEA的一些常用默认快捷键
- 验签传时间戳目的_不瞒你说:买来的海鸭蛋,一戳就流油,被中央台频频“曝光”,秘密终被解开...
- 高并发架构消息队列面试题解析
- vscode写java快捷插件(Extension Pack for Java)
- 使用ffmpeg打开ts格式视频文件
- 2021-08-07:与数组中元素的最大异或值。给你一个由非负整数组成的数组 nums 。另有一个查询数组 queries ,其中 queries[i] = [xi, mi] 。第 i 个查询的答案是
- python求奇偶数和_用Python返回偶数和奇数
- 最后期限Lite,兴趣社区圈子论坛小程序前后端
- MAC地址定位技术的大数据警用应用
- Excel怎么快速删除空白表
- 如何快速查询学术会议
- python打包whl文件
- mac苹果电脑删除顽固残留软件图标
热门文章
- 如何部署Docker镜像到SAP Cloud Platform
- 在Safari里也能像Chrome里一样,通过执行js修改变量的值,在debugger里立即生效
- where is application controller bound to application main view
- 如何在outlook的日历Calendar里实现按照多时区显示日程安排
- jQuery init debug
- 1536299 2013 - PPR item change - Genil mode
- 如何通过query获得一个product的所有附件
- 动态决定viewarea应该加载哪个view
- 实拍Jerry Wang去德国出差期间居住的美丽的德国小镇
- 一些使用javap反编译出来的结果分析