如何快速成长为不可或缺的技术人才之一,怎样成为技术人才
尤其是近几年很火的人工智能,机器学习等等,还有热门的python。这会驱使一部分人盲目跟风。事实上,开发工程师需要对自己的知识体系的扩展和转化有一个明确的目标。跟风是一件危险的事情,转型不同于失去自己所有的东西。我想通过程序员的诞生和成长来讨论如何选择。
PHP程序员的现状;
是什么导致了程序员的分层;
高级工程师需要满足的要求;
程序员如何快速成长;
PHP程序员渴望的蜕变;
干货,你需要的转型路线;
总结一下。
在这个阶段,大多数PHP程序员都很困惑。大三PHPERs觉得这个行业比较难。中级PHPERs大多想通过学习来提升自己,但往往会陷入今天追这个技术明天追那个技术的境地。高级PHPERs大多有自己的知识体系,有些知识体系在建筑学的地位。
一般来说,如果你很难熬过发展生涯的初级阶段,可能说明你不适合这个行业;如果过不了蜕变期,可能成就不大。
我之前分析过重庆互联网大学一家培训机构(YMSD)的数据,经过2年培训进入行业的学生,只有20%的人在这个岗位上继续发展。也就是说,80%的同学花钱花时间就跟跑者一样。这也从侧面说明,如果进入这个行业,除了赚大钱,还要对未来的发展有一个期待。
什么原因造成程序员分层?
这种分层的原因是什么?
其实工作年限并不是一个很重要的因素。的确,在之前的采访中,我们遇到过非常优秀的开发人员,他们只工作了一年。但是,当你使用求职软件时,你会发现几乎所有的职位描述都有一个——年工作经验的指标。
一般13年工作经验是一个级别,北京一般薪资区间在1020k之间;
35年是另一个层次,北京的薪资区间是1525k;
年及以上是多个级别。
上一节我已经说过,程序员大致可以分为两类:一类是经过训练的,一类是半路出家的。我不是说受过训练的人就一定比半路出家的人强。这些完全是两码事。只是他的专业背景意味着他的知识面更广,所以别人也要注重知识和基本功。
语言追逐者
切记不要盲从一门语言,因为在你掌握了任何一门高级语言之后,对于语法的引入都是非常快的,而且当前语言的语义也是非常友好的,所以我们学习和接触起来非常容易。其实我们最需要了解的是语言的特点。
这样想,当公司遇到其他比当前更复杂的场景时,你就能知道应该用什么样的语言和技术栈来解决这个特色场景。你对发展的理解又上升了一个层次。
有一种人,一遍又一遍的做着同样的事情,很有成就感。虽然没有大错,但是会导致我们停滞不前。
其实程序员分层的主要原因是他们的学习习惯。为什么这么说?因为分层最直接的原因是知识,而知识的形成需要不断的学习,学习的效率也很关键。之前听很多人抱怨技术总监的技术水平不如他们。这也是两个层次程序员的不同表现,因为他们看问题的角度不同,没有搞清楚解决问题和提供解决方案的关系。
我们主要讨论,抛砖引玉。
我之前带了一个程序员,他也做了一年开发。我让他判断用户是否通过UserAgent访问微信。结果他问我什么是UserAgent。别开玩笑了。其实有很多人不知道。为什么?因为他们只关注自己的凝乳能力。我不是说凝乳不好,只是因为凝乳和认识UserAgent一样只是一个基础。
之前在培训机构机械化的时候,我让学生背的面试题里就有mysql的InnoDb和MyISAM引擎的区别。每当看到有学生回答一个支持的交易和一个不支持的交易,然后看着领导开心的表情让我想笑,我就想笑。
以上只是一个例子,只是说明学习也是需要分场景的。学语言也是一样。我们应该思考为什么要选择一种新的语言而不是现在的语言。比如为什么不用PHP做机器学习?可能说到这个问题,很多人都想笑, PHP是世界上最好的语言(因为我喜欢,请让我黑自己)。
引用一句别人常说的话“几年前,一群人苦口婆心地抱怨Java快死了,但是Java死了吗?”不要担心语言,你应该学会选择语言。
所以快速成长需要我们以自己独立的观点和场景去细致的探索技术细节,需要有很强的学习能力。
我同事的观点是这样的:PHP程序员的转型发展有两个方向。一个是更深层次的后端开发。你可以熟悉Go或者Java语言,然后找一家和这些语言相关的公司。比如做PHP开发的时候,很少有人了解异步、协同、多线程等问题。另一种是转向前端,这也是一个竞争非常激烈的领域,前端需要学习的东西不比后端少。
当然,这里给那些非常没有安全感的程序员一个提示。PHP不会死。
另外,可能每个程序员都想涉足人工智能和机器学习。如果你还想做这个领域的码农,那么你可以看各种在线文档教程来学习,还有TensorFlow等很多API。想在这方面发展,还是要先搞清楚那些经典算法。
根据程序员工作的产品级别,程序员分为前端工程师和后端工程师两类。现在开发工程师的类别更多了。我从前端和后端给大家分享一下。
在你考虑转换之前,PHP应该已经给了你这些知识。
另一个需要掌握的知识是http请求和响应。事实上,这些知识一直被我们所用,但许多人并不理解。比如我们经常在浏览器的开发者模式下点击网络中的一个请求,查看请求的头。
PHP中有四种标量类型,分别是boolean、integer、float和string;三种复合类型,即数组、对象和可调用;两种特殊类型,即:resource和NULL,当然还提供了一些伪类型。
先说过渡到前端。
其实最重要的还是前端思维。在你掌握了js操作的一些基本类型之后,包括字符串、数组、对象和json的处理,你可以看看vue.js之类的框架或者react。建议你从vuejs开始,相对简单,容易上手。当然,html和css的基本用法还是要了解的。在学习的过程中多看看别人的项目是很重要的。可以去github搜一下vue.js的一些项目,看看别人是怎么实现的。
你需要选择一种通用的服务器端开发语言。Java或者go,还有很多其他选择。从一开始,有基础的程序员一定不要从厚厚的语法基础开始学,因为这个过程很浪费时间。了解了最基本的语法之后,就可以开始选择一个框架来学习,在学习中发现问题,然后再回去学习语法。
很多程序员更看好go语言。诚然,go语言比其他语言简单,在工程上可靠,有天然的开发标准。goroutine给服务器开发带来好处。在国内,七牛云很早就开始使用go语言,现在很多大公司也开始使用go语言来解决一些问题。
有很多知识是你深入到服务器端开发需要了解的,比如性能优化。很多人把redis当做一个词,把它当做一个缓存。这就是我前面说的业务场景的问题,说明你理解的业务场景过于单一,导致知识不足。
程序员最需要的,也是每个程序员最缺乏的,就是沟通。每个人都需要和其他程序员交流,交换意见,有利于自己的成长。
互联网不是一个进了就可以高枕无忧的行业。你需要不断学习,提升自己。
PHP程序员不需要对语言本身有太多的危机感。
p background color:# ffffff;font size:15px;颜色:# 555555;快速成长的关键是对自己有正确的认识,不盲目跟风。注重根据场景学习,能够思考和解决场景中遇到的问题,解决或优化瓶颈。这个过程也是一个很好的学习过程。