0基础如何自学html和css

html-css015

0基础如何自学html和css,第1张

Web前端的学习误区

网页制作是计算机专业同学在大学期间都会接触到的一门课程,而学习网页制作所用的第一个集成开发环境(IDE)想必大多是Dreamweaver,这种所见即所得的“吊炸天”IDE为我们制作网页带来了极大的方便。

入门快、见效快让我们在不知不觉中已经深深爱上了网页制作。此时,很多人会陷入一个误区,那就是既然借助这么帅的IDE,通过鼠标点击菜单就可以快速方便地制作网页。

那么我们为什么还要去学习HTML、CSS、JavaScrpt、jQuery等这些苦逼的代码呢?这不是舍简求繁吗?

但是随着学习的深入,就会发现我们步入了一种窘境——过分的依赖IDE导致我们不清楚其实现的本质,知其然但不知其所以然。

因此在页面效果出现问题时,我们便手足无措,更不用提如何进行页面优化以及完成一些更高级的应用了。其原因是显而易见的——聪明的IDE成全了我们的惰性,使我们忽略了华丽的网页背后最本质的内容——code。

那么我们应该怎么学习前端开发这门技术呢? 现在很多小伙伴喜欢在互联网上找视频资料学习网页制作,但是光看视频你是不可能学会网页制作的,没有人指导你,而且很多视频已经过时了,并没有什么用!  如果你真的想学习网页制作这门技术,你可以来这个裙,前面是494,中间是零六思,最后是934!在这里有最新的HTML课程免费学习 也有很多人指导你进步,不需要你付出什么,只要你是真心想学习的,随便看看的就不要加了,加了也是浪费大家的时间。

正确的方向胜过无谓的努力

有两只蚂蚁想翻越一段墙,寻找墙那头的食物。一只蚂蚁来到墙脚就毫不犹豫地向上爬去,可是每当它爬到大半时,就会由于劳累、疲倦而跌落下来。虽然它不气馁,一次次跌下来,又迅速地调整一下自己,重新开始向上爬去

另一蚂蚁观察了一下,决定绕过墙去。很快,这只蚂蚁绕过墙来到食物前,开始享受起来而另一只蚂蚁还在不停地跌落下去又重新开始。

很多时候,成功除了勇气、坚持不懈外,更需要方向。也许有了一个好的方向,成功来得比想象的更快。如果在错误的路上奔跑,再怎么努力也是白搭。学习Web前端也是如此,首先应该选择一个正确的学习路线。

老实说,前端经过这几年的快速发展,网上的文章和教程还是蛮多的,有经验的人能够根据资料制定出属于自己的学习方法和路径,但对于小白来说,还是有些难度。知了姐来给大家分享前端学习路径。针对0基础,非科班,没有编程经验,想学前端,但是不知道如何入门的人群。

基础部分:

1、HTML + CSS 这部分学习,可以模仿一些网站做些页面,在实践中积累经验。做到能与UI对接,能100%重构网站静态页面的开发,为后期编写页面逻辑、动态效果打基础。

2、Javascript 要学的内容实在很多,如果没有其他编程语言的基础的话,学起来可能要费些力,这个阶段需要掌握编程基础概念,培养逻辑思维能力。能够独立完成网站的页面开发(包括合理布局,JavaScript操作DOM)

进阶部分:

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

3、JavaScript高级与服务器基础,深入面向对象编程,具备移动端开发能力,处理浏览兼容问题,深入学习ES6/ES7语法规范,前后端分离开发思想。

4、框架与服务器,数据库,前端安全的学习,深入了解Node,数据库操作,前后端分离技术,前后台协作开发。熟悉NPM(Yarn),Node模块fs,http,路由,处理请求,express4(koa);掌握创建websocket服务,MongoDB/MySQL数据库CRUD(Mongoose);掌握微信小程序开发,掌握Vue2.x基础,Vue-router,Vuex等等。

