今天(5月16日)作为第八个提交者提交了任务五十:RIA微型问卷管理平台 这样一个综合性的大任务,宣告我的IFE春季学期课程学习顺利完成。其实任务五十并不复杂,现在再让我来做,可能一周不到就写出来了,但是做任务只是一个引导,而在做任务的过程中学到了知识和思想,开阔了视野,从一个对前端一无所知的小白,到现在掌握了基本的前端编程能力、对前端的整个生态圈、当前热门技术和发展趋势有了一个初步的认识,为自己继续成长打下了坚实的基础,这才是最大最重要的收获。当然,满满的成就感也是很让人开心的!

总结一下2月18号回上海以来的学习轨迹,以及对这个过程中看过的书做个点评,书名标为蓝色表示推荐,红色表示不推荐:

2月18日-3月1日 混沌期

这段时间处理各种杂事,还投了个百度测试岗的面试面了下,失败(面试官上来就拿出纸笔让我写算法,毫无准备的我当然挂了)。这次面试让我有了深刻的危机感,是时候抓紧打造自己的技术实力了。本来我是打算随大流走Java路线的,但是实验室完全接触不到,自学的话又一直有一种不得其门而入的感觉,很是烦恼。然后在知乎上探索前端路线的可行性时,偶然看到了一个安利ife的回答,去github看了一下去年的ife题目,觉得很感兴趣,最重要的是,有老司机带着一步步入门,这样的机会可遇不可求!于是深思熟虑之后,正式决定走上前端工程师之路。

3月2日-3月13日 摸索入门期

在极客学院看了两天视频之后,意外从2015年的ife课程资料中找到了慕课网,瞬间觉得前者逼格略低,果断转投慕女神。把js基础过了一遍,同时开始看我的第一本入门书——红宝书《JS高级程序设计》。红宝书写得非常好,行文流畅,环环相扣,由浅入深,看了前几章js就算是初步入门了。当然经典看一遍是不够的,现在刷完了ife的题,我打算重新拿出来读一下。《DOM编程艺术》半天就看完了,而且内容陈旧,大呼不值啊!《精通CSS》买回来没怎么看,翻了翻觉得内容还是有些旧了,而且各种奇技淫巧,让我没有兴趣认真读它。《锋利的jQuery》对于jq入门是本好书,现在各种框架兴起之后jq用得越来越少了,但应用还是很广泛,个人感觉花点时间学一下还是值得的。《编写可维护的JS》让你养成代码的规范意识,推荐。《JS设计模式》哦天啊,译者这行文都是什么鬼?没法愉快地读下去。另外刷了一些2015年的ife题目,就这样看着书写着代码,迎来了今年的ife开班。

3月14日-21日 第一阶段(HTML、CSS)

ife2016正式开班,虽然报名方式略羞耻——对着手机百度大喊“我要参加百度前端技术学院”(==!),但总算是顺利组好了队,5个人的队伍里,一个武汉大学研三学长,已经在鹅厂实习;我;另外三只都是大三的计算机、软院学生,天南海北。然而事实证明这样随机组的队并没有什么凝聚力,做到中后期就剩我单刷了,不过这是后话,在14-21号为期一周的HTML,CSS学习中,队员们进行了频繁而愉快的交流。然而标记语言写起来对于计算机科班出身的我来说终究有些无聊,特别是在书写后面那些比较复杂的页面时,感觉就一个累(当时还不懂less、sass,毕竟naive啊)。

3月22日-4月10日 第二阶段(JavaScript)

终于,期盼已久的JS之旅开始了!一直觉得JS是一门神奇的语言,掌握了它就等于掌握了网络世界的魔术棒,可以变幻出无穷的精彩表演。对于计算机专业出身、长期使用C++,Java的我来说,脚本语言简直不要太爽,各种静态语言的死板限制被解除了,写起代码有如野马奔腾的快感。但是JS语言设计的理念与C++、Java还是有很多差异的,如作用域、原型链、闭包、this等概念那是专业前端必须扎实掌握的。红宝书看的我似懂非懂,幸运的是在图书馆借到了一本《你不知道的JS》,五星级推荐!!!认认真真过一遍之后,我在后续的编程实践里再也没有被这些概念所困扰。这个阶段后期开始涉及设计模式了,鉴于之前买的书太坑,我又买了一本《JS设计模式与编程实践》,腾讯AlloyTeam出品,文笔通顺,举例适当,好多设计模式一点就通,比动物园那本不知道高到哪里去了,然而代码经验匮乏的我看得仍然吃力,那种“每个字都认识”的感觉让我暂时放弃了精读它的打算,等以后有一定的积累再回头看吧。

