首页   注册   登录
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
宝塔
V2EX  ›  求职

[上海] 5 年的 PHP 求内推~~~

  •  
  •   luckRay · 109 天前 · 1535 次点击
    这是一个创建于 109 天前的主题,其中的信息可能已经有所发展或是发生改变。
    技能如下:
    1.熟悉 PHP WEB 开发,PHP 面向对象编程,以及一些常用的设计模式。
    2.掌握 Mysql 语句、存储引擎、事务、索引(覆盖索引、联合索引等)、Mysql 一些底层的运行机制等。
    3.熟悉 Redis 数据结构(string、bitmaps、HyperLogLog 等), 同时掌握对 redis 分布式锁、消息队列、缓存的技术。
    4.熟练掌握 Linux 的使用,常用的命令(ps、top 等),可以 根据具体场景编译安装 LNMP 环境,
    对于负载均衡、LNMP 集群有一定的认识。
    5.掌握 TP 框架、YII2.0 框架的使用,了解 Laravel 框架等。
    6.熟悉前端技术 Html、CSS、Jquery 等技术。
    7.熟悉 Http 协议、浏览器缓存、xss 等 web 安全认识防御。
    8.掌握 Git、Gerrit、SVN 的使用。
    9. 对微服务架构有一定的认识,拥有大型分布式网站开发经验。

    学历:
    15 年统招 CS,本科毕业。

    详细信息在简历里、留下 [公司名 +联系方式] ,私发简历。
    20 回复  |  直到 2019-08-03 16:40:43 +08:00
        1
    usslss   109 天前
    鹅 15 年毕业的话这不是 4 年吗。
        2
    airect   108 天前
    5 年的技能和 2 年的差不多。。亮点在哪里 :doge
        3
    luckRay   108 天前
    @airect 那你觉得 5 年需要掌握哪些技能?
        4
    luckRay   108 天前   ♥ 1
    PHP 程序员的技术成长规划:

    第一阶段:基础阶段(基础 PHP 程序员) [基本上自学就可以完成,网上有很多的相关视频]

    重点:把 LNMP 搞熟练(核心是安装配置基本操作)

    目标:能够完成基本的 LNMP 系统安装,简单配置维护;能够做基本的简单系统的 PHP 开发;能够在 PHP 中型系统中支持某个 PHP 功能模块的开发。

    时间:完成本阶段的时间因人而异,有的成长快半年一年就过了,成长慢的两三年也有,此阶段要耐住心,低下头去写代码不要眼高手低,多搜集和整理相关问题的解决办法和借鉴他人的代码,要多看、多读、多写、多思考。

    1.Linux:

    基本命令、操作、启动、基本服务配置(包括 rpm 安装文件,各种服务配置等);

    会写简单的 shell 脚本和 awk/sed 脚本命令等。

    2.Nginx :

    做到能够安装配置 nginx+php,知道基本的 nginx 核心配置选项,

    知道 server/fastcgi_pass/access_log 等基础配置,

    目标是能够让 nginx+php_fpm 顺利工作。

    3.MySQL:

    会自己搭建 mysql,知道基本的 mysql 配置选项;

    知道 innodb 和 myisam 的区别,知道针对 InnoDB 和 MyISAM 两个引擎的不同配置选项;

    知道基本的两个引擎的差异和选择上面的区别;

    能够纯手工编译搭建一个 MySQL 数据库并且配置好编码等正常稳定运行;

    核心主旨是能够搭建一个可运行的 MySQL 数据库。

    4.PHP:

    基本语法数组、字符串、数据库、XML、Socket、GD/ImageMgk 图片处理等等;

    熟悉各种跟 MySQL 操作链接的 api ( mysql/mysqli/PDO),知道各种编码问题的解决;

    知道常规熟练使用的 PHP 框架( ThinkPHP、Zendframework、Yii、Yaf 等);

    了解基本 MVC 的运行机制和为什么这么做,稍微知道不同的 PHP 框架之间的区别;

    能够快速学习一个 MVC 框架。能够知道开发工程中的文件目录组织,有基本的良好的代码结构和风格,能够完成小系统的开发和中型系统中某个模块的开发工作。

    5.前端:

    如果条件时间允许,可以适当学习下 HTML/CSS/JS 等相关知识,知道什么 web 标准,div+css 的 web/wap 页面模式,知道 HTML5 和 HTML4 的区别;

    了解一些基本的前端只是和 JS 框架( jQuery 之类的);了解一些基本的 JavaScript 编程知识;

    (本项不是必须项,如果有时间,稍微了解一下是可以的,不过不建议作为重点,除非个人有强烈兴趣)

    6.系统设计:

    能够完成小型系统的基本设计,包括简单的数据库设计,能够完成基本的:浏览器 -> Nginx+PHP -> 数据库 架构的设计开发工作;

    能够支撑每天几十万到数百万流量网站的开发维护工作;

    第二阶段:提高阶段(中级 PHP 程序员)

    重点:提高针对 LNMP 的技能,能够更全面的对 LNMP 有熟练的应用。

    目标:能够随时随地搭建好 LNMP 环境,快速完成常规配置;

       能够追查解决大部分遇到的开发和线上环境的问题;

       能够独立承担中型系统的构架和开发工作;

       能够在大型系统中承担某个中型模块的开发工作;

    时间:在此阶段是因人而异,少则三年,多则十年或者一辈子也过不去这个槛,此阶段要少复制黏贴,基于自己的经验形成自己的代码风格至关重要。

    1.Linux:

    在第一阶段的基础上面,能够流畅的使用 Shell 脚本来完成很多自动化的工作;

    awk/sed/perl 也操作的不错,能够完成很多文本处理和数据统计等工作;

    基本能够安装大部分非特殊的 Linux 程序(包括各种库、包、第三方依赖等等,比如 MongoDB/Redis/Sphinx/Luncene/SVN 之类的);

    了解基本的 Linux 服务,知道如何查看 Linux 的性能指标数据,知道基本的 Linux 下面的问题跟踪等。

    2.Nginx:

    在第一阶段的基础上面,了解复杂一些的 Nginx 配置;包括 多核配置、events、proxy_pass,sendfile/tcp_*配置,知道超时等相关配置和性能影响;

    知道 nginx 除了 web server,还能够承担代理服务器、反向静态服务器等配置;知道基本的 nginx 配置调优;知道如何配置权限、编译一个 nginx 扩展到 nginx ;

    知道基本的 nginx 运行原理( master/worker 机制,epoll ),知道为什么 nginx 性能比 apache 性能好等知识;

    3.MySQL/MongoDB:

    在第一阶段的基础上面,在 MySQL 开发方面,掌握很多小技巧,包括常规 SQL 优化( group by/order by/rand 优化等);

    除了能够搭建 MySQL,还能够冷热备份 MySQL 数据,还知道影响 innodb/myisam 性能的配置选项(比如 key_buffer/query_cache/sort_buffer/innodb_buffer_pool_size/innodb_flush_log_at_trx_commit 等),

    也知道这些选项配置成为多少值合适;另外也了解一些特殊的配置选项,比如  知道如何搭建 mysql 主从同步的环境,知道各个 binlog_format 的区别;

    知道 MySQL 的性能追查,包括 slow_log/explain 等,还能够知道基本的索引建立处理等知识;

    原理方面了解基本的 MySQL 的架构( Server+存储引擎),知道基本的 InnoDB/MyISAM 索引存储结构和不同(聚簇索引,B 树);

    知道基本的 InnoDB 事务处理机制;了解大部分 MySQL 异常情况的处理方案(或者知道哪儿找到处理方案)。

    条件允许的情况,建议了解一下 NoSQL 的代表 MongoDB 数据库,顺便对比跟 MySQL 的差别,同事能够在合适的应用场景安全谨慎的使用 MongoDB,知道基本的 PHP 与 MongoDB 的结合开发。

    4.Redis/Memcached:

    在大部分中型系统里面一定会涉及到缓存处理,所以一定要了解基本的缓存;

    知道 Memcached 和 Redis 的异同和应用场景,能够独立安装 Redis/Memcached,了解 Memcahed 的一些基本特性和限制,比如最大的 value 值,知道 PHP 跟他们的使用结合;

    Redis 了解基本工作原理和使用,了解常规的数据类型,知道什么场景应用什么类型,了解 Redis 的事务等等。

    原理部分,能够大概了解 Memcached 的内存结构( slab 机制),redis 就了解常用数据类型底层实现存储结构( SDS/链表 /SkipList/HashTable )等等,顺便了解一下 Redis 的事务、RDB、AOF 等机制更好

    5.PHP:

    除了第一阶段的能力,安装配置方面能够随意安装 PHP 和各种第三方扩展的编译安装配置;

    了解 php-fpm 的大部分配置选项和含义(如 max_requests/max_children/request_terminate_timeout 之类的影响性能的配置),知道 mod_php/fastcgi 的区别;

    在 PHP 方面已经能够熟练各种基础技术,还包括各种深入些的 PHP,包括对 PHP 面向对象的深入理解 /SPL/语法层面的特殊特性比如反射之类的;

    在框架方面已经阅读过最少一个以上常规 PHP MVC 框架的代码了,知道基本 PHP 框架内部实现机制和设计思想;

    在 PHP 开发中已经能够熟练使用常规的设计模式来应用开发(抽象工厂 /单例 /观察者 /命令链 /策略 /适配器 等模式);

    建议开发自己的 PHP MVC 框架来充分让开发自由化,让自己深入理解 MVC 模式,也让自己能够在业务项目开发里快速升级;

    熟悉 PHP 的各种代码优化方法,熟悉大部分 PHP 安全方面问题的解决处理;熟悉基本的 PHP 执行的机制原理( Zend 引擎 /扩展基本工作机制);

    6.C/C++:

    开始涉猎一定的 C/C++语言,能够写基本的 C/C++代码,对基本的 C/C++语法熟悉(指针、数组操作、字符串、常规标准 API )和数据结构(链表、树、哈希、队列)有一定的熟悉下;

    对 Linux 下面的 C 语言开发有基本的了解概念,会简单的 makefile 文件编写,能够使用简单的 GCC/GDB 的程序编译简单调试工作;对基本的网络编程有大概了解。(本项是为了向更高层次打下基础)

    7.前端:

    在第一阶段的基础上面,熟悉基本的 HTTP 协议(协议代码 200/300/400/500,基本的 HTTP 交互头);

    条件允许,可以在深入写出稍微优雅的 HTML+CSS+JavaScript,或者能够大致简单使用某些前端框架( jQuery/YUI/ExtJS/RequireJS/BootStrap 之类);

    如果条件允许,可以深入学习 JavaScript 编程,比如闭包机制、DOM 处理;再深入些可以读读 jQuery 源码做深入学习。(本项不做重点学习,除非对前端有兴趣)

    8.系统设计:

    能够设计大部分中型系统的网站架构、数据库、基本 PHP 框架选型;

    性能测试排查处理等;能够完成类似:浏览器 -> CDN(Squid) -> Nginx+PHP -> 缓存 -> 数据库 结构网站的基本设计开发维护;

    能够支撑每天数百万到千万流量基本网站的开发维护工作;

    第三阶段:高级阶段(高级 PHP 程序员)

    重点:除了基本的 LNMP 程序,还能够在某个方向或领域有深入学习。(纵深维度发展)

    目标:除了能够完成基本的 PHP 业务开发,还能够解决大部分深入复杂的技术问题,并且可以独立设计完成中大型的系统设计和开发工作;

            自己能够独立 hold 深入某个技术方向,在这块比较专业。(比如在 MySQL、Nginx、PHP、Redis 等等任一方向深入研究)

    时间:无限期~~~~~~~ [多语言,多思路的扩展启发尤为重要]

    1.Linux:

    除了第二阶段的能力,在 Linux 下面除了常规的操作和性能监控跟踪,还能够使用很多高级复杂的命令完成工作( watch/tcpdump/starce/ldd/ar 等);

    在 shell 脚本方面,已经能够编写比较复杂的 shell 脚本(超过 500 行)来协助完成很多包括备份、自动化处理、监控等工作的 shell ;对 awk/sed/perl 等应用已经如火纯青,能够随意操作控制处理文本统计分析各种复杂格式的数据;

    对 Linux 内部机制有一些了解,对内核模块加载,启动错误处理等等有个基本的处理;同时对一些其他相关的东西也了解,比如 NFS、磁盘管理等等;

    2.Nginx:

    在第二阶段的基础上面,已经能够把 Nginx 操作的很熟练,能够对 Nginx 进行更深入的运维工作,比如监控、性能优化,复杂问题处理等等;看个人兴趣,更多方面可以考虑侧重在关于 Nginx 工作原理部分的深入学习,主要表现在阅读源码开始,比如具体的 master/worker 工作机制,Nginx 内部的事件处理,内存管理等等;

    同时可以学习 Nginx 扩展的开发,可以定制一些自己私有的扩展;同时可以对 Nginx+Lua 有一定程度的了解,看看是否可以结合应用出更好模式;

    这个阶段的要求是对 Nginx 原理的深入理解,可以考虑成为 Nginx 方向的深入专业者。

    3.MySQL/MongoDB:

    在第二阶段的基础上面,在 MySQL 应用方面,除了之前的基本 SQL 优化,还能够在完成一些复杂操作,比如大批量数据的导入导出,线上大批量数据的更改表结构或者增删索引字段等等高危操作;

    除了安装配置,已经能够处理更多复杂的 MySQL 的问题,比如各种问题的追查,主从同步延迟问题的解决、跨机房同步数据方案、MySQL 高可用架构等都有涉及了解;对 MySQL 应用层面,对 MySQL 的核心关键技术比较熟悉,比如事务机制(隔离级别、锁等)、对触发器、分区等技术有一定了解和应用;对 MySQL 性能方面,有包括磁盘优化( SAS 迁移到 SSD )、服务器优化(内存、服务器本身配置)、

    除了二阶段的其他核心性能优化选项( innodb_log_buffer_size/back_log/table_open_cache/thread_cache_size/innodb_lock_wait_timeout 等)、连接池软件选择应用,对 show *( show status/show profile )类的操作语句有深入了解,能够完成大部分的性能问题追查;

    MySQL 备份技术的深入熟悉,包括灾备还原、对 Binlog 的深入理解,冷热备份,多 IDC 备份等;

    在 MySQL 原理方面,有更多了解,比如对 MySQL 的工作机制开始阅读部分源码,比如对主从同步(复制)技术的源码学习,或者对某个存储引擎( MyISAM/Innodb/TokuDB )等等的源码学习理解,如果条件允许,可以参考 CSV 引擎开发自己简单的存储引擎来保存一些数据,增强对 MySQL 的理解;

    在这个过程,如果自己有兴趣,也可以考虑往 DBA 方向发展。MongoDB 层面,可以考虑比如说在写少读多的情况开始在线上应用 MongoDB,或者是做一些线上的数据分析处理的操作,具体场景可以按照工作来,不过核心是要更好的深入理解 RMDBS 和 NoSQL 的不同场景下面的应用,如果条件或者兴趣允许,可以开始深入学习一下 MongoDB 的工作机制。

    4.Redis/Memcached:

    在第二阶段的基础上面,能够更深入的应用和学习。因为 Memcached 不是特别复杂,建议可以把源码进行阅读,特别是内存管理部分,方便深入理解; Redis 部分,可以多做一些复杂的数据结构的应用( zset 来做排行榜排序操作 /事务处理用来保证原子性在秒杀类场景应用之类的使用操作);

    多涉及 aof 等同步机制的学习应用,设计一个高可用的 Redis 应用架构和集群;建议可以深入的学习一下 Redis 的源码,把在第二阶段积累的知识都可以应用上,特别可以阅读一下包括核心事件管理、内存管理、内部核心数据结构等充分学习了解一下。

    如果兴趣允许,可以成为一个 Redis 方面非常专业的使用者。

    5. PHP:

    作为基础核心技能,我们在第二阶段的基础上面,需要有更深入的学习和应用。从基本代码应用上面来说,能够解决在 PHP 开发中遇到 95%的问题,了解大部分 PHP 的技巧;对大部分的 PHP 框架能够迅速在一天内上手使用,并且了解各个主流 PHP 框架的优缺点,能够迅速方便项目开发中做技术选型;

    在配置方面,除了常规第二阶段会的知识,会了解一些比较偏门的配置选项( php auto_prepend_file/auto_append_file ),包括扩展中的一些复杂高级配置和原理(比如 memcached 扩展配置中的 memcache.hash_strategy、apc 扩展配置中的 apc.mmap_file_mask/apc.slam_defense/apc.file_update_protection 之类的);

    对 php 的工作机制比较了解,包括 php-fpm 工作机制(比如 php-fpm 在不同配置机器下面开启进程数量计算以及原理),对 zend 引擎有基本熟悉( vm/gc/stream 处理),阅读过基本的 PHP 内核源码(或者阅读过相关文章),对 PHP 内部机制的大部分核心数据结构(基础类型 /Array/Object )实现有了解,对于核心基础结构( zval/hashtable/gc )有深入学习了解;

    能够进行基本的 PHP 扩展开发,了解一些扩展开发的中高级知识( minit/rinit 等),熟悉 php 跟 apache/nginx 不同的通信交互方式细节( mod_php/fastcgi );除了开发 PHP 扩展,可以考虑学习开发 Zend 扩展,从更底层去了解 PHP。

    6.C/C++:

    在第二阶段基础上面,能够在 C/C++语言方面有更深入的学习了解,能够完成中小型 C/C++系统的开发工作;

    除了基本第二阶段的基础 C/C++语法和数据结构,也能够学习一些特殊数据结构( b-tree/rb-tree/skiplist/lsm-tree/trie-tree 等)方便在特殊工作中需求;

    在系统编程方面,熟悉多进程、多线程编程;多进程情况下面了解大部分多进程之间的通信方式,能够灵活选择通信方式(共享内存 /信号量 /管道等);

    多线程编程能够良好的解决锁冲突问题,并且能够进行多线程程序的开发调试工作;

    同时对网络编程比较熟悉,了解多进程模型 /多线程模型 /异步网络 IO 模型的差别和选型,熟悉不同异步网络 IO 模型的原理和差异( select/poll/epoll/iocp 等),并且熟悉常见的异步框架( ACE/ICE/libev/libevent/libuv/Boost.ASIO 等)和使用,如果闲暇也可以看看一些国产自己开发的库(比如 muduo );同时能够设计好的高并发程序架构( leader-follow/master-worker 等);

    了解大部分 C/C++后端 Server 开发中的问题(内存管理、日志打印、高并发、前后端通信协议、服务监控),知道各个后端服务 RPC 通信问题( struct/http/thirft/protobuf 等);

    能够更熟络的使用 GCC 和 GDB 来开发编译调试程序,在线上程序 core 掉后能够迅速追查跟踪解决问题;

    通用模块开发方面,可以积累或者开发一些通用的工具或库(比如异步网络框架、日志库、内存池、线程池等),不过开发后是否应用要谨慎,省的埋坑去追 bug ;

    7.前端:

    深入了解 HTTP 协议(包括各个细致协议特殊协议代码和背后原因,比如 302 静态文件缓存了,502 是 nginx 后面 php 挂了之类的);

    除了之前的前端方面的各种框架应用整合能力,前端方面的学习如果有兴趣可以更深入,表现形式是,可以自己开发一些类似 jQuery 的前端框架,或者开发一个富文本编辑器之类的比较琐碎考验 JavaScript 功力;

    8.其他领域语言学习:

    在基础的 PHP/C/C++语言方面有基本积累,建议在当前阶段可以尝试学习不同的编程语言,看个人兴趣爱好,脚本类语言可以学学 Python/Ruby 之类的,函数式编程语言可以试试 Lisp/Haskell/Scala/Erlang 之类的,静态语言可以试试 Java/Golang,数据统计分析可以了解了解 R 语言,如果想换个视角做后端业务,可以试试 Node.js 还有前面提到的跟 Nginx 结合的 Nginx_Lua 等。

    学习不同的语言主要是提升自己的视野和解决问题手段的差异,比如会了解除了进程 /线程,还有轻量级协程;比如在跨机器通信场景下面,Erlang 的解决方案简单的惊人;比如在不想选择 C/C++的情况下,还有类似高效的 Erlang/Golang 可用等等;主要是提升视野。

    9.其他专业方向学习:

    在本阶段里面,会除了基本的 LNMP 技能之外,会考虑一些其他领域知识的学习,这些都是可以的,看个人兴趣和长期的目标方向。目前情况能够选择的领域比较多,比如、云计算(分布式存储、分布式计算、虚拟机等),机器学习(数据挖掘、模式识别等,应用到统计、个性化推荐),自然语言处理(中文分词等),搜索引擎技术、图形图像、语音识别等等。除了这些高大上的,也有很多偏工程方面可以学习的地方,比如高性能系统、移动开发( Android/IOS )、计算机安全、嵌入式系统、硬件等方向。

    10.系统设计:

    系统设计在第二阶段的基础之上,能够应用掌握的经验技能,设计出比较复杂的中大型系统,能够解决大部分线上的各种复杂系统的问题,完成类似 浏览器 -> CDN -> 负载均衡 ->接入层 -> Nginx+PHP -> 业务缓存 -> 数据库 -> 各路复杂后端 RPC 交互(存储后端、逻辑后端、反作弊后端、外部服务) -> 更多后端 酱紫的复杂业务;能够支撑每天数千万到数亿流量网站的正常开发维护工作。
        5
    wo642436249   107 天前 via Android
    哈哈,看到有人说你的技能和 2 年的差不多,我想说,那让那个人找个 2 年的跟你比比就知道了😂我觉得会差距比较多
        6
    Agusalia   107 天前
    趣头条招 PHP 25K-50K 上海
    有意向的话简历请投: [email protected]
        7
    lygmqkl   107 天前
    @airect 介绍 2 个这样的 2 年经验给我用用? 注意看上面的 掌握,熟悉,了解对应的技能,别告诉我会用能写项目就叫掌握。。。呵呵
        8
    lygmqkl   107 天前
    @usslss 有能力的 大四就开始 做项目和实习了,所以 应该是 5 年 没错的。
        9
    airect   107 天前
    @lygmqkl 没意思,5 年更应该突出的是项目经验,项目中担任的角色,上面我的没毛病吧,是不是和两年的一样??掌握?技术专家了?通读源码了?现在简历不都有水分??当然楼主很实在的话,那没话说
        10
    airect   107 天前
    @lygmqkl 实习当然不能算经验,那我现在也 5 年了 呵呵
        11
    airect   107 天前
    @wo642436249 没没,我的本意只是说这个技能可以再改改,5 年肯定比 2 年更有经验的
        12
    luckRay   107 天前
    @airect 技能能说说怎么改吗?之前都是在做分布式电商平台的维护开发,不是外包做项目。
        13
    airect   107 天前
    @luckRay 我。。比较水,只能说突出亮点,如果背景还可以,拿到面试应该没问题,背景一般就要突出自己的亮点。而且技能上有提,面试大概率都会被问,所以提到的技能都应该了解深入的差不多,祝顺利。
        14
    bestkayle   107 天前
    能坚持写 5 年 PHP 也是厉害哈。
        15
    jackli326   106 天前
    DU APP&JRTT 需要,靠谱,流程快,请发送邮箱 [email protected]
        16
    luckRay   106 天前
    @jackli326 已经发了,请查收下!!!
        17
    Agusalia   106 天前
    趣头条招 PHP,简历请投: [email protected]
        18
    luckRay   106 天前
    @Agusalia 之前在 boss 投过 趣头条,没啥消息。
        19
    doublie   105 天前
    PHP3 年,向大佬学习
        20
    luckRay   104 天前
    @doublie 我是 PHP 菜鸟,刚入门的。
    关于   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   897 人在线   最高记录 5043   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.3 · 23ms · UTC 19:56 · PVG 03:56 · LAX 11:56 · JFK 14:56
    ♥ Do have faith in what you're doing.