当前位置:首页 > 公众号精选 > 小林coding
[导读]大家好,我是小林哥。之前分享过很多读者校招拿到大厂offer的经历,他们都有一个共同的特点。就是在大学期间对于计算机基础准备的很充分,比如数据结构与算法、操作系统、计算机网络、数据库、Linux这些。然后期间就有很多读者问我,对于社招或者转行又应该怎么准备呢?前段时间,就有位在机...

大家好,我是小林哥。之前分享过很多读者校招拿到大厂 offer 的经历,他们都有一个共同的特点。

就是在大学期间对于计算机基础准备的很充分,比如数据结构与算法、操作系统、计算机网络、数据库、Linux 这些。

然后期间就有很多读者问我,对于社招或者转行又应该怎么准备呢?

前段时间,就有位在机械行业工作了 2 年的读者,成功转行了程序员,而且还进了腾讯

我知道大家肯定会很好奇他的经历,所以小林已经邀请这位读者来分享他的转行的经历。

当时我看完后挺震撼的。

震撼在于他之前的机械工作,竟然晚上 10 点才下班,每天工作 14 个小时,这工作强度不比互联网大厂少,而薪资却不及互联网一半。

这个工作强度,使得他在上班期间根本没时间自学编程,都是利用周末的时间从早学到晚。

而且还是持续自学了 2 年,我开始以为他是自学了半年后转行的,没想到一直坚持那么久,点个赞~

而且这位读者说他自己挺幸运的,他最开始转行找工作的时候,目标并不是想去大厂,只是想去小厂,结果事与愿违,非常滴魔幻!

相信这位读者的转行经历,能鼓舞到那些也有此想法的朋友。

前言

大家好,很感谢林哥给我这次机会分享,介绍一下我自己。

我 19 年毕业于武汉理工大学,毕业后一直在做机械研发的工作,自学了两年 Linux C 编程

如今在武汉找到了一份编程开发的工作,现在我将我的经历写出来,希望能给大家一些帮助。

为什么要转行?

转行的主要原因是因为毕业设计要做一个串口播放器。

当时做了播放器和串口通信的实现分别花了一个星期,怎么将二者打通折磨了我很久。

这期间我借了很多书,看了很多博客,看了很多视频,完全没有相关内容。最后论文指导老师都劝我放弃了,不然毕业论文就写不完了。

没法子,只能先放弃。

虽然口口声声说放弃了,但我的内心还是不想放弃,有好几晚都失眠了。直到一个周四的晚上,我依旧失眠到两点。

不过这一晚不同,我翻来覆去睡不着,脑海中突然闪过一个很好的 idea,害怕这个 idea 飞走,我悄咪咪的爬下床,打开我的电脑,顺着思路敲下代码,越写越兴奋,心里不断传来声音说「对的,这是对的,哈哈哈~」。

当我点击编译,一个一个功能进行测试,和预期功能完全一样,那一瞬间成就感填满了我的内心。

这时一道阳光透过窗照在我脸上(武汉夏天太阳出来早),原来已经天亮了,这是我第一次对一件事这么着迷,就想着以后做这方面的工作。

下面这张图就是我当时做的串口播放器。

可以通过右侧的按钮进行控制,也可以连接串口后,接收相应的串口信号,进行视频的播放、暂停、全屏之类的操作,同时还可以发送和显示接收到的串口数据。

虽然现在现在这个播放器看起来很简陋,但当时足足花了我一个月的时间,是我的第一个可以直接体会到的程序,我一直将它放在我的桌面上。

当学到厌倦的时候,都会打开它,提醒自己走到这一步的初心。

选择什么方向?

因为我是机械出身的,我最初的想法是转到与机械关联性大一点的岗位 -- 嵌入式。

心里想着悄悄的学习,然后司内转岗,惊艳所有人(很幼稚的想法)。说干就干,我先在网上找了学习路线,制定了学习计划。

需要学习 51 单片机,就在 B 站找到了郭天祥的 51 单片机教程,还淘宝买了个 51 单片机,照着教程一点一点的敲,有不懂的就看书。

很快就遇到了瓶颈,书上有个电路图我看不懂,出于「我不仅是想找一份工作,我还想把这份工做好」的想法,我又去网上找学习路线。

网上说嵌入式得学数电模电,学数电模电又得学电路分析、微机原理等等。