5、React与组件化开发,深入学习组件化开发思想,了解webpack使用,掌握React开发基础,Hook,create-react-app等等。

升级部分:

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

其他补充部分:

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

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

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

2、后端。应该说前端工程师必须至少了解一门后端语言,不过如果爱好也可深入学习,如今NodeJs在大公司已经得到普遍的使用,推荐大家使用在Node上使用Express框架做一些后端服务的开发。

最后,有经验的程序员都知道,学习编程最有效率的方式就是把你扔到一个项目组,连滚带爬的做一两个项目下来你马上会发现所有的知识点全都连到一起了,不再是分散的,而是形成一个整体了。那种感觉是仅仅深入钻研知识点而不写真实项目的人所不能体会的。 一个项目就是一根绳子可以把大片的知识串到一起。

如果想锻炼实际开发的能力而不仅仅是背诵或者了解一些知识点,如果想成为真正的好手,那么,还是做项目吧!

整体来看的话,Web前端开发需要学习的内容还是比较多的。前端是一门涵盖面很广的学科,而且技术更新较快,优秀的Web前端开发工程师应该具备快速学习能力。如果没有快速学习能力,就跟不上Web发展的步伐,所以需要不断提升自己,不断学习新技术、新模式。

一  有很多教程,叫学了也白搭

这年头,网上的Java教程一堆一堆的,看的我们很多Java宝宝们是眼花缭乱,不知该如何是好,我当年也是从这个过程走过来的,每天看很多老师的Java教程,听的自己晕头转向的,当然我不是说他们讲错了,他们讲的知识层面的东西是对的,但是很多做Java教程的老师不善于深入浅出,通俗易懂的来为我们讲解知识,什么是好教程?好教程就是让我们学了之后,有一种豁然开朗的感觉,而不是云深不知处,我想说的是这种教程,不看也罢,浪费了时间,迷茫了自己。

二   有一种教程叫无论你身处何地,都能现场直播教你

现在很多网上流传的教程都是很多年前的,远远的不适应现在Java新应用的需要,基本上都是一些淘汰货,很多小伙伴们,从网上找这种破烂,学的还不亦乐乎,也是醉了。综上所述,我们很多人学不好Java,是因为 一开始就选择错了,选择不对,努力白费。为了能够让广大Java学子们在网上学到Java的系统精华知识,通俗易懂的理解这些知识,我们决定现在每天晚上现场直播在网上教大家学习Java,我们的老师,一般的老师不用,我们只让牛掰的老师讲,而你什么都不需要付出,你只需要来我们这个群里听就行,开头的的第一部分是:426.,位于中间的第二部分是:396,处于最后一部分的是:284,学习没有任何借口,想强大就要努力,同时这也不是一个单打独斗的时代了,大家在这里一块学习,打拼出属于我们的Java新天地。

三Java新手入门的30个基本概念

在我们学习Java的过程中,掌握其中的基本概念对我们的学习无论是J2SE,J2EE,J2ME都是很重要的,J2SE是Java的基础,所以有必要对其中的基本概念做以归纳,以便大家在以后的学习过程中更好的理解java的精髓,在此我总结了30条基本的概念。

Java概述:

目前Java主要应用于中间件的开发(middleware)---处理客户机于服务器之间的通信技术,早期的实践证明,Java不适合pc应用程序的开发,其发展逐渐变成在开发手持设备,互联网信息站,及车载计算机的开发.Java于其他语言所不同的是程序运行时提供了平台的独立性,称许可以在windows,solaris,linux其他操作系统上使用完全相同的代码.Java的语法与C++语法类似,C++/C程序员很容易掌握,而且Java是完全的彻底的面向对象的,其中提出了很好的GC(Garbage Collector)垃圾处理机制,防止内存溢出。

Java的白皮书为我们提出了Java语言的11个关键特质。

(1)Easy:Java的语法比C++的相对简单,另一个方面就是Java能使软件在很小的机器上运行,基础解释其和类库的支持的大小约为40kb,增加基本的标准库和线程支持的内存需要增加125kb。

