后端开发,我应该怎么提升自己的水平 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
请不要在回答技术问题时复制粘贴 AI 生成的内容
jimxu16
V2EX    程序员

后端开发,我应该怎么提升自己的水平

  jimxu16 2017-03-08 10:46:55 +08:00 7717 次点击
这是一个创建于 3197 天前的主题,其中的信息可能已经有所发展或是发生改变。

早上看到有人发的《我值多少钱》的帖子,好奇也想问一下自己的职业规划

实际工作时间一年半,在两家电商公司工作过,都是从事的后端开发

  • 熟练使用的语言: PHP
  • 其他学习过的语言:学校里学过 C\C++\Java\数据结构,自学过一丢丢 Javascript 和 node.js
  • 用过的框架: Yii 、 magento 、 Yaf
  • 用过的 IDE (或编辑器): PHPStorm 、 VSC 、 sublime 、 ATOM 、 MVIM
  • 用过的系统: Windows 系统、 OSX 系统(Linux 用不惯)
  • 主要工作: api 接口设计,与前端联调,线上 bug 修复
  • mysql 数据库的基本操作,增删查改 join 、 group 等,懂一些索引和慢查询的注意事项
  • 会使用的常用 shell 命令和常用的 Vim 命令,可以在服务器上查看 nginx 、 php 错误日志
  • 会搭建 nginx(apache)+mysql+php(+php-fpm)环境,错误日志,配置文件
  • redis 使用,配置,原子性,之前也用过 memecache

请问:我后面应该怎么进阶学习呢

第 1 条附言    2017-03-08 23:53:20 +08:00
补充下:现在工作的很开心,并不是要换工作所以给大家看简历,也很清楚自己不过是个刚入门的菜鸟罢了,也做好了被喷的准备。

先简单介绍下自己:我并不是科班出身,之前也是学的生物专业,偶然机会下被实验室安排搭建网站,看视频自学的 html,css,php,觉得有意思才决定从事 IT 行业,深知自己的基础跟科班的比起来是很差劲的。

之前第一份工作的时候,因为是校招并不要求马上投入工作,开始花了三个月时间从头开始学习的 PHP ,然后一直做的是 api 开发,公司是成熟的大公司,用的是 Yii, 平时是没有机会接触到数据库服务器的,个人感觉对自己的提升并不大,加上跟女朋友是异地,就在八个月后去上海重新找了一份工作。

第二份工作是在一家年轻的创业公司,主要用的是 magento 框架,后期也用了其他的 php 框架,基本上只要是跟后端开发相关的东西都能接触到。包括但不限于:直接在服务器上 debug ;直接写 sql 查询;处理慢查询;设计表;写数据库升级脚本;设计 redis key ;中间经历过双十一活动也涉及到高并发时的 redis 使用和 mysql 读写;队列的使用等等。截止到目前为止已经在公司待了十个月左右,在这十个月里更加热爱后端这份工作。

前面罗列出来的 ide 编辑器并不是觉得这些算技能什么的,想表达的是我是个十足的工具控,特别喜欢尝试各种软件。比如所有的编辑器,Alfred,oh my zsh 等等

发帖子的原因是由于平时工作的时候还是以业务为主,感觉自己有点偏离方向了,迷茫之下找大神指点迷津。所有的评论都看过了,一些评论虽然尖锐,初看是有点不舒服,但仔细琢磨确实很有道理,让我对今后的职业规划有了更清晰的认识,在此一并感谢。
35 条回复    2018-01-09 10:50:14 +08:00
cncqw
    1
cncqw  
   2017-03-08 11:29:12 +08:00   1
讲真你这顶多算初级水平啊
polun
    2
polun  
   2017-03-08 11:31:57 +08:00
vsc 不是 IDE 吧
fbtfonfp
    3
fbtfonfp  
   2017-03-08 11:33:08 +08:00
用不惯 Linux 怎么解决本地和线上环境差异问题。。
lwbjing
    4
lwbjing  
   2017-03-08 11:35:33 +08:00
把“用过”改成“研究过”..
wangxn
    5
wangxn  
   2017-03-08 11:37:45 +08:00 via Android
感觉没什么出彩的
iot
    6
iot  
   2017-03-08 11:43:35 +08:00   1
treedon
    7
treedon  
   2017-03-08 11:48:06 +08:00
linux 用不惯...
这一句话 就看出水平了
edison111cry
    8
edison111cry  
   2017-03-08 11:48:12 +08:00   1
想问一下楼主目前多少 K ,在哪个城市
amghost
    9
amghost  
   2017-03-08 12:13:52 +08:00 via iPhone   1
