电子信息工程四年学习之思

即将毕业,朋友们坐在一起总是谈起这些年的点点滴滴。细细回想,刚入学的样子似乎还在昨天,但实际上已经是 1000 多天前了,是呀,时间总给人一种假象。打开电脑,倒杯水,想想过往四年,既是回顾,也是总结。:rocket:

迷途中,找到灯塔

和所有人一样,初来大学之时感觉一切都是新奇的,初来乍到的我表现的有些沉默。新奇感总会褪去,接着是每天按部就班地上课、下课,一个声音告诉我这远不如我想象的那样有趣。面对一些不知有什么用的课程,很快陷入了迷茫。直到一天碰到了一伙人,他们告诉我一种全新的玩法。他们告诉我如何将学习到的知识实际运用出来,他们使用电子元件制作小车、机器人,他们使用 C 语言给单片机编程来控制这些小车和机器人。我开始明白大一学习的 C 语言可以用来做如此酷的事情。并发现这便是我苦苦寻找的有趣。

这样一伙人,仿佛一座灯塔,指给我了一个方向。接下来是一段美秒的岁月,我们一起学习如何使用 C 语言给单片机编程,学习如何制作一些简单的小玩意儿,不为别的,只为好玩。后来证明这段经历很大程度上决定了我大学生活的走向。

text=一起做的小玩意儿

当第一次看到这个 512 个灯亮起来的时候,激动无以言表。事实证明,大学里面学的东西之所以觉得没用、枯燥,是因为没有找到运用这些知识的地方,当我开始使用 C 语言编程的时候,我发现它太有趣了。

喜悦中,共同进步

遇到一伙可以一起奋斗的伙伴是令人激动的。一段时间里,下课后总是第一时间去到我们的基地,捣鼓那些电子原件,周末一起去电子大楼买新的材料。后来,每每谈起当年去电子大楼买4个电阻的经历总能引起一阵爆笑。经过学长们的指点以及自己的学习,一段时间后我们终于可以独立实现自己的想法了,这个时候拥有了属于自己的车、机器人,看着小车慢腾腾地前进,看着机器人颤颤巍巍地行走,很开心。

text=一起学习的地方

感谢这段时光,感谢一起奋斗的伙伴们。这段时间里,开始发现大学学习的有趣,可以将所学的东西实际运用出来,并看到成果,这感觉真的太棒了。而且当我进入这一领域,就好像发现了新大陆一样,有太多有趣的东西值得去探索。

折腾中,引起反思

起初和大伙一起捣鼓硬件觉得很有意思,我们投入了很多时间,也有很多收获。但一段时间后,过了那段狂热期后,仔细想想,发现我们不过是学会了如何使用一些电子元件而已,我们可以轻松地使用各类传感器,可以让电路工作,但对其中原理却知之甚少。这导致早期常常花费很多时间在瞎捣鼓上面,后来发现花费大量时间做的事情,如果懂得原理就根本不用那样劳神费力。对于“动手实践”,我觉得是要建立在掌握了基本原理的基础上,否则只是一味的瞎折腾,最终只是明白了一些表象而已。是的,长时间在实验室里,在我看来并非很好的选择,简单地学会某个东西怎么使用是远远不够的,需要去思考其中的道理,掌握那些通用的知识,这样在下次遇到同类问题的时候才能触类旁通。

现在想想如果那个时候能尽早地看看比如《编码》《世界是数字的》这样的计算机类科普读物,了解一些基础性的知识,不至于走那么多冤枉路,且对于当时的进步也会有很大帮助。

另外对于 C 语言,虽然会使用,但心里明白自己知道的依然是皮毛,如果那个时候能读一读 《The C Programing Language》《C与指针》 这些 C 语言的经典书籍,收获将是巨大的。

反思后,弃硬从软

在那个时候,我发现自己其实喜欢软件更多一些,一起做小玩意儿的时候,都是队友做硬件而我来写软件,这让我想往纯软件方向探索。虽自己所处的专业以硬件为主,但也不必被自己所在专业所限制,喜欢什么就去学习什么。说干就干,两日后,打开快递,一本厚厚的 《C++ Primer Plus》 着实吓我一跳(后来发现其实应该看 《C++ Primer》的),面对一本 1000 多页的书,有些抵触。其间,险些放弃。所幸后来坚持了下去,因为我相信掌握这个技能后,可以做更加有趣的事情。

C++,我显然是低估了它的难度了,多半个学期里每天晚上,我的时间都交给了 C++ ,虽然它有些困难,但也要和它死磕到底。终于在学期快结束的时候,我看完了这本书,但是我不能说我会 C++ ,因为它真的没那么简单。

