程序员小伙三年月薪30K,他是怎么做到的?

欢迎关注微信公众号:慕容千语的架构笔记。欢迎关注一起进步。

目前一线城市的薪资水平在13到40k之间,但是找工作的时候并不仅仅有工作经验就行了,还需要一定的专业知识。如果你野心更大,想要进阿里美团头条等等这些大厂的话,那就需要更多的专业知识。那么,一个三年工作经验的Java程序员应该要具备哪些知识呢?
我整理了之后发现,程序员需要懂好多的知识。

一、项目经验

项目经验是程序员们最重要的财富,也是面试中必问的问题。一般面试官都会借着项目经验来考查应聘者的沟通能力和思考能力。三年工作经验的程序员一般都会有两个以上的项目经验,但实际我们大部分的情况都是做产品的一个功能或一个模块。虽然我们能很好的完成工作上的要求,但是对于面试这肯定是不够的。对于面试来说,我们还要完成以下四点。

  • 知道你的项目到底是做什么的,有哪些功能。
  • 知道你做的项目在整个项目中所处的位置及作用,并能清晰地阐述模块间的调用关系。
  • 知道你项目的整体架构和使用到的中间件,并对中间件的原理有一定的了解。
  • 能流畅地阐述自己在项目中解决过的比较复杂的问题。

    二、Java的基础知识

    技术知识这块面试还是蛮常见的。不过大多问的比较简单。这是我罗列的一些我曾被问到的问题,大家私下参考一下。

  • 栈和队列的区别
  • 接口和抽象类的区别
  • Int和Integer的区别和自动拆箱/装箱的相关问题
  • 常量池相关问题

    三、集合框架

    集合框架的底层原理,是面试很常见的问题。无论去大公司面试,还是去小公司面试都会问。只不过问深问浅的区别。

  • ArrayList,LinkedList,HashMap,LinkedHashMap,ConcurrentHashMap的底层实现原理
  • 1.7版本和1.8版本的HashMap的区别
  • HashMap能不能排序?HashMap的长度为什么要是2的幂次方?

不过不管怎么样,大家去面试的话,都要把上述的问题都尽量弄懂。最低的要求就是把hashmap的底层原理弄懂。

四、多线程

  • 创建线程的几种方式?Wait,sleep分别是谁的方法,区别?线程间的通信方式?
  • 介绍下什么是死锁,遇见过死锁吗?你是怎么排查的。(可以通过jps排查)
  • 创建线程池的几种方式,线程池有什么好处。
  • 线程继承和接口的区别,接口有什么好处。
  • Synchronized、Lock、ReentrantLock的区别,用法及原理。
  • ThreadLocal的用法和原理
  • Volatile关键字的作用和原理
  • 乐观锁和悲观锁
  • 对公平锁,非公平锁,可重入锁,自旋锁,读写锁的理解
  • CAS是什么及底层原理
  • ArrayBlockingQueue,LinkedBlockingQueue,SynchronousQueue等等堵塞队列的理解
  • ThreadPoolExecutor的传入参数及内部工作原理
  • 给你一个具体的业务场景,让你使用ThreadPoolExecutor创建一个适合的线程池
  • 分布式环境下,怎么保证线程安全

多线程一般是高级程序员面试中的重点。现在的项目高并发很多,所以面试多线程这块还是挺多的。一般大厂会问得很深。从第十点开始就蛮难的了,大家可以根据自己的情况酌情学习。

五、JVM相关问题

  • JVM内存机制
  • 介绍下垃圾收集机制,垃圾收集有哪些算法,各自的特点
  • 聊聊GC,谈谈Major GC,FullGe区别,垃圾收集器有哪些,他们的区别?
  • OutOfMemeryError这个错误你遇到过吗?你是怎么解决处理的?
  • JVM调优有哪些参数,介绍下,线上环境上,你是怎么查看JVM的参数并进行调优的?
  • 能不能自己写一个类叫java.lang.String(类加载的过程,双亲委派模型)
  • JVM这块一直是高级程序员面试中的重点。想拿高薪这块一定得懂。而且不仅懂,还要有一定的实战经验。

    六、框架相关问题

  • Spring用了哪些设计模式?Spring注入bean的方式?对SpringIOC和SpringAOP的理解?
  • Spring事务隔离级别和传播机制?
  • Mybatis的缓存机制(一级缓存和二级缓存),Mybatis的mapper文件中#和$的区别
  • SpringMVC的流程
  • Spring和SpringBoot的区别?
  • 对SpringBoot的理解
  • RPC框架有哪些,他们的区别?
  • Dubbo的使用和理解
  • Spring Cloud的使用和组件,谈谈你的理解