(2)分布式:Java带有很强大的TCP/IP协议族的例程库,Java应用程序能够通过URL来穿过网络来访问远程对象,由于servlet机制的出现,使Java编程非常的高效,现在许多的大的web server都支持servlet。

(3)OO:面向对象设计是把重点放在对象及对象的接口上的一个编程技术.其面向对象和C++有很多不同,在与多重继承的处理及Java的原类模型。

(4)健壮特质:Java采取了一个安全指针模型,能减小重写内存和数据崩溃的可能型。

(5)安全:Java用来设计网路和分布系统,这带来了新的安全问题,Java可以用来构建防病毒和防攻击的System.事实证明Java在防毒这一方面做的很优秀。

(6)中立体系结构:Java编译其生成体系结构中立的目标文件格式可以在很多处理器上执行,编译器产生的指令字节码(Javabytecode)实现此特性,此字节码可以在任何机器上解释执行。

(7)可移植:Java中对基本数据结构类型的大小和算法都有严格的规定所以可移植很好。

(8)多线程:Java处理多线程的过程很简单,Java把多线程实现交给底下操作系统或线程程序完成.所以多线程是Java作为服务器端开发语言的流行原因之一。

(9)Applet和servlet:能够在网页上执行的程序叫Applet,需要支持Java的浏览器很多,而applet支持动态的网页,这是很多其他语言所不能做到的。

基本概念:

1.OOP中唯一关系的是对象的接口是什么,就像计算机的销售商她不管电源内部结构是怎样的,他只关系能否给你提供电就行了,也就是只要知道can or not而不是how and why.所有的程序是由一定的属性和行为对象组成的,不同的对象的访问通过函数调用来完成,对象间所有的交流都是通过方法调用,通过对封装对象数据,很大限度上提高复用率。

2.OOP中最重要的思想是类,类是模板是蓝图,从类中构造一个对象,即创建了这个类的一个实例(instance)。

3.封装:就是把数据和行为结合起在一个包中)并对对象使用者隐藏数据的实现过程,一个对象中的数据叫他的实例字段(instance field)。

4.通过扩展一个类来获得一个新类叫继承(inheritance),而所有的类都是由Object根超类扩展而得,根超类下文会做介绍。

5.对象的3个主要特点

behavior---说明这个对象能做什么.

state---当对象施加方法时对象的反映.

identity---与其他相似行为对象的区分标志.

每个对象有唯一的indentity 而这3者之间相互影响.

6.类之间的关系:

use-a :依赖关系

has-a :聚合关系

is-a :继承关系--例:A类继承了B类,此时A类不仅有了B类的方法,还有其自己的方法.(个性存在于共性中)

7.构造对象使用构造器:构造器的提出,构造器是一种特殊的方法,构造对象并对其初始化。

例:Data类的构造器叫Data

new Data()---构造一个新对象,且初始化当前时间.

Data happyday=new Data()---把一个对象赋值给一个变量happyday,从而使该对象能够多次使用,此处要声明的使变量与对象变量二者是不同的.new返回的值是一个引用。

构造器特点:构造器可以有0个,一个或多个参数

构造器和类有相同的名字

一个类可以有多个构造器

构造器没有返回值

构造器总是和new运算符一起使用.

8.重载:当多个方法具有相同的名字而含有不同的参数时,便发生重载.编译器必须挑选出调用哪个方法。

9.包(package)Java允许把一个或多个类收集在一起成为一组,称作包,以便于组织任务,标准Java库分为许多包.java.lang java.util java,net等,包是分层次的所有的java包都在java和javax包层次内。

10.继承思想:允许在已经存在的类的基础上构建新的类,当你继承一个已经存在的类时,那么你就复用了这个类的方法和字段,同时你可以在新类中添加新的方法和字段。

11.扩展类:扩展类充分体现了is-a的继承关系. 形式为:class (子类) extends (基类)。

