zoukankan      html  css  js  c++  java
  • (转)前端学习路线

    • 不求甚解阶段:
     
    1. 入门阶段:
     
    Step 1: 用 HTML + CSS 模仿几个漂亮的静态页面。当你看到现在大部分的网页都觉得能大概猜到怎样做,并且花时间真的能做出来的时候,即可进入下一步。注意,这个时候请你不要管浏览器兼容性或者太过注意代码的优雅结构,因为没必要。做到能兼容现代浏览器,内容和样式基本完全分离即可。这大概需要半个月到一个月的学习时间。
     
    Step 2: 用 HTML + CSS + JS 写几个有交互的页面。例如,你可以写一个漂亮的注册页面,它能够验证各种输入是否符合条件并且有一个用原生 JS 实现的日期选择器(Date Picker)。或者,写一个漂亮的,有动画的相册。注意,这个阶段请使用原生 JavaScript。同样的,兼容现代浏览器即可。这大概需要半个月的学习时间。
     
    Step 3: 入门一门后端语言。按照你的情况,就 php 吧。有了上面的经验,php 入门之后,相信你能够做一个漂亮的无用户留言版了。请把数据存贮在文件中,因为你还没有学习 SQL 嘛。这大概需要半个月的时间,如果你学习能力强,一个星期也不是没有可能。
     
    Step 4: 入门一个关系数据库。比如说 MySQL。DDL 和 CRUD ,请一定要熟练。恩,这个阶段不要谈什么优化,那是扯淡。现在,你大概可以做一个多用户的博客程序了。这大概需要半个月的时间。
     
    你看,两个半月不到你就可以成为一个初级的 Web 开发者了。博客做好之后,你可以尝试造更多的轮子。比如:带简单的用户权限的论坛程序、简单的记账工具,等等,做你喜欢做的任何小程序都行。在这个过程中,你会变成一个熟练的初级程序员,或者,你为了偷懒,会学会 jQuery,Smarty 等框架。
     
     
    2.提高:
     
    有一天,你发现你靠写小程序提高不了水平了。接下来就要学习真正的干货了。
     
     
    学习 C 语言。别问我为什么,我就是觉得一个程序员应该要学过 C 语言,牛逼不牛逼是另外一会事儿,况且很多书都是用的 C 语言描述。别光学语法,弄清编译是什么,链接是什么,指针是又怎么一会事儿。
     
    学习离散数学:主要是给你打下计算机数据模型的理论基础。里面包含集合,数,图,等等,更重要的是如果你以后要搞研究,研究0错误程序,就是完全没有bug的程序,就需要用它上面的推导理论来对程序经行证明。如果你要通过系统分析员,这个也是要考试的
     
    学习数据结构和简单的算法。你看,你学完 C 语言就能学数据结构和算法了,我难以想象用 php 来描述数据结构和算法会有多么地奇怪。如果你觉得学了之后还是不知道数据结构究竟是什么,有什么用,那证明你还没有真的学到。
     
    学习一门面向对象的静态编程语言推荐 Java。学得有多好,就看你花了多少时间了。请务必仔细阅读各类相关书籍,深刻领会面向对象的重要编程思想(不过,切忌迷信面向对象编程)。
     
    学习操作系统和计算机网络。至少一些基本的概念需要弄清楚,具体的细节,没有必要过于纠结。
     
    • 求甚解阶段:
     
    Okay...以上都可划为「不求甚解」的阶段,接下来就可以选一个方向(前端,或者后端)「求甚解」了在「求甚解」的阶段里,我这里就不细说了,也没法儿细说,并且你到了这个阶段,一般是不需要别人告诉你需要学什么了。所以,我只说在进入这个阶段之前,或者刚刚进入这个阶段时,最好去做的一些事情:
     
    看书或文档抛弃中文译本,借助各种工具阅读英文原版。(英语要学好)
     
    学习使用 Unix-like 系统。
     
    •学会提问[1]。
     
    订阅科技博客,了解业界正在发生什么事情。
     
     
    ----------------------------------------------------------------------------------------------------------
     
     
    网站开发开发大致分为前端和后端,前端主要负责实现视觉和交互效果,以及与服务器通信,完成业务逻辑。其核心价值在于对用户体验的追求。可以按如下思路学习系统学习:
     
    基础知识:
     
    1. html + css 这部分建议在 w3school 在线教程 上学习,边学边练,每章后还有小测试。 之后可以模仿一些网站做些页面。在实践中积累了一些经验后,可以系统的读一两本书,推荐《head first html 与 css 中文版》,这本书讲的太细了,我没能拿出耐心细读。你可以根据情况斟酌。 
     
    2. javascript 要学的内容实在很多,如果没有其他编程语言的基础的话,学起来可能要费些力,还是建议先在 w3school上学习。之后建议马上看《javascript语言精粹》,js是一门很混乱的语言,这本书能够帮助你区分哪些是语言的精华,哪些是糟粕,对于语言精华,应该深入学习。糟粕部分能看懂别人写的代码就行,自己就不用尝试了。
     
    进阶:
     
    有了以上基础,就可以进行一般的静态网页设计,不过对于复杂的页面还需要进一步学习。
     
    1. css。必看《精通css》,看完这本书你应该对:盒子模型,流动,block,inline,层叠,样式优先级,等概念非常了解了。作为练习可以看下《css艺门之匠》这本书,它对标题,背景,圆角,导航条,table,表单等主题都有详细的介绍。
     
    2. javascript。上面提到内容还不足以让你胜任js编程。在有了基础之后,进一步学习内容包括:
     
    a) 框架。推荐jQuery,简单易用,在w3school简单学习js后,直接上手jQuery即可完成一些简单的项目。学习方法也很简单,照着产品文档做几个页面就行了,不用面面俱到,以后遇到问题查文档就行了。框架可以帮你屏蔽浏览器的差异性,让你能更专注与web开发学习的精髓部分。
     
    补充: 可以使用 codecademy 学习 javascript,jQuery,用户体验真的很好(感谢 TonyOuyang )。 
     
    b) javascript 语言范式 。这个名字可能并不恰当,只是我找不到可以描述“面向对象”,“函数式”这个两个概念的概念。javascript不完全是一个面向对象的语言,它的很多设计理念都有函数编程语言的影子,甚至说如果你不用面向对象,完全可以把它理解成一门函数式编程语言。javascript的很多语言特性,都是因为他具有函数式语言的特点才存在的。这部分推荐先学习面向对象的基本理论,对封装,继承,多态等概念要理解,维基百科,百度百科会是你的帮手,另外推荐《object oriented javascript》,应该有中文版。对与函数式编程我了解的也不系统,不好多说,可以自己百度一下。
     
    c) javascript 语言内部机制。必须弄清如下概念:js中变量的作用域,变量传递方式,函数的定义环境与执行环境,闭包,函数的四种调用方式(一般函数,对象的方法,apply,call),以及四种调用方式下,‘this'指向的是谁。这部分内容你会在《javascript语言精粹》中详细了解。另外,你必须理解json。
     
    d) dom编程,这个web前端工程师的核心技能之一。必读《dom编程艺术》,另外《高性能javascript》这本书中关于dom编程的部分讲的也很好。
     
    e) ajax编程,这是另一核心技术。ajax建议在网上查些资料,了解这个概念的来龙去脉,百度百科,维基百科上的内容就足够了。真正编程是很容易的,如今几乎所有框架都对ajax有良好的封装,编程并不复杂。
     
    f) 了解浏览器差异性。这部分包括css和js两部分,浏览器差异内容很多,建议在实践中多多积累。另外对于浏览器的渲染模式,DOCTYPE等内容应该系统学习。
     
    再进一阶 · 代码层面:
     
    有了以上知识,对于大多数小型网站,你应该已经可以写出能够工作的代码了。但要想成为更专业的前端,你还需继续努力。更高的要求大概还有四方面:1易维护,2可测试,3高性能,4低流量(移动端)。
     
    1. 易维护。对于页面你该理解‘样式’,‘数据’,‘行为’三者分离,对应的当然就是css,html,js。对于js代码,你最好了解设计模式,重构,MVC等内容。
     
    2. 可测性。
     
    3. 高性能。必读《高性能javascript》
     
    4. 低流量。移动端关注比较多。
     
    再进一阶 · 工程层面:
     
    前端项目同样面临软件生命周期的各个环节,首先是代码管理,你必须学会使用svn和git。其次是代码的构建,如今前端代码构建已经不是简单的压缩一下了,需要进行依赖管理、模块合并、各种编译,必须要学会使用grunt等前端构建工具,最近gulp比较火,也需要了解。
     
    补充:
     
    对于前端开发,基本内容就这些了,可以根据自己的兴趣爱好选择性学习以下内容。
     
    1. 交互设计。大公司依然有专业人士搞这些,不过不懂交互的前端一定不是好前端。推荐《简约至上》。
     
    2. 后端。应该说前段工程师必须至少了解一门后端语言,不过如果爱好也可深入学习,入手难度比较低的应该是php了。这部分由可分为基于页面,基于框架两种。大型项目都是基于框架开发的,建议至少了解一个MVC框架,比如php的ci, yii, yaf 等,好还框架的设计思想都大同小异。如今NodeJs在大公司已经得到普遍的使用,推荐大家使用在Node上使用Express框架做一些后端服务的开发。
     
    3. flash。我并没有吧flash作为前端工程的核心技能之一,因为我不会,不过ActionScript应该和js大同小异,可以根据工作需要学习。不过我的原则是能不用就尽量不用,其实很多效果通过js,css都可以实现,完全不需要flash。而且随着html5的发展flash早晚会淘汰。
     
    4. html5和css3 。HTML5规范已经于2014年10月28日发布了,移动端html5和css3已经得到了非常广泛的使用,相关的工具和环境也比过去好很多,有志前端必学。
     
    5. Android和ios开发。时至今日,前端的工作领域已经非常广泛,native的界面开发本质上也是前端开发,个大公司都面临着Native环境和web环境页面同时维护的问题,如果能够在技术上得到统一,将会有巨大的价值。对于学有余力的同学,应该了解Native开发的基本流程,至少了解到界面构建的技术。
  • 相关阅读:
    leetcode Super Ugly Number
    leetcode Find Median from Data Stream
    leetcode Remove Invalid Parentheses
    leetcode Range Sum Query
    leetcode Range Sum Query
    leetcode Minimum Height Trees
    hdu 3836 Equivalent Sets
    hdu 1269 迷宫城堡
    hud 2586 How far away ?
    poj 1330 Nearest Common Ancestors
  • 原文地址:https://www.cnblogs.com/yujon/p/5467330.html
Copyright © 2011-2022 走看看