这段时间的学习,让我体会到该如何去学习编程这样一件很容易的事情。

  1. 找到该语言对应的最为经典的书籍
  2. 把书上的代码自己动手敲一边,并对代码进行适当的修改,并使之可以运行
  3. 重复以上动作,直到掌握语言的基本特性
  4. 使用该编程语言做一些自认为有趣的事情

当掌握了一种编程语言,尤其是像 C++ 或者 Java 这样的面向对象的高级语言后,再学习其他语言就显得很容易了。其实语言本身并不是什么问题,反而与计算机相关的各类基础知识更为重要。

近半个世纪以来,杰出的前辈们创造了一个又一个奇迹,也留下了很多需要学习的知识。学习了 C++ 之后,会看到了更加广阔的天地,会发现更多需要学习的东西。

那个时候,恰巧一位往届的学长,从腾讯公司辞职去美国读研究生,此前在学校停留了一段时间。有幸得到导师的引荐,结实了这位学长。他告诉我了一些值得进一步学习的东西,于是次日我的桌上又多了一本《鸟哥的 Linux 私房菜》 这本书的书名很奇怪,它不是菜谱,它告诉我世界上除了 windows 之外还有 Unix 以及 Linux 。学习 Linux 是一个重大的转折,它告诉我黑客的定义。我奋斗的目标也变成了:成为一名黑客

注: 黑客并非媒体所说的那种破坏他人计算机,获取他人隐私信息的人,而是一伙追求好玩,拥有很高智商且善于探索的家伙

其实已经有黑客写了一篇《如何成为一名黑客》来教我如何成为一名黑客了。

如今觉得大学里对于计算机的教育太过缺失,大一时有一门叫做《大学生计算机基础》的课程,这门课的主要内容竟是教学生如何使用 MicroSoft Office 办公软件,这些内容本该是初中生学习的东西吧。对于大一学生而言,何不阅读一下《计算机文化》全面了解一下计算机的基本知识,包括硬件组成以及软件,乃至网络。何不阅读一下《硅谷之火》《浪潮之巅》来了解一下计算机以及互联网的发展史,看看那些前辈们是如何凭借惊人的智慧创造出如今随处可见的计算机系统。

随着学习的深入,愈发觉得自己无知,操作系统、数据结构、计算机网络等等一系列的知识都需要去学习,桌上也逐渐多了《深入理解计算机系统》《数据结构于算法分析》等等书籍,这一本本书就像一扇扇窗户一样,开阔了视野。

黑暗中,奋力前行

初入软件领域,周围的一切都很陌生,虽觉得自己会写 C++ ,但它似乎派不上什么用场。摸索中,我明白还是应该多读书。《深入理解计算机系统》是我大学四年里读的最为艰难的一本书,为了理解上面的知识,脑袋都被扣破了皮。可喜的是这本书给我带来的收获也是巨大的,对于大三、大四学习的 DSP、微机原理中提到的补码、反码、浮点数、大小端等等概念,这本书第一章都讲的很清楚了。所以后来我感叹仔细看完《深入理解计算机系统》这本书,微机原理、单片机、DSP等等课程都将会无比轻松,而且这些课上的知识远比书中的内容简单。

我强烈推荐阅读这本书,它会给你巨大的收获,以至于刚刚开始看这本书的时候,你已经发现自己比身边的人要强很多了。

至今依然记得大二第一学期的数据结构课程,那是夏末秋初的时候,天气还很热,在一百多人的大教室里,风扇呼啦啦地扇着,但没有什么作用。虽然天气酷热,但我内心却很冰凉,老师照着 PPT 一页一页地读着,学生没精打采的听着。几节课后,到课的人已经很少了,我也再没去听过这门课。虽深知数据结构的重要性,但还是放弃了。在很长一段时间后,我找到《数据结构于算法分析》这本书,经过一段时间的学习,什么平衡树、AVL树都明白是怎么回事了,至于队列、链表等更是不在话下。

自大二起,对于课堂我已经心灰意冷了,在大学里我同样看到了应试教育 的影子,这让人很失望?再者,自己对于本专业讲授的一些课程提不上兴趣,这源于这个时候我早已将关注点放在了软件上面,数电、微机原理这些课程还尚可,对于高频电路、传感器技术等课程实在让人头疼。后来总是想方设法地逃课,然后去图书馆自学其他东西。

如果对自己专业不感兴趣,何不早点儿将精力放在能让自己提起兴趣的事情上呢?

前行中,独自一人