这段时期恰逢暑期实习招聘高峰,身边的同学都在忙着四处投简历面试,而我觉得自己实在太水,不想浪费自己和面试官的时间,所以一门心思写我的小火箭绕行星飞。当这个简单的小游戏做出来的时候,还是颇有成就感的,前端就是这样,总是让你成就感满满,越写越劲头十足~

4月11日-4月28日 第三阶段(组件开发)

这个阶段是为下一个阶段的大任务做准备,到了这个时候,JS代码已经写得比较熟练了,更多的是培养组件化思想,注重代码风格的整齐优雅。其中日历组件的开发是最有挑战性的,逻辑相对复杂,而且因为我用的jQuery,大量的DOM操作、字符串拼接模板等让我觉得这个实现怎么也称不上“优雅”,好在整体的封装性还不错,在下一阶段稍加改造就成为了真正可用的组件。这段时间读的书有蝴蝶书《JS语言精粹》,总的来说讲得还不错,但是感觉其中很多点在别的书里也有涉及,而且一些观点我认为有失偏颇(如主张不使用this),所以看书的时候自己也要判断,不能听得风就是雨,是吧。《JS模式》这本书也属于推荐级别,但是仍然看不透彻,还是那个问题,实践、上规模的实践太少啊。

4月29日-5月16日 第四阶段(综合练习)

大作业!看着长长的需求列表、交错的数据和视图关系,心里掂量这玩意用原始的方法开发的话,光是维护DOM和数据的一致性就够呛,组件之间的关系也不好处理,就算勉强写出来了也很难维护,更难扩展,因此引入框架进行模块化的开发方式乃是理所当然。同时还有css预处理、构建打包等知识要一并学习,有点多啊。第一周,按兵不动,恶补前端工程化的知识。入手了一本《JS Web应用开发》,看了前面两章之后对于工程化的前端开发流程有了一个基本的了解,然而总的来说感觉像花了钱买了一本博客集,不是很推荐该书。框架选择从Vue.js入手,因为它简洁、学习曲线平缓、而且中文文档写得好(因为是中国人做的框架,支持一下尤雨溪大神,顺便推荐他的知乎账号,关注之后可以被带逛很多干货),适合我这种急于学出个结果的beginner。大概5月5、6号开始,一边看文档一边写代码,逐渐把各个组件写了出来,vue-routerwebpack也逐一上手。最后一天做了些debug工作,OK,提交!做出来之后回过头看,觉得大作业难度也不过如此。当然这只是个雏形,真正应用到生产环境的话,还有很多功能要添加,以及性能、安全、用户体验等方面的诸多考虑,有赖今后继续努力了!

这两个多月还有一个深刻的体会,就是有效的交流真的可以带来学习效率的倍增。IFE交流群是一个技术氛围浓厚的地方,每天看看聊天记录都能有所收获,即使只是一个新的技术名词,也为我打开了一个新的窗口,通向更广阔的世界。百度最近名声不太好,但是IFE真的是毫无黑点,祖名大大和他的团队是尽心尽力在办好这个学院,在此表示感谢!

下一步的学习方向:node.js、ES6、如何写出更好的代码(红宝书、狗书、Effective JS、Ninja等)、计算机基础补牢(自顶向下、算法、操作系统)。奋进吧FEer!

