嵌入式系统与单片机|技术阅读
登录|注册

您现在的位置是:嵌入式系统与单片机 > 技术阅读 > 我是如何从非科班转到计算机的?

我是如何从非科班转到计算机的?

本来今晚没想要写文章,只想一个人听听歌,浏览自己喜欢的网页,看看小说。听着歌就想起了刚刚毕业时的情景,于是就有了这一篇文章。


我本科是电子信息科学与技术专业,毕业后在深圳一家公司做嵌入式软件工程师,说是嵌入式软件开发,其实大多数时间打杂,期间做了不少大大小小的杂事。画过PCB,做过电子元器件选型,焊接调试电路板,编写单片机程序,能独立开发过一款产品,从硬件开发到单片机程序开发全部一个人完成。那时的我虽然对电子充满热情,但是心里却一直想着成为一名很牛逼的黑客(不要笑,当时我确实这样想的),于是经常下班后一个人在宿舍看书学习。


那时的我住在一个工业园里,里面吃的比较少,吃得最多的就是猪脚饭、沙县小吃和一种面(忘记叫什么了)。公司里有很多同事和我一样是刚刚毕业的学生,大家很快就认识,经常在一起打篮球出去玩。那时我打球很菜,但是他们经常带着我一起玩,教我如何打篮球。就这样快乐,无忧无虑的时间很快就过了一年。


在毕业那一年里,第一次感受到了自学软件开发的困难。没人带,又不怎么会从网上找资料学习,学习方向不明确,刚开始什么都看,渐渐的发现这样下去不行,要赶紧确定方向,专心学习。就在我苦恼的时候,想起公司有一位嵌入式大神,做Linux开发,也是唯一一个写Linux C的。当时我不知道Linux是什么玩意,只感觉很牛逼的样子,就去网上查了Linux是什么东东,原来Linux是一个内核,可以用于嵌入式。正好自己也是做嵌入式开发,就是它了!学习Linux!于是继续在网上不停的搜索嵌入式Linux如何学习,要学习哪些书籍。找到了很多书籍,记得很清楚有一本书培训机构的教材《Linux C编程一站式学习》带我入门Linux C编程。


为了学习Linux,在笔记本上装了一个虚拟机,安装Ubuntu,开始捣鼓。这个笔记本是我大学时期买的,处了几年,感情很深,后来在某一次去河南出差时落在了出租车上就丢失了,现在想起还有点心痛。装了Ubuntu捣鼓了几个月,终于发现一个很严重的问题,我不会使用命令操作Linux,于是买了鸟哥很经典的书籍《鸟哥的Linux私房菜》,实际上基础篇我都没有学完,就已经够用了,我把链接贴在下面。


前后花了几个月的时间学习LinuxC开发,但是在学习的过程中我犯了一个很严重的错误,实践太少!以至于我学习完感觉良好,感觉自己比较熟悉Linux,但是写不出什么程序!后面自己又重新学了一遍,白白浪费时间。入门Linux C开发后,觉得自己可以换一份工作了,迫不及待的在手机上安装了拉勾网,在上面搜索了下嵌入式Linux的岗位。。卧槽,很多要求没听过,还有数据结构,看到这些瞬间没信心了,因为那时,我连链表都写不好。。

说实在的刚开始自学那会,遇到什么问题,只能从网上自己找答案,包括学习数据结构也是。在我逛知乎时,看到一个问题,如何学习数据结构与算法,有大V推荐了《算法导论》,就是下面这本神书。

别看它的名字带有导论两字,其实压根就不是算法入门书籍,而是一本带你深入学习算法的书籍。我看到知乎上有人说,学会了算法导论就超越了90%的程序员,这么牛逼当然要学了!立马在京东上下单,第二天就拿到了书,拿到书就像乞丐见到一顿美食一样,立马撕开快递包装,翻开书籍。咦。。怎么和想象的有点不一样,全文充斥着大量的数学证明,不过这难不倒我,对自己的数学有信心。就这样每天捧着这本大砖头读,时不时在草稿纸上推导公式,每一个数据结构和算法都要C语言实现一遍,课后习题也跟着做起来,终于快学到图论时学不下去了,学习进度实在是太慢了。一晃,已经毕业一年了。自己实在无法忍受天天打杂的日子,就裸辞了来到广州。


来到广州后,通过我老婆(当时还是女朋友)找到广州的朋友,暂时寄宿在老婆朋友那里,期间不断的背面试题,复习。同时不断的在招聘网站上投简历,每天压力很大,很焦虑。所以,大家一定要汲取教训,一定不要裸辞!!钱包只出不进,一段时间没有找到工作,整个人会焦虑,压力太大了。


也许是运气的原因,我这个半吊子,居然找到了一份嵌入式Linux的工作(我那时,只会C语言和一些简单的Linux C开发),工资并没有比上一份工作高多少,换算过去差不多。很快入职了新公司,对于我一切都是新的,也是一个新开始,很多知识不会。比如:网络抓包软件不会用、网络知识完全没概念、Linux远程开发不会、Linux api不熟悉、就连C语言很多都没学好。看到这里,相信你们也知道了,其实转行并不是很难,转行要乘早,最好在大学时就转,再晚一点毕业就转,最不好的就是毕业几年后才转。越早转行,公司越能包容你。只要能进入那个行业,刚开始工资低一点也没有关系,只要后续你能快速提升收入即可。


我记得很清楚,看的计算机网络入门书籍是谢希仁老师的《计算机网络》,这本书是很不错的入门计算机网络书籍,我反复看了不少于2次。

到了这里,我自己的学习路线已经清晰了许多,为了尽快应付工作,需要深入学习Linux C编程,怎么少得了它的?《Unix环境高级编程》是一本比较全面的书籍,同样看了不少于2遍。

对于没有学过操作系统的同学可能比较吃力,我当初也是这样,于是我配合操作系统一起学习,看的是这本书。

不得不说,真的是很经典的一本操作系统学习书籍。Unix环境高级编程和现代操作系统配合学习,简直了。每一本经典书籍,我都看了不少于2次,实在太经典了,看完还忍不住再看一遍。认真学习完上面几本书籍,应付Linux应用开发问题不大,此时的我深深的意识到,打好计算机基础的重要性。首先C语言必须要深入学习,于是就在网上买了一本《C和指针》,从头到尾认真的看了一遍,尤其是指针那一块,讲得很详细。

在广州的第一份工作,做得比较久,做了有3年,工作也得到了领导和同事的认可。这三年里,虽然每一天都挺累的,但是也自学了很多知识,为自己进一步转行打基础,期间学了C++,也看了不少经典书籍,就是下面一堆书。


在我换工作时,对我作用最大的是C++和深入立即计算机系统这本经典书籍。


功夫不负有心人,貌似还是靠运气,终于转到了互联网,且是一家很不错的互联网中厂做Android音视频开发。估计有不少人觉得我纯粹就是靠运气,运气只是其中一部分,大部分是我狠抓计算机基础,一步一步往计算机靠拢。能一次性转过去的比较少,最直接的原因就是:你没有相关工作经验,专业又不匹配,在筛选简历的时候就落了下乘。大部分人并不是一次性转过去,需要过渡,开始找相关的岗位,后面看准机会一次性转过去。