什么是 web 前端?
Web 前端, 主要是用来开发用户通过浏览器可以浏览和使用的 Web 页面的. 一般而言, 所涉及的内容主要包括 W3C 中的 html,CSS 和 JavaScript 这三方面的内容.
HTML+CSS: 也就是网站的骨架和样子, 包括你看到的知乎的界面, 一段文字, 一个图片, 都是一个 HTML 元素, 至于字号是多大的, 什么颜色, 放在什么位置, 这叫 CSS, 在 HTML5 里, CSS 还能让元素运动起来, 旋转, 跳跃, 只要你想;
JavaScript: 简单的说就是页面的大脑, 把后端获取的数据添加到网页里, 或者让元素运动起来, 或者是改变页面的 CSS, 或者是操作 HTML 元素等等. 当然, 这些都是最基础的做法, 作为一个前端, 还要考虑 JS 的性能, 可维护, 可扩展的程度等等;
但是随着前端的发展, 前端开发所涉及到的内容肯定不仅限于这三方面. 分析这三个层面内容的本质可以看到, 这三个层面分别涉及 Web 页面的结构, Web 的外观视觉表现以及 Web 层面的交互实现.
因而, 归根结底, Web 前端以及 Web 前端开发可以说是针对 Web 的结构, 行为和表现来进行相应的开发的, 也可以说, 前端开发主要是做 Web 端的结构, 行为以及表现.
Web 前端学习什么?
Web 前端学习是一个先易后难的过程, 主要包括三个要素: HTML,CSS 和 JavaScript, 这就要求前端开发工程师不仅要掌握基本的 Web 前端开发技术, 网站性能优化, SEO 和服务器端的基础知识, 而且要学会运用各种工具进行辅助开发以及理论层面的知识, 包括代码的可维护性, 组件的易用性, 分层语义模板和浏览器分级支持等.
Web 前端开发后期要懂一些前端框架, 如 Node.JS,Angualrjs, 还有 Bootstrap 等, 以及 ued 用户体验, 后台开发也要懂一些.
看到这里, 发现 Web 前端要学习太多,, 想加入 Web 前端行业的同学要抓紧脚步开始了, 无论你是有一些基础知识, 还是零基础小白, 这些都没关系, 只要你想学, 只等你来, 只管相信你自己, 肯定能学会!
此套前端课程的知识体系包括: HTML,CSS,html5,css3,JavaScript,jQuery,Bootstrap,Ajax,vue.js,node.JS 等等. 从初级到高级框架应有尽有, 另外教程里面除超清视频课件以外, 最重要的是还有学习笔记, 源码, 作业练习等等. 一共 100 个 G, 非常全面. 内容由浅入深, 非常适合零基础自学. 希望帮助想学习前端的小白节省很多时间和精力! 能够以最短的时间进入前端开发这个高薪行业!
前端技术的更新如此迅速, 在这样的大环境下, 前端工程师保持自学能力就显得尤其重要了. 因此,"学什么"" 怎么学 " 就是我们要迫切解决的问题. 这是我的前端交流学习 qun:484757760, 如果需要学习资料在里面下载. 我做这行十多年, 有问题随时来问我, 学习方法, 学习效率等等问题.
课程部分截图如下:
关于学习 Web 前端的误区和学习建议:
1. 只看教程, 不动手实战
这个可以说是学习的最大的一忌, 也是提醒过最多的一个注是事项! 网上的教程有许多许多, 各个语言, 各个知识点, 各方面的都有, JavaScript,html5,css3 等的一些, 随便一搜就一大把, 毕竟互联网最大的优势之一就是资源共享! 但是很多人看教程就只是看教程, 不动手实操. 即使博客的教程, 视频教程再好, 自己不动手实操, 写代码, 这样的学习方式, 记忆根本不深刻, 容易遗忘, 到头来, 可能什么都没学会! 而且有些教程, 如果没有跟着动手实操, 可能会蒙圈.
个人建议: 要挑觉得适合自己的教程, 也要动手实操, 写代码. 即使不是边看教程编写代码! 在看完了教程之后, 一定要自己动手实操! 过程中, 可能会遇到些问题, 但是这样才会学习到更多, 记忆也更加牢固!
2. 只学框架或者库
这个情况, 针对 JavaScript 现在没有以前严重了, 在以前还是 jQuery 傲视群雄的时候. 很多人会在聊天的时候会说: 有了 jQuery, 为什么还要学 JS? 有了 vue, 为什么还要学 JS? 面对这样的提问, 我那时候没有回答, 心里想: jQuery 或者 vue 就是用 JS 实现的, 不会 JS, 学 jQuery 或者 vue 第一学得吃力, 第二学 jQuery 或者 vue 肯定不会很深入. 而且, 万一有时候, 项目不允许用 jQuery 或者 vue, 那就基本不会写代码了. 这时候, 如果学习其它的框架或者库, 基本又等于重新学一门语言了.
个人建议: 先把基础 (HTML+CSS+JS) 打牢, 再学其他框架或者库. 虽然在会 JS 的情况下, 我不敢说学 JS 的框架或者库就是查文档, 查 API. 但至少学 JS 框架或者库可以不会那么吃力!
3. 只顾着写代码
这个就是我之前的一个习惯, 只顾着写代码, 不知道: 耦合, 实例化, 继承等专业术语, 和别人交流, 无限蒙圈! 根本不知道别人在说什么! 互联网的技术更新的速度非常的快, 隔三差五就发布一个框架, 一个库, 一个工具. 虽然不是每一个更新的技术都需要学习. 但是如果只顾着写代码, 不了解新的技术. 这样很容易使自己停止不前, 失去竞争力.
个人建议: 在写代码之余, 要确保自己是不是了解代码, 对代码有没有一个认识. 以及多点留意消息, 看下有没有什么技术更新! 如果觉得更新的技术很实用, 或者自己有兴趣, 可以多了解下! 毕竟互联网是一个做到老, 学到老的一个领域, 技术更新的很快, 如果跟不上流行的趋势, 说不定自己会被淘汰呢!
4. 太早接触复杂项目
这个情况, 比较普遍, 无论是在学校或者是现在的培训机构. 很多学习前端的人, 基础没打牢, 就在那里扬言要做一个大项目, 我听到的有的人想做知乎, 有的人想做世纪佳缘等等一些伟大的目标! 但是全部人都是连网站的业务流程和逻辑都没弄清, 最后越搞越乱, 就放弃了! 之前的伟大目标都成了烂尾楼, 作用最多就是一个代码练习的作用! 花了大量的时间, 做了一件没很大的实际意义的事情!
个人建议: 从简单到复杂, 复杂的网站, 都是有很多简单的模块. 不妨先从简单的功能做起, 做完了一个功能再往里面加功能! 现在所处的公司就是这样, 开发的后台管理系统, 开发几个月了, 从一个只有员工的登录注册的功能, 然后再逐一加功能, 到现在项目逐渐完善!
5. 好高骛远, 急于求成
这个情况就是多见于培训机构出来的人. 我不知道是不是所有城市都是这样, 但是广州这边, 给我的感觉就是这样. 就是目标不切实际, 对自己也不够认识! 之前在群聊的时候, 在金三银四那段时间, 很多人找工作, 聊天的时候也遇到过很多培训机构的人. 简历上是各种精通, 刚毕业在培训机构培训几个月, 要么就是自带两三年工作经验, 要么就是说自己培训了几个月, 技术水平和市面上两三年的人差不多. 总之就是把自己吹得无所不能! 但是一出题, 就十问九不知. 问闭包是什么, 不知道; 问原型是什么, 不知道. 问继承是什么, 还是不知道.
上面所说的, 只是一个表面的现象, 更重要的就是, 好高骛远这个情况, 很有可能会导致自己难以找到工作! 因为一些企业认为最高只能给你 4000 工资, 但是你自己却认为自己有实力拿到 9000 以上的工资. 这样情况, 很难找到工作! 给人的印象也不好! 更重要的是, 这可能会影响自己的职业选择!
个人建议: 从实际出发, 评估自己. 想下自己会什么, 能给企业带来什么! 也可以停下别人的建议, 和对比下别人的技术水平和工资, 或者是上网找一些面试题, 看下自己能不能完成那些面试题! 最后评估下自己, 认为自己处于什么位置!
6. 看到难点就逃避
这一点, 相信很多人都有感触, 就在开发上, 遇到上一个或者几个自己觉得没办法实现的需求或功能. 千方百计地想着逃避, 比如: 这个功能不是很重要, 不做可以吗? 这个功能我从来没弄过, 搞不定的. 这个功能外包给别人做吧, 我们做不了! 很多一些逃避话语. 大家可以想下, 如果每次都是逃避, 那么时间一久, 自己技术水平是不是还停留在基础那个阶段? 以后要怎么提升自己的技术水平.
个人建议: 迎难而上. 在 Web 前端开发这块, 如果遇上了难题是正常的, 如果没遇到难题就是见了鬼! 面对难题, 我们应该是挑战难题, 而不是逃避! 大家都想提升自己的技术水平, 挑战难题不就是一个很好的提升技术水平的实战机会吗? 如果完成了之前认为不可能完成的难题, 这样就是一个技术水平提升的见证! 不是吗? 我也觉得, 每天就写简单的业务代码, 不探索新知识, 不挑战难题, 这样做开发也没多少意思!
7. 能用就行, 不想优化
这个也是一个很常见的情况, 很多人认为写的代码能用就行, 能实现需求就行! 根本不管日后的优化. 在开发项目或者开发插件上, 虽然我也是提倡: 先实现, 再优化这个方式! 但是并不代表我开发完了就完了, 不会再想优化! 如果不试着去优化自己的代码, 不探索写代码的更好方式, 以后别说编写高质量, 简洁的代码了, 因为自己把学习编写高质量, 简洁的代码的一个重要途径给封锁了. 还有一个就是, 项目上, 有些问题可能是潜在的, 就是现在看着项目没出现什么问题, 但并不代表以后不会出现问题. 反而在项目开发完了之后, 试着去优化自己的代码, 探索更好的实现方式, 试着编写出高质量, 简洁的代码. 这样难道不是一个很好的学习过程吗? 至于优化代码的方式, 很多很多(比如常说的: 代码过于重复, 是否引入设计模式? 网站性能一般, 可否进行优化?), 优化这一块, 也不是说一步就优化到最好的, 而是至少不会比以前差! 关于优化, 我之前也发过一些资源. 很容易找到, 网上的资源更是很多! 大家挑着看便是!
8. 不懂不问和不懂立刻问
不懂不问, 这个大家都知道, 就是遇到问题, 从不问同事或者通过其他方式咨询别人. 就是自己在那里苦思冥想, 尝试各种解决方案. 这样的方式, 最坏的结果就是最终还是解决不了问题, 让同事来询问开发情况. 最好的结果问题解决了, 但是解决问题所花的时间会肯定很多.
不懂立刻问, 这个就是词面的意思. 遇到问题马上问别人. 自己没怎么思考或者根本不思考. 这样能解决问题, 但是这样会导致自己可能会频繁的问同事, 会搞得同事很不耐烦. 如果把同事的耐心磨没了, 可能回答的语气可能不会很好. 这样不仅影响同事之间的关系, 还会让自己之后不敢再请教同事, 有让自己处于上面所说的不懂不问的风险.
个人建议: 适时请教. 遇到不懂的问题, 先自己结合上下文思考下, 想下以前有没有遇到这个问题, 解决不了去网上找解决方案, 如果还没有解决问题, 这个时候再问别人, 问同事或者通过其它渠道问别人. 这样自己有了思考, 解决问题的时候记忆也很深刻, 也不会频繁的打扰同事!
9. 不懂装懂
这个次面上跟上面的差不多, 但实际上不一样! 不懂装懂就是去问别人的时候, 实际上别人的讲解并没有完全听懂, 可能是碍于面子或者是因为不好意思打扰别人那么久, 或者担心打扰别人太久, 所以装作很懂. 但是这样可能忽悠得了一时, 很快又会露出马脚. 这样会搞得隔一会又要去问别人同样的问题, 这样反而会搞得别人更加尴尬, 更加为难! 自己也会打扰别人更多的时间!
个人建议: 如果有问题去问别人, 只要你问的人不是一个非常没有耐心的人. 他都会耐心的解答你的问题! 所以, 当问别人问题的时候, 一定要确保自己是已经弄懂了问题的缘由, 同事一遍没解释清楚, 自己直接回答不明白, 相信很多人都会再详细的解释一遍. 如果担心同事工作忙或者其它原因, 可以挑一个合适的时间! 我现在问同事就是, 要么不问, 要问就切底弄懂! 当然了, 我的同事都很有耐心, 每次我有什么问题, 他们都会耐心解答, 甚至是扩展开来讲!
10. 没理清楚需求就写代码
很多人在接到需求之后, 第一反应就是写代码, 即使是在自己没把需求理清楚之前也是照样写代码. 另一种情况就是, 很多人是边写代码, 边想需求. 这个开发方式, 万一自己对需求理解有误! 可能会导致自己写的代码, 很大一部分都要修改, 甚至是全部删除重写. 没理清楚需求就写代码这个情况, 发生的概率应该挺大的, 但是一般来说很难发现这个情况, 毕竟程序员对代码的增删改查是再正常不过了! 我本身也不知道, 就是在一次的技术分享中, 老大提出来的, 他的建议就是对于一些稍微复杂一点的需求, 先理清楚需求, 简单画个流程图, 然后在代码里面, 先写上一点注释, 再开始动手写代码! 对于这一点, 我现在就是在执行当中! 除非需求真的很简单, 否则我都会在草稿本上简单画一下流程图. 比如下面这个, 这个已经是我画的流程图里比较简单的一个了. 根据流程图, 写好注释, 再写代码, 这样会比较有条理, 代码也清晰, 日后的返工也可能会有, 但是不会像以前那么多! 在开发时间上, 效率上, 都得到了一个提升!
来源: http://www.jianshu.com/p/d1160457118b