#乘风破浪的人生#
你们程序员太能吹牛了。动不动月薪就几万块。钱啥时候这么好赚了??
真的是吹牛吗??
邻居是一位初中老师,教物理的,有次闲聊得知我干程序员的,貌似他很感兴趣,就找我聊聊。
上来就很愤怒的问我:小孟,程序员这个行业是不是也别浮躁,又能吹牛,动不动月薪二三十k,我教课10年,才10k。
哎,既然他都这样说了,我也不想和他说真实的情况,我说了真实的情况他心里肯定不平衡,所以我就说了:别信那一套,其实没那么高,也就10k上下。
但是下面,我给大家说的是真实的情况:
我在很多大大小小的工作过,月薪开始12k,后面飙升到50k+。先说结论:程序员月入几w,真的很正常,完全不是吹牛。
但是两级分化非常严重,收入高的很多,找不到工作,被裁员的也很多。
首先看一下图1,2021的校招薪资。今年腾讯校招生的白菜价40w。

今年找工作特别难,很多应届生去了小厂,薪资只有7/8k。
为什么有的学生可以去大厂,有的学生去小厂, 甚至找不到工作。
因为专业技术差太多了。
首先要做到以下几点:
数据结构:数组、链表、二叉树、堆栈、排序算法、B+/B-树、DP(动态规划)等;疯狂刷题,剑指offer、Leetcode等等计算机网络:HTTP、DNS、ARP、TCP、IP、ICMP、UDP等;操作系统:IO、存储器、多线程/多进程、同步机制、处理器调度及死锁、设备管理、通道等;计算机组成原理:冯诺依曼计算机组成、计算机层次结构、计算机性能指标等;选定一门主攻的语言方向,比如Python、C++、Java等;多刷项目,我开源了很多的项目了。暑假很多小伙伴加入我的vip学习,一起充电。
再叨叨下其他的几个比较重要的点:
1,第一份工作非常非常重要。第一份工作尽量去大公司,因为大公司不管在技术还是管理制度上都是一流的,你能学到很多东西。关键是你再去跳槽,也很好跳。如果你的第一份工作是小公司或者外包公司,后面你再跳槽都很难,有很多公司不把外包公司当做工作经验。

2,平时没事多充电和学习。有很多人希望在公司学东西,但是计算机这个东西,大部分时间还是靠自己业余充电。我工作那会,只要下班了,就一直充电,周六周天也是买了很多的付费课程和书,猛学习。
2年就干到了高级工程师。如果你想刷题,我整理了一份leetcode的算法题,非常的nice。私信我,回复:leetcode 刷题非常重要,如果你是小镇和农村的孩子,多刷题是你成功的第一步。
3,保持高效的学习和兴趣
a,戒掉短视频和是游戏,现在这玩意就是精神yp,这种都是推荐算法惹的祸,不断训练你的兴趣模型,不断给你推送你感兴趣的东西。特别的耽误时间。唯一的办法就是卸载。
b,做好规划。一天的规划,一周的规划,一月的规划。其实小孟每天的事和工作非常多,但是我早上起来的第一件事就是列好规划,然后一件件地去执行。日复一日,年复一件,我觉得最牛b的事就是坚持。

c,利用好碎片时间。成年后,我们的杂事很多,但是只要挤时间,肯定是会有的。例如我现在写的这些文字都是在地铁上写的。你也可以刷一道算法题或者看个技术视频。
当然程序员也可以实现财富自由,说下几条路:
1,加入创业公司,拿到股份,坚持到公司上市或者出售,不过这个需要眼光;
2,建立影响力,通过技术咨询、自媒体等不断提高收入;
3,积累技术,开发产品或者给别人定制产品来提高收入;
4,在职场竞争,混到公司高管,通过公司股份实现财务自由。
5,积累一定的资本,例如投资理财、房产、实体产业等发家致富。
我尝试过不少,有的也赔过很多,不过经过长期的努力,2,3,4,5做的还不错。
送一句我的座右铭给大家:你若对得起时间,时间就会对得起你。
选择对的时间,去做对的事,把时间用在刀刃上。乾坤未定,你我皆是黑马。

