为什么说互联网开发者普遍技术能力偏弱
也是做了很多年的互联网开发,有些感慨,为什么说互联网开发者技术能力偏弱呢,我们来看看互联网上主流的技术,PHP,Python,MySQL,Memcache,Redis,Nginx,HTTP协议,负载均衡,如果你觉得上面列出这些都很高大上,那么很不幸的告诉你,你中招了,
1、PHP,PHP从4开始流行,很简单的一个脚本语言,对于大部分web应用场景的确很适合,你对操作系统,对网络通信几乎一无所知,就可以成为一个合格的大众开发者,扪心自问,你的编程能力体现在哪里
2、Python相比PHP相对有些技术含量,但在web开发方面也和PHP是同一个水平的
3、MySQL现在已经发展不不错,主要是innodb的力量,innodb成为默认引擎也是近几年的事,尽管如此,你还不是把他当myisum用,只有各别应用场景会注重innodb的功能,如交易。数据库论最强,开源当属PostgreSQL,商业数据库当属Oracle,这个应该是没有争议的,
4、Memcache,这不就是一个哈希表吗,哈希表其实很简单,难的是哈西函数的算法,然而它也不过是选择了一个业界比较认可的一个函数,当然源码里还有一个备选,对于一个做过C语言的人来说,实现一个Memcache真的很容易,而且不需要是C专家级别
5、Redis,可以说是相对Memcache增加了几个数据结构的支持,支持存储,而它所支持的数据结构也都是比较简单的数据结构,当然我没有看过源码,不过从功能上来说也没有什么技术亮点,只是比Memcache灵活一些
6、Nginx,开发一个基本的web服务器其实很简单,Nginx最初就是很简单,epoll/kqueue 是其高性能的关键,算是当时利用了比较先进的系统提供的服务,不过我觉得这应该归功说操作系统,因为这项技术谁都可以用,而且使用上也比原来的select,poll 要好用一些。当然他还有代理功能,代理功能说白了就是协议转发,Nginx的核心功能可以说就是I/O,无论是代理还是静态态文件服务
7、HTTP协议,这个协议很落后,也很低效,原因是这个协议设计之初也不会想到会有今天的应用规模,目前主流的是1.1版本,其实改进方案很多,只是原有web基础设施可没有那么容易更换,比如浏览器,毕竟历史包袱总是会成为很难解决的问题
8、负载均衡,听起来很高大上,但是这最已经不是什么新技术,所谓负载均衡要解决的就两个问题,一个是调度,一个是复制,调度上比较成熟,复制方面有的软件比较成熟好用,有的可能需要自己解决,不过解决复制问题应该不算是难题
其实还可以例举很多技术名词,但多数都是多少年前的技术搬到了互联网上,重新包装了一下
从技术方面看,互联网还有很长的路要走,作为一个互联网开发者的技术道路也还有很长的路要走,不要以为会用几个开源软件就觉得技术很强了,殊不知算法才是程序的灵魂,计算机技术知识才是基本功,对于那些简单的开源软件的配置与使用,等你到了一定水平,你就会觉得也就那么回事,当然这里不想扯开源话题,只是不要盲目觉得开源就是好就行了