总结+计划

来到中科院自动化所实习已经10个月之久了,回想这10个月自己做过的事情:

接触javaweb技术,学习了servlet、jsp、jdbc、javabean、MVC的思想以及框架实现(SSH和SSM)、简单的前端技术(HTML、CSS、JS),用了很久的一个前端框架extjs,数据可视化技术的实现(echarts)、bootstrap的初探、

接触了两个linux系统(在实验室装了UBUNTU并接触了在阿里云上的服务器CENTOS),并分别搭建了tomcat、mysql、jdk等环境,方便项目的部署。在centos上搭建了wordpress。学习了常用的linux指令。

接触了几个机器学习的算法,了解了机器学习可以解决哪些问题,大概了解了机器学习算法的使用流程以及一些工具(weka、skit-learn)

github的学习

代理技术的学习,以及应用(AOP)

restful的webservice搭建

ssh+extjs4 用户、角色、权限模块的实现 ,用了3天终于通过自己的努力解决了。

越在技术的道路上行走,越发现自己一直在徘徊。其实就是因为自己看到(只能说是看,都还没接触)的技术太多了,每天看极客头条的文章,各种技术的介绍层出不穷,大致分为如下几类:

语言类的:介绍语言的特性,用法,常见类库的实现等(比如java的jvm,垃圾回收,hashmap原理,多线程等)
我目前感兴趣的语言是java和python,java一直在用,却对其中的知识没有系统深入的认识,而python,需要学,尚未学。

框架类的:比如SSH、SSM,从原理到实践到源码。我目前大部分都还算会用,原理略知一二,不能说的很透彻,还没到源码的阶段。

算法类的:数据结构、排序、查找、分治、贪婪等。本科学过,但是记忆不深,需要通过代码再进行实践,并通过博客进行总结。

设计模式:二十多种,需要好好看看,并找实例理解。目前尚未进行这个工作。

数据库:用过mysql,但是对数据库的原理,设计,优化等都知道甚少,再加上很流行的nosql数据库,都需要进行学习和了解。

工具类:maven、log4j、junit等,需要逐个学习。

网站架构类(我还不会的):负载均衡(比如nginx)、消息队列(ActiveMQ、RabbitMQ)、WebService、redis缓存(或Memcached)、搜索引擎(lucene,基于lucene封装的solr,还有es)、hadoop(HDFS和MapReduce)、Quartz时间调度 、Druid、Dubbo+Zookeeper、分布式文件系统、docker、netty、django、hbase等。

很火的机器学习和深度学习类(SVM、LR、朴素贝叶斯、神经网络、DNN、RNN)用户广告分析、用户画像、推荐系统等。

自己每每看到这些技术,都兴趣很深,想都看看,但仔细想想其实天方夜谭,最后只是过眼而去,没有实质性收货。

工作,技术成长,需要脚踏实地的学习技术,需要思考,包括原理,应用,优化,这么做为什么好,更需要亲自实践去体验不同技术带来的便捷性,最后也需要对所学的每个技术进行总结(博客),方便日后查看自己的学习轨迹,或者有了更深的理解进行完善。
总结如下:

学习原理——编码实践——博客总结

所以像做任务一样有趣,我可以列一个计划,来完成每日任务。

参考这个http://blog.csdn.net/lk7688535/article/details/52020036
make and run!
一 数据结构和算法(4类:数据结构、常见算法、排序、查找)
数组、链表、堆、栈、队列、Hash表、二叉树等
递推、递归、穷举、贪心、分治、动态规划、迭代、分枝界限
经典排序:插入排序、冒泡排序、快排(分划交换排序)、直接选择排序、堆排序、合并排序
经典查找:顺序查找、二分查找、二叉排序树查找
任务:参考数据结构的书学习原理,并用编码实践,然后在博客总结。

二 java语言
1.基础语法:
Java语法格式,常量和变量,变量的作用域,方法和方法的重载,运算符,程序流程控制,各种基本数据类型及包装类
2.集合类:
Collection以及各种List、Set、Queue、Map的实现以及集成关系,实现原理
Collections和Arrays
hashset和hashmap
3.常用javaAPI:
String和StringBuffer,System和Runtime类,Date和DateFomat类