框架这块一直都是面试的重点,不过根据我的经验,框架这里一般不会问的很深,很少碰到让你说源码,主要还是考察你对框架的设计理解和框架的流程。

七、消息中间件

  • 你们公司是如何进行消息中间件的技术选型?
  • 如何保证消息中间件的高可用?
  • 如何保证消息中间件重复发送消息?
  • 消息队列积压了大量的消息,你该怎么处理?
  • 如何保证消费者消费消息是有顺序的?
  • 让你来开发一个消息中间件,你会怎么架构?

消息中间件还是蛮重要的,无论对面试还是工作来说都是重点。大家一定要对这块多研究,多了解。

八、Redis

  • 你们公司为什么要使用Redis?Redis有几种数据类型?
  • Redis持久化机制?Redis的过期策略?
  • 怎么保证Redis的高可用?
  • 什么是缓存穿透?如何避免?什么是缓存雪崩?如何避免?
  • 如何保证缓存与数据库的双写一致性?
  • Redis单线程模型原理,为什么能支撑高并发?
  • Redis哨兵架构的理解和底层原理

现在高并发场景越来越多,基本面试必问缓存,只是或深或浅而已。比较常问的就是1到5,6、7想挑战大厂的可以去研究。

九、数据库

  • 工作中你是怎么优化sql的?
  • 什么情况下,索引会失效?
  • 数据库的存储引擎,比如:MySQL的MyISAM和InnoDB区别?
  • 索引的最左原则
  • 索引的底层原理
  • 你们公司是怎么进行分库分表?分库分表的方案

数据库的优化一般都会问,涉及索引的地方会问的多些,还会问到难度比较高的用库分表,这里网上都有方案,一般都是主从库或Mycat,大家可以去学习了解一下。

十、其他

  • 分布式事务是怎么解决的?
  • 分布式session方案?
  • 设计一个秒杀场景
  • 怎么防止表单多次提交
  • Linux的基本操作命令
  • ElasticSearch的使用和原理
  • Zookeep的使用和原理

这块主要是问你一些常见的业务场景,比较开放式,还会根据你自己的简历来问。比如你的简历项目里面有ElasticSearch,那么面试官就会问你这些中间件的使用和原理。如果你成功地通过了所有的技术面,那么恭喜你,你离收到offer无限接近了。

只知其概念而不知深入运用是达不到基本要求的,针对以上的知识点我准备了一套实用于所以开发人员的核心知识体系和深入PDF文档(基础知识-JVM-设计模式-Redis-数据结构与算法-spring全家桶等全部有深入解析)关注微信公众号:慕容千语的架构笔记,获取资料地址。

关注微信公众号:慕容千语的架构笔记,获取资料地址。

原文地址:https://blog.51cto.com/14409100/2429136

时间: 2024-10-27 04:34:36

程序员小伙三年月薪30K,他是怎么做到的?的相关文章

如果你喜欢上了一个程序员小伙

程序员向来是善于幽默自嘲的群体,但从某种程度上影响了咱程序员在广大女同胞心中的印象啊-- 于是写下此篇(有从别处看到的3句加进来的), 就算是为咱程序员做个广告--要是觉得有点过的程序员们,就把此文当作一个美好的目标吧---) ---------------------------------------------- 如果你喜欢上了一个程序员小伙,就不用再害怕电脑中病毒QQ被盗,因为他至少尝试过10款以上杀毒软件,他知道用那款占资源最少防毒效果最好的保护你的电脑. 如果你喜欢上了一个程序员小伙

如果你相中上了一个程序员小伙

程序员一向都是善于幽默自嘲的屌丝群体,但从某种程度上这样的形象影响了广大女同胞对程序员的印象,身为程序员一名,我要为程序员正名!!! 如果你相中上了一个程序员小伙,就不用再害怕电脑中病毒QQ被盗,因为他至少尝试过10款以上杀毒软件,他知道用那款占资源最少防毒效果最好的保护你的电脑. 如果你相中上了一个程序员小伙,就不用担心他会外遇,因为他工作内容深奥无边,每天沉醉于业务研究之中的他,没有应酬,更没有酒吧KTV,在他眼里那唯一诱惑,便是你. 如果你相中上了一个程序员小伙,就不用担心他酗酒,因为程序

假如你喜欢一个程序员小伙

  程序员向来是善于幽默自嘲的群体,但从某种程度上影响了咱程序员在广大女同胞心中的印象啊--       于是写下此篇(有从别处看到的几句加进来的), 就算是为咱程序员做个广告--要是觉得有点过的程序员们,就把此文当作一个美好的目标吧---:) 如果你喜欢上了一个程序员小伙,就不用再害怕电脑中病毒QQ被盗,因为他至少尝试过10款以上杀毒软件,他知道用那款占资源最少防毒效果最好的保护你的电脑. 如果你喜欢上了一个程序员小伙,就不用担心他会外遇,因为他工作内容深奥无边,每天沉醉于业务研究之中的他,没

