掐指一算,工作也快一年多了。2016这一年,忙忙碌碌,做了不少项目,也学了不少东西,回顾一下,继续向前。
技术成就业务,业务成就事业。
开始
非科班出生,加入项目组的时候什么都不知道。除了懂一点C/C++ QT
,数据结构和算法之外,其他可以算是一无所知。于是一开始就被分配了一个开发IDE的活,磕磕碰碰把《Java核心编程 卷一》
啃了两遍,对Java Swing
的开发有了一些基本的了解,可以写一些简单的组件。由于IDE的主要业务是Android
方面的,于是啃了半本《Android编程权威指南》
。
计划与实现
但是自己的兴趣点还是在互联网,服务器方面。于是自己打算开始学一些互联网方面的东西。
前端
Html & CSS & Js & AngularJS
那就从前端基础开始吧。
w3上面的
html
,css
,javascript
的基础教程看了一遍。基本算是有所了解-
觉得
w3
的javascript
讲的太浅显。买了
《javascirpt》权威指南
,把前面基础知识部分过了一遍。但是觉得原型链,继承,闭包这一块还是讲的不够深入。模模糊糊的,这是不能容忍的于是又拜读了
《JavaScript高级程序设计》
前面的基础部分。不愧是经典。原型链,继承这一块讲的很透彻。
学习下来,觉得最费劲的还是CSS
。这个后面再慢慢补充吧
接下来就是前端框架了吧。项目组也在用AngularJs 1.x
,决定开始从Angular 1.x
开始吧。
w3上面的
Angular.Js
的基础教程过了一遍。基本掌握。接下来开始深入。
《AngularJS高级程序设计》
从头到尾过了一遍。AngularJs
还真是不好理解,什么Factory
,Provider
,Service
不找几篇文章看看还真是不行啊。
一边学一边在项目中实践,也算是基本掌握了吧。
为了更加深入学习 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
首先将http://www.runoob.com/nodejs/nodejs-tutorial.html的基础教程学习了一遍,知道是怎么回事
那就是深入学习了,将朴灵的
《深入浅出Nodejs》
从头到尾看了一遍,不得不说,这真是一本好书,原理讲的特别透彻,特别是第三章,那是看的高潮迭起啊。原理了解了就来点实战的,过了一遍
《Nodejs实战》
,connect
,express
,middleware
都算是基本能用了。数据库还缺点,
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服务器都起不来,也就是之前在学校搞Uboot
和Linux
驱动的时候搞过一段时间的Linux
,把《鸟哥Linux私房菜 基础篇》
学了一遍。该有的也都知道是怎么一回事。
要说运维,这段时间比价火的应该是Docker
了吧。在之前部署RocketChat
的时候不懂Docker
,同事两三行命令就跑起来的东西,我愣是搞了几个小时,又是装环境,又是配软件的。那就试试Docker
怎么样。
Docker
买了一本
《第一本Docker书》
,从头开始,一边实践,一边看书,从头到尾过了一遍。基本没啥问题了。也都能使用了。但是
Docker
毕竟存在一定的缺陷,容器无法进行编排。这编排的工作还是要找Kubernetes
,或者docker swarm
这种东西。于是买了一本《kubernetes权威指南》
,搞了三台linux
机器。一边看一边实践。POD
,Service
,滚动升级
也都实践了一遍。接下来就是
docker swarm
,不能不说,docker swarm
的用起来真是比k8s
简单不少,没有太多的复杂概念,看了看官方文档也基本会用了,概念这些的基本都是相通的。后面又接触到
openshift
,Heroku
,自己也都尝试一遍,将自己跌gohost
博客服务部署在了openshift
上面
...突然发现docker composer
学忘记了,后面再补上。
Vagrant
要说虚拟机,那还是要有Vagrant
,快速搭建一个开发测试环境还是得靠他
官网上面的教程看了一遍,
box
的添加删除,虚拟机的实例化基本都掌握了部署服务,端口转发这些也算是都都操作过
Nginx
Nginx
也不算是真正的学过,只能算是基本使用,做做反向代理和搭建静态文件服务器还是可以的。
Ansible
公司里面有一个类似阿里云的平台,每次申请下来的机器都要有配置好多东西,比如fish shell
,oh my fish
,tmux
,docker
等好多东西,浪费大量时间。决定学习Ansible
来provision
机器。
买了一本
《奔跑吧Ansible》
,从头到尾过了一遍,就着Vagrant
实际操作了一遍,对task
,role
的定义然后在公司内部自己搞了一个开源项目,用于快速配置linux开发环境,配置好IP地址和ssh key以后,执行一条命令,能将所有想要的软件配置全都设置好,比如
proxy
,docker
,oh my fish
,oracle jdk
,maven
等等。后面用到公司的实际项目中,在十八台
linux
机器上部署几十余个微服务。
再回前端
也搞了一段时间的后端的,发现最近React
也挺火的,也打算学习探索一下。在这里先膜拜一下阮一峰老师 ^_^
ES6
React
算是将ES6
发扬光大了,之前也听ES6
的各种溜,于是也打算深入学习一下,找到阮一峰老师的ECMAScript 6 入门,和买了一本实体书,从头到尾过了一遍,对于协程那一块也是看的高潮迭起啊。
后面又胡乱学习了Python 3.4
的asyncio
和async/await
,也是溜溜溜。
React
将阮一峰老师的https://github.com/ruanyf/jstraining的基本教程看了一遍,对
React
的基础学了一波,如何挂载,编写一个组件等等。把官网教程看了一遍,掌握了有些细节。
但是毕竟React
只是一个View
库,MVC
里面的model
和controller
还需要其他框架来控制。
Flux & Redux & GraphQL
按照阮一峰老师的Flux 架构入门教程,入门了
Flux
。后又根据Redux 入门教程,和逛网教程,入门了
Redux
。后又按照官网试用了一下
GraphQL
,fabebook
出品,真是好东西。
其他
其他学习的东西就是《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计划
今年的主要计划目前是打算学习以下计算机网络方面的内容,Python
和Go
语言方面的内容。反正计划也会不断改变,先做个大致的规划。