我也工作一年半,我带的新人和你差不多
kenshinhu
    10
kenshinhu  
   2017-03-08 12:37:03 +08:00
Linux 用不惯 这个可以说,在日常休闲娱乐中比较少用到 Linux ,
orderc
    11
orderc  
   2017-03-08 13:15:07 +08:00
消息队列, RPC , PHP 扩展开发等
yoke123
    12
yoke123  
   2017-03-08 13:18:30 +08:00
加油 v2 大佬多的是
别怕他们喷你技术差 相信自己能提升的
我感觉后面还是有人要喷你 默哀= =
rocksolid
    13
div class="sep3"> rocksolid  
   2017-03-08 13:42:23 +08:00
楼主最大的问题就是两个字“用过”
allgy
    14
allgy  
   2017-03-08 14:03:15 +08:00
加油~同后端猿=。=
caijihui11
    15
caijihui11  
   2017-03-08 14:09:21 +08:00
我最近面试了一些公司,问了技术牛,需要成为中高级 PHP 工程师 ,第一是得会数据建模,就是会设计好数据表,具有良好的可拓展性。第二的话,就是得懂原理,多看框架的源码
QQ2112755791
    16
QQ2112755791  
   2017-03-08 14:10:13 +08:00
还得慢慢提升自己,学精才好。
lecher
    17
lecher  
   2017-03-08 15:18:42 +08:00 via Android   5
貌似互联网都是讲分布式处理业务。
所以数据库建模和业务设计都要考虑可以分布式部署。

然后就是一些高并发业务的处理经验。
像我踩到过 Redis keys 这个 API 的坑,搜索多个 key 很方便,但是数据量大了效率很低,不能用。
MySQL join 在表数据大的时候效率低,不能用。必须在程序借助 Redis 之类的缓存 ID 与其它字段的映射列表,先根据搜索条件查 ID ,再拿 ID 去另一个表取数据。
数据库设计的时候,用户强一致性的操作不能做主从分离,必须读写都在主库上,为了避免单点负载,这种强一致性的表数据还得预留一致性哈希的配置,方便拆分。
还有一些性能调优的经验,懂原理在生产环境出故障的时候,看看网络封包数量、内存占用率、 CPU 使用率,应用的日志,就可以很快定位系统瓶颈,是业务代码的问题,还是数据库的问题。

什么时候加服务器,什么时候加数据库,缓存加到什么地方之类的,我刚入门的时候对这些都是一脸懵逼状态,现在也只是能勉强听懂为什么要这么改,至于怎么查出来的,还是不太理解。估计我都弄懂这些就能跨进初级工程师的行列了。
dengxiaowu
    18
dengxiaowu  
   2017-03-08 15:26:00 +08:00
看来自己也是勉强属于一个初级 PHP 。大神们,继续共享中级以上的知识点。
sampeng
    19
sampeng  
   2017-03-08 15:41:22 +08:00   8
熟练使用的语言: PHP

这个再加点量, python 啊, golang 啊,都是你的好帮手,还有 shell 要熟练。这可以作为同一个队列,写工具很方便

其他学习过的语言:学校里学过 C\C++\Java\数据结构,自学过一丢丢 Javascript 和 node.js

都拿来做做项目,哪怕是做一个 bitmap 用来做 key 是否存在的查询这样的小东西也是可以。然后自行对比语言和语言在工作和功能上的差异。主要关注缺点。

用过的框架: Yii 、 magento 、 Yaf
放弃框架,自己造个轮子。做个博客应该就够了。这你会涉及到 router ,模板,中间件以及 IOC 这些核心的原理。光看是没什么用的,转头就会忘。提醒,可以不用 php 写,拿你想做为第二语言来写。如 nodejs , python 之类的。这个轮子不是开源和上线用的。自行学习玩,做自己的项目

用过的 IDE (或编辑器): PHPStorm 、 VSC 、 sublime 、 ATOM 、 MVIM
忘记掉这个吧,也别写简历里。。。编辑器之争没啥意思。。。恩,我得大叫一声 jetbrains 爸爸好。 jetbrains 大法宇宙无敌

用过的系统: Windows 系统、 OSX 系统(Linux 用不惯)
linux 用不惯也得用。。当然,直接换成 osx 也行。最少够用。没什么蛋疼的。 V2EX 里会写操作系统的应该不会占 90%吧

mysql 数据库的基本操作,增删查改 join 、 group 等,懂一些索引和慢查询的注意事项
分布式,还有数据库的本组件,如视图,触发器之类的。其实有些时候很有用。当然,另一些东西在某个场景里又没法用。分清楚原理。有时间可以看看 mysql 源码。。或者如果只是想用的好,搞本讲 sql 的书来。拆细了 sql 有很多东西可以讲


