大学一路走来总结(技术)

本文是一位博主分享的大学期间学习技术的经验和建议,涵盖基础、提高和深入三个阶段。基础阶段强调掌握Java核心技术、数据结构和数据库知识;提高阶段涉及后端框架、设计模式和源码分析;深入阶段则探讨了算法、JVM优化和架构设计。博主还推荐了一系列书籍和学习资源,鼓励读者坚持学习,接触优秀的人,并相信越努力越幸运。
摘要由CSDN通过智能技术生成

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

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

一、基础

  • 主要看《java核心技术:卷一》的重点章节
  • 掌握java常用技术,io多线程反射、常用集合框架
  • 数据结构看一遍,作用至少要清楚。如hash冲突解决办法,常用排序算法的应用场景和空间/时间复杂度等
  • 数据库,能看懂ER关系,熟悉数据库三大范式,熟练常用SQL语句
  • 可以掌握一点java网络编程方面的知识,对tcp/ip有初步的认识
  • 课程不能落下,专业课程(计算机网络,操作系统,数据结构,数据库,计算机组成原理)要好好学。不要挂科
  • 学习servlet/jsp,至少能写简单的图书管理系统,熟悉核心api
  • 了解前后端交互方式,ajaxjson/xml至少知道,会使用jqueryhtmlcssjs最好

二、提高

  • 学习后端框架,SpringMVC/Struts2MybatisSpring,熟悉MVC模式,知道三层架构及每一层之间的关系
  • 会用chrome/firefox浏览器分析http请求,解决、定位问题。知道常用http状态码,了解TCP/IP,知道一次http请求发生了哪些事情
  • 学习设计模式23种设计模式都需要了解一点,熟悉常用的如:单例,工厂,模板,适配器,代理,责任链,构造器,装饰器,迭代器,策略,命令,观察者,外观,享元。理解他们的好处,可以找找在其他框架哪些用了这些设计模式。
  • 可以适当的看一些源码,Spring的源码可以着重的看一下。tomcat可以从源码的角度看看tomcat的整体设计方案,一次请求tomcat如何处理,servlettomcat中的加载,编译过程。tomcat自定义的ClassLoader有什么作用。
  • 会设计数据库,多对多一对多迭代,会写复杂的SQL,了解SQL调优,会写存储过程触发器。熟悉索引的使用,了解视图。去了解一些常用NOSQL,比如Redis/mongodb
  • 学习Linux,熟悉基本命令,学习一种脚本语言(shell/python)。会在linux下写脚本开发

三、深入

  • 算法,可以看看编程之美算法导论。学习一些算法相关的知识
  • 深入java:理解JVM,JMMClassloaderGC算法,GC收集器。学会定位OOM问题所在。
  • 源码分析,常用集合类如:HashmapArraylist,linkedListHashSetConcurrentHashmap等的源码分析,要非常熟悉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算法都要弄死人,(+﹏+)逃

我看过的书籍,留个参考!(当然没有全部掌握)

  • 《深入分析Java Web技术内幕》@淘宝君山写的书,经历了taobao.com从一亿到十亿的pv变化(二面面试管么么哒(+﹏+))
  • 《java编程思想》这个至今觉得一般,可能是功力还没有达到 (๑¯ิε ¯ิ๑)
  • 《java核心技术:卷一卷二》,对java入门非常不错,基本上涵盖了java很多知识
  • 《java并发编程实战》并发肯定要看这本书啦,从理论和实践上面讲得非常不错哦
  • 《编程之美》,《剑指offer》这两本本书不用说,刷offer必备
  • 《深入理解jvm虚拟机》看了这本书,基本上JVM相关的知识难不倒,唯一缺的就是实战经验
  • 《Spring技术内幕》比较透彻的解读了spring的源码,浅显易懂
  • 《大型网站技术架构》alibaba.com架构师
自从2010年首届山东省大学生软件设计大赛成功举办以来,已经走过了十年的时间。在这十年里,大赛不断创新,不断发展,成为了山东省大学生中颇具影响力的赛事之一。 大赛的初衷是为了促进大学生对软件设计的学习和研究,提高他们的实践能力和综合素质。在比赛中,参赛选手需要独立完成一个软件项目的设计和实现,并展示出自己的创新和才华。这不仅要求选手具备扎实的理论知识和技术能力,还需要他们具备良好的团队协作能力和创新意识。 十年来,大赛举办地点不断扩大,赛事规模不断壮大,参赛选手数量也逐年增加。同时,大赛的主题也不断变化,从最初的“互联网+”到现在的“智能化”,贴近时代发展,关注社会热点。参赛作品也从最初的简单应用程序,逐渐扩展到了各个领域的软件设计,如智能家居、虚拟现实、人工智能等。 十年来,大赛不仅为广大大学生提供了一个展示自己才华的平台,还为企业提供了一个挖掘人才的渠道。许多优秀的参赛作品得到了企业的关注和认可,有的作品甚至得到了企业的扶持和支持,成为了真正的商业产品。 在未来的十年里,山东省大学生软件设计大赛将继续发扬创新精神,关注时代发展,推动软件设计教育的发展,为大学生提供更多展示才华的机会。同时,也将为企业提供更多挖掘人才的机会,促进产学研紧密结合,共同推动社会的发展和进步。
评论 20
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值