任重道远,活在当下

掐指一算,工作也快一年多了。2016这一年,忙忙碌碌,做了不少项目,也学了不少东西,回顾一下,继续向前。

技术成就业务,业务成就事业。

开始

非科班出生,加入项目组的时候什么都不知道。除了懂一点C/C++ QT,数据结构和算法之外,其他可以算是一无所知。于是一开始就被分配了一个开发IDE的活,磕磕碰碰把《Java核心编程 卷一》啃了两遍,对Java Swing的开发有了一些基本的了解,可以写一些简单的组件。由于IDE的主要业务是Android方面的,于是啃了半本《Android编程权威指南》

计划与实现

但是自己的兴趣点还是在互联网,服务器方面。于是自己打算开始学一些互联网方面的东西。

前端

Html & CSS & Js & AngularJS

那就从前端基础开始吧。

  1. w3上面的html,css,javascript的基础教程看了一遍。基本算是有所了解

  2. 觉得w3javascript讲的太浅显。

    • 买了《javascirpt》权威指南,把前面基础知识部分过了一遍。但是觉得原型链,继承,闭包这一块还是讲的不够深入。模模糊糊的,这是不能容忍的

    • 于是又拜读了《JavaScript高级程序设计》前面的基础部分。不愧是经典。原型链,继承这一块讲的很透彻。

学习下来,觉得最费劲的还是CSS。这个后面再慢慢补充吧

接下来就是前端框架了吧。项目组也在用AngularJs 1.x,决定开始从Angular 1.x开始吧。

  1. w3上面的Angular.Js的基础教程过了一遍。基本掌握。

  2. 接下来开始深入。《AngularJS高级程序设计》从头到尾过了一遍。

  3. AngularJs还真是不好理解,什么FactoryProviderService不找几篇文章看看还真是不行啊。

一边学一边在项目中实践,也算是基本掌握了吧。

为了更加深入学习 AngularJs,找了一个开源项目angular-dashbaord-framework学习源码,并总结了一个架构文档。后面又找到了一本神书《how to build your own angular》,该书总头开始指导你怎么构建自己的Angular,比如$digest时间循环,$scope的实现等等。自己也按照书上面实现了一部分https://github.com/qeesung/my-angular,后面时间不够又转到其他知识点上去了。

在学习AngularJs的时候也附带学习了Bootstrap,Angular Meterial等。后输出一篇文章CSS float nine rules,也被不少门户推荐。

后端

前端搞了一部分了,接下来就是后端的东西了。

后端,后端,java web方面的SSH太难啃,选个没那么笨重的吧。那就Nodejs吧,最近也挺火的,而且自己也学习了js语言方面的东西,趁热打铁,说来就来。

Nodejs & MongoDB

  1. 首先将http://www.runoob.com/nodejs/nodejs-tutorial.html的基础教程学习了一遍,知道是怎么回事

  2. 那就是深入学习了,将朴灵的 《深入浅出Nodejs》从头到尾看了一遍,不得不说,这真是一本好书,原理讲的特别透彻,特别是第三章,那是看的高潮迭起啊。

  3. 原理了解了就来点实战的,过了一遍《Nodejs实战》connect,express,middleware都算是基本能用了。

  4. 数据库还缺点,SQL的基础知识过了一遍,《MongoDB权威指南》也过了一遍。

在公司里面Nodejs项目也实践了几个,对q,bluebird,mocha,debug,express,gulp,grunt,yoeman...这些常用的模块也用了几遍。

后自己也开发了一个Nodejs库https://www.npmjs.com/package/rocketchat,用来将RocketChat这个Slack的开源替代产品的RestAPI的Node封装,github上面也收获了十颗star,几个fork星,https://github.com/qeesung/rocketchat-node。也算是一个不错的开端。

后面输出一遍文章nodejs 异步I/O和事件驱动,算是深入理解Nodejs原理了

运维

运维这一块自己也不算是太熟悉,连一个基本的http服务器都起不来,也就是之前在学校搞UbootLinux驱动的时候搞过一段时间的Linux,把《鸟哥Linux私房菜 基础篇》学了一遍。该有的也都知道是怎么一回事。

要说运维,这段时间比价火的应该是Docker了吧。在之前部署RocketChat的时候不懂Docker,同事两三行命令就跑起来的东西,我愣是搞了几个小时,又是装环境,又是配软件的。那就试试Docker怎么样。

