建议 Java ,虽然 PHP 是我的入门语言,也是我的饭碗,但五年的 PHP 开发经验还是让我觉得 PHP 不适应新人入门:

PHP 是我的入门编程语言,我是半路出家,非科班,毕业工作两年后才自学编程,选的就是 PHP,至今已有五年时间。回过头看,从编程语言层面上讲, PHP 不仅乏善可陈,甚至可以说是糟糕,其实并不适合作为入门的编程语言。因为会让新手染上很多陋习,坏的习惯一旦养成,要再更改就难了。

但,PHP 也确实称得上是世界上最好的语言,是的,这并非调侃

评价语言的好坏有很多角度,从入门难易上,PHP 的入门相对而言太简单了,比 Python 还简单,初学者仅仅需要懂得基础的语法,再学一些基础的前端,就可以写出一个留言板,一个简单的网站,甚至在早几年,就可以直接拿到 dedecms 二次开发的岗位了。可谓是光速入门。

再进阶的,掌握面向对象,熟悉使用一两个框架,就可以去面试,有些甚至能拿到上万的工资了,而此时,他可能才入门一年左右。

所以,在入门简单,找工作容易,快速做项目,部署简单的层面上讲,PHP 确实是最好的语言,没有之一

可这也正是 PHP 令人诟病的地方,入门简单意味着每年都很多低水平的初学者入场,他们没真正理解面向对象,不懂测试,不注意异常捕获,不关心代码规范,撸起袖子就是干,只要代码跑得起来就可以。做起功能来确实是很快,而代码质量却惨不忍睹,根本难以扩展。所幸大多数项目都撑不到需要扩展的那一天。一个网站一天只有一万不到的独立 ip ,代码写得再糟糕,也是能扛得住,卡了就加缓存,挂了就重启服务,能满足老板的需求即可。

日复一日,PHP 程序员的编程水平并没有提高,要价却越来越高,视野一直局限在自己的一亩三分地,眼界却越来越高。处于这种状况的 PHP 从业者要警惕,PHP 的红利期并不会一直持续,事实上,除了在 web 领域,PHP 在其他地盘的建树几乎为 0 , 而 web 领域有越来越多的竞争对手。

好日子并不会一直存在,如果你不让自己一直保持成长的话...

建议 PHP 程序员不要把自己定义为某一语言的程序员,应该每年都学一门新的语言或新的技术栈,深入提升自己的编程能力。我身边的牛人同事,有几个选择了 PHP Python Go 作为技术栈,他们的共同点就是:语言本身并不重要,最重要的是高效地解决问题。而不同语言适用于不同的场景,所以需要多学几门语言,才能在各场景中自由高效地切换

即使在今天的我看来,PHP 有很多不足,我并不会将其作为我往后的主要编程语言,但 PHP 正如中学时的初恋一样: 青涩,任性,留下的却是最令人怦然心动的感受。时过境迁,已经想不起来当初为什么会对那个女孩如此痴迷,但那种内心小鹿乱撞的悸动会一直铭刻心中。

因为,PHP(她)让我爱过...

