我,一个老程序员,也是一个学生,把玩过甚多语言,大多不精。我既非名牌学校,也不是高学历,仅代表一部分比较蛋疼的人。
接触PHP也是很早了,从04年的OFSTAR开始的,到现在六年了,期间也接触过不少的语言。从脚本JS到底层的C语言。
坦诚的说,我不是个高手,但是我相信自己比大多数人接触的知识面要宽广,深刻些吧。
同时我也是一名学生,从东南大学到西电,对计算机的爱好一波三折。
我这里想说几个问题:
1.语言,语法重要吗?
不重要。重要的编程的基本思想。语言是不相通的,相通的是思想。PHP作为一门WEB语言,很多童鞋太过于关注其语法,总是天天翻函数,看语法,是的,他们的PHP
能力提升了,可如果叫他们转行做PY或者C,甚至是NET,那就是要了他们的命。为什么呢?就是因为他们单纯地接触PHP,而PHP只是一门脚本语言,
抹杀了许多算法和数据结构的东西,而重点强调的是函数。结果让大部分童鞋专注于语法层面,而编程思想得不到提高,很难转行。
这就是JAVA转PHP很容易,而PHP转JAVA很难的原因。这也是有四五年经验的PHPER仍然感觉自己水平提升不咋地的原因。
他们精通PHP,但除此之外,啥都不懂。这够了吗?不够。
我发现论坛里不少人总喜欢钻研函数,发现一个函数好用就沾沾自喜好久,而不知道自己已经落后高级程序员很大一截了。
斐波那契数列,如果用递归解答,100分的话,我给0分。
这说明这个人没有任何编程思想,不会理清思路,不会推理,不适合搞计算机。
就和约瑟夫环一样,一旦逻辑稍微复杂,有人就头晕了。
至少,高中数学不及格。
我测试新人,必然用约瑟夫环考察潜力和逻辑,一旦做不出来,直接全卷0分,对不起。

2.算法和数据结构在WEB开发中重要吗?
很重要。很多人总是说WEB中算法不重要,而不肯钻研这一块。才会出现一个树形结构难倒80%的PHPER,在他们眼里,一个无限分类就是算法的最高境界。一个递归难倒一半PHP新手,一个很简单的斐波那契数列难倒80%的PHPER(他们不知道循环解法才是最有效的办法,而这在任何语言里面都是经典例子,而绝大部分PHPER不知道,稍微聪明点的会用递归),不知道其他语言的程序员,特别是JAVAER会怎么想的。算法无论在什么中都是重要的。现在论坛里很多人对算法都是一窍不通,还是看看吧,绝对错不了。
3。学历重不重要?
重要。学历就是你娘,有个好娘家,不愁嫁,至少也轻松些。我发现有许多人,抱着“越穷越光荣”的心态,喜欢嘲笑高学历的人才(研究僧,烟酒生。。),正如论坛里那篇北大博士生会不会PHP的那篇文章一样的心态。让我想起来,没有文化真可怕这句话。
人家博士的知识深度和学习能力,是你无法匹及的,你只能仰望的。人家玩的是编译器。
所以,虚心点,你有你的工作经验,人家有人家的项目经验,不会比你差。出名的那些人有几个不是高学历。李开复,美国博士,联想总裁,军校。
尊重知识。
4.教材重不重要?
看什么教材了。有的人喜欢笑话学生看死书。我想告诉你,写教科书的人都是博士,教授,能看懂书的人,很牛叉。当然了,现在某些吹牛大王出的
什么XX开发王啦,XXX开发宝典的就无法相提并论了,纯粹是赚版费的,和正规的教材不是一个档次。
5.山寨很可耻吗?
不可耻。PHP被看做最草根的语言,没什么可耻的。PY不也是草根吗?但是为什么PY能得到IT界的认可,而PHP不能呢?
很多综合性的IT网站,PHP只是很小的一个版块,甚至没有。
出身不好不可怕,怕的就是不争气。
6。我有必要学习其他语言吗?
有!PHP是一门优点和缺点特别突出的语言,所以他并不适合作为一门入门型的语言来学习,它也不是一门综合性极好的语言。这就是为什么现在大学的教材选择C语言,FORTRAN,JAVA而绝对不会选择PHP作为教材的原因。学习了其他语言,开阔了自己的视野,你才会发现自己是多么渺小,才会学会谦虚。
7。我有必要进培训机构吗?
没必要。培训机构的实力不敢恭维,快餐教育只会培养出一个代码工人,而不是程序员。综合我上面的观点,你应该知道咋做了。
建议:
1.不要停止学习。
2.不要停止思考。
3.不要停止进步。
4.不要浮躁狂妄(很多搞技术的人容易陷入其中)
5.踏实。我老看到很多人对C语言一窍不通就开始讨论或询问PHP的变量机制。我不了解这个对你有啥用,就算你一知半解了,除了显耀外,还能怎样。
我们必须知道学习是一个过程。快餐吃了会营养不良的。