Docker

  1. 买了一本《第一本Docker书》,从头开始,一边实践,一边看书,从头到尾过了一遍。基本没啥问题了。也都能使用了。

  2. 但是Docker毕竟存在一定的缺陷,容器无法进行编排。这编排的工作还是要找Kubernetes,或者docker swarm这种东西。于是买了一本《kubernetes权威指南》,搞了三台linux机器。一边看一边实践。POD,Service滚动升级也都实践了一遍。

  3. 接下来就是docker swarm,不能不说,docker swarm的用起来真是比k8s简单不少,没有太多的复杂概念,看了看官方文档也基本会用了,概念这些的基本都是相通的。

  4. 后面又接触到openshift,Heroku,自己也都尝试一遍,将自己跌gohost博客服务部署在了openshift上面

...突然发现docker composer学忘记了,后面再补上。

Vagrant

要说虚拟机,那还是要有Vagrant,快速搭建一个开发测试环境还是得靠他

  1. 官网上面的教程看了一遍,box的添加删除,虚拟机的实例化基本都掌握了

  2. 部署服务,端口转发这些也算是都都操作过

Nginx

Nginx也不算是真正的学过,只能算是基本使用,做做反向代理和搭建静态文件服务器还是可以的。

Ansible

公司里面有一个类似阿里云的平台,每次申请下来的机器都要有配置好多东西,比如fish shell,oh my fish,tmux,docker等好多东西,浪费大量时间。决定学习Ansibleprovision机器。

  1. 买了一本《奔跑吧Ansible》,从头到尾过了一遍,就着Vagrant实际操作了一遍,对task,role的定义

  2. 然后在公司内部自己搞了一个开源项目,用于快速配置linux开发环境,配置好IP地址和ssh key以后,执行一条命令,能将所有想要的软件配置全都设置好,比如proxy,docker,oh my fish,oracle jdk,maven等等。

  3. 后面用到公司的实际项目中,在十八台linux机器上部署几十余个微服务。

再回前端

也搞了一段时间的后端的,发现最近React也挺火的,也打算学习探索一下。在这里先膜拜一下阮一峰老师 ^_^

ES6

React算是将ES6发扬光大了,之前也听ES6的各种溜,于是也打算深入学习一下,找到阮一峰老师的ECMAScript 6 入门,和买了一本实体书,从头到尾过了一遍,对于协程那一块也是看的高潮迭起啊。

后面又胡乱学习了Python 3.4asyncioasync/await,也是溜溜溜。

React

  1. 将阮一峰老师的https://github.com/ruanyf/jstraining的基本教程看了一遍,对React的基础学了一波,如何挂载,编写一个组件等等。

  2. 把官网教程看了一遍,掌握了有些细节。

但是毕竟React只是一个View库,MVC里面的modelcontroller还需要其他框架来控制。

Flux & Redux & GraphQL

  1. 按照阮一峰老师的Flux 架构入门教程,入门了Flux

  2. 后又根据Redux 入门教程,和逛网教程,入门了Redux

  3. 后又按照官网试用了一下GraphQLfabebook出品,真是好东西。

其他

其他学习的东西就是《Head first 设计模式》,和《Python基础教程》《Python核心编程》的前几章,现在还在学习。

遗憾

今年本来打算看完《计算机网络》《TCP/IP 卷一》,《深入理解Nginx:模块开发与架构解析》的,可惜才看了《计算机网络》的前两章。这个目标一定今天一定要实现。

总结

主要总结一些今年学习知识主要内容,周边内容的就直接略过。

  • html, css, js

    • w3 html, css,js 教程

    • 《JavaScript权威指南》基础部分

    • 《JavaScript高级程序设计》基础部分

    • 《精通CSS:高级Web标准解决方案》

    • 《CSS高效开发实战:CSS 3、LESS、SASS、Bootstrap、Foundation》

  • AngularJS

    • 《AngularJS高级程序设计》

    • 《How to build your won AngularJs》,手动实现项目my-angular

    • 开源项目angular-dashboard-dashboard的学习

  • Nodejs

    • 《深入浅出Node.js》

    • 《Node.js实战》

    • 《MongoDB权威指南》

    • 开发了Nodejs开源库rocketchat-node

    • 开源库Grunt,Gulp,Yoeman,Express,Connect,Swagger...

  • React

    • 阮一峰老师的《ECMAScript6 入门》

    • 阮一峰老师的《React 入门实例教程》

    • 阮一峰老师的《Flux 架构入门教程》

    • 阮一峰老师的《Redux入门教程》

    • 《GraphQL入门教程》

    • 官网React教程

    • 官网Redux教程

    • 官网GraphQL教程

  • 运维

    • 《第一本Docker书》

    • 《kubernetes权威指南》

    • docker swarm官网教程

    • 《奔跑吧Ansible》

    • Nginx博客教程

    • Vagrant博客教程和官网教程

2017计划

今年的主要计划目前是打算学习以下计算机网络方面的内容,PythonGo语言方面的内容。反正计划也会不断改变,先做个大致的规划。

你可能感兴趣的:(2016总结)