会搭建 nginx(apache)+mysql+php(+php-fpm)环境,错误日志,配置文件
做成自动部署~会让你明白的更多。。当然这不算技能啦。。。大公司有 ops 。小公司又 leader 。。。。编译点东西可不算啥技能。和安装软件一样。。


redis 使用,配置,原子性,之前也用过 memecache
redis 的代码就几千行(看老点的版本,最新的加了太多的功能)。。一个星期就能撸完。撸完你会发现打开了一个新的世界。

没了。。。。
jimxu16
    20
jimxu16  
OP
   2017-03-08 23:08:29 +08:00 via iPhone
@polun 对 编辑器
jimxu16
    21
jimxu16  
OP
   2017-03-08 23:09:51 +08:00 via iPhone
@fbtfonfp 目前除了文件名大小写外 还没有碰到过线上服务器和本地不同的地方 以后会注意这方面 3q
jimxu16
    22
jimxu16  
OP
   2017-03-08 23:10:20 +08:00 via iPhone
@cncqw 确实是初级水平
jimxu16
    23
jimxu16  
OP
   2017-03-08 23:11:54 +08:00 via iPhone
@iot 已收藏 蟹蟹
jimxu16
    24
jimxu16  
OP
   2017-03-09 00:08:49 +08:00 via iPhone
@lecher
@sampeng 非常感谢!!
fy
    25
fy  
   2017-03-09 00:11:55 +08:00
年轻人,你渴望力量吗?!
https://leetcode.com/problemset/algorithms/
jimxu16
    26
jimxu16  
OP
   2017-03-09 00:29:46 +08:00 via iPhone
@fy 3q 正是我需要的
Kylinsun
    27
Kylinsun  
   2017-03-09 00:42:53 +08:00 via Android
握抓。
wind3110991
    28
wind3110991  
   2017-03-09 00:59:37 +08:00   3
你这顶多是 web 业务逻辑开发吧,个人感觉,严格来讲不算后端,而且,熟悉 Linux 是一个合格后台的基本素质。

后端的话,建议多了解基于 java 、 c 、 c++, python 等优秀的开源项目,可以看看源码,例如: zeromq(c++), c(redis)、 hadoop(java)、 tornado(python)

目前来讲比较火的,可以试试搭建 hadoop 集群,玩玩 zk , hbase , kafka 等,体验下分布式集群和大数据应用

我不是引战, PHP 这门语言天生是搞 web 的好手,但是不应该被套上“后台”语言的帽子。无论什么语言,物尽其用,才是一个合格后台人员的素质。当我们谈论 PHP ,其实更多是讨论如何实现一个系统应用层、上层业务逻辑的东西,而这些东西再怎么深入,很难进行更为底层的优化。像你说到的几个 PHP 框架,其实都基本是 app 框架,也就是我们说的业务侧框架。

而我们应该讨论的通用的后台技术,其实应该更多是: connect server 、消息队列、网络框架、数据库方面:例如如何让系统实现真正的实时调度,如何真正科学管理集群或者主从数据库,如何设计 Hbase 的 rowkey 、如何实现读写分离,何为 CAP 理论等等;

。。。。。。。。。。

说了一堆废话,不就是想告诉你:“ PHP 也许是世界上最好的语言,但是要成为一个牛 B 的后台,这和语言真的没有必然的关系”

加油
phx13ye
    29
phx13ye  
   2017-03-09 08:20:34 +08:00 via iPhone
学生物的,我也是
byfar
    30
byfar  
   2017-03-09 09:15:59 +08:00
PHP 也许是世界上最好的语言
byfar
    31
byfar  
   2017-03-09 09:16:27 +08:00
不, PHP 是世界上最好的语言
robinlovemaggie
    32
robinlovemaggie  
   2017-03-09 10:35:27 +08:00
不, PHP 是世界上唯一最好的语言
tedzhou1221
    33
tedzhou1221  
   2017-03-09 13:18:46 +08:00 via iPhone
不, PHP 不是语言,是一种职业:拍黄片
akrf
    34
akrf  
   2017-07-13 09:06:23 +08:00 via Android
@caijihui11 你问的人也不是啥技术牛…目测也就是熟手而已……
allgy
    35
allgy  
   2018-01-09 10:50:14 +08:00
@wind3110991 需要大佬的指点,坐标深圳,大佬在鹅厂?
关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     917 人在线   最高记录 6679       Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 37ms UTC 22:34 PVG 06:34 LAX 14:34 JFK 17:34
Do have faith in what you're doing.
ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86