于是我做了一个错误示范,在 MOOC 上找了北理工的基础电路分析课,还淘宝买了对应教程。

一学学了两个月,堪堪对着视频学完,想着厚厚的数电模电,还有树莓派之类的要学,BOSS 直聘又查了一下单片机开发的工资,得出结论 -- 我不适合嵌入式(学东西直接一口气学完,不要老想着完美主义)。

接着我又开始了寻找学习路线的路途,因为限定语言是 C ,找到四个路线嵌入式、音视频、服务器、游戏,考虑未来准备发展城市的互联网环境和房价,最终决定做服务器开发

接着就是在知乎上查找服务器开发的路线,看了很多,根据自己的情况,制定学习计划,再按计划实施就可以了。

学习方法

我一直坚信选择比努力重要,好的方法可以事半功倍。

我提供一下我自学期间的方法,或者说是基本原则,虽然不一定适合大家,但希望能给大家一个参考。

  • 睡眠最重要,睡得好,才有精力同时应对工作和学习,每天晚上必须保证七个小时的睡眠,中午也要午休一个小时;

  • 学习少便是多。听懂一个知识点,比略略看了三四个点更重要;

  • 刚开始学的时候看视频,快速构建知识框架,后续看书补全知识框架;

  • 做好笔记,以输出为目的进行学习,推介用 typora 做学习笔记,将自己每天所学的内容记用 typora 记录下来;

  • 关注相关领域的博主,比如说@小林coding,加入他们的技术交流群,你最后会发现,你即使潜水,也能学到很多;

  • 将所需要学的分为知识和技能,二者相辅相成,但知识偏理论,要记下来,技能偏实践,一定要亲自动手。

一边工作一边自学

背景

我的本专业是汽车类的,当时高考结束选择机械专业的原因就两个。

第一是认知有限,无人指导,只知道程序员秃头、教师要改作业、材料要做危险品实验等等,一众专业中唯独机械万金油,什么都会,什么都能干,而且越老越吃香,因为是农村的,一心求稳,害怕找不到工作,机械就成了首选专业。

其二就是这个专业是我们学校的王牌专业,本着宁为鸡头,不为凤尾的原则,就不考虑更好一点学校的普通专业。大四找工作时才知道,「什么都会」代表着「什么都不精」,「越老越吃香」代表着「年轻时不吃香」。

当时最大的愿望是能找到一份年薪十万的工作,能拿到年薪十万的基本上都是学院里的佼佼者,拿到十五万到二十万就是学院里的 top 同学,再往上我就没怎么听说了。

现实却是,大多是四五千月薪的工作,而且得经过层层选拔。印象最深刻的是一个知名汽车厂,面试了三轮,还要写小作文,最后一问工资四千五。

偶然间参加了一次互联网公司的宣讲会,听到 17 万只是他们公司的白菜价时,我整个人都惊呆了,我只能告诉自己「机械专业越老越吃香,他们三十五之后有淘汰危机,而我没有。」

现实往往是惨痛的,我在前一家机械公司呆了一年半。工作节奏是周一到周四早 8 晚 10,周五早 8 晚 5,迟到要罚款,周六可以晚点去,但一定要去上白班

虽然中午可以休息两个小时,下午也有一个半小时吃饭,但每次下夜班都是十点了,回到寝室只能简单洗漱一下就睡了。

虽然每天的在工位上的时间只有「区区十小时」,但真正自己能支配的时间只有晚上十点半到第二天七点五十,每次周日的时候,只想睡觉,一觉醒来,发现明天又要上班了,感觉自己完全没休息好,马上又要上班了。

仅仅一年的时间,跟我一起进去的小伙伴体检都有了大大小小的问题,我也有了脂肪肝、甲状腺结节、糜烂性胃炎,有时候还会心悸、胸痛。

最开始的计划是一边上班、一边自学,转行成功了再辞职。

直到第去年六月份的时候,带我的同事去年绩效打得不好,公司要求末尾淘汰。

他是公司刚成立没多久就来了的,被公司优化了,本来没什么,拿个 N 1 走人也可以的,恶心人的却是,公司用了网上各种套路,诸如威胁、调岗、最低工资等等招式对付我的同事。

最后达成协议,工资降一半,继续留下来,我同事也同意了。