12.多态:在java中,对象变量是多态的.而java中不支持多重继承。

13.动态绑定:调用对象方法的机制。

(1)编译器检查对象声明的类型和方法名。

(2)编译器检查方法调用的参数类型。

(3)静态绑定:若方法类型为priavte static final 编译器会准确知道该调用哪个方法。

(4)当程序运行并且使用动态绑定来调用一个方法时,那么虚拟机必须调用x所指向的对象的实际类型相匹配的方法版本。

(5)动态绑定:是很重要的特性,它能使程序变得可扩展而不需要重编译已存代码。

14.final类:为防止他人从你的类上派生新类,此类是不可扩展的。

15.动态调用比静态调用花费的时间要长。

16.抽象类:规定一个或多个抽象方法的类本身必须定义为abstract。

例: public abstract string getDescripition

17.Java中的每一个类都是从Object类扩展而来的。

18.object类中的equal和toString方法。

equal用于测试一个对象是否同另一个对象相等。

toString返回一个代表该对象的字符串,几乎每一个类都会重载该方法,以便返回当前状态的正确表示.

(toString 方法是一个很重要的方法)

19.通用编程:任何类类型的所有值都可以同object类性的变量来代替。

20.数组列表:ArrayList动态数组列表,是一个类库,定义在java.uitl包中,可自动调节数组的大小。

21.class类 object类中的getclass方法返回ckass类型的一个实例,程序启动时包含在main方法的类会被加载,虚拟机要加载他需要的所有类,每一个加载的类都要加载它需要的类。

22.class类为编写可动态操纵java代码的程序提供了强大的功能反射,这项功能为JavaBeans特别有用,使用反射Java能支持VB程序员习惯使用的工具。

能够分析类能力的程序叫反射器,Java中提供此功能的包叫Java.lang.reflect反射机制十分强大.

1.在运行时分析类的能力。

2.在运行时探察类的对象。

3.实现通用数组操纵代码。

4.提供方法对象。

而此机制主要针对是工具者而不是应用及程序。

反射机制中的最重要的部分是允许你检查类的结构.用到的API有:

java.lang.reflect.Field 返回字段.

java.reflect.Method 返回方法.

java.lang.reflect.Constructor 返回参数.

方法指针:java没有方法指针,把一个方法的地址传给另一个方法,可以在后面调用它,而接口是更好的解决方案。

23.接口(Interface)说明类该做什么而不指定如何去做,一个类可以实现一个或多个interface。

24.接口不是一个类,而是对符合接口要求的类的一套规范。

若实现一个接口需要2个步骤:

1.声明类需要实现的指定接口。

2.提供接口中的所有方法的定义。

声明一个类实现一个接口需要使用implements 关键字

class actionB implements Comparable 其actionb需要提供CompareTo方法,接口不是类,不能用new实例化一个接口.

25.一个类只有一个超类,但一个类能实现多个接口。Java中的一个重要接口:Cloneable

26.接口和回调.编程一个常用的模式是回调模式,在这种模式中你可以指定当一个特定时间发生时回调对象上的方法。

例:ActionListener 接口监听.

类似的API有:java.swing.JOptionPane

java.swing.Timer

java.awt.Tookit

27.对象clone:clone方法是object一个保护方法,这意味着你的代码不能简单的调用它。

28.内部类:一个内部类的定义是定义在另一个内部的类。

原因是:

1.一个内部类的对象能够访问创建它的对象的实现,包括私有数据。

2.对于同一个包中的其他类来说,内部类能够隐藏起来。

3.匿名内部类可以很方便的定义回调。

4.使用内部类可以非常方便的编写事件驱动程序。

29.代理类(proxy):

1.指定接口要求所有代码

2.object类定义的所有的方法(toString equals)

30.数据类型:Java是强调类型的语言,每个变量都必须先申明它都类型,java中总共有8个基本类型.4种是整型,2种是浮点型,一种是字符型,被用于Unicode编码中的字符,布尔型。