码字不易,点赞、评论、转发支持。我是小孟,欢迎关注我@程序员springmeng[送心][送心][送心],有问题可以在评论区留言。
#AMiner必读论文推荐#
#多机器人系统#
论文集地址:多机器人系统 - 必读论文 - AMiner
机器人技术的发展使机器人的能力不断提高,机器人应用的领域和范围正不断扩展。经过二十几年的发展,多机器人系统的研究已在理论和实践方面取得很大进展,并建立了一些多机器人的仿真系统和实验系统。目前多机器人领域的研究内容主要有控制结构(或体系结构),通信相冲突的解决等问题。其中,控制结构和通信问题屑于多机器人系统中的高级控制任务,而冲突的解决(包括防止死锁和避磁及路径规划等问题)则属于多机器人系统中的低级控制任务。

该论文集共收录14篇论文,引用最多的论文为Optimal Perimeter Guarding With Heterogeneous Robot Teams: Complexity Analysis and Effective Algorithms。
AMiner学术搜索,学者+论文助你快速获得想要信息:AMiner - AI赋能科技情报挖掘
#AMiner# #论文#
40年薪面试题第六题:说一下jvm的常用监控命令?
当岗位到一定程度,问题很多时候都是回到性能优化层面,面试题大部分都是问调优的多,调优前就是要找出程序问题,找就要借助监控工具。
首先我们可以用arthas来进行jvm监控,arthas提供很好的面板,也可以远程web去看监控信息,这是个很溜的工具,阿里开源的,这个工具要安装完整的jdk才能使用,如果我们只是安装jre运行环境会包一些错误,所以记得安装完整的jdk。
sysprop:可以打印所有的System Properties信息
dashboard :显示线程、堆,gc所有信息,输入命令之后可显示当前进程的所有线程信息,堆信息,gc信息以及运行程序的底层java版本等信息,这个结果还是动态的,每几秒刷新一下

thread:
thread 指定线程号:针对一个线程占用CPU特别高,我们可以通过这条命令看到这个线程的堆栈信息,以查找问题所在
thread :打印出当前进程的所有线程信息
thread -b:打印出当前进程的所有死锁信息
jad:可以反编译线上的.class文件的字节码,使得我们查看代码是否发布成功
ognl:可以动态的去查阅或者修改线上代码变量的值
另外jdk原生的工具,其实某些情况可能没有安装arthas,又是内网无法直接安装arthas,所以还是得了解jdk自带的工具,常规的命令有如下:
javap: 是JDK自带的反汇编器,可以查看javaicon编译器为我们生成的字节码。通过它,我们可以对照源代码和字节码,从而了解很多编译器内部的工作(反编译)
jcmd:查看系统中类统计信息,堆信息,系统Properties内容,获取启动参数,获取所有性能相关数据PerfCounter.print,查看直接内存信息,查看CompressedClassSpace大小(查看性能参数经常用到)

jstat:详细查看堆内各个部分的使用量,以及加载类的数量。使用时,需加上查看进程的进程id,和所选参数 (查看gc详细情况用到)
jstack:输出的线程信息主要包括:jvm自身线程、用户线程等。其中jvmicon线程会在jvm启动时就会存在。对于用户线程则是在用户访问时才会生成(查找死锁经常使用到)
jps:查看当前java进程
jinfo:可以打印出java进程的配置信息:包括jvm参数,系统属性等
jmap:内存映像信息,jmap -heap pid 可以查看分代的内容情况
jhat:这个东西是用分析dump文件 (可以有jmap、jconsole、hprof 等导出的dump文件),离线分析,分析时会启动一个webserver,还支持使用对象查询语言
JConsole(jvisualvm):基本包括以下基本功能:概述、内存、线程、类、VM概要、MBean,可以远程连接java进程,提供了可视化界面,jvisualvm与JConsole大同小异。

其它还有:jdb、javah 、jsadebugd、jrunscript、jstatd 等等,只是可能比较少用,有兴趣的可以自行查阅资料看看。
其实不管是arthas还是jdk自带的工具,都是基于jvmti里面的来进行封装的,对于jvmti可以在oracle官网下载界面进到相关的文档链接可以看到,如果想深入了解还是多看官方文档,但是jvmti提供的都是c和c++的接口,看起来会比较吃力,但是基本可以知道jvmti是jvm里面做了挺多埋点监控,提供了丰富的接口,让我们上层的应用人员可以有方法可以查看到jvm里面的一些信息和了解它的一些原理,从而可以根据这些信息进行调优,这是我们上层人员精力有限的情况下能做到的层面了吧,如果我们想分析更详细的gc日志,可以在启动的时候指定gc日志输出,然后使用gcview或者gceasy等手段进行分析。
#程序员#
#IT#
#Java#