但不到一个月,又说上面政策变了,还是得走人,可以给N,但是是降薪后的N,我的同事彻底心凉了,不愿意在纠缠了。

这件事也让我彻底心凉了,即使董事长说「发动机不过是一坨铁」,我们研发人员也只是相视一笑,直到这件事发生,我们才明白----这公司没什么人情味,我们都可能是下一个「他」,谁知道明年会不会优化我们呢?

即使我们努力加班,年纪轻轻就一大堆毛病,也阻止不了被优化。但这已经是机械行业里的 top 企业了,集团还是世界五百强,从业人员都还是这种待遇。

若是出去,其它机械小厂是不是更糟糕,这更加坚定了我转行的决心。

后来了解到仅仅这个公司这样,广丰广本上汽这样的明星企业还是很好的,但进去的条件极其严苛。

小鹏、蔚来的互联网车企待遇也很好,但需求更大的是「软件人才」,不是机械。

如果大家有志于汽车行业,也不要因为我的经历而寒心,我的第一家公司代表不了所有的机械行业,只能给大家一个参考。

如果有志于发展中国的汽车行业,建议大家可以学计算机、通信、电气,然后进入车企当嵌入式工程师,结构岗我就不推介了,这个坑我已经踩了。

言归正传,说说学习节奏

为了保证充足的精力应对学习和工作,我基本上都是晚上十点下班,回到宿舍洗漱一番,和女朋友聊聊天,十一点就赶紧睡觉了,然后第二天早上 6 点起床看书,看到七点四十就去吃早餐上班(住在厂区,离办公地点很近)。

这样的节奏一般保持六天,周日就睡半天,打打游戏,看看电影,放松自己,下周继续上一周的节奏。

周一到周六除了早上固定的学习时间,我也会在中午或下午下班看半小时书,不过效率没有早上高,故而早上一般学习最重要的内容,其他时间看博客理解早上学的内容。

在这一年半的时间里,我只学了 C 、操作系统、计算机网络、数据结构和算法,基本上都是在 MOOC、B 站上找视频自学的,看完视频再看书进行补充。

C 的学习

我在 B 站看黑马程序员的 C 课程入门的。我基本是先看完一个章节的内容,心中有了大概的理解,就在 VS 上复现出来。

我对自己的要求就是--一定要复现出来,因为有种错觉就是--我以为我会了,一写代码就卡壳了,争取每天学习都动手敲代码。

作为初学者,我学了三四个月,在此期间,一直秉承着「少便是多」的原则,甚至会刻意放慢速度,如果发现前面的忘了,就重新再学一遍,而且第二遍第三遍会快很多,而且还会发现之前忽略的细节。

得益于这阶段 C 学得很慢,对基础知识记住得比较多,后来面试看看面经,C 相关的问题基本能回答出来。

我学完后没看书,因为《C primer》太厚了,直至面试,我也只是略读了一次。

操作系统的学习

操作系统我是在 MOOC 上看北京大学陈向群老师的现代操作系统学的。

不过现在 B 站也有视频,操作系统还有其他很优秀的课,比如华科的、哈工大的、清华大学的,我选择北京大学老师的课是因为我买了《现代操作系统》这本书,课程刚好对应上。

学习过程中,操作系统给我的感觉就是非常的抽象,这一阶段学得非常慢,进程线程我都是看书才看懂的,不过这一阶段要学的基本可以分为四个部分:进程线程、内存、文件系统、I/O(面试问得很少,理解即可),其他的部分可以后续遇到再学。

学习节奏基本保持着每个星期只学一章,多了不学,也不能少。

计算机网络的学习

计网我是通过哈工大的计算机网络学的,配套书籍是《计算机网络自顶向下》,我只看了视频的应用层、传输层、网络层、链路层、物理层

到传输层的时候我就感觉有些吃力了,还好当时我遇到了宝藏博主@小林coding,小林的图解让我有一种醍醐灌顶的感觉,原来课上理解不清的概念都被小林图解得明明白白,衷心推介大家关注。

数据结构的学习

我的数据结构是通过浙大陈越姥姥的课学的,B站有视频,大家可以去搜。

这一课程需要达到的目标是,知道什么是数组、链表、栈、队列、堆、树、哈希表、图这些数据结构。

最好能照着视频实现自己的数据结构。只要能将这些实现出来,基本就可以进入下一阶段了。