当做着和身边绝大多数人都不一样的事情的时候,我明白自己在独自前行,没了当初一起学习的伙伴显得有些沮丧,没有人能够分享,也没有人能够交流。好在通过网络能找到许多有着共同的爱好与话题的人,就这样生活重回光明。有很多人热心在网络上分享他们的经验,为新人解决问题,我们应该感谢这部分人。在 github 上有来自全世界的开发者,他们将自己的代码展示出来,这些代码是最好的学习资源。通过网络,虽然不知道对方长什么样,是怎样的一个人,但这丝毫不妨碍彼此之间交流。

在软件领域,作为一个新手你犯下错误 100% 是前人犯过的,你需要做的就是将你的错误信息作为关键词去搜索,然后按照他人的解决方法来做,在深究一下为什么会出现错误。

对于和我一样对软件开发有兴趣的朋友,如果能够尽早地了解一下开源文化,了解一下卓越的黑客们的工作方式,这是有很大好处的。如果我早点儿知道 git 早点儿使用 github ,那我的眼光会更加开阔一些,在这上面会看到业界目前流行什么,最近又出现了什么新的技术。你还可以加入其中,成为他们的一员。正如上面提到的《如何成为一名黑客》中所提到的一首诗:

To follow the path:(沿着这样一条道路:)
look to the master,(寻找大师,)
follow the master,(跟随大师,)
walk with the master,(与大师同行,)
see through the master,(洞察大师,)
become the master.(成为大师。)

昨天去参加了一个针对低年级学生的经验分享会,和低年级的学生们聊了许多,从他们眼中可以看出对知识的渴望。有人说自己想学,但不知道该学什么,我建议它多走出去看看,看看其他人在做什么。如果局限在一个小圈子里,很难发现新鲜的东西,自然也找不到感兴趣的东西。

一旦明确自己希望学习什么,无论是编程还是设计,都已经有前人进行过很多探索了,一条捷径就是去找到这样的人,向他们请教。如果你恰巧对编程感兴趣,那么恭喜。黑客这个群体,大家都表现的很友善,很热情,如果什么疑问去合适的论坛提问,总会有人热心回答你的。后面当你入门之后,该如何做自己可能已经很明白了,你需要做的是延续这种文化,去分享自己的知识,为新人解惑。

人群中,保持坚定

进入了某个领域之后,会发现视野开阔不少,但随即而来的有可能是更多的迷茫。面对浩瀚如烟的知识,难免有些忧愁与困惑。这个时候我们试图找到一种最佳实践,希望有人告诉我们一条通往胜利的捷径。于是开始着迷于方法论,一段时间后证明,那些方法可能并不可行。

对于求知而言,并无什么胜利而言,需要做的只是不断学习不断进步,这是一个长久的过程,没有终点。至于捷径,这很像是小马过河,每个人都给出你不同的意见,最后你还需要自己去尝试,找到属于自己的方法。学习本就不轻松,需要有一股坚持不懈的韧劲,当在寻找好的学习方法的时候,会发现自己本就不够坚定。

网络给人方便的同时也带来了麻烦,其中一些噪音可能会极大地干扰到你。当你在学习 C++ 的时候,听见别人说 Java 如今更加流行,姑且不论这些言论是否正确,但是他们的确会影响到你,有可能导致你停下学习的步伐。进而导致三天打鱼两天晒网,最后什么也做不好。

另外,我们处在一个集体之中,身边有很多同学,别人的举动或者言行都有可能干扰到你。这个时候,可以在思想上远离人群,使自己能够独立思考,这样才可以进行思考。这可能导致你成为人群中的异端,但这有能怎样呢?正如《黑客与画家》中作者所言:如果自己就是潮水的一部分,怎么能看得见潮流的方向呢?

别着急,逐个击破

当我能够使用 C++ 写一些小规模的代码的时候,我听到了很多很多技术名词,什么 PHP、mysql、MFC、opencv、Python 等等很多很多,我彻底蒙圈了,很长一段时间里,我都在了解这些东西究竟是什么,为此还折腾了不少玩意儿,写写 PHP ,再写写 Python ,还要学学 sql 。最后的结果是,我什么也没有学到。面对技术名词,知道它是干什么的就可以了,不要一开始就要求自己会使用它。选择其中一个进行学习,当你掌握它以后,再去学习其他的东西。采用这种逐个击破的方式,强于同时学习好几种东西。

不要着急,时间是很充裕的,完全有时间学会那些你感兴趣的东西。想想大学四年,每学期专注于一件事情,也能培养出不少技能。很多时候就是因为野心太大,最终很多事情都没做成。

困境中,从后向前