同样是iOS程序员,6K与30K的差距到底在哪?为什么薪酬差异那么大?

前言: 有人看到这样的问题,第一感觉的答案就是"因为你是初级工程师,他是高级工程师呗~".这确实是一个很好的答案!不管什么样的职业都有一个从"初级"到"高级"的过程,没有哪个人能一步登天,生出来就是当架构师.CTO 之类的职位的.那么怎么样才能从初级走到高级呢?怎么样才能用更短的时间完成这个过渡的阶段呢?今天就来聊聊同样是程序猿,6K与30K的差距到底在哪! 作为一个开发者,有一个学习的氛围跟一个交流圈子特别重要,这是一个我的iOS交流群:638

程序员想要月薪2W+?这些能力你有了吗?

现在程序员是比较紧俏的一个岗位,其实能够写代码的人很多,但是为什么程序员还那么缺呢?除了需求大以外,还有一个原因就是,真正合格的程序员确实比较少.想要成为一个合格的程序员,我们需要满足以下几点要求: 1.细心 对于很多程序员来说,写出来的代码可能这里因为不小心漏了什么,那里因为不小心没有测试到一个大Bug,因为马虎而出现的问题不在少数.所以,细心,能够很有效的减少开发周期,为整个项目的推进起到良性的作用. 2.胆大 很多时候,我们明明知道业务逻辑上有问题,可能因为怕得罪人,可能因为觉得这个问题不

为什么说程序员的前三年不要太看重工资水平

为什么说程序员的前三年不要太看重工资水平? 这是很多程序界的”过来人“给新人提出的忠告.1.得出这样结论的依据是什么?为什么?2.对于程序员职业发展的影响是怎样的?修改 举报 14 条评论 分享 • 邀请回答 按投票排序按时间排序 179 个回答 4432赞同反对,不会显示你的姓名 captain,互联网广告研发\RTB\CTR预估 李杨.angleboo.罗凌 等人赞同 本来以为基本会停止增长了,没想到前几天赞的数量一下又增长了一倍多.好像赞数突然增加的原因是另外一个关于应届生放弃某家企业of

月薪8000的程序员和月薪2万的程序员差别在哪里?

如果你是一个程序员,目前月薪8000,但是你希望老板给自己开出月薪2万,需要怎么做? 要回答这个问题,我们先来聊聊程序员这份工作. 程序猿,又称码农或攻城狮,在行业外看来,这是一个光鲜亮丽的白领甚至金领职业--坐在电脑旁边喝喝咖啡敲敲键盘就能收入过万,这么好的事情哪里找去!但是程序员自己都知道,这份工作的真实体验并不那么令人愉快,我们细数一下程序员的七大恨吧.一恨客户需求天天修改,二恨单身成狗千百载,三恨年年岁岁都加班,四恨领导不懂瞎指挥,五恨客户无良骗方案,六恨谁都让我修电脑,七恨职业病多挣钱

毁掉程序员的十个恶习

作为一个敢于追求潮流的人,并励志做到专业的帅哥,在学习前端的这段时间里发现了自己很 多的弯路,下面分享一下(供大神拍砖). 从学习web前端开始的1个半月的时间里,自己从一名刚开始的网络方面思考方式转到软件开发 人员敏捷的程序思考方式.成为一名软件开发人员不是那么的容易,尤其是自己在大学期间把 所有的精力都用在了网络方面,所以现在自己的软件方面的知识很少,思维也不够的灵活,但 这是缺点同时也是优点,大学教会了自己养成认真的习惯,努力肯学,同时也培养了自己的思 考能力,但我知道这些思考能力是远远不

趣闻:我的程序员未婚夫

1,住酒店,进房间第一件事,把我按门口——别想太美:他会要求我看清门后逃生示意图,并口述一遍如何快速找到楼梯. 2,去影院看电影,选座位的核心标准是:离逃生出口近——所以我们总会坐在过道旁. 3,“出哪个地铁口?”“西北.”对他来讲ABCD可以不存在,因为记方向更好判断出去之后该往哪边走. 4,并强迫我学会辨识东西南北. 5,不过呢,在任何陌生的城市和地方,跟着他走,从来没走过一点冤枉错路. 6,搬家后第一次回家,大门钥匙孔不好把控,我用了二十几秒插不进去,想让他帮忙.他会板着脸说:你自己弄,摸