一个PHPer的规划

前言:学PHP过期了吗?PHP开发人员如何快速成长?怎么进行职业规划?特别是近几年很是火热的人工智能,机器学习,区块链技术等等,这多少会带动一些人盲目跟风,迷茫等,下面是PHP大牛魏永强带来的一篇根据本身多年的php工做经验,带来关于php和职业规划方面的思考!php

将从如下几个方面来讲明:

PHP 程序员的现状;

什么致使了程序员的分层;

高级工程师须要达到的要求;

程序员如何快速成长;

PHP 程序员渴望的蜕变;

干货,你须要的转型路线;

总结。css

PHP 程序员的现状

现阶段大部分 PHP 程序员都比较迷茫,初级 PHPer 以为这个行业难,中级 PHPer 大都想经过学习来提高本身,但每每会陷入今天追这个技术明天追那个技术的一种状况,高级 PHPer 大都有了本身的知识体系,部分在架构的位置。

程序员对本身的行业认识是很是重要的,也就是职业生涯规划。这是一个比较难的问题,由于要对本身的职业有所规划,首先要充分了解行业。这一点和当初为何选择作程序员有很大的关系。

通常来讲,若是你很难熬过开发生涯的入门期,可能说明你不适合这个行业;若是你没法经过蜕变期,你可能就不会有太大的成就。

每一个人开发生涯的入门各有不一样,一部分人是对于这个行业感兴趣本身心中也有一个目标,虽然没有清晰的职业规划,但至少会有一个该领域的偶像。还有一部分人是通过3、四个月的培训进入这个行业的。

我以前用重庆互联网学院中某家培训机构(YMSD)的数据分析过,在这部分培训进入行业的学生中 2 年后还在这个岗位继续发展的学生仅仅占有 20%。也就是说 80% 的学生花钱花时间只是作了回陪跑员。这也从侧面说明,若是咱们进入这个行业,除了指望让本身可以挣到不少钱,也必须对之后的发展有个预期。

通常来讲,经过培训入行的开发人员在工做中会走得很是艰难,由于他们没有技术路线的体系目标,而在线下培训机构中接受的是一味地模仿,很是缺少创新能力。并且据我所知,大部分线下培训机构的课程体系至少和企业场景脱节 5 年。因此这部分程序员更应该努力改变本身的现状,明确本身的处境。
html

什么致使了程序员分层

程序员分层是一个很是明显的问题,在公司里直接的体现就是同一类程序员的职位差异很是大或者薪资待遇很是大。

致使这种分层的缘由是什么?

第一类缘由就是程序开发者的工做年限。

其实工做年限也不是一个很是重要的因素,确实在以前的面试中,咱们遇到过工做年限只有一年可是很是优秀的开发者。但凡是使用求职软件时就会发现,几乎全部的职位描述里都有一个指标——工做经验年限。

为何有这个东西呢?由于公司招聘人员与众多求职者逐一沟通是很是耗时间、精力的,因此工做年限就是第一道门槛。

通常 1-3 年工做经验是一个层次,在北京通常薪资范围是 10-20k 之间;

3-5 年又是一个层次,在北京薪资范围是 15-25k;

5 年及以上又是多个层次。

固然,1-3 年的工做经验也可能得到 3-5 年工做经验同样的薪资待遇,这个主要看实力,咱们的 Chat 也主要是讨论这一部分的因素。

在以前的小节我已经说了程序员大概分为科班出身和半路出家的两类,我并非说科班出身的就必定会比半路出家的优秀,这彻底是两回事。只是科班出身表示他的知识面更广一些,因此其余人也应该注重知识面和基础功。

在此次 Chat 中我并无把问题指向到某一个语言,由于做为开发工程师太注重语言每每会成为本身的绊脚石。
前端

追语言的人

常常碰见这样的问题:和开发的朋友一块儿聊天,上回见面说在学习前端技术,一个月后见面又说在学习 Python,说仍是 Python 好用。再过一个月见面又说在研究 Go 语言,说 Go 语言之后必定是潮流。这一类人我把他们称之为 ‘追语言的人’。

记得不要盲目追随一门语言,由于你掌握任何一门高级语言后,对于语法的入门来讲都是很是快的,并且如今的语言的语义化很是友好,咱们学习及接触都很是容易。其实咱们最须要了解的是语言的特性。

好比说不少人想学习机器学习都去学习 Python 等,那咱们须要思考的是为何会选择 Python 语言,还有 R 语言、Java、JavaScript、C、C++、Scala 等。它有什么优点?

这样思考,当公司遇到其余比当前更为复杂的场景时,你就能知道这种特色的场景应该用什么样的语言及技术栈来解决。你对开发的认识就上升到了另外一个层面。
vue