同是穷二代,这就是为什么有人觉得生活很美好,有人天天骂娘;
有人感谢教育,有人天天痛骂学校的原因。
为什么名牌大学的学生感谢新学校给了他一分工作,而下流大学的对学校痛骂不已;
因为有人靠知识改变了命运,有人没有。
什么算法数据结构和语言一点关系也没有,说明作者也就半桶水出来气气这帮phper壮大一下.net的声势 …
经验!=技术

你认为没关系,那是你内功和层次不够。功夫的修炼有一个层次的。
简单的,比如说对于一个数组排序,只有1000个元素的数组排序和10亿个元素的数组的排序一样吗?
求10000以内的素数和100亿以内的素数一样吗?
你不要跟我说他们的算法是一样的,也不要跟我说排序么不就是SORT函数么。更不要说后面的情况你遇不到。(你网站规模一大,必须考虑这个东西。底层操作无非就是数字运算)
你更不要跟我说我一个MEMCACHE就就解决了。
这就是大公司比如百度和小公司的面试题为什么很大区别,为什么大公司愿意招没有经验的应届生也不肯招有经验没技术的人,更愿意招科班出身的人,也是为什么一个应届生的薪水能超过几年工作经验的人。原因不是学历,而是他们有一个系统的学习,从算法到编译原理,从数据结构到C语言,从软件工程到离散数学,从应筹学到微积分。这个系统的学习体制保证了他们的快速上手和深入理解能力。你有三年工作经验,但对于同一个陌生的东西,你坑能要半年,而他只要两个月。故,我强调一个系统的学习,做programmer而不是coder。
也是你进不了大公司,做不了核心的原因。
你说算法和WEB无关,
那你是不是认为斐波那契数列就仅仅是玩游戏的,求老兔子生小兔子的?
你是否知道余弦定理在搜索中的应用很广,而不是高中生拿来算算三角形夹角那样的简单?

