从电路,芯片,电路板,到OS,编译器,再到c, c++, java, python,最后到html, javascript,好像知道的很多。但知道的太多就有了种迷路的感觉,我应该如何定位自己呢?
先说一下我的经历吧,大学修的电子信息科学与技术双学位,可要主要包括电路,计算机与通信;当时还加入了学校的开源社区,认识了一批志同道合的兄弟,大家一起搞网络,搞linux,搞开源软件;工作后先在宁波待了一年半时间,主要是网络管理,在这里熟悉了路由与交换的原理;后辞职来南京做软件,在android平台上先后搞过webkit, ffmpeg, 即时通讯等应用。熟悉从底层硬件至上层应用的一切概念。
我们知道整个计算机行业是分层的:最底层是硬件,基本由intel, arm两大体系主导,包括cpu,总线,及外围设备,相关的工作就是芯片设计,电路板设计等;上面就是OS层,主要是Windows, MAC OS X, 已经Unix(linux), 实际上做操作系统的人很少,大部分的人是在搞BSP,实际上就是驱动开发;再上层就是中间件了,对服务器端我不太熟悉,对客户端来说,就是GUI,IPC,及方便用户开发应用的大量类库,比如多媒体框架;更上面就是最多的应用了,调用底层功能完成用户需要的应用;而超越应用层,在浏览器运行的就是web 应用与web开发了。实际上除此之外还须加入计算机网络。
与上面提到的各个层级相对应,就是不同层级的开发需求与开发工具了。芯片设计需要HDL和Protel;操作系统,驱动开发主要是C语言与汇编;中间件主要使用C++与Java等编译或半编译语言;上层引用开发便是java, C#,python等动态语言;web开发则使用标记语言(HTML)和javascript。
那哪层最有意思,最好玩的呢?
人是最好玩的,而普通人能接触到的就是应用了,最重要的是web应用!
渐渐的,渐渐的,掌握python,学习javascript,创造人人可用,人人有用,人人必用的web app!