何谓全栈?所谓全栈,就是同时拥有【前端 + 后端】的技术能力!对于初学者来说,全栈是引以为豪的称谓。对于成熟的工程师来说,全栈大多数情况下是个贬义词,为什么呢?
前端和后端各是一门技术与学科,所以真正的WEB开发学习的态度应该是钻研一门技术,这也是企业需要的,全栈的称谓在这个时代,已经逐渐被企业所唾弃(小公司除外,小公司不仅要求你会前端还要会PHP,甚至美工也交给你,他们以为你是全才)!
如果你想从事前端开发工程师,建议不要学PHP,把前端精通即可;如果你想从事PHP网站开发,那前端是必须要学的,可以不深入学习,只要会简单的前端布局即可,重点放在PHP编程上!
那学PHP和前端有什么关系呢?又该从哪里开始学起呢?先给大家一张图,让大家先有个感性上的认识!
一. 前端和后端的关系
1、横向分类
前端:HTML、CSS、JavaScript
后端:PHP、MySQL
2、责任分类
HTML:负责网页结构部分
CSS:负责网页布局与样式部分
JavaScript:负责网页程序逻辑、动态渲染与特效部分
PHP:负责服务端逻辑与数据库操作部分
MySQL:负责数据存储部分
3、学习技术与人的类比
01、首先,人要有一个基本的组成(头、身体、胳膊、手、腿、脚)
-> 学习HTML
02、其次,人要有一个所有组成部分的有序组合和着装(将各部分组成一个身体并穿上衣服)
-> 学习CSS
03、再其次,人需要有一些逻辑思维来支撑人的活动能力(吃饭、睡觉、运动等)
-> 学习JavaScript
04、再次,人需要有动脑思考问题的能力(比如学习、解决问题、道德行为等)
-> 学习PHP
05、最后,人需要一些知识、信息的储备来武装自己成为一个有能力、有素养的人
-> 学习MySQL
二. PHP全栈开发工程师学习顺序
基本的学习顺序:HTML/CSS -> JavaScript -> PHP/MySQL
如果你自学能力欠缺,建议报个班:
php中文网的VIP会员课程,前端和PHP是可以分开学习的,报名地址为:http://www.php.cn/vip.html
还可以选择线上直播授课进行全栈学习,报名地址为:http://www.php.cn/k.html
1、HTML/CSS在一个阶段学习:结构和样式必须一起学,才有直观感。
PS:总得先弄清楚HTML基本的标签吧!
也少不了学完后,做个京东淘宝首屏,我不会做!
抠破脑袋,给我摩出来,这是必经之路。
抱歉!给你压力了!
2、JavaScript单独学习:(伤不起的前端在此刻出现)
JavaScript是一个很难的语言!!
再成熟、再牛X的前端工程师也会说同样的话。原因是因为它十分灵活。
怎么写好像都对,但你就是不知道怎么写。有同样的感觉吧?
他,分为三个部分:
01、ECMAScript
懂行的都知道ECMAScript对于初学者来说,是最难的部分,什么作用域、什么原型原型链、什么闭包、什么对象数组一大堆东西。如果你在学习JavaScript时,觉得特简单,对不起,我只能建议你重新学习。学习ECMAScript周期最长。
02、DOM
DOM也不简单,因为.......内容也非常多,什么遍历树、什么节点、什么元素、一大堆兼容性封装,什么冒泡捕获事件代理、什么鼠标键盘行为、什么拖拽、什么鼠标行为预测、什么双击单击 一大堆封装、什么DOM事件处理函数逻辑、一大堆案例等着你做。
03、BOM
BOM相对简单,需要掌握的不多,强调一下,不是没用,是兼容性不好,毕竟是孤儿,没有规范,所以就只能将就用一下,但你也不能忽略他其中的单页面应用的学习。
3、PHP和MySQL一起学
PHP的基本语法搞懂以后,你可能想做点啥。
那你就得折腾一下数据了,没有数据就没有项目,你懂的。
三. 总结
术业有专攻,时间花在前端技术钻研上,你后端的能力肯定会逊色,反之亦然。不要说有很多精力学习,单独一个前端或后端就够学上个好歹(这里不敢瞎说时间)。
初学者为了完成一个完整的项目,会快速学习前后端所有己需的技术点,但无论前端还是后端,都是一门技术。
首先,任何开发者的开发技术的成熟都依赖的坚实的理论基础和业务经验,所以往往自学的开发者很难胜任企业的开发任务,任何企业都需要易读、易维护、易扩展、并且科学的项目架构和代码,而往往缺乏理论基础和业务指导的学习者,很难将项目的开发做到以上的要求,这也就出现了自学成才的初学者始终都处在『全栈自嗨』的状况中。而殊不知全栈的感念误导了自己,变成一个非职业、非专业的代码生产者。
其次,缺乏扎实的理论基础的学习者,很难理解更加高深的技术点,比如函数式编程中的柯里化、偏函数、ECMAScript中的原型、闭包、圣杯模式等等,这就阻碍了学习者进一步提升开发能力的步伐。
一个成熟的工程师,绝不敢说自己的全栈工程师,因为自己心里清楚,我的技术门类是前端,前端我是专业的,就算我确实会写PHP、Java,我也不敢说我精通或者我也可以承担后端的工作,这是一个工程师的态度,所谓术业有专攻嘛。