欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

前端是什么?如何系统地学习前端开发?

程序员文章站 2022-04-23 21:51:15
前端是什么? 工作流程为从UI处得到原型图或者效果图,在项目(网站、微信公众号、小程序、WEBAPP)中还原图片效果,然后与后台进行各种数据交互。 目前的前端市场整体还是处于迅速发展期,市场对于前端的需求也一直比较大。市场对于中高级的前端工程师需求更加迫切,所以就算入了前端的门,也需要不断的提升自己 ......

前端是什么?

工作流程为从ui处得到原型图或者效果图,在项目(网站、微信公众号、小程序、webapp)中还原图片效果,然后与后台进行各种数据交互。

目前的前端市场整体还是处于迅速发展期,市场对于前端的需求也一直比较大。市场对于中高级的前端工程师需求更加迫切,所以就算入了前端的门,也需要不断的提升自己,无论你是学院派,还是培训派,还是自学派,都应该具有强烈的学习意识。

目前入门前端的人群分类

前端是什么?如何系统地学习前端开发?

 

 

1、计算机相关专业出身系统走过计算机的理论基础,比如计算机组成原理、操作系统原理、计算机网络、算法数据结构、设计模式,至少用过两门以上编程语言(强类型+弱类型)。

优点:理论、架构方面扎实,有整体计算机思维,内功不错,外功学起来比较快。

缺点:部分人,前端相关细节技术不扎实,不过花时间能很快搞定。

2、非计算机出身自学(也包括计算机专业没好好学的)理论基础薄弱,后来因个人兴趣或者职业需求,自学前端开发技能。

优点:自学能力比较强,能够根据自己的兴趣规划学习内容。

缺点:部分人对前端没有整体的学习框架 ,属于东一片,西一片,不成体系,部分人计算机没有整体思维,建议系统梳理下前端知识体系结构,该补的还是要补起来。

门前端时的一些困境

1、因一些基础算法、数据结构理论不扎实导致一些编程思维难于理解。比如 原型链,如果清楚 数据结构中链表结构,那么这个东西不难理解,再比如 哈希值,懂得数据结构中哈希表,哈希值也就迎刃而解。

2、计算机体系结构、操作系统理论、网络理论不扎实导致到后期一些东西难于理解。比如有同学从前端学习入手,后来学习node开发 ,在 i/o ,进程、线程、ipc 、线程锁方面有些概念就比较难于理解,而导致不能很好得使用node 的api 。

3、前端整体体系架构没有做过深入思考。

导致用会用,但不知道为什么用,用另外一个有什么区别。

4、学习环境中无高手。

没有高手能够指导自己进入下一个层次。

5、有意识但是没有行动我的网盘收集了一堆资料或者一堆视频,然后就没有然后了 。

如何系统学习前端

网站开发开发大致分为前端和后端,前端主要负责实现视觉和交互效果,以及与服务器通信,完成业务逻辑。其核心价值在于对用户体验的追求。如果你现在是零基础学员,大致可以按如下思路学习系统学习:

基础部分

1、html + css 这部分学习,可以模仿一些网站做些页面。在实践中积累了一些经验后,可以系统的读一两本书,推荐《head first html 与 css 中文版》,这本书讲的太细了,我没能拿出耐心细读。你可以根据情况斟酌。

2、java 要学的内容实在很多,如果没有其他编程语言的基础的话,学起来可能要费些力,建议马上看《java语言精粹》,js是一门很混乱的语言,这本书能够帮助你区分哪些是语言的精华,哪些是糟粕,对于语言精华,应该深入学习。糟粕部分能看懂别人写的代码就行,自己就不用尝试了。

进阶部分

有了以上基础,就可以进行一般的静态网页设计,不过对于复杂的页面还需要进一步学习。

1、css。必看《精通css》,看完这本书你应该对:盒子模型,流动,block,inline,层叠,样式优先级,等概念非常了解了。作为练习可以看下《css艺门之匠》这本书,它对标题,背景,圆角,导航条,table,表单等主题都有详细的介绍。

2、java。上面提到内容还不足以让你胜任js编程。在有了基础之后,进一步学习内容包括:

a) 框架。

推荐jquery,简单易用,学习方法也很简单,照着产品文档做几个页面就行了,不用面面俱到,以后遇到问题查文档就行了。框架可以帮你屏蔽浏览器的差异性,让你能更专注与web开发学习的精髓部分。补充:可以使用 codecademy 学习 java,jquery,用户体验真的很好(感谢 tonyouyang )。

