该回答已被删除
浅浅谈一下,这3本书是我在工作两年后看的,茅塞顿开,建议初学的时候看看蝴蝶书就好,别的书都有涉及那是正常,全名叫《javascript 语言精粹》,了解一些好的习惯,知道一些不要去用的方法比如with,然后就可以开始敲代码了。猫头鹰和乌龟我建议等自己有比较丰富的代码经验了再去看,硬要看效果很差的。
不要去学框架,scss和less都是css的延伸、angular和backbone是HTML/JS的延伸,起码要先学会爬再去学走路,或者说,原生的js、HTML5以及css3都是地基,框架、工具(less、angular、backbone)什么的,都是基于地基之上的产物,地基够扎实,这些东西学起来分分钟的事。去学一下seajs grunt FIS等等,我也在学————有些事情我们能做的更极致,为什么不去做呢?跟你情况差不多啊,我是电商大四狗
----------------------------------说下我现在的状况吧---------------------------------------------
HTML5也只是熟悉到各个标签的语义以及一些属性什么,CSS3的话水平也一般,现在死扣Javascript呢,打算年后去上海,貌似上海搞IT的比较多。
针对你的困惑,我说下我的看法吧。
scss没接触过,和他比较类似的LESS SASS看过,语法很简单,学好CSS这个很简单的。
PHP也没接触过,后端学的是ASP.NET,很有很有必要掌握一门后端语言,要不做Ajax和json的时候工作原理都能不明白。
angularjs,backbone,这两个框架也没用过,前端框架用过Bootstrap,写过几个demo,但是标签中那满满的class名受不了了,所以放弃了。Jquery一开始接触前端的时候学过,后来也放弃了,可能学的不深的原因吧,觉得不好用,所以现在还是倾向于自己写Javascript,思考如何实现的过程很享受的。。
我觉得应该吧精力放在HTML5和CSS3上,现在大多数对HTML5的解释都比较倾向于是一系列技术的集合,不只只是"超文本标记语言5th",还有跟他涉及到的canvas WebGL 等等跟Javascript有关的很多新技术。所以Javascript很重要很重要。不要依赖框架,那个只会让我们停留在表层。
说到学习底层的原理,之前有一段时间在图书馆借了高纳德老先生的《具体数学》和《计算机程序设计艺术》。。英文版的啊,看了没两天就看不下去了。。
再推荐两本书吧一个是“中国刺猬书” 图灵的《数据结构与算法 Javascript描述》这本书对编写复杂的Javascript代码很有帮助。另一本是成林的《编写高质量代码:改善Javascript程序的188个建议》很多那些八九百页讲Javascript的书中没涉及到的原理其中都有涉及的。
加油!祝好运!是的,学前端的基本都会遇到你这样的问题,要学的东西很多很多,一下子会迷茫其中,不知道该学什么技术,或者说优先去学什么技术。
题主看招聘进行结果导向地学习我是非常认同的,当初我也是看着网易前端的 JD 一条一条去 pass 掉的。至于你提到的 Angular、Backbone、PHP 以及 SCSS,我认为 PHP 是最迫切去学的,因为作为一个靠谱的前端,不能对后端完全不懂,否则难以在实际的工作中与后端进行协作,或者说就算自己想写一个小项目,没有后端技术的支持也是有点简陋的。
然后是 SCSS 或者类似的 Less 这样的技术,其实并不需要专门去学习,只需要在写 CSS 的时候对照着文档去做,或者将自己写过的项目中的 CSS 用 SCSS/Less 对照着文档去改写一下,实际上就差不多可以掌握了。
至于 Angular 或 Backbone 框架,我觉得这些可以先不用急着学,倒是建议在完成 PHP 入门级的学习以及 SCSS/Less 的尝试后,可以去接触 Node.js。因为 Node.js 无论是其 npm 包管理工具的生态环境,还是 Javacript 异步编程思想,都对你的前端技术有极大的帮助。尤其是越来越多的公司提出前后端分离的思想,更是让 Node.js 的地位不断地提高。
同时,建议你可以学习一下 Gulp ,这是一个自动化的工具,非常多公司都会用,而且比 Grunt 更易入手,代码简洁优雅。这个大概花个十来分钟就可以上手了,非常酷。
至于你提到的关于实习的问题,按照你问题描述中描述的水平,其实已经可以去实习了,可能一开始主要是做页面,但你可以从实际的工程开发中吸取经验,同时利用下班或周末假期的时间,去继续不断学习,不断提高自己的技术水平,从而让自己的待遇越来越高。3000 块钱一个月的工资在北京互联网中是比较低的,基本你随便去一家比较靠谱的公司都不会开这么低的价钱。看题主还是有自学能力的,可以先做下外包,那玩意工作强度真是大,而且要求不太高,做个几个项目就有经验了。14年我毕业的时候,唯一的技能就是在vs里拖几个控件,配合mssql一张stu的表做一个学生信息的CRUD,大学里的总代码量不超过10w,这些都不可怕,可怕的是直到大四时我还以为自己很NB。 大三复习考研,不考的都出去找单位实习了,后来研究生也没考上,又赶上了毕业又投入到了无尽的毕设和论文中,说是毕设其实大家都明白,都是一些学生型的项目,什么成绩系统,新闻系统之类的,真正开始做时才发现无处下手,出去实习的同学人家都ajax了,我特么连js怎么引入都不会,css是什么都不知道,我相信知乎里没有哪个程序员能超越我的高度了吧! 那时我每天8点起床开始做,中间除了吃饭上厕所一直到晚上11:30(因为要断电熄灯),遇到不懂的的地方就去网上找,实在想不明白的就去楼下宿舍问同学,记得第一次看到getElementById这个方法时心中一万只草泥马奔腾而过,这什么鸟语啊,id和name有什么区别啊,padding和margin不都是缩进吗……此类种种,有时被一个问题卡住,想的头痛睡不着,在黑暗中爬起来拿出自己的Nokia手机上网查资料(那时还没用上智能机,屏幕很小)。那段时间虽然过的很苦,但异常充实每天都能学到新东西,进步非常快。 再之后就是跌跌撞撞找了一份不怎么样的工作,实习期的几个月可以说什么都没学到,有问题问多了老员工烦,直到后来来了一位培训师出身的大牛,带我做了几个项目,自己才算入了程序员的门。 后来的就不多说了,基本就靠自学了,说的有些啰嗦,其实说这些只是想告诉你你比我强多了,在校期间就知道这么多,并且有学习的意愿,这些才是最重要的。 angular backbone之类的框架性的先不要碰,打好html+css+js的基础,尤其是js,不要以为会写个function,会用几个jq插件就叫会js,还差的很远,认真做上几个项目,有针对性的进行学习,你经历的迷茫其实每个前端都经历过,我记得有句话是这么说的“迷茫只是因为你想的多,做的少”,实践才是检验真理的唯一标准,多做多练,你才能知道什么是真正的内功心法,什么是花拳绣腿。情况差不多. 我也是二本大四狗.
上年12月份幸运的找了一份前端实习生,在一家创业公司工作.在公司目前只是负责把boss弄的设计图还原成网页.然后整合到wordpress.写写jquery 做做效果.
好吧 说说我找到工作之前的学习吧.
一年前 我也只是个什么都不懂得计算机系的学生.对.各种挂科逃课.导致什么都没学到.然后发现这样下去 我实习也就只能去找服务生这类的工作了.这完全不是我想要的人生啊.!!
然后开始学习各种前端知识.学html 和css 我没有题主那么认真把它全部撸了两 三遍.我觉得更多的是实践.把常用的标签记熟点,不懂就去查W3shool. 也就看完了1遍.Jquery是通过各种效果Demo去学的.
我觉得无论学习什么类型的编程语言.实践是最重要的.
所以我就跑去V2EX那里发帖,求了各种项目去做.说是打杂免费劳工.V2上的人都很热心的.有V友给了一个小项目给我做.也就只是静态页面.给了我一张PSD 让我自己切图,把页面给实现了.
第一次我做完给他,被批了一脸.这个margin不对.img尺寸不对.字体大小不一致等等各种细节上的问题. 在做之前,我一直以为静态页面没什么难度.的确做一个大致的静态页面很简单.但是细节上很多问题就体现出非常多的问题.他说一句话:"这页面就是一个没用的烂码."这是我记得最清楚的.因为别人还要花比你更多的时间去更改完善维护你的代码
我自以为是的成熟技术,其实在别人眼里一文不值.
这之后我觉得自己对前端技术根本不了解.就连最简单html和css都写的那么烂.
之后我就不去学习一些很高深的技术.一步步把自己的基础打好.不过多简单的页面.我都会把代码书写规范.html标签语义化.css类名直接明了等等.
连静态页面都写不好.如何与别人一起开发一些大型项目.
说说题主的情况吧.
编程类的书很多时候都只是需要过一遍. 然后它就会变成一本工具书.不懂就查.
最最重要还是实践.没有实践,无论看多少遍你都记不住的.
建议题主可以先去小公司或创业公司应聘.这类的公司小项目会比较多.很利于像我们这种前端小白去学习,获取经验.
还有一些小小的建议.学好点英语,多看看墙外的前端世界.(不要像我现在要恶补英语T_T).
第一次答那么长啊.多多包含.
加油吧.路还很长.我也需要慢慢走.题主你也一样,别急,很多成功都是积累而成的迷茫什么?找几个国内最顶尖的商业网站,比如小米的网站、apple的网站。把它克隆下来,从中练习学习其中的技巧。克隆时只把样例网站当参考,css、js都自己写(当然库就用现成的)。完了,然后进行一些改动和创新。让其更上一层楼。别漫无目的的看书。多克隆几个,你的技术就突飞猛进了。然后再独立的创建几个完整的项目,培养原创能力。然后就可以拿着你的作品找工作了。首先的要对自己定位定准确啊,如果只是想在北京拿到3000的话,w3c的html、css刷两遍,会写个简单的页面就够了,因为月薪3000的招聘岗位也不会有太高要求,肯定是准备招来做一些简单的工作的,甚至想着让你一边工作一边学习的。3000的话不要有太大压力。
如果说想要直接高起点入前端坑,那么要学习的东西还是很多的。
先声明我不是前端,但是略懂,之前在家小公司,前段后端一把抓。现在的公司有专门的前端,平时工作的合作也很多,所以对现在的新鲜技术还是有了解的。
首先你先给自己找准定位,你是打算以后就做一名纯前端,HTML/CSS/JS三剑客是必须扎实熟练的,有一些小技巧和你分享一下。看书我不敢说帮助不大(反正我没怎么看过),但是既然要进IT坑,动手才是最重要的。你可以去模板网之类的下载一些网站模板,自己动手切图还原成网页。还有以后上网的时候多留点心,看到一个网站一个效果写的特别棒,果断F12看一下源码,前端的代码基本都是可以看到的,慢慢看得多了,自然很多效果就心中有数了。PS;ctrl+U直接看网页源代码。没事多逛逛前端技术网站论坛之类,刚才好多回答里都有,我就不重复答了。
别纠结于框架,原生JS掌握好了,框架的学习成本非常低,基本就是临到用时直接看文档,很快就可以上手。不要过度依赖BOOTSTROP/JQ。另外自己动手的时候不要随便忽略IE6下兼容问题,虽然他一定会让你感觉到头疼,但是工作以后真的会用到,尤其是一个前端工程师。
这些做到了,如果还要专注前端不准备接触后端,可以继续学习H5/CSS3,对常用的插件框架有一定自己的理解,这时候你已经可以关注页面的效率问题了,不能只关注能否实现效果了,JS怎么写效率更高,哪些CSS样式的复用能够使样式文件更小、修改更方便。
如果打算接触后端转向混合型或干脆后端,推荐先入手PHP或者PYTHON。
重点不是怎么做,而是你要去做,光想肯定是成不了一个优秀的码农的呢。(PS:上班时间我跑来逛知乎是什么鬼?!)找点自己喜欢的东西做并努力做到最好,遇到不懂的东西就去学。看书的时候多想想学了这个东西对我的实际工作到底有什么帮助,能够解决什么问题,之后再运用到实际的项目中去。光看不练是很难得到提高的,尤其前端这块。
计算机行业很多领域都符合82定律,也就是20%的东西的使用频率占到80%,所以很适合囫囵吞枣,因此我们的重点就是把这20%学起来,而首先要做的就是把这20%的东西找出来。
在我看来前端这20%的东西大概就是常用的html标签,css的盒子模型,基本的原生js,以及熟练使用jquery,ajax,常见浏览器的兼容。
拿下这些东西意义非凡,一方面证明你适合做前端这份工作,另一方面这些技能能让你找到一份工作。让你能够从容地去学习剩下的80%。
总之就是专心对付最重要的东西,那些什么less、sass、angular这类的东西,当你把我之前说的基础打好之后,学习起来畅通无阻,随学随用。
最后我觉得最难的就是实践,只有实践才能学到真正的技术,新人很难参与一些有价值有意义的项目,没有这些项目又很难成长,所以自己有项目可参与应该珍惜,没项目应该多造一些有价值的轮子。
感谢不点赞的都是耍流氓!!!!
耍流氓!!!
耍流氓!!!
一夜之间赞已接近最高票,受宠若惊,决定一不做二不休,把最高赞给夺过来。
评论里 @吴林朋友说写个提纲或者专栏,专栏就搞不起了,那就简单列个提纲,以期抛砖引玉。
1.html的语法、格式,常用的标签极其作用,理解标签的嵌套,学习使用firefox+firebug或者chrom的调试工具,能够使用这些工具调试html、css、js、断点调试、抓包
2.如何引入css、js(有多少种方法,各种方法有什么区别),理解id、class属性的区别,学会css的常用选择器,理解盒子模型(padding,margin,border,width,height,),css坐标系,css布局(position的absolute、relative 、fixed、static),css浮动(float:left、right )和清除浮动(clear),display:inline、block、inline-block、flex
3.js的执行顺序,基本的编程基础(变量、运算、流程控制、数组、调用函数、自定义函数、对象)、json、js的dom操作、js的事件机制(委托、绑定、监听,冒泡和阻止冒泡,兼容性),了解ajax的xmlhttprequest及其创建方法(多浏览器兼容)、跨域,明白其工作原理,评论里有朋友说http协议,确实是我疏忽,http协议是web的根本,所以其重要性再怎么强调都不为过,熟悉http协议对web开发的方方面面都有不少帮助,比如理解及使用ajax,比如调试程序、抓取数据等等,不过http是一个很杂很细的东西,内容很多,我建议也囫囵吞枣式地学习,先了解、熟悉简单的,以后在项目中遇到深入点的再进一步学习。
4、使用jquery解放你的开发工作,学会jq选择器,修改属性、监听事件、修改css,学会写jquery插件。这一步我觉得可以和第3步穿插学习
5、搭建服务器,弄个傻瓜服务器比如wamp,phpstudy等软件,可以一键建立一个apache+php+mysql的服务器,前期可以把你的静态页发布到本地服务器,使用本地服务器配合ajax学习。
6、学点服务器端,建议php+mysql。
服务器端脚本其实很简单,总结起来就是4个东西:SESSION、COOKIE、Request、Response,结合http协议理解如何从Request取得数据,经过处理后Response给客户端。这就是整个过程。
至于mysql也就是基本的sql语句。如何使用php进行CURD操作。这块其实很难总结,基本上以实现业务为主。
7、来点框架,理解MVC模式、推荐个比较流行的MVC框架:ThinkPHP,简洁好用不解释,国人弄的,文档和例子什么的非常丰富。
写了乱七八糟一堆,大家凑合着看,建议从1往7学习。
觉得赞不如领个支付宝红包咯
打开支付宝首页搜“569656776”领红包,领到大红包的小伙伴赶紧使用哦!
2018年的补充回答,之前,大概是2015年的时候,自学前端搞搞jQuery是很容易找到工作的,现在恐怕不行了
﹉﹉﹉
我也是自学出身,本科是经济学。相信你的困惑我大部分经历过。
那时候,我用了一个月在大学城的公寓里自学前端,一起住的同学就在考研。
学习的方式就是看视频和书、自己敲代码。
那时候主要看一些培训视频,各种困惑。
这里讲一点,那里说一点,感觉什么都有却讲的不深不知道实际工作中是怎么回事。
刚开始看了jQuery的使用之后以为这就是JavaScript了,so easy 。后来,觉得自己so naive。
所以你上面说的刷了什么什么书。
我敢说如果你真的是把犀牛书理解了,可以说JavaScript已经是非常厉害了,完全可以处理工作上遇到的各种js问题。当然前端不只是js。
感觉你可能就像我之前那样,看了各种的视频、书,最后越看越糊涂。到底实际工作中,前端是怎么回事呢?
我可以大概说下初级前端工作情况。
设计给你图,你用PS切下你要用的图标或者各种banner图。(推荐用cutterman插件)
接着量各种PSD上的间距和字体大小,然后在网页上实现。(推荐用markman测量)
然后处理怎么显示、怎么滑动、怎么弹出之类的。这里可能要跟设计讨论了。
接下来,你可能要处理动态问题。
用js取后台数据然后操作DOM。这里要跟后台人员商量接口的定义。
所以前端工程师的话,你掌握以下技术的话工作是没什么问题了。
1、知道怎么使用70~80%html标签,并且会写结构合理、语义化的html。
2、掌握css3的新技能比如transition、keyframse。。。。之类的,知道怎么定位元素、理解盒子模型等。知道响应式原理。或者能够简单实现自适应效果。比如图片或者一个div块居中自动缩放之类的。
3、原生js或者jq,能实现基本的交互,show、fadeIn之类的、用ajax从后取取数据。
所以上面的是初级的前端工程师所具备基本知识,掌握了就不会困惑了。
接下来更高级的话。
需要更深入研究HTML的结构合理性、及一些html模板的使用像jade,会使用高级css3代替一些js实现的特效、代码的优雅性、会用动态的css语言比如less、stylus之类的。
使用框架,轻量级的像backbone、vuejs和现在很火热的react、以及比较庞大的经典的angular。
会用工程化、自动化的思想解决问题、用webpack或者gulp打包、编译、压缩文件。会造轮子、写复用性强的组件等等.....
其实,技术的学习都有循序渐进的过程,能够一步一步来的话,就没那么困惑了。
对于一个初级前端工程师。实现功能是最重要的。所以你看gulp、nodejs,对于你来说优先级并不高。
还未工作就开始接触高级工程师所需要掌握的知识的话会比较困惑。原因是你不清楚这些框架和思想在实际工作中怎么体现。对于一个初级前端来说,大部分人是并不能理解工程化、自动化、可复用性等等概念的。写多了才能知道的。
就像LOL一样不能要求新手有各种意识和走位,会放技能和补兵才是新手该注意的。等你过了新手阶段,你自然而然的会去注意合作、意识、走位、战术等高级思想。
总结来说,你的困惑在于你的行动不能匹配你的思想。或者说想得多,实践的少。
后话:
对于前端开发来说,这个体系是非常开放的,世界各地优秀的程序猿都在贡献自己的智慧推动前端的发展。github上有许多优秀的开源库,可以学习。
在端nodejs出现后,前端可以编译、可以在服务器上运行是一个很大突破。接着到react-native可以开发安卓app和iOS app,可以发现前端发生重大的变化,势不可挡,我们都需要一个敏感的心找到到当前的趋势,跟上脚步。
在学习这些眼花缭乱的技术的基础上,一定要有扎实的基础,不然只是图个新鲜没有实质性的帮助。
不断学习、保持好奇,才会有动力进步、解决困惑、让技术更有趣。
楼主看了这么多书呀!不知道看书过程中有没有将书本里面的东西用代码实现出来?有没有思考过为什么要这么写?这里还有其他做法吗?各种方案的优劣点分别是怎样的?如果所有书你都认真思考过,那你的理论基础应该是相当牢固的了。但是,3个月时间,能精读这么多本书吗?还是敲代码验证思考,我表示严重怀疑。粗读万卷书,不如精读一本三字经。这些书里面讲的都是底层的东西,如果你都掌握的挺好,那么什么框架的,其实稍微思考下,你也能实现一个简单的原型出来。所以框架的学习,应该是以实用为主,看公司要求的。
前后端结合部分,只要你对HTTP足够了解,PHP、Nodejs不懂也能很好地跟后端配合,稍微了解一下更好,但是重点还是放在前端吧。
之前网上流行杨绛先生的一句话:你的问题主要是读书不多而想得太多。
而题主的问题我觉得恰恰相反。题主读了好多书,却实践的不够。
在我看来三个月时间刷了两本书,速度不是太慢,而是太快了。
主管吹牛说的话有一句说得很好:学一样少一样。所以我们就踏踏实实的一样样学,刷书这种事情,简单刷一遍知道一下体系就好,不然前面掌握的不扎实,后半本书基本就白刷了。
题主所说的
不查手册,经常忘记属性名,方法的参数等
也是从侧面反映出了实践不够。对于我等自学的人来说,很多关键字都不是硬背下来的,而是工作中用的次数足够多,自然记住了。所以记不住属性名和方法参数无非两个原因:背诵的不够认真;工作中实践的不够。
对于初学者来说,构建前端的知识体系是有困难的(其实对于初入行的前端来说都很有困难),那么我们可以尝试着从面向知识点学习,转变为面向项目实践学习。
比如先定一个可以实现的小目标:百度首页。
通过这个目标我们可以学习到常用的标签,表单,浮动,绝对定位,布局结构,简单的CSS
然后我们再做个淘宝的首页
为了完成这个目标,我们要学习复杂的布局,图标使用,标签页,轮播图,懒加载,弹出菜单
再难一点的,网易云音乐PC版也可以做
这里面就有很多复杂的特效了,还要涉及音乐播放,前端路由肯定要上,那大概还需要个前端框架吧。
当有了足够的实践经验的时候,再回过头来看技能图谱,就知道这些知识之间的关联是什么了,然后查缺补漏把项目中没有覆盖到的知识补充上。
所有的知识点都不是无中生有的,所谓的重点,也就是最常用的知识。如果你写了一个带有列表的应用,就不可能不接触盒模型,如果能够一次写对页面,那就是掌握了盒模型。如果要在循环中绑定事件,就不可能绕开闭包。写了一些静态页面之后,自然就会想要去部署到公网,不可能不去了解服务器的知识。
就像玩网游一样,如果有一关一直过不去,你就知道是缺了某样道具,会想到赶紧去找,拿到道具后就知道了道具的用处。可要是一开始就把所有道具都塞到背包里,反倒不知道都有什么用了。
所以不妨不断的给自己定一个可以实现的小目标,当你能够写出复杂页面的时候再回头看,就会发现,自己已经在这条路上走了很远了。
你会的我工作了这么多年都还不会,不太明白你在焦虑什么。看了题主的描述,题主是典型的浮躁入门者的心态。
罗列了一堆前端技术栈上的词汇,但是估计你一个都没接触过。
看到求职要求上有什么,就想学什么。
殊不知,找工作应该是看自己有什么技能,然后去找适合哪个岗位。而不是看岗位需要什么,我就临时去补什么
踏踏实实把前端基础搞好了,再去学高级点的知识。把坑踩踏实了,再换坑。
临渊羡鱼,不如归而结网。
PS:以下硬广
提供一套基础自检题,可以一定程度上检查自己的基础是否扎实 点击这里
web前端基础入门,可以买几本书籍,例如JS入门指南,HTML和CSS等等的书籍来慢慢学!
总之学到入门到放弃!
前端涉及的内容确实很多,但是代码主要还是要多写,多练,其实就基础来说就是学HTML、CSS、原生JS(建议先看原生JS,后面再看其他的。),HTML和CSS一些基础看过后,你可以找一些PSD或者模精品页面做静态页面,做出来后你在考虑加一些自适应或者一些其他功能,这个时候你会发现你的代码很难在上面额外加这些功能只能重新写,这个时候你就该考虑学习下怎么去设计你页面的结构,方便后期修改和维护,后面开始原生JS,了解完基本的后可以自己开始写写简单的逻辑,实现一些页面操作等。后面再就要开始学习ajax,框架之类的东西了。学习你一定要想好目前学什么,一个个来,虽然前端内容很多,但是基础就是HTML、CSS、JS,其他大部分东西都是围绕这3个来,学习的过程中多写多练,不要只看不动,写的时候能发现很多看书碰不到的问题。
我觉得好像读完一本红皮书基本就可以傲视前端圈了,这么多年面试我也没问过多少超出红皮书范围的技术问题啊……
所以我在想题主"刷"的意思是不是真的就是翻翻?
看别人的回答眼花缭乱了,最简单有效的方式:去结识技术不错的人,一个或者两三个都行,问问他们该怎么学,大厂招聘都有哪些要求