我是如何一步步折腾上前端的
我是如何一步步折腾上前端的
一切都要从电工学这门课说起,这门功课对于绝大多数人来说,学习它仅仅只是为了应付期末考试,因为它不是专业课,但是它对于我来说,却是为我的人生重新打开了一扇窗。
我依然记得特别清晰,第一次走进实验室,大家好像都是来玩的,都是一副很随便的样子,按照老师讲的,用几个电阻,三极管,各种门电路元件,搭建了一个简单的电路,完成任务后,大家就走了。虽然实现了效果,但是我对其具体的原理却还是不清楚,这让我很不舒服。于是我就一直在那东看,西看,想要探出个究竟来。当然了,最后我也没有看出什么名堂来,特别是有一些集成元器件,一个个黑盒子似的,除了给出了一些引脚,其它什么的都看不见,在它里面发生了什么也不清楚。
回去以后,我马上就去翻书,我先把每个元器件给认识了一遍,接着对它们的工作原理也了解了一下,感觉有点明白了。集成元器件原来是将其用的比较多的功能电路封装在里面,然后在外面给出了一些引脚,每个引脚都是有规定说明的,有些是输入,有些是输出,还有一些是电源,当有电信号通过它,就会被处理输出,从而得到你想要的。
有了一些基础后,第二次做实验,感觉特别明白,但是自己还是有很多问题,和一些奇怪的想法,有时候想要尝试一下,但是又不敢。后来自己想了想,网上应该可以买到这些点子元器件,神奇而又强大的淘宝,应有尽有,看的我眼花缭乱,管他用得上用不上,买回来就是,各种规格的电阻(普通电阻,热敏,光敏电阻),电容,二三极管,led灯,数码管,逻辑门电路,面包板,线,电源,按钮,拨码开关,蜂鸣器,接收话筒等等。
有了这些元器件以后,我就可以在宿舍自己尝试了,也实现了光控,声控,报警器简单电路。但是我发现这些东西都是我手动驱动的,如果我想要让蜂鸣器什么时候响就什么时候响,想让它停就让它停,也就是自动控制。但是我发现通过这种手动搭建硬件电路的方式基本上很难实现,我就想是不是存在什么其它更好的方法。于是我就上网搜了一下,还真有好的方法——单片机,可以通过往单片机里烧入程序来控制,只要你搭建一个基本硬件电路,而复杂多变的功能都可以通过编写程序来实现,想想可以实现了就特别激动。
于是我就走上了单片机的道路上来了,但是要学单片机,还得会汇编语言或者C语言,而我只学过最简单的VB,没办法,只能自己自学了。以前学VB,都是可视化操作,先添加控件,然后给每个空间添加功能,而C语言只能在黑黑的屏幕上运行,除了那些字母,其它什么也看不见。经过一段时间的学习,终于会写一点简单的程序了。下面是时候开始动手实践了,照着郭老师的视频开始学习。在网上又购买了许多东西,这一次,相比上一次,高端多了。首先是核心部件单片机,然后买了液晶显示屏,烧入程序的控制器,时钟芯片,红外线发射接收模块,遥控器,温度传感器,ADC模数转换器芯片,继电器,晶振,电烙铁,焊锡丝,松香,万用表等等。按照视频一步一步开始学习了,但是理论知识还是特别缺乏,只知其然,不知其所以然。所以一边还得补充理论知识。还得得好好学学英语,因为你得读各种各样的datasheet。
就这样,我一步一步跳进了这个大坑,学习的路线异常陡峭。
开始首先得搭建一个最小的单片机系统,让单片机可以工作,能够将程序烧入到单片机里面,从而点亮第一个led灯,这个最简单的实现,但却是最鼓舞人心。随着实现了几个简单的功能后,慢慢的开始要实现更复杂的功能了,这时就需要用到单片机的强大功能了。要想发挥单片机的功能,就得把单片机的内部给整明白。单片机是一种集成电路芯片,里面具有中央处理器CPU、随机存储器RAM、只读存储器ROM、定时器/计数器、I/O口线和中断系统等等。学习单片机前后经过半年的时间,中间实现了流水灯,温度计,滚动广告屏,液晶和数码管时钟等等。在这个过程中,碰到过许许多多的问题,每次都想要放弃,而每次又都不甘心。最后我发现要想在单片机走的更远,除了需要好的硬件知识与经验(这个需要慢慢的在实际工作中积累),更多的是在编程技术方面的提升(思维方式),于是我开始走上纯软件编程的路上来了。
我发现进入到纯软件的环境中,有太多的岔路口需要我做出选择了,什么东西都有好多种,而每一种孰优孰劣也一直是不断争论的问题,而我作为一个新进入这一行的菜鸟,实在是没有这种甄别的能力。编程语言有C语言,C++,Java,Python,JavaScript等等,操作系统有Windows,Linux,每个又分好多种,编译器又有好多种,notepad++,vim,emacs,sublimetext等等。我能怎么办,我只能选择一个开始。我在的Window8下安装了一个虚拟机,接着在上面安装了一个Centos,一个ubuntu,没事就在上面练习,最后安装了Window8和ubuntu12.04的双系统。无意中,走进鸟哥的Linux私房菜网站,开始被Linux给吸引了,尝试着Linux上面的一个个命令,服务器配置,shell脚本,vim编辑器等等,最后在这上面选择了一门编程语言python。
通过python的各种库,过去我用C没有实现的,在python中最终都实现了。python有一个pygame库,pygame是一款简洁易用的2D游戏开发库,小时候玩的那些小游戏,贪吃蛇,俄罗斯方块,推箱子,终于实现了,对于编写游戏的一些机制也了解了一些,事件检测与处理,事件驱动,渲染,碰撞检测,FPS(Frame Per Second)帧,定时器,图形绘制,背景填充等等。之后用python的pelican静态网站生成器,搭建了一个博客网站,从而开始对网站制作开始感兴趣。发现python还真是强大啊,除了前面那些功能,python还有web.py,Django等框架,可以快速开发网站,为了制作一个自己的网站,跑到godaddy注册了yeching.info域名,然后把网站布置到github上了。
为了让自己的网站变得好看,自己开始学习前端的知识,从最简单的HTML,CSS开始,然后到JavaScript。学了一段时间后,我觉得前端好像是玩具一样,直到我看到《黑客与漫画》这本书,让我对前端有了一个新的认识,从那以后我也开始变的更加专注了,对技术也更加理智了,也坚定了自己以后要从事前端的信念。