转载

牛人是怎样炼成的:淘宝实习,三年P7

牛人是怎样炼成的:淘宝实习,三年P7

很荣幸的今年通过了阿里巴巴的实习生招聘!

我把我看过的书罗列一下吧!

  • 《java核心技术:卷一》,这个是我入门java的时候看的,非常适合新手!

  • 《java设计模式》这本书虽然是个外国人写的,但是感觉不是很好。评价一般。学习设计模式的时候我一般都看大牛的博客。

  • 《深入理解jvm虚拟机》 这本书不用多说,业界非常非常好的一本书!多看几遍,每一遍都有很多收获

  • 《深入分析java web 技术内幕》 @君山 山哥,竟然还能@你出来!(不得不说,这本书在各个方面都非常优秀,不愧是偶像写的书!还求山哥多多照顾。嘿嘿

  • 《Spring技术内幕》在spring源码讲解方面,个人感觉非常不错。能够深入理解内部机制,但是需要多看几遍

  • 《编程之美》业界翘楚,在算法方面总结的非常好,题目也非常有代表性

  • 《剑指offer》不用多说,和上面一样,可以锻炼一些算法能力

  • 《java编程思想》传说是java行业内的神书,但是目前表示还处于一知半解状态

  • 《Hadoop技术内幕》这个可以pass掉,学习hadoop的时候看的

  • 《TCP/IP详解,卷一:协议》可以对tcp有更加深刻的认识

  • 《java网络编程》,不是很好,将就可以。学学api还是可以的

  • 《大型网站技术架构》 @李智慧 在大型web架构方方面面简直膜拜,

  • ------------------今天又想起一些------------------------

  • 《分布式java应用:基础与实践》这个是毕玄大大写的书,非常不错哦

  • 《how tomcat works》在讲解tomcat内部原理方面,个人觉得是非常不错的书!等级又要上升一个档次

  • 《java并发编程实战》对java并发方面,讲得还算不错的书籍

  • 当然还有一些杂七杂八的书(走了不少弯路,你懂的!),我就不列出来了,上面这些都是笔者认为非常不错的书籍。

最近正在看《算法导论》,和《算法》,md,其实我也想成为算法狗

牛人是怎样炼成的:淘宝实习,三年P7

当然,上面这些书我表示只懂50%,惭愧。不能完全吸收大牛的精髓啊!

  1. 其他的,数据结构,计算机网络,操作系统,数据库都是平时学习的课本,数据库做项目的时候实践一下!先学习基础,再继续深入

  • 数据结构不用多说,什么B树啊、红黑树啊、栈、队列等等,至少保证能够清楚的说出来,说出他们的原理!具体的应用场景是什么啊!,当然能写出来更好(手写btree会死人,其实还有一个数据结构叫skiplist,逃

  • 算法的话,建议题目多看看算法题目,或者把leetcode上的算法题目刷一遍(目前本人只AC的几道题,惭愧。知道该资源的时候已经晚了,现在在努力刷刷刷)。另外可以看看july的博客,结构之法 算法之道。目前july已经有自己的网站了,七月问答 ─ 面试·算法·机器学习快速问答平台 .本人是july的忠实粉丝,在此感谢 @July ,对我在算法方面有很大的帮助,谢谢

  • 数据库就更多了,索引(结合B+tree,两个引擎的不同之处,推荐文章:MySQL索引背后的数据结构及算法原理)、存储过程、引擎、触发器,事务 @沈询 实力打广告,还有沈大大的视频和博客( weibo.com/whisperxd )微博里面有链接哦,ACID等等等等,SQL必须是要熟练的,写SQL的时候多考虑考虑效率,想想还有没有其他的语句能完成这个任务,在哪方面提高了,为何呢?数据库引擎要了解一下,分布式数据库也是,什么主从分离啊,分库、分表、分区啊,这些常见的解决方案

  • 操作系统我属于渣渣,个人就知道一些进程、线程、一些调度算法之类的~~~~(逃

  • 计算机网络如果是研发岗位的话,TCP/IP这一张需要好好看看,HTTP协议不用多说,常见的状态码等等,一次http请求有哪些过程,这个要理解透彻

java:基础非常重要,当然也要深入理解原理,什么JVM,JMM,Classloader,还有一些常见类的源码,自己可以试着分析一遍,现在让你说出LinkedList的内部实现你能不能说出来,HashMap不用多说了,80%的面试都会问到。还有重要的,多线程,并发,网络,IO。这些都是要看看看看的!自己多思考!还有楼主说的那些框架,说实话,你要是基础好了,这些都是能够学得很快的,很多问题,看一下源码什么都就懂了!特别是spring的源码要好好看看,里面的架构设计得非常好!各种设计模式满天飞!

另外,linux要了解一下,至少要回基本命令吧,脚本语言可以学习一个。比如py!前端要了解一下.

关于如何看书:两个字, 思考 !三个字, 不要脸的思考!…………,书不在多,在于精,选书要慎重!反正题主一本叫做“王者归来”的书,我看见名字我就不想看!

除了这些然后呢:每天刷几遍CSDN, 平常可以上上oj刷刷题目,国内的牛客网(牛客网-专业IT笔试面试备考平台,最全求职题库,全面提升IT编程能力)非常不错,也可以去leetcode上面把题目刷一遍哦。 关注一些好的社区(我一般混迹在CSDN高性能javaweb板块),睡觉之前看微信公众号,当然是技术方面的!推送的文章都挺不错的!

做程序员个人觉得眼界很重要,就算这不是你的领域,但是你也要知道一点,所以经常关注其他的新技术是非常重要的!平常多接触一点开源技术,多上上github,争取能在github上面贡献一点自己的东西!

然后,多看看别人的技术博客。思考自己!

这是我学习路程的经验和一些资料总结,大家可以看看,链接——>技术文字 | 「浮生若梦」可以再评论箱中评论,我会一一回复(下面贴一部分)

我的经验与分享

关于我的学习方法和面试经验的分享

下面是我写给我现在带的学弟在学习路线上的一些建议,大家可以参考一下!希望能够帮助到大家,有写得不太合适的地方, 还请大家指正

一、基础

  • 主要看《java核心技术:卷一》的重点章节

  • 掌握java常用技术,io、多线程、反射、常用集合框架

  • 数据结构看一遍,作用至少要清楚。如hash冲突解决办法,常用排序算法的应用场景和空间/时间复杂度等

  • 数据库,能看懂ER关系,熟悉数据库三大范式,熟练常用SQL语句

  • 可以掌握一点java网络编程方面的知识,对tcp/ip有初步的认识

  • 课程不能落下,专业课程(计算机网络,操作系统,数据结构,数据库,计算机组成原理)要好好学。 不要挂科

  • 学习servlet/jsp,至少能写简单的图书管理系统,熟悉核心api

  • 了解前后端交互方式,ajax、json/xml至少知道,会使用jquery,html,css,js最好

二、提高

  • 学习后端框架,SpringMVC/Struts2、Mybatis、Spring,熟悉MVC模式,知道三层架构及每一层之间的关系

  • 会用chrome/firefox浏览器分析http请求,解决、定位问题。知道常用http状态码,了解TCP/IP,知道一次http请求发生了哪些事情

  • 学习设计模式,23种设计模式都需要了解一点,熟悉常用的如:单例,工厂,模板,适配器,代理,责任链,构造器,装饰器,迭代器,策略,命令,观察者,外观,享元。理解他们的好处,可以找找在其他框架哪些用了这些设计模式。

  • 可以适当的看一些源码,Spring的源码可以着重的看一下。tomcat可以从源码的角度看看tomcat的整体设计方案,一次请求tomcat如何处理,servlet在tomcat中的加载,编译过程。tomcat自定义的ClassLoader有什么作用。

  • 会设计数据库,多对多,一对多,迭代,会写复杂的SQL,了解SQL调优,会写存储过程,触发器。熟悉索引的使用,了解视图。去了解一些常用NOSQL,比如Redis/mongodb

  • 学习Linux,熟悉基本命令,学习一种脚本语言(shell/python)。会在linux下写脚本开发

三、深入

  • 算法,可以看看编程之美,算法导论。学习一些算法相关的知识

  • 深入java:理解JVM,JMM,Classloader,GC算法,GC收集器。学会定位OOM问题所在。

  • 源码分析,常用集合类如:Hashmap,Arraylist,linkedList,HashSet,ConcurrentHashmap等的源码分析,要非常熟悉java集合框架设计。最好能够分析一种框架源码,比如Spring

  • 深入数据库,理解至少两种数据库引擎(Inndb/Mysiam)的差异性,熟悉索引的内部数据结构,熟悉常见的索引方式(Btree,hash),和索引类型(unique,full text,normal),会使用explain分析SQL语句,会优化SQL语句,熟悉一种NOSQL,知道内部实现原理(内部数据结构,在算法优化,内部机制),掌握分布式数据库的知识,分表,分库,分区,分布式事务等,可以学习一个数据库中间件(TDDL/COBAR)

  • 架构设计,看看大型高流量/高并发的网站设计(CDN,异步,前端优化),了解缓存(分布式memcached/常用本地缓存),搜索引擎(lucene/solr/elasticSearch),分布式(负载均衡/分布式数据库/分布式应用集群),消息队列(ActiveMQ/Rabbitmq)在大型网站中的作用

  • 还有一些其他的知识,如RPC框架,分布式服务架构,SOA,REST架构等等

  • 可以接触一些云计算方面的知识,如Hadoop/Storm/Spark等,要是再能接触一点机器学习就更棒啦(反正我是没有,听着就吓人,跑个kmeans算法都要弄死人,( +﹏+ )逃

那么除了看书籍之外还有哪些学习方式呢?下面说说其他的学习方式

  1. 参加开源项目/自己写点东西放在GITHUB上面,笔者我写了一个自己的MVC框架(Dreamvc),github地址->Yaccc (Zhaodong Xie) · GitHub.另外可以去fork下其他人的开源项目,如果感兴趣就贡献一下,不感兴趣就学习别人的编码风格,去其糟粕!

  2. 多看看大牛的博客,这里我列举一些 大牛 的博客

  • 结构之法,算法之道,july大神的博客

  • xieyuooo的专栏,《java特种兵作者》

  • @兰亭风雨人任平生|兰亭风雨的专栏, 目前人在腾讯,博客都写得很好,很深入!受益匪浅

  • 机会永远留给有准备的人,享受编程和技术所带来的快乐(目前人在VMware)

  • 分布式架构、大数据、机器学习、搜索、推荐、广告

  • 赵伊凡's Blog,涉及各个领域

  • 搜索技术博客-淘宝,搜索团队的blog

  • 廖雪峰的官方网站,python就是跟着他学的

  • 空虚浪子心的灵魂,java安全,alibaba的安全专家

  • 阿里中间件团队博客,咱事业部的中间件,很厉害 (๑¯ิε ¯ิ๑)

  • 服务器运维与网站架构|Linux运维|X研究,里面提到的技术都碉堡,博客质量也高。曾经memcached在哪里学到了很多

  • 淘宝沈询_WhisperXD的博客,TDDL作者,ONS消息服务负责人,差点就跟着沈沈混了(•‾̑⌣‾̑•)✧˖° (๑´ `๑) (๑¯ิε ¯ิ๑),在数据库方面强烈推荐

  • 跟阿铭学Linux

  • 刘未鹏 | MIND HACKS,这个大牛简直不要太叼

  1. 多上一些高质量的网站,下面我列举一些, 每天 都最好抽时间去走一遍

  • GitHub,程序员不知道这个可以考虑转行了(๑´ `๑)

  • CSDN.中国最大的it交流网站

  • cnblogs,还是有很多资料的,里面也有大神

  • Stack Overflow,问答网站,回答质量高

  • LeetCode OJ,刷算法的oj

  • V2EX,一个关于分享和探索的地方。

  • ITeye,前身为JavaEye。

  • 并发编程网,致力于促进并发编程研究和传播的垂直性技术网站。

  • IBM developerWorks 中国,里面有高质量的文章

  • 开源中国,可以关注一些开源动态

  • 7月算法,july的在线教育项目,主要是算法方面

  • InfoQ,促进软件开发领域知识与创新的传播

  1. 关注一些技术类的微信号(晚上睡觉或者平时杂碎时间看)@Michael282694的知乎|cindy总结的 (๑¯ิε ¯ิ๑),这是原地址

最后送一句话,越努力,越幸运!

END

如果读完觉得有收获的话,欢迎点【好看】,关注【阿飞的博客】,查阅更多精彩历史!!!

牛人是怎样炼成的:淘宝实习,三年P7

原文  http://mp.weixin.qq.com/s?__biz=MzU5ODUwNzY1Nw==&mid=2247484913&idx=1&sn=f9e414ff24894650f721ca2c5c851cd7
正文到此结束
Loading...