在家自学半年

在家这半年主要做了两件事:

  • 第一是将之前学的操作系统、计算机网络、数据结构和算法、C 进行总结,用 xmind 将每一个内容的知识点脉络整理出来,用 typora 将比较难得知识点记录下来。

  • 第二就是进行实战训练,学习编程技能,比如 linux 的基础 shell 命令、vim、gdb、gcc、make、git 的使用,学完这些后,开始跟着 acwing 刷题,刷完算法基础课后,学习 linux 系统编程和 linux 网络编程。

编程基础技能

刷题

我加入了很多博主的技术交流群,在里面一直潜水,但依旧学到了很多。

有一次就知道了 acwing 的算法基础课,B站试看了一下,发现正是自己所缺的刷题套路。淘宝买了正版码,就开始了学习刷题套路之旅。

最开始的时候,我想着把课程看完,再回来做练习题。实行了一个星期,发现自己还是什么都不知道。

复盘了一下,还是自己太急躁来了,就给自己定下了少就是多的原则,一定要把题目刷出来才进入下一 阶段。

我开始以写出来为目的进行学习,如果今天写不出来,就看题解,去理解,理解后自己写两三遍,直到能随手写出来。

不出意料,我的进度慢得出奇,一个下午只理解了一个题,不过我还是坚定这个方法是可行的。

皇天不负有心人,一星期后我发现自己慢慢地摸索到了刷题的节奏。渐渐的能跟上视频进度了,学了两个月,终于把 acwing 的算法基础课学完,虽然花的时间比较长,但还是值得的。

在我遇到的面试中,但凡是要求手撕算法的,都能在算法基础课里找到一个类型的题。

linux系统编程

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

9月2日消息,不造车的华为或将催生出更大的独角兽公司,随着阿维塔和赛力斯的入局,华为引望愈发显得引人瞩目。

关键字: 阿维塔 塞力斯 华为

加利福尼亚州圣克拉拉县2024年8月30日 /美通社/ -- 数字化转型技术解决方案公司Trianz今天宣布,该公司与Amazon Web Services (AWS)签订了...

关键字: AWS AN BSP 数字化

伦敦2024年8月29日 /美通社/ -- 英国汽车技术公司SODA.Auto推出其旗舰产品SODA V,这是全球首款涵盖汽车工程师从创意到认证的所有需求的工具,可用于创建软件定义汽车。 SODA V工具的开发耗时1.5...

关键字: 汽车 人工智能 智能驱动 BSP

北京2024年8月28日 /美通社/ -- 越来越多用户希望企业业务能7×24不间断运行,同时企业却面临越来越多业务中断的风险,如企业系统复杂性的增加,频繁的功能更新和发布等。如何确保业务连续性,提升韧性,成...

关键字: 亚马逊 解密 控制平面 BSP

8月30日消息,据媒体报道,腾讯和网易近期正在缩减他们对日本游戏市场的投资。

关键字: 腾讯 编码器 CPU

8月28日消息,今天上午,2024中国国际大数据产业博览会开幕式在贵阳举行,华为董事、质量流程IT总裁陶景文发表了演讲。

关键字: 华为 12nm EDA 半导体

8月28日消息,在2024中国国际大数据产业博览会上,华为常务董事、华为云CEO张平安发表演讲称,数字世界的话语权最终是由生态的繁荣决定的。

关键字: 华为 12nm 手机 卫星通信

要点: 有效应对环境变化,经营业绩稳中有升 落实提质增效举措,毛利润率延续升势 战略布局成效显著,战新业务引领增长 以科技创新为引领,提升企业核心竞争力 坚持高质量发展策略,塑强核心竞争优势...

关键字: 通信 BSP 电信运营商 数字经济

北京2024年8月27日 /美通社/ -- 8月21日,由中央广播电视总台与中国电影电视技术学会联合牵头组建的NVI技术创新联盟在BIRTV2024超高清全产业链发展研讨会上宣布正式成立。 活动现场 NVI技术创新联...

关键字: VI 传输协议 音频 BSP

北京2024年8月27日 /美通社/ -- 在8月23日举办的2024年长三角生态绿色一体化发展示范区联合招商会上,软通动力信息技术(集团)股份有限公司(以下简称"软通动力")与长三角投资(上海)有限...

关键字: BSP 信息技术
关闭
关闭