PHP全栈开发工程师需要一些啥样的技能

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了PHP全栈开发工程师需要一些啥样的技能相关的知识,希望对你有一定的参考价值。

正在以php程序为主要工作,并正在进行新产品的研发.可以同时使用C+/perl等辅助提高PHP程序性能的人是PHP工程师. 参考技术A 1.环境搭建
对于新人来讲,完全没有必要把心思花在搭建环境这件事上。在实际的项目中,绝大多数都是运行在Linux上,在Linux上通过几条命令就可以解决的问题,但是在windows上就需要花很大的心思来一点点配置环境,但是新人直接学习linux也是需要花费精力的。所以在学习初期,完全建议采用集成环境来开发,把全部的心思放在学习语法上面。
在此推荐XAMPP、AppServ、PHPStudy、WampServer等集成环境。

2.前端基础知识
在这个阶段,需要学习html+css,同时理解web网站开发的基本原理,能够自己搭建静态的网页基本上就可以了。有很多人建议新人去学习javascript、jQuery之类的,基本上可以说是误人子弟了,对于一个新人来讲基本上属于对牛弹琴,上来就整这些,学的不好估计严重影响学习进度和学习信心,走火入魔,弄得好了没准也就变成前端程序员了。
3.php基础语法
基础语法大概包括下面这些内容:php标记、注释、变量、数据类型、常量、表达式、流程控制、函数、错误处理、session、运算符、命名空间、包括php中提供的常用函数等等。
需要注意的是,在这个阶段中很多的新手小白们总是觉得能看的懂别人的代码,但是自己却写不出什么来,其实存在这种情况很正常,不需要过于纠结,基本上在这个阶段都是一些基本语法,无非就是多写多记,自己也可以在网上多找一些小练习来练练手,通过这些小玩意来磨练自己对于基础知识的掌握程度。
4.面向过程阶段
在这一阶段,可以学习下mysql的操作以及PHP如何操作MySQL,自己可以尝试着写一些例如记事本、分页、通过session等等写个登陆注册等等简单的实例,后期再补充个GD库来写验证码,基本上就可以了。
当掌握的差不多,就可以尝试着写一些例如购物商城,论坛贴吧等等项目。
5.php面向对象

在这一阶段基本上就要进入到php的核心语法升级阶段,从基础的面向过程开发升级到面向对象开发。在这一阶段,你需要弄清楚类、对象、属性、方法、访问限制、自动加载、析构函数和构造函数、继承、范围解析操作符、静态、抽象类、对象接口、Trait、匿名类、重载、魔术方法、遍历对象、Final、对象克隆、比较、类型约束和静态绑定、对象序列化等等。
在这需要注意的是,目前php还是建议看一些php7的内容,可以在网上找些资料,来帮助自己掌握php7的新内容。
同时,在这一个阶段需要理解MVC,还要掌握smarty等等,后期可以在学习一下php一些设计模式用来提高自己的逼格。
6.再次学习下前端的玩意
到了这个阶段,基本上就可以花些心思来深入学习下前端的内容,例如JavaScript 深层次的内容,例如玩一玩ES6、ES7,研究一下jQuery的源码,学习了解下Bootstrap等等基本上就足够了。
7.php工作进阶
到了这个阶段,完全可以自己深入学习下php的框架,最常见的ThinkPHP、Laravel等等,通过深入学习框架来体会实际项目的开发。同时最重要的是一定要写两个项目练练手,类型无所谓,一定要写巩固所学。
8.linux
学到这,可以尝试着搭建个虚拟机或者自己买个云服务器玩玩linux,体验下linux下的开发,可以将之前的项目一点点移植到linux上,同时一定要把linux的环境搭建和基础操作玩熟。这些都是一个PHPer必备的。
9.为了应付找工作而需要额外掌握的小玩意
学到这,其实已经可以应付工作了,但是目前很多公司在招聘的时候还是要求掌握一些前端的高级玩具,例如Vue,例如React Native等等。同时可以尝试着了解一些微信开发等等。
10.了解并尝试并发解决方案
对于一个有逼格的PHPer,怎么能不了解并发呢,一定要学习一些高并发的框架,学一些NoSQL,Swoole技术、keepalived技术等多项不同的技术,了解服务器集群下如何提供效率,全面的了解一下PHP的socket、进程、线程、协程等技术。建议使用Redis、RockMQ写一个大并发的、多服务器的秒杀出来。