上一段说过,在大一大二以及大三的前期,折腾了一些东西,只为了好玩,在外人看来我属于典型的看起来厉害的那种人,实际上没有什么拿的出手的。我不能说自己可以做 C++ 工程师,也不能说自己可以做运维,虽然我也写过一些 C++ 且一直在使用 Linux。我需要培养出核心竞争力。这时候,我拿出自己曾经折腾过的 JavaScript,希望自己能够成为前端工程师(前端:网页相关的技术,包括网页布局、动画、交互以及整个网站的层次结构)。选择前端的是因为我觉得优雅的用户界面会给人带来好的心情,而创作出这样的用户界面会带来极大的快乐。

根据上面所说的,学习一个全新的领域需要做的只是找到这个那几本最为经典的书,然后一心一意地去阅读它们就好了。于是我找到了 《JavaScript 高级编程》、《JavaScript 权威指南》、《CSS权威指南》、《JavaScript 模式》等等书籍,接下来的几个月时间里,有空余的时间就坐在电脑前面潜心学习。经过几个月的学习以及练习,较为轻松地找到了前端工程师的工作。至此,完成了从后端向前端的转变。

谈到工作这件事情,三年前我听到一位研究生说:都说如今工作难找,但如果你真有两把刷子,找到工作岂不是很简单的事情。

对于低年级的同学,不要听那些即将毕业的人说找工作如何困难,不要紧张,专心提高自己,后来你会发现,一切都很容易。

闲下来,广泛涉猎

大学几年间,课外阅读过的很多书都偏向于专业,我却希望自己能够上知天文下知地理。大四上学期,不考研,这样的状态真的很棒,有很多的空余时间,这个时候何不找到那些本该看而又没看、不该看而又想看的书来读读呢?

大学上到最后,要问我最为遗憾的事情是什么,那我觉得是在我曾经迷茫的时候、失落的时候,我不应该消沉不应该悲伤,而应该静静地读两本小说。书中主人公的经历告诉我自己所遭受的事情根本不算是磨难,书中的故事告诉我自己所处的环境是多么的优越。很多人抱怨学校生活无聊,抱怨周围环境太差,岂不知还有多少人在为解决温饱问题而挣扎。

学校的真正问题是空虚,多少人因为空虚而没日没夜的打游戏。对此我不想做过多的评论。为了考试而学习,看不到自己学习的东西与将来走向社会后从事的工作有什么联系,这让很多人迷失在了大学中。这方面学校也有自己的原因,学校像是一个温室(有人说像一座监狱),在保证学生们的安全的前提下,想干了什么似乎没人关心。对于学生,作为弱势群体,我们似乎什么也改变不了,但是仅仅明白自己处在一个什么样的环境下也是有用的。

当困惑的时候、无助的时候、无聊的时候,不妨读两本书,书中的故事总能给你一些力量,给你一些想法。透过别人的文字,来观察自己的世界,可能会发现自己竟生活在温室(监狱)之中。

走出去,开始工作

大四的第一学期,我将其看做自己大学阶段的最后一个学期,在这个学期里我做完了毕业设计,修完了所有学分。大学四年的学习,即将告一段落,对于学校、老师、同学的种种情感亦将成为回忆。来到公司看到一张张新面孔,显得有些局促,学着大人的样子见人就和人握手。后来熟悉了,身边一伙人好像还是都是学生。

到公司工作一段时间后才明白大学四年间的学习效率是何其低效。由于时间充裕,加之没有明确的学习目标,这导致大学里面学习效率很低,我们总觉得学会某某东西是有用的,但却没有一股强烈的力量驱使自己去完成这样一件事情。而在实际工作中,你需要在短时间里,掌握某个知识点,因为它关系着公司的利益,或者说关系着你自己的温饱。在这里有来自全国各地的同学,他们个个身怀绝技,有他们在身边就会有一种无形的力量驱使着自己前进。

别离后,新的开始

恍恍惚惚,已经到了离别的日子,走在校园中看到一群群身着学士服的男孩女孩,大家笑的很开心。离开校园,对于我而言意味着学生时代的终结,也意味着一段全新征程的开始。

我希望多年后的自己,还能像如今这样开心的笑,对世界充满好奇,对弱者报以同情,对知识存有敬畏,还能在星空下45°仰望星空。希望所有人不忘初心,记得曾经奋斗过的自己,记得那个眼中闪着光芒的年轻人,记得为之努力过的梦想。

感谢大学四年间帮助过我的老师、同学,感谢共患难的兄弟,感谢给我留下回忆的人们。

祝好! :four_leaf_clover: :sparkling_heart:

#总结