一个老程序员PHP程序员说的话(用来提醒自己)的更多相关文章

  1. 老菜鸟致青春,程序员应该选择java 还是 c#-

    致青春 还记得自己那年考清华失败,被调剂到中科大软院,当初有几个方向可以选,软件设计.嵌入式.信息安全等等,毫不犹豫地选择了信息安全. 为什么选信息安全?这四个字听起来多牛多有感觉,我本科是学物理的, ...

  2. 怎样才是一个基本水平的java程序员?

    怎样才是一个基本水平的java程序员? 熟悉常用的数据结构,包括数组,链表,树,哈希表等. 熟悉结构化编程和面向对象编程. 能够阅读UML设计图,根据UML语义进行编码 了解RDBMS和SQL的使用, ...

  3. 寻找下一个结点 牛客网 程序员面试金典 C++ java Python

    寻找下一个结点 牛客网 程序员面试金典 C++ java Python 题目描述 请设计一个算法,寻找二叉树中指定结点的下一个结点(即中序遍历的后继). 给定树的根结点指针TreeNode* root ...

  4. 基本上每个应用程序领域的程序员都有使用 C++

    C++ 的使用基本上每个应用程序领域的程序员都有使用 C++. C++ 通常用于编写设备驱动程序和其他要求实时性的直接操作硬件的软件. C++ 广泛用于教学和研究. 任何一个使用苹果电脑或 Windo ...

  5. MVVM之旅(1)创建一个最简单的MVVM程序

    这是MVVM之旅系列文章的第一篇,许多文章和书喜欢在开篇介绍某种技术的诞生背景和意义,但是我觉得对于程序员来说,一个能直接运行起来的程序或许能够更直观的让他们了解这种技术.在这篇文章里,我将带领大家一 ...

  6. 郑晔谈 Moco 框架的开发:写一个好的内部 DSL ,写一个表达性好的程序

    作者:张龙 出处:http://www.infoq.com/cn/news/2013/07/zhengye-on-moco 郑晔谈Moco框架的开发:写一个好的内部DSL,写一个表达性好的程序 作者  ...

  7. 【Java】一个简单的Java应用程序

    简单记录,Java 核心技术卷I 基础知识(原书第10 版) 一个简单的Java应用程序"Hello, World!" Hello, World! Goodbye,World! 一 ...

  8. 一个简单的Java应用程序

    目录 一个简单的Java应用程序 首次运行结果 程序示例 运行结果 修改大小写之后的运行结果 程序示例 运行结果 关键字public 关键字class 类名及其命名规则 类名必须以字母开头 不能使用J ...

  9. Windows Phone 8初学者开发—第3部分:编写第一个Windows Phone 8应用程序

    原文 Windows Phone 8初学者开发—第3部分:编写第一个Windows Phone 8应用程序 原文地址: http://channel9.msdn.com/Series/Windows- ...

随机推荐

  1. vulkan的subpass

    最近在写 unity上 vulkan开subpass 似乎pc上subpass 的input attachement hlslcc_fbinput_0绑不上的 在手机上能绑上 说明subpass这个功 ...

  2. DevExpress Winforms使用大揭秘!那些你不了解的SvgImageBox控件

    DevExpress Winforms Controls 内置140多个UI控件和库,完美构建流畅.美观且易于使用的应用程序.无论是Office风格的界面,还是分析处理大批量的业务数据,DevExpr ...

  3. 阿里云申请免费SSL证书,并配置到Tomcat,实现https访问

    第一步:阿里云免费https证书安装  https://jingyan.baidu.com/article/fdffd1f8619481f3e98ca196.html 第二步:阿里云申请免费SSL证书 ...

  4. python查看文件夹下所有文件

    实现查看所有文件,重点在于文件夹下又有文件夹时怎样处理,这里通过os模块来解决. 方法一 : 通过递归实现遍历所有文件夹 import os def func(path): for i in os.l ...

  5. 4、获取Class中的构造函数

    4.获取Class中的构造函数 4.1 早期创建对象 早期创建对象,先根据被new的类的名称找寻该类的字节码文件,并加载进内存,并创建该字节码文件对象,并接着创建该接文件的对应的Person对象 co ...

  6. Appium自动化测试教程-自学网-adb命令

    adb命令: adb ( Android Debug Bridge)是一个通用命令行工具,其允许您与模拟器实例或连接的 Android 设备进行通信.它可为各种设备操作提供便利,如安装和调试应用. T ...

  7. P2168 [NOI2015]荷马史诗 k叉哈夫曼树

    思路:哈夫曼编码 提交:1次(参考题解) 题解:类似合并果子$QwQ$ 取出前$k$小(注意如果叶子结点不满的话要补全),合并起来再扔回堆里去. #include<cstdio> #inc ...

  8. springBoot怎样访问静态资源?+静态资源简介

    1.静态资源 怎样通过浏览器访问静态资源? 注意:不需要加static目录.因为只是告诉springboot目录,而不是静态资源路劲. 这时访问路径就需要加上/static

  9. vii

    #!/bin/bash ] then vi exit fi ] then echo "参数太多了!" exit fi ] # 文件已存在,一律直接打开不作任何处理 then exi ...

  10. Java集合总结(一):列表和队列

    java中的具体容器类都不是从头构建的,他们都继承了一些抽象容器类.这些抽象容器类,提供了容器接口的部分实现,方便具体容器类在抽象类的基础上做具体实现.容器类和接口的关系架构图如下: 虚线框表示接口, ...