自娱自乐的人

有种人就是重复的作一样的事情以为颇有成就感的,这样虽然没有大错,可是会致使咱们停滞不前。

常常能听见有人这么说:咱们公司事情少,作完就没事干了,很无聊。其实这就说明他放弃了本身成为更优秀的程序员的机会,学习是进步的阶梯。就算当前大家公司没有用这个技术,你也应该利用空闲时间去学习。

其实致使程序员分层的主要缘由就是学习的习惯。为何这样说?由于致使分层的最直接缘由是知识面,而知识面的造成须要不断学习,学习的效率也很关键。以前我从不少人口中听到他们抱怨技术主管的技术水平不如他们。这也是两个层次程序员不一样的表现吧,由于看待问题的角度不一样,没能将解决问题和提供方案二者的关系搞清楚。java

程序员如何快速成长

咱们主要是探讨,抛砖引玉。

首先咱们要看到的字眼是成长。

我以前带过一个程序员,他也是作了一年的开发了。我让他经过 User-Agent 来判断用户是否是在微信中访问的,结果他问我什么是 User-Agent。你们别以为好笑,其实不知道的人大有人在,为何呢?由于他们只注重于本身的 CURD 能力了。我不是说 CURD 很差,只是由于 CURD 就像了解 User-Agent 同样只是基础。

对于开发人员来讲了解计算机网络方面的知识很是重要,计算机相关专业毕业的都学习过计算机网络这门课程。非计算机专业也没有关系,最基本的 http 请求报文和相应报文的结构都应该了解一些,这些都是基础。

以前我在培训机构机械化时,我让学生背诵的面试题中还有 mysql 的 InnoDb 和 MyISAM 引擎的区别,每当看到学生回答一个支持事务一个不支持事务,而后看着领导高兴到想笑的表情时,我就想笑。

支持事务是一个区别,那我不须要支持事务,我使用 InnoDb 的引擎又有什么问题呢?因此我以为脱离场景谈知识点每每是程序员被归为底端序列的最直接缘由。

以上只是一个例子,只是说明学习也须要分场景。学习语言也是同样的,咱们要想一想为何不用当前的语言而要再选择一种新的语言。好比为何不用 PHP 作机器学习?可能说到这个问题不少人就想笑,‘PHP 是世界上最好的语言’(由于喜好因此容我自黑一下)。

可是咱们再来严肃的思考这个问题,请你思考一下。不少学习机器学习的人也是被潮流推着走,别人都学习 Python 来作及其学习那我也要学习 Python。固然人生苦短,你学习 Python 的选择是没有错的。在追着 Python 跑中不乏有一些 C、C++、Java 程序员。参考文章:初入Web开发,php、python和ruby应该学哪一个?

引用别人常常说的一句话 “几年前一帮人叫苦不迭的说 Java 要死了可是 Java 死了吗?” 别再看着语言杞人忧天了,你更应该学会的是选择语言。

固然招聘网站上,企业所需的程序员需掌握的语言种类,也是一部分程序员学习的方向。企业在选择一个语言的时候考虑的因素很是多,包括了以前项目所使用的语言状况、迁移的成本、人员培训成本、语言所耗费的硬件成本、人员沟通成本,最主要的是可否解决当前遇到问题的,以及解决问题须要耗费的时间。

因此快速成长须要咱们本身有主见地分场景来仔细探究技术细节,须要有极强的学习能力。
python

PHP 程序员渴望的蜕变

我同事的观点是这样的:PHP 程序员转型发展有两个方向,一个是更深层次的后端开发,能够熟悉 Go 或者 Java 语言而后找家这些语言相关的公司。例如在作 PHP 开发时不多有人去了解异步,协程,多线程等问题。另外一个是转向前端,前端也是一个竞争很是大的区域,并且前端须要学习的东西并不比后端少。

可能有些人说我要作全栈工程师,我和同事一致的观点是,别作一个样样都会,但样样都理解不深入的全栈工程师。

固然在这儿要给那些很是缺少安全感的程序员说一声。PHP 并不会死。

当前新浪、神马搜索、百度等公司都有使用 PHP 的场景并且设置了 PHP 的职位时,小公司就更没必要说了。在中小型、短平快的业务中,PHP 依旧是首选。由于 PHP 刚开始的特性就是快速的开发网络应用。你要追逐其余的语言也不是不可,可是基础必定要别忘了慢慢打牢靠。别让本身的知识体系成为一个虚胖的胖子。

另外,可能每一个程序员都想赶快投入到人工智能和机器学习中。若是你仍是想当这个领域的码农,那你能够看网上的各类文档教程来学习,像 TensorFlow 这种向外提供的 api 也比较多。若是你想在这个领域发展,仍是得首先把那些经典算法搞清楚。
mysql

