10年老程序员总结了月收入过20K心得,不走弯路

首先,你必须有很好的技术。扎实的技术是做这个行业的基本条件。身边有同事,面试的时候经常会被慰劳一下,关于什么框架的代码,有没有熟悉框架的源码?现在很多公司也喜欢面试算法。所以说,面试常问的一些问题在网上搜一下,都清楚。这个要提前准备好。

其次,你要看你面试的这个行业的基本水准是多少?比如一些公司,如果是做算法,刚毕业的研究生就可以达到2万左右。

如果说bat,其实没有啥意思,大部分人都不在bat,针对普通程序员该如何做到20K,我觉得才有意义,至于说一毕业就年薪30-50W,不在讨论范围。

本人新建一个技术交流圈子,群主是10年老技术人员,某上市公司的技术负责人,群里面每天会给群友解答疑问,招聘内推,点击即可加入圈子 验证码 cs

如果是Java岗位

第一,对java基础非常熟悉,多线程,包括concurrent包,线程池,actor、forkjoin模型都要熟悉,知道原理。还有各种基础数据结构,list、map等实现原理。

第二,对常用框架和工具类原理非常熟悉,spring最常问,框架中也是最复杂的。

第三,对jvm内存模型,内存结构,gc原理非常熟悉,能够调优,使用jstack,jmap之类分析问题。

第四对数据库除了使用,要了解原理,比如innodb的原理,索引、页、buffer pool、刷盘机制、锁、事务隔离级别。能够调优,分析死锁。能够配置读写分离,主从。知道binlog,redolog,undolog都干啥的。

第四,对缓存非常了解,当然还是除了使用,要知道淘汰原理,比如redis数据结构都怎么实现的,集群怎么实现的。并且能够处理热key和bigkey。

第五对消息队列非常了解,一样会使用,还得知道原理,比如kafka分区,分片,怎么重置offset,为啥它不会丢消息,什么情况消息是顺序的,什么情况不是顺序的。qos怎么做的。都要会。

第六,对分布式框架和原理要非常了解,比如cap,base都要知道原理,2pc 3pc tcc要能说明白并且知道优缺点,能用代码实现出来。要知道etcd或者zk的原理,会用其sdk。要用过dubbo或spring cloud,要能讲出原理。

第七,要熟悉linux操作系统,除基本命令,要会写脚本,sed awk都要会。同时会用top,vmstat等命令分析系统性能。能够对系统进行基线加固和性能调优。要理解epoll和select原理,还有零拷贝这样常用的内核层面性能优化方案。

第八,熟悉tcp和http协议。至少把三次握手和四次挥手产生的状态都要说的出来。知道滑动窗口,拥塞控制这些原理性东西。然后对http协议头要非常了解。同时会抓包分析数据。

第九,能够搭建负载均衡,四层和七层都要会,同事要知道负载均衡算法和原理。

第十,要熟悉git,知道merge和rebase区别,要常用rebase。熟悉gitflow。

最后,要有一定的架构设计思维能力,对领域模型驱动设计有一些认识。能够拆分业务需求,选型制定方案。包括形成设计文档。

总结:

第一,要有技术,扎实的技术,

第二,学历越高越好

第三,要有一定的工作年限,

第四,要有一定的运气。

上一篇:java基础-02:编译型和解释型


下一篇:为什么面试你要25K,HR只给你20K?