php 和 java_Java和php怎么选择??相关推荐

  1. 数据结构 排序 java_Java数据结构之排序---选择排序

    简单选择排序的介绍: 从给定的序列中,按照指定的规则选出某一个元素,再根据规定交换位置后达到有序的目的. 简单选择排序的基本思想: 假定我们的数组为int [] arr = new int[n],第一 ...

  2. Oracle调优总结--1(经典实践 重要)

    Problem Description: 1.每个表的结构及主键索引情况 2.每个表的count(*)记录是多少 3.对于创建索引的列,索引的类型是什么?count(distinct indexcol ...

  3. 轮盘算法 java_java – 使用轮盘选择的遗传算法

    我正在尝试为我正在研究的遗传算法创建不同的选择方法,但我在所有选择方法中遇到的一个问题是我的每个节点的适应性必须不同.这对我来说是一个问题,因为我的健身计算器非常基本,并且会产生几个相同的健身 pub ...

  4. 地铁换乘 java_java实现乘地铁方案的最优选择(票价,距离)

    初始问题描述: 已知2条地铁线路,其中A为环线,B为东西向线路,线路都是双向的.经过的站点名分别如下,两条线交叉的换乘点用T1.T2表示.编写程序,任意输入两个站点名称,输出乘坐地铁最少需要经过的车站 ...

  5. 简单介绍互联网领域选择与营销方法

    在我看来,互联网领域的选择是"安家",而营销方法的不同则表现了"定家"的方式多种多样,只有选对了,"家"才得以"安定". ...

  6. php多表存储,php – MySql在一个单元格中存储另一个表的多个引用并选择它?

    我有两张桌子 table: people id name goods_owned 1 john 1,4,3 2 Mike 2,5 3 Sam 1,5,2 4 Andy 5,3,4 – table go ...

  7. java中实现选择文件_Java 实现文件选择对话框及功能

    时间:2018-10-02 概述:文件选择器 Java实现文件选择器,就是大家熟悉的打开文件.选择文件的对话框,本例子分为两部分来进行,一个部分是选择器对话框构建部分,另一部分是文件过滤部分,用于过滤 ...

  8. Redis 笔记(02)— keys 键相关命令(查询数据库key数量、判断key是否存在、指定key过期时间、查看key类型、查看key剩余秒数、选择数据库、删除key、删除数据库)

    1. keys 键相关命令 命令 说明 dbsize 返回当前数据路的key数量 exists key 测试指定key是否存在 expire key seconds 为key指定过期时间 type k ...

  9. 算法图解/二分查找/简单查找/选择排序/递归算法/快速排序算法/

    大 O 表示法 大 O 表示法在讨论运行时间时,log 指的都是 log2 大 O 表示法指出了算法有多快,让你能够比较操作数,它指出了算法运行时间的增速,而并非以秒为单位的速度. 大 O 表示法指出 ...

  10. 机房收费系统【VB版】——选择下机

    前言: 今天实现机房收费系统--一般用户--学生上机状态查看--选中全部/部分下机部分收获很多!多亏了看光哥的博客,写的很清楚机房收费系统--上机状态查询之下机 过程: 要显示的表格式写查询,就会出来 ...

最新文章

  1. mysql编码不对_MySQL编码不一致导致乱码问题总结
  2. MySQL修改数据表(ALTER TABLE语句)
  3. AngularJs 基础教程 —— 控制器
  4. IOS基本数据类型之枚举
  5. 获知哪个函数调用了本函数及它的类名
  6. sort()基本用法
  7. JavaScript:自封装函数利用内置Date对象输出格式化“YYYY-MM-dd hh:mm:ss”时间
  8. [原创]数据库视图介绍和使用
  9. mysql的四大线程_阿里一面就凉了:MySQL+多线程+Redis+算法+网络一个都没说明白...
  10. 信息学奥赛一本通(1079:计算分数加减表达式的值)
  11. 数字化让企业精益管理梦成真,技术成核心驱动
  12. php小说网站windows慢,终于找到WORDPRESS网站响应慢的罪魁祸首,你仅仅需要一个优化方案。...
  13. 破解微信图片防盗链 微信图片不显示怎么办?
  14. 基础篇——Linux和树莓派发行版以及raspbian、ubuntu、debian、ros的关系
  15. String类的方法摘要
  16. VBA几个常用的模块
  17. 美通企业日报 | 洽洽开启中国坚果品牌全球化新征程;创维上半年净利同比增两成...
  18. Lua和Luajit的优势和不足(1)
  19. Linux口语什么软件,wine 一个非常好的英语听力口语学习软件
  20. 下载Chrome扩展离线皮肤包crx文件方法

热门文章

  1. Redis 和 memcached 区别
  2. 从库找不到对应的被删除的记录
  3. Service Broadcast简单音乐播放功能
  4. (转)如何入门 Python 爬虫
  5. javascript 中==和===的区别
  6. 一线城市房价下跌 机构称年内限购难放松
  7. error: failed to attach to process ID 0问题解决
  8. 用堆栈和用递归分别实现倒序打印
  9. java8新特性—— Lambda来由
  10. 设计模式 (九) 组合模式