java.lang包

java.util包(集合类体系、规则表达式、zip,以及时间、随机数、属性、资源和Timer等)

java.math包

java.net包

java.text包(各种格式化类等)

java.security包

4.面向对象、面向接口

对象的三大特性:封装、继承和多态,优缺点

如何设计类,类的设计原则

this关键字,final关键字,static关键字

对象的实例化过程

方法的重写和重载;方法和方法的参数传递过程

构造函数

内部类,抽象类,接口

对象的多态性(子类和父类之间的转换、父类纸箱子类的引用),抽象类和接口在多态中的应用

5.jvm专题(主要包括内存模型和垃圾回收机制)

6.异常
7.多线程:
线程和进程的概念

如何在程序中创建多线程,线程安全问题,线程之间的通讯

线程的同步

死锁问题的剖析

线程池
8.IO:

java.io包,理解IO体系的基于管道模型的设计思路以及常用IO类的特性和使用场合。

File及相关类,字节流InputStream和OutputStream,字符流Reader和Writer,以及相应缓冲流和管道流,字节和字符的转化流,包装流,以及常用包装类使用

分析IO性能.
9.XML

熟悉SAX、DOM以及JDOM的优缺点并且能够使用其中的一种完成XML的解析及内容处理;这几种解析方法的原理
10 一些高级特性

反射、代理、泛型、枚举、Java正则表达式
11 网络编程

网络通信协议原理及适用场景,Socket编程,WEB服务器的工作原理
12.JDK1.5、JDK1.6、JDK1.7、JDK1.8每个版本都比前面一个版本添加了哪些新特性,进行了哪些提升

13 java设计模式
三 数据库
1理论基础

数据库设计原则和范式

事务(ACID、工作原理、事务的隔离级别、锁、事务的传播机制)
2 各种数据库优缺点、使用场景分析

MySQL/SQLServer/Oracle以及各种NoSQL(Redis、MongoDB、Memcached、HBase、CouchDB等)
3 SQL语句

数据库创建,权限分配,表的创建,增删改查,连接,子查询

触发器、存储过程、事务控制
4优化

索引原理及适用,大表查询优化,多表连接查询优化,子查询优化等
5分库、分表、备份、迁移

导入、导出,分库、分表,冷备热备,主从备份、双机热备、纵向扩展、横向扩展
6JDBC

JDBC Connection、Statement、PreparedStatement、CallableStatement、ResultSet等不同类的使用

连接池(配置使用、实现原理)

ORM,DAO

四 web核心技术
1、html5、css、js、jquery、bootstrap、yui、easyUI
2、ajax
3、servlet、序列化和反序列化
4、搜索引擎
5、缓存机制
6、测试
7、集群
8、安全

五 主流框架和工具
Struts1/Struts2

Spring(IoC、AOP等),SpringMVC

持久化:Hibernate/MyBatis

日志:Log4j

单元测试:JUnit

消息队列:ActiveMQ、RabbitMQ等

负载均衡:Nginx/HaProxy

Web服务器:Tomcat、JBoss、Jetty、Resin、WebLogic、WebSphere等

通信:WebService(cxf的soap、restful协议)

缓存:Redis、Memcached

工作流:Activity、JBPM

搜索引擎:lucene,基于lucene封装的solr

模板引擎:Velocity、FreeMaker

大数据:Hadoop(HDFS和MapReduce)

构建工具:Ant/Maven

六 机器学习与深度学习(rnn dnn svm LR 用户画像、推荐系统、舆情分析、NLP)

对于以上众多技术,在记录博客时按照标题进行编号,比如一是数据结构和算法,先写个总览,然后1.1、1.2等等对应上面计划中的技术。。。
前几部分的一定要细致,勤思考,重视基础,并一定要实践(尤其第一部分和第二部分)

几个最近常看到的名词:
nginx
redis
docker
nosql
Netty
Django
Zookeeper
Druid

好了,从明天开始,一:数据结构和算法,go!

每天从下午4点开始进行任务,早晨去了到下午4点完成工作任务(包括论文任务)。

最后,记住:

study more and deeper

practice by code

review in blog

你可能感兴趣的:(总结+计划)