网站首页 > 基础教程 正文
要成为优秀的程序员,数据结构和算法是必修的内容。而现在的Web程序员使用传统算法和数据结构都比较少,因为很多算法都是包装好的,不用我们去操心具体的实现细节,如PHP的取栈操作array_pop,进栈操作array_push,都有指定的库函数,导致我们对基础算法的研究越来越少,最后成为一个工具的傀儡而已。
我想大家都已经回忆了不少自己平时用PHP做开发的经历了吧,是否发现大家确实都在操作数据库呢。
记得一个技术主管说过这样一个事情。他给一个程序员分配了PHP的开发任务,没想到那个程序员居然说:“我是学Java出身的,你让我去写 PHP,你这不是在贬低我吗?”。这件事情给我印象很深、触动也很大。虽然这不能代表大部分程序员的看法,但是这么认为的人应该不少。还有人说,现在如果是大型的政府项目,PHP是肯定不会被列入考虑的范围之内的。
那么为什么PHPer会被认为是草根阶层,是因为它很简单,人人都可以学会,所以没什么难度吗?我以前也是这么认为。PHP入门很快,处理文件,数据,远程连接,网络编程都非常方便,官方也有这样的说法:PHP学习的成本很低,所以你容易去使用它。这个想法也是普遍的,甚至大部分的PHPer 自己都这样认为。
说到这里,我想大家就会想到我为什么要写这些文字。因为一年多的PHP推广工作让我了解到许许多多的使用PHP的公司的大概情况。在这些过程中我慢慢体会到其中的根本原因。这里我说是根本原因虽然是个人的看法,但是我觉得事实就是如此。
那么为什么PHPer会被看成下等阶层,根本原因是PHPer所作的事情(通过代码实现)的绝大部分都是表现层的东西,这个熟悉PHP的人都知道。当然也会有PHP会说他用MVC结构编写的某某框架具备的如何如何的功能。但是这些还是表现层。所以只会处理表现层的程序员就被看成下等阶层了。事实上也是如此,因为这种情况下PHP确实很难构造大型的应用。
这就找到原因了,不是的。为什么PHPer总是在负责表现层的东西呢。答案是底层的数据处理(Web应用就是数据存储和查找)我们一般不去触及。好,那么说到这里有些人可能已经想到了,那不就是数据库吗?对,就是数据库。让PHPer一直当下等的元凶就是数据库。为什么?
PHPer对MySQL的依赖过大
大部分PHPer仅仅处理表现层的东西,而在MySQL的便捷使用下,PHPer几乎不用触及任何数据结构与算法的情况下完成大部分开发任务,所以一个才有上面的,没有一个PHP程序员能够回答出那道数据结构的问题,换成是C等语言,情况可能就大不相同了。是PHPer下等,才让PHP显得下等。
猜你喜欢
- 2025-06-18 单例模式谁都会,破坏单例模式听说过吗?
- 2025-06-18 Objective-c单例模式的正确写法「藏」
- 2025-06-18 单例模式介绍(单例模式都有哪些)
- 2025-06-18 前端设计-单例模式在实战中的应用技巧
- 2025-06-18 PHP之单例模式(php单例模式连接数据库)
- 2025-06-18 设计模式:单例模式及C及C++实现示例
- 2025-06-18 python的单例模式(单例 python)
- 2025-06-18 你认为最简单的单例模式,东西还挺多
- 2025-06-18 Python入门题037:实现单例类(3种方法)
- 2025-06-18 用好单例设计模式,也可以让你的代码性能提升300%
- 06-18单例模式谁都会,破坏单例模式听说过吗?
- 06-18Objective-c单例模式的正确写法「藏」
- 06-18单例模式介绍(单例模式都有哪些)
- 06-18前端设计-单例模式在实战中的应用技巧
- 06-18PHP之单例模式(php单例模式连接数据库)
- 06-18设计模式:单例模式及C及C++实现示例
- 06-18python的单例模式(单例 python)
- 06-18你认为最简单的单例模式,东西还挺多
- 最近发表
- 标签列表
-
- jsp (69)
- gitpush (78)
- gitreset (66)
- python字典 (67)
- dockercp (63)
- gitclone命令 (63)
- dockersave (62)
- linux命令大全 (65)
- pythonif (86)
- location.href (69)
- dockerexec (65)
- tail-f (79)
- queryselectorall (63)
- location.search (79)
- bootstrap教程 (74)
- 单例 (62)
- linuxgzip (68)
- 字符串连接 (73)
- html标签 (69)
- c++初始化列表 (64)
- mysqlinnodbmyisam区别 (63)
- arraylistadd (66)
- mysqldatesub函数 (63)
- window10java环境变量设置 (66)
- c++虚函数和纯虚函数的区别 (66)