b) java 语言范式 。这个名字可能并不恰当,只是我找不到可以描述“面向对象”,“函数式”这个两个概念的概念。java不完全是一个面向对象的语言,它的很多设计理念都有函数编程语言的影子,甚至说如果你不用面向对象,完全可以把它理解成一门函数式编程语言。

java的很多语言特性,都是因为他具有函数式语言的特点才存在的。这部分推荐先学习面向对象的基本理论,对封装,继承,多态等概念要理解,*,百度百科会是你的帮手,另外推荐《object oriented java》,应该有中文版。对与函数式编程我了解的也不系统,不好多说,可以自己百度一下。

c) java 语言内部机制。必须弄清如下概念:js 中变量的作用域,变量传递方式,函数的定义环境与执行环境,闭包,函数的四种调用方式(一般函数,对象的方法,apply,call),以及四种调用方式下,‘this’指向的是谁。这部分内容你会在《java语言精粹》中详细了解。另外,你必须理解 json。

d) dom编程,这个web前端工程师的核心技能之一。必读《dom编程艺术》,另外《高性能 java》这本书中关于dom编程的部分讲的也很好。

e) ajax编程,这是另一核心技术。ajax建议在网上查些资料,了解这个概念的来龙去脉,百度百科,*上的内容就足够了。真正编程是很容易的,如今几乎所有框架都对ajax有良好的封装,编程并不复杂。

f) 了解浏览器差异性。这部分包括css和js两部分,浏览器差异内容很多,建议在实践中多多积累。另外对于浏览器的渲染模式,doctype等内容应该系统学习。

3、html5和css3 。html5规范已经于2014年10月28日发布了,移动端html5和css3已经得到了非常广泛的使用,必知必会呀。

升级部分

有了以上知识,对于大多数小型网站,你应该已经可以写出能够工作的代码了。但要想成为更专业的前端,你还需继续努力。更高的要求大概还有四方面:1)易维护,2)可测试,3)高性能,4)低流量(移动端)。

易维护。对于页面你该理解‘样式’,‘数据’,‘行为’三者分离,对应的当然就是css,html,js。对于js代码,你最好了解设计模式,重构,mvc等内容。

可测性。

高性能。必读《高性能java》

低流量。移动端关注比较多。

额外补充部分

前端项目同样面临软件生命周期的各个环节,首先是代码管理,你必须学会使用svn和git。其次是代码的构建,如今前端代码构建已经不是简单的压缩一下了,需要进行依赖管理、模块合并、各种编译,比需要学会使用grunt、gulp等前端构建工具。

以上内容只是简单说了前端学习的顺序。对于前端开发,基本内容就这些了,可以根据自己的兴趣爱好选择性学习以下内容。

1、交互设计。大公司依然有专业人士搞这些,不过不懂交互的前端一定不是好前端。推荐《简约至上》。

2、后端。

应该说前端工程师必须至少了解一门后端语言,不过如果爱好也可深入学习,入手难度比较低的应该是php了。这部分由可分为基于页面,基于框架两种。大型项目都是基于框架开发的,建议至少了解一个mvc框架,比如php的ci、yii、yaf 等,好还框架的设计思想都大同小异。如今nodejs在大公司已经得到普遍的使用,推荐大家使用在node上使用express框架做一些后端服务的开发。

3、android和ios开发。

时至今日,前端的工作领域已经非常广泛,native的界面开发本质上也是前端开发,个大公司都面临着native环境和web环境页面同时维护的问题,如果能够在技术上得到统一,将会有巨大的价值。

如何才能快速入门前端

1、学习东西,自学是一种途径,然而在自学的过程中,很多人处于不知道自己不知道的状态。

2、另一种是跟着高手,开阔视野,达到知道自己不知道的境界,从而有方向,在短时期内进入到一个新的境界,节约时间成本。

我目前是在职前端开发,如果你现在也想学习前端开发技术, 在入门学习前端的过程当中有遇见任何关于学习方法,学习路线,学习效率等方面的问题, 你都可以申请加入我的前端学习交流裙:前面:603 中间:985 最后:993。里面聚集了一些正在自学前端的初学者, 裙文件里面也有我做前端技术这段时间整理的一些前端学习手册,前端面试题, 前端开发工具,pdf文档书籍教程,需要的话都可以自行来获取下载