没有标题 | 天一阁

没有标题

整个IT产业和一个大型软件一样,都是分层的。底层是硬件,CPU,内存,硬盘,网络。上面一层是OS,他负责管理各种硬件资源,需要和CPU打交道,充分利用CPU提供的能力,再管理好各个外部设备,为再上层的应用软件提供编程接口。OS能够提供的其实都是标准接口:进程管理,文件读写,内存分配,网络处理,中断处理,基本上是这些了。在OS只上,有一些软件相对底层,比如DB,Cache,WebServer,浏览器等。所谓底层有两个含义,一是他处理业务比较有共性,从业务角度看更加抽象,比如说DB保存一条记录,可以是任何业务,比如可以是订单,可以是用户数据,可以是文章,可以是流水log。但是他并不关心这些,他只需要关心,高性能,可靠性。另外底层的软件都会有一些比较复杂的算法,因为他更多在处理数据本身,数据处理要求高效的算法。所以底层软件的算法是比较复杂的。

那么再上一层就是应用软件,无论是ios, android, web,其实大部分会处理CRUD的问题。只是看谁能更好的维护代码,谁能有更好的交互体验。也可以说是,谁长得漂亮,谁就有优势。当然长得好看是一方面,另外就是能否有好的功能,好的内容。因为应用软件在业务处理上比较类似,而且实现方法比较多,所以除了开发语言很多,还有很多开发框架,这些开发框架也带来了很多学习成本。

从硬件、系统软件、应用框架、应用软件这几个大层面来说,现在往底层走,更不知道怎么赢利了,底层的大部分软件都是免费的。否则也不会发展这么快。正是因为软件开发成本低,软件开发需求大,软件开发人员工资高,所以才会有大把的人进入这个行业,推动这个行业。

对于我来说,目前只能先进入应用软件的层面,可是这里最要命的是需要很好的UI,这个问题始终是我的难处。只能慢慢学习,学习的开始都是模仿。我现在必须认头干这个事情,低成本的就只有这个了。慢慢学习,多多写代码,我也搞个180天180个页面试试。还有就是看视频和看开源代码,每天记录自己的收获,然后每天做一个小东西出来。