百度前端技术学院(IFE)2016春季学期总结的更多相关文章

  1. 通过Github Pages在线查看百度前端技术学院完成的任务成果

    前言 .note-content {font-family: "Helvetica Neue", Arial, "Hiragino Sans GB", STHe ...

  2. 百度前端技术学院—-小薇学院(HTML+CSS课程任务)

    任务一:零基础HTML编码 课程概述 作业提交截止时间:04-24 重要说明 百度前端技术学院的课程任务是由百度前端工程师专为对前端不同掌握程度的同学设计.我们尽力保证课程内容的质量以及学习难度的合理 ...

  3. 百度前端技术学院task1.10

    任务十:Flexbox 布局练习 面向人群: 有一定HTML及CSS基础的同学 难度: 中 重要说明 百度前端技术学院的课程任务是由百度前端工程师专为对前端不同掌握程度的同学设计.我们尽力保证课程内容 ...

  4. 百度前端技术学院-task1.3源代码

    因为其中有图片,所以就给有图片的位置加了边框和设置了大小,这样哪怕图片不显示也可以知道在哪里. <!DOCTYPE html> <html> <head> < ...

  5. 百度前端技术学院-基础-day1

    2020.9.14 今天我开始在百度前端技术学院学习基础课程. 先立一个Flag,希望我能在30天之内学完前四十天的课程,后续课程再一天一节. 第一天的内容主要是提供了很多基础学习的网页,比如W3sc ...

  6. IFE 百度前端技术学院 2016年春季班作业 第一阶段任务(1-4)的总结

    具体任务详细介绍可参考http://ife.baidu.com/task/all 具体代码参考:https://github.com/sunshineqt/webxt/tree/master/stag ...

  7. 对HTML的理解及常用标签使用介绍--来自我的百度前端技术学院的笔记

    HTML是什么,HTML5是什么? ——HTML:超文本标记语言,一种用于创建网页的标准标记语言: ——HTML5:目前最新的HTML标准,包含新的元素.属性.行为,基于它们的功能特征将他们分成不同的 ...

  8. 百度前端技术学院task16源代码

    欢迎访问我的github:huanshen 做这道题目的时候遇到了很多困难. 1.怎么给空对象添加数据,愣是不知道从哪里下手:遍历对象,一个个输出操作: 2.中英文的正则表达式不知道,赶紧去百度: 3 ...

  9. 百度前端技术学院-基础-day20-21

    第二十到第二十一天:让你和页面对话 task1 控制元素的显示及隐藏 实现以下功能: 当用户选择了 School 的单选框时,显示 School 的下拉选项,隐藏 Company 的下拉选项 当用户选 ...

随机推荐

  1. linux 以root用户登录ftp

    ftp默认禁止以root用户登录. 可以修改 /etc/ftpusers 文件,把root注释掉,即可以root用户登录ftp

  2. hdoj 1873 看病要排队【优先队列】

    看病要排队 Time Limit: 3000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submi ...

  3. Y2K Accounting Bug

    题目: Description Accounting for Computer Machinists (ACM) has sufferred from the Y2K bug and lost som ...

  4. jQuery CSS 的操作函数

    jQuery CSS 操作函数 下面列出的这些方法设置或返回元素的 CSS 相关属性. CSS 属性 描述 css() 设置或返回匹配元素的样式属性. height() 设置或返回匹配元素的高度. o ...

  5. 超强vim配置文件

    简易安装方法: https://github.com/ma6174/vim 打开终端,执行下面的命令就自动安装好了: wget -qO- https://raw.github.com/ma6174/v ...

  6. java.util.concurrent 包笔记 --- BlockingQueue

    BlockingQueue 队列接口,具有 4 组不同的方法用于插入.移除以及对队列中的元素进行检查.如果请求的操作不能得到立即执行的话,每个方法的表现也不同.这些方法如下:   Throws exc ...

  7. 简单了解View是What?

    Android UI界面架构 每个Activity包含一个PhoneWindow对象,PhoneWindow设置DecorView为应用窗口的根视图.在里面就是熟悉的TitleView和Content ...

  8. Java NIO使用及原理分析(二)

    在第一篇中,我们介绍了NIO中的两个核心对象:缓冲区和通道,在谈到缓冲区时,我们说缓冲区对象本质上是一个数组,但它其实是一个特殊的数组,缓冲区对象内置了一些机制,能够跟踪和记录缓冲区的状态变化情况,如 ...

  9. visualvm

    http://visualvm.java.net/features.html http://visualvm.java.net/zh_CN/gettingstarted.html

  10. Objhdu2001java

    计算两点间的距离 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Su ...