练级规划
再回首
小时候非常奢求能有一台电脑,主要是为了玩,大概是五年级,步入 3G 时代,我还在用爸妈的手机玩文字版 QQ 农场,那时在别人家看到他们打电脑游戏非常吸引我,因此想法设法去找有电脑的地方玩,初中后半段就开始去网吧玩。后来初中毕业,估摸着中考这么简单的问题难不倒我,然后以此为筹码和爸妈要求家里买了电脑,接入宽带,这可太开心了,这便是梦开始的地方。
虽然买来的电脑大部分情况下还是玩游戏,不过玩游戏这个需求也可以衍生出很多子需求,没钱啊,但是想玩游戏,想要比别人厉害,想要下载一些付费文档,怎么办?找盗版?开外挂?嗯是的。怎么找?别想了那时候没别的,只有 Baidu(虽然现在体验很烂但在十多年前还是要夸一夸的),各种论坛、贴吧,那可都是大神,一个破解论坛够我在其他人面前装逼了(这样我也成小孩假大神了,嘿嘿🤭),什么 office 不能用,小说下不下来?交给我!电脑坏了?我给你重装一下系统!这下我在中年老男人心里也成大神了!这是其一,另外靠着玩游戏,我在电脑前待了足够长的时间,怎么也对计算机略知一二吧,起码知道了 C 语言吧,知道了怎么装系统吧,这些额外收益让我受益匪浅。
高考考的一塌糊涂,大学不是很好,但是选专业我还是想选能探索电脑的,那时看过 Robin 在北大学的信息管理,哎?这一定是个很神奇的专业,我也选一个,然后四年后却得到了个管理学学位。好在我也是非常喜欢计算机的,而且专业部分课程也和编程沾边,不过都是浅尝即止,将就上吧。
大学了解了不少东西,先是非常荣幸的大一进入了一个传奇实验室,是一个能让人看到未来光芒的地方,导师有远见、同学有想法,这在我心里埋下了种子。
但是年轻人总是躁动的,让我这么早就埋头在各种算法问题中基本是不可能的,另外还有些外部冲击,我离开了这里,这是我后来非常后悔的一个决定。离开后我带着我躁动的心去尝试了各个有意思所见即所得的编程乐趣,web、前端等等,简单易上手在当时让我非常开心,但是这些简单的东西也会很快让人感觉到无趣。
大三,疫情在家里关了快一学期,无所事事,五月的时候感觉去不了学校也应该找点有意思的东西去探索,所以我开始找实习,破天荒的第一次面试就是字节跳动,嗯被打击了,当时也没有看过几道算法题,不过是好事,终于找到了方向,找到了该学些什么,但是我还是不能放弃先去找个实习的想法,后来有一个济南的小公司可以去实习,二话不说我就准备去,即使被家里人各种反对,我还是毅然决然的背着一个书包,带着没几块钱去了,睡网吧,吃咸菜,实习一个月,我感觉到了这份工作的无意义,仅仅是改一些 web 界面,做一些输入框,查查 MySQL,嗯不需要考虑性能,不需要考虑框架,应付一些政府外包项目网站,足够了,但是对我来说这不够。因此我跟组长提,这工作简单到无意义。然后我被安排去跟着售前、投资小姐姐去出差,体验了两天不一样的工作,月底我还是辞了职,继续面试。大学不算很好,这背景让很多公司甚至不会看一眼我的简历。一个偶然的机会,接到了金山办公的面试,是一个测试岗位,折磨了一个月的我头一次想放弃躺平,于是去了,虽然工作变成点点点,更简单了,但是起码算个能叫出名的厂的背书,我需要它,所以我再一次背上我的包,拿着不到一千块钱来到北京,准备安稳应付这份工作,26km 的通勤让我人很累,但是工作变得很轻松。
再后来我可爱的女朋友收到他们学长在学校发的招收实习生的消息转发给我,是百度,我紧张的将简历发了过去,面试题是让我做一个爬虫,去爬几个竞品站的加密内容,我心中大喜,这你找对人了!我折腾到晚上两点,以各种不同的计算破解方法完成了我的投名状,第二天成功获得了去百度实习的机会!于是我辞去躺平的实习工作,梦逐渐开始清晰了起来。
大学毕业,我入职一家二三线厂,跟着大佬做项目,从此开启了我的程序员生涯。
这两年的工作非常有意义,学习到了很多东西,但是是混乱的,不成章法的,因此我决定从头开始学习,总结经验,争取能形成一份攻略。
如何学习Computer Science
如何学习CS?CS 有太多不同的科目:编程语言、操作系统、数据结构与算法、计算机网络、数据库等等,列出的这几个都要无比熟练,无论是在找工作还是自我提升,这都是必要条件。需要看一些好的书籍、课程或者网站,再配合你的好帮手 ChatGPT共同来完成。
好的参考资料
编程语言
至少需要涉猎两到三门语言,精通其中一门,另外熟悉一种脚本语言;
C/C++
入门书籍:
- 《Essential C++》
- 《C++ Primer》
Python
Shell 和 Linux 内置工具
算法题
数据结构与算法
操作系统
《深入理解计算机系统》(CSAPP)