学习Python在Linux运维上的应用应该看哪些书 啥样的学习路线

参考技术A 先想想你用python在运维这快用来做什么,然后找对对应的书就行,python无所不能,不用管在某个职位上主要做什么,关键你看python玩的熟练与否。本回答被提问者采纳 参考技术B Python岗位有哪些呢?主要的岗位有这些:
Python全栈开发工程师(10k-20K)
Python运维开发工程师(15k-20K)
Python高级开发工程师(15k-30K)
Python大数据工程师(15K-30K)
Python机器学习工程师(15k-30K)
Python架构师(20k-40k)
目前应用最多的:全栈开发、数据分析、运维开发,大家知道他们分别的要求是什么吗?
我们来看三个岗位要求:
岗位1:任职要求
1.计算机、软件相关专业本科或以上学历,3年以上工作经验;
2.熟悉python、JS开发语言;
3.具有MySQL数据库设计与优化能力,熟悉mongoDB、mc、redis等一种以上;
4.熟悉Linux/Unix,能进行shell编程;
5.具有良好的学习能力,时间和流程意识,沟通能力、团队合作
岗位定义:Python运维开发
岗位2:职位要求
1,熟悉 Python 编程;
2,熟悉 Linux 系统;
3,熟悉 shell 编程;
4,了解 django/web.py/flask 框架一种及以上;
5,有一定的 Web 后端开发经验,熟悉前后端分离的开发模式
熟悉关系型数据库的使用与基本设计优化方法,了解常见的 NoSQL 数据库如MongoDB, Redis等;
6,良好的编码风格及测试习惯
加分项:
在 GitHub 上有开源项目
岗位定义:Python全栈开发
岗位3:任职资格
1、具有python开发数据处理软件的经验;
2、精通Python,掌握numpy,scipy,matplotlib,pandas等数据处理方面常用的第三方python库;
3、熟悉至少一种Sql数据库 (mysql/ sqlserver/oracle);
4、热爱编程、具有良好的代码风格;
5、做事具有条理性,具有良好的自学能力、分析问题以及解决问题的能力。
岗位定义:Python数据分析
那么,大家来看看,这三个岗位基本要求里面,有哪些共性和不同?以及学习什么内容:
第一层:python的基本语法和标准库
既然你要会python开发,那么语法基础和库是最基本的。
第二层:Linux基础
全栈和运维涉及linux服务器的操作,那需要shell编程和linux基础操作的基础能力。数据分析其实就没有这一层,涉及是数据采集,也就是爬虫。全栈对linux基础要求少一些,而运维需要更多,还需要一些DNS/DHCP之类的,很多企业也需要一定的运维工作年限。
第三层:数据库操作
数据库操作:SQL、Nosql,数据的储存和处理,就是常见的增删改查。
第四层:web前端
前端的实现,包括web前端技能,了解或熟悉HTML、CSS、Javascript,Bootstrap,jq,nodejs。全栈就不说了,运维开发涉及到可视化的界面。
第五层:基础python的框架和库
基础python的框架和库做各种实现,需要开发一个网站或者做一个自动化运维监控,数据分析师基于一些可视化的库和数据分析的库。
第六层:算法设计和求职准备
学一个技术和进阶的核心是算法设计,最重要的是:求职
——————————
来说说主要的几个在Linux运维中的应用吧:
第一、Python开发的jumpserver跳板机
jumpserver跳板机是一款由Python编写开源的跳板机(堡垒机)系统,实现了跳板机应有的功能。基于ssh协议来管理,客户端无需安装agent。
企业主要用于解决:可视化安全管理
特点:完全开源,GPL授权
Python编写,容易再次开发
实现了跳板机基本功能:认证、授权、审计 ,集成了Ansible,批量命令等、支持WebTerminal
Bootstrap编写,界面美观 ,自动收集硬件信息 ,录像回放 、命令搜索 、实时监控 、批量上传下载
第二:Python开发的Magedu分布式监控系统
以自动化运维视角为出发点,自动化功能、监控告警、性能调优,结合saltstack实现自动化配置管理等内容进行了全方位的深入剖析。
企业主要用于解决:自动化监控常用系统服务、应用、网络设备等
监控系统需求讨论:
监控常用系统服务、应用、网络设备等?一台主机上可监控多个不同服务、不同服务的监控间隔可不同?同一个服务在不同主机上的监控间隔、报警阈值可不同?告警级别?数据可视化,如何做出简洁美观的用户界面?如何实现单机支持5000+机器监控需求?采取何种通信方式?主动、被动?
第三:Python开发的Magedu的CMDB
cmdb的开发需要包含三部分功能:采集硬件数据、API、页面管理。
企业主要用于解决:自动化管理笔记本、路由器等常见设备的日常使用
执行服务的过程如下:服务器的客户端采集硬件数据,然后将硬件信息发送到API,API负责将获取到的数据保存到数据库中,后台管理程序负责对服务器信息的配置和展示。
第四:Python开发的任务调度系统
Python任务调度系统的multiprocessing模块不但支持多进程,其中managers子模块还支持把多进程分布到多台机器上。
企业主要用于解决:自动化把一个服务进程分布到其他多个机器的多个进程中
一个服务进程可以作为调度者,将任务分布到其他多个机器的多个进程中,依靠网络通信。想到这,就在想是不是可以使用此模块来实现一个简单的作业调度系统。
第五:Python运维流程系统
使用python语言编写的调度和监控工作流的平台内部用来创建、监控和调整数据管道。任何工作流都可以在这个使用Python来编写的平台上运行。
企业主要用于解决:自动化创建、监控和调整数据管道
是一种允许工作流开发人员轻松创建、维护和周期性地调度运行工作流(即有向无环图或成为DAGs)的工具。这些工作流包括了如数据存储、增长分析、Email发送、A/B测试等等这些跨越多部门的用例。
这个平台拥有和 Hive、Presto、MySQL、HDFS、Postgres和S3交互的能力,并且提供了钩子使得系统拥有很好地扩展性。除了一个命令行界面,该工具还提供了一个基于Web的用户界面让您可以可视化管道的依赖关系、监控进度、触发任务等。
——————————
以上为常见的五种应用,请指点!
Python自动化主要帮助企业解决日常繁杂的工作事务,数据化、可视化的监控日常的业务运行情况。
欢迎一起交流和补充!

