先不要着急把锅都甩给学历,你从来没有觉得【精通】这个词就用的有些不恰当么?
01. 先说说学历的事儿既然问道大专程序员的出路,那么就先说说学历的问题,偶一直是坚信“学历越高越好”,“学历在一定程度上可以代表能力”的。
如果你是刚毕业的学生,那么有一个高学历或者好学校的话,可以让你的起点非常高,如果你是名校计算机出身,进国内的一线大厂可能都是比较差的选择了;大专学历想一毕业就进入好一些的公司,不是说百分之百没有可能,只是可能性极低。
如果你是工作了几年的程序员,再跳槽的时候,学历依然是有一些影响的,比如一些单位在筛选简历的时候,就有一定的要求,也就是说,如果你学历低、学校不好的话,你连面试机会都得不到;当然,随着你工作经验的增加,学历对你的影响会越来越低,如果你技术能力出色的话,社招进入一些不错的互联网公司当程序员,机会还是非常大的。
总之,大专学历想校招进入好公司,极难,社招进入好公司,看你的努力程度和技术水平,虽然比较难,但是还是有机会的。
02. 精通 Spring 全家桶题主说自己精通 Spring 全家桶,偶还是表示怀疑的。
首先说说 Spring 全家桶,不知道题主指的是 Spring Framework + Spring MVC ,还是包括了 Spring Boot、Spring Cloud、Spring Data、Spring Security、Spring AMQP… 再单说 Spring Cloud ,又有 Spring Cloud Bus、Config、Netflix、Sleuth、Gateway… 所以题主说自己精通 Spring 全家桶,偶还是表示怀疑的。
另外,对于“精通”这个词儿,偶建议还是不要轻易使用,如果是停留在使用这个层面,比如 Spring Boot 的每一个注解和配置都熟悉,可以熟练使用 Spring Boot 集成常用的中间件,偶觉得写个“熟悉”是可以的,如果读过其中的源码、了解整体设计和实现细节,偶觉得可以写个“十分熟悉”;至于“精通”嘛,除非这个框架是你开发的,偶觉得担得起精通这个词儿。
03. 面试会问什么?只掌握框架就够了么?就算熟悉了 Spring 全家桶,那么面试是不是就畅通无阻了?当然没这么简单。
大部分公司的面试,都不会简单的问问某一个框架的使用细节,而是会从你实际工作出发,问你为什么要使用这些框架或中间件?背景是什么?解决什么样的问题,会带来什么新的问题?比如:
问到 Redis,很少会问你 Redis 的命令有啥,而一般会问为什么要用 Redis?穿透、雪崩都是什么?有哪些解决方案?热点数据如何解决?
问到 MQ,通常会问使用 MQ 是解决什么问题?如何保证不丢数据、消息不重复处理?
而一些基础型的问题,也是面试时候经常会问的,互联网大厂必考,比如:
出场率超级高的 HashMap,会问一些实现细节,比如 HashMap 扩容问题,每个 JDK 版本 HashMap 的实现细节;如果让你设计一个HashMap,如何做。
JVM 也经常会被问到:诸如常用命令、CPU过高的时候怎么查、发生死锁了怎么定位到某行代码;垃圾回收等等。
所以,只熟悉 Spring 全家桶的话,还是远远不够的。
偶将持续分享Java开发、架构设计、程序员职业发展等方面的见解,希望能得到你的关注。