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

随声附和 提交于 2019-12-02 00:16:52

程序员小伙三年月薪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全家桶等全部有深入解析)关注我转发此文后私信小编【架构资料】领取学习资料获取方式

插入链接与图片

链接: link.

图片:
带尺寸的图片: Alt

居中的图片: Alt

居中并且带尺寸的图片: Alt

当然,我们为了让用户更加便捷,我们增加了图片拖拽功能。

如何插入一段漂亮的代码片

博客设置页面,选择一款你喜欢的代码片高亮样式,下面展示同样高亮的 代码片.

// An highlighted block
var foo = 'bar';

生成一个适合你的列表

  • 项目
    • 项目
      • 项目
  1. 项目1
  2. 项目2
  3. 项目3
  • 计划任务
  • 完成任务

创建一个表格

一个简单的表格是这么创建的:

项目 Value
电脑 $1600
手机 $12
导管 $1

设定内容居中、居左、居右

使用:---------:居中
使用:----------居左
使用----------:居右

第一列 第二列 第三列
第一列文本居中 第二列文本居右 第三列文本居左

SmartyPants

SmartyPants将ASCII标点字符转换为“智能”印刷标点HTML实体。例如:

TYPE ASCII HTML
Single backticks 'Isn't this fun?' ‘Isn’t this fun?’
Quotes "Isn't this fun?" “Isn’t this fun?”
Dashes -- is en-dash, --- is em-dash – is en-dash, — is em-dash

创建一个自定义列表

Markdown
Text-to-HTML conversion tool
Authors
John
Luke

如何创建一个注脚

一个具有注脚的文本。1

注释也是必不可少的

Markdown将文本转换为 HTML

KaTeX数学公式

您可以使用渲染LaTeX数学表达式 KaTeX:

Gamma公式展示 Γ(n)=(n1)!nN\Gamma(n) = (n-1)!\quad\forall n\in\mathbb N 是通过欧拉积分

Γ(z)=0tz1etdt . \Gamma(z) = \int_0^\infty t^{z-1}e^{-t}dt\,.

你可以找到更多关于的信息 LaTeX 数学表达式here.

新的甘特图功能,丰富你的文章

Mon 06Mon 13Mon 20已完成 进行中 计划一 计划二 现有任务Adding GANTT diagram functionality to mermaid
  • 关于 甘特图 语法,参考 这儿,

UML 图表

可以使用UML图表进行渲染。 Mermaid. 例如下面产生的一个序列图::

张三李四王五你好!李四, 最近怎么样?你最近怎么样,王五?我很好,谢谢!我很好,谢谢!李四想了很长时间,文字太长了不适合放在一行.打量着王五...很好... 王五, 你怎么样?张三李四王五

这将产生一个流程图。:

链接
长方形
圆角长方形
菱形
  • 关于 Mermaid 语法,参考 这儿,

FLowchart流程图

我们依旧会支持flowchart的流程图:

Created with Raphaël 2.2.0开始我的操作确认?结束yesno
  • 关于 Flowchart流程图 语法,参考 这儿.

导出与导入

导出

如果你想尝试使用此编辑器, 你可以在此篇文章任意编辑。当你完成了一篇文章的写作, 在上方工具栏找到 文章导出 ,生成一个.md文件或者.html文件进行本地保存。

导入

如果你想加载一篇你写过的.md文件,在上方工具栏可以选择导入功能进行对应扩展名的文件导入,
继续你的创作。


  1. 注脚的解释 ↩︎

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!