干货,你须要的转型路线

根据程序员开发工做所处的产品层面,程序员分为两类,分别是前端工程师和后端工程师。如今对开发工程师的分类更繁多了。我就从前端和后端这两类中给你们分享。

其实 PHP 处于一个奇特的位置也是一件好事。有人说 PHP 是前端语言,有人说 PHP 是后端语言。这个界限也不是那么明显,解决表现层工做的语言咱们通常说是前端语言,主要看用 PHP 来处理什么层面的问题。

在你考虑转型以前,PHP 应该已经让你具备这些知识。

首先是 MVC 模式的理解,这个不难,可是要懂得从这一出发点去扩展。例如 MVVM、MVP 模式等等,要可以明白它们之间的区别,可是理论每每是比较单一的东西,记得要结合项目区理解。

还有一个须要掌握的知识就是 http 请求和响应,其实这个知识是咱们一直在用的可是不少人都搞不明白,例如咱们常常用浏览器的开发者模式在 Network 中点击某个请求就能够查看请求的 header。

以下图:react

640.png而后就是面向对象的思想,对面向对象,你们褒贬不一,尤为是愈来愈多的人对于函数式编程的推崇。其实二者各有优势,咱们须要的是真正的理解面向对象所带来的优点和不足。但愿 PHP 能让你理解各类类型的变量以及使用方法。

PHP 中有四种标量类型,分别为 boolean、integer、float、string;三种复合类型,分别为 array、object、callable; 两种特殊类型,分别为:resource、NULL,固然还提供了一些伪类型。

若是你掌握了以上的内容,那你在转型的道路上可能更为轻松一些。

首先来讲说向前端的转型。

若是要向前端转型,js 是必需要学习的。可是学习到什么程度呢?js 要学到什么程度也是你们最迷茫的一个问题。不少人可能会不断地啃 js 的语法。可是对于 js 这种知识点很是繁杂的东西,若是一直陷在语法中就得不偿失了。

其实最主要的仍是前端的思惟。在掌握了 js 的一些基本类型操做,包括字符串、数组、对象、json 的处理后,就能够去看看 vue.js 或者 react 这样的框架。推荐你们从 vuejs 开始,比较简单,容易入门。固然 html 和 css 的基本用法仍是须要了解的。在学习的过程当中看别人的项目很是重要,能够去 github 搜索 vue.js 的一些项目,看看别人是怎么实现的。

另外一种转型方向是转向服务端开发。

你须要选定一种比较经常使用的服务端开发语言。java 也好,go 也好,其余选择也很是多。从入门开始,若是有基础的程序员必定不要从厚厚的语法基础开始学习,由于这个过程很是浪费时间。在了解了最基本的语法后就能够开始选定一个框架来学习,在学习中发现问题,再回过头来学习语法。

在这儿选择很是多,我不具体说明了,只给你们一个建议。

不少程序员比较看好的是 go 语言,确实 go 语言相对其余语言来讲简单,工程化中可靠,并且有着自然的开发标准,goroutine 给服务器开发带来好处。在国内,七牛云很早就使用 go 语言了,如今不少大的公司也开始使用 go 语言解决部分问题。

因为人工智能和 python 的优点,不少人是走 python 路线的,可是若是走 python 路线,就请作好向数据挖掘、处理和计算的方向走。语言的选择见仁见智,最简单的依据就是看公司的需求程度。

在深刻服务端开发的路上须要了解的知识很是很是多,好比性能优化。不少人提到 redis 就是一句话,当作缓存来使用。这就是我前面提到的业务场景的问题,说明你所理解的业务场景太单一了,致使对于知识的认知不够。

固然还有通信机制的问题,相信不少人都很是陌生这些技术 MQ、Cron、RMI、RPC。我列举这些不是让你们立刻买几本书去学习。记住,在你想要去学习某个技术以前,必定要先创造一个场景。

程序员最须要的,也是每一个程序员最缺少的,就是交流。你们须要和其余程序员多交流、多交换意见,这样颇有利于本身的成长。git

总结互联网行业不是一个进入就能够高枕无忧的行业,你须要不断地学习,提高本身。想要进入这个行业的准程序员们也不要泄气,你要找到正确的方法和途径。不少线下的培训机构都稂莠不齐,请慎重选择。若是你学不会在网络中找资料,那就说明有问题了。由于如今网络资源这么发达,找资料是比较容易的。PHP 程序员不须要有太大的语言自己的危机感。快速成长的关键是要对本身有一个正确的认识,不盲目跟风。注意根据场景来学习,可以思考并解决场景中遇到的问题,解决或优化瓶颈问题。这个过程当中也是一个很好的学习过程。

相关文章
相关标签/搜索