编辑于 2017-07-24
1添加评论
分享
收藏感谢收起

绅士喵

这个点刷知乎的肯定在偷懒~
1 人赞同了该回答
三个字,打基础。
学好Python以后,最好接触下Unix编程方面的东西。说到底,很多运维Linux功底很差,虽然功底差但是不表示解决不了问题。但是真的碰上一些核心问题,凭只会“玩玩”Linux的运维而言真是望尘莫及的。愿意接触编程语言给了你一个良好的开端,让你有了深入Linux的底气和资本。
Unix范畴的很多东西不光只是C能做的,Python也有良好的API封装。
发布于 2016-07-25
1添加评论
分享
收藏感谢

黄哥

黄哥Python、和你同在。
4 人赞同了该回答

请看看
1、先通过Python学会编程,达到自己能写代码解决问题的能力。
如何训练自己的编程思路
如何训练自己的编程思路 - 黄哥的文章 - 知乎专栏
部分免费Python免费视频
部分免费Python免费视频 - 通过python学会编程 - 知乎专栏
Linux运维人员如何学习python编程
Linux运维人员如何学习python编程 - 黄哥的文章 - 知乎专栏
2、将运维中shell写的脚本,全部改为Python 代码来完成。
3、运维中有很多需求,做需求分析,切分任务,找现成的库(搜google),自己再写一些代码,搞定它。代码写久了,你就称为运维自动化。。。

以上是关于PHP全栈开发工程师需要一些啥样的技能的主要内容,如果未能解决你的问题,请参考以下文章

红帽培训那么贵出来能够找到啥样的工作?

全栈工程师?

目前全栈工程师常用的软件都有哪些

全栈工程师

前端啥样的代码开发工具好用?

要成为一名大数据开发工程师必备哪些技能?