很多不懂技术的人,都很羡慕哪些做技术的大牛,尤其是IT行业的技术员,更是很受青睐,比如程序员这个职位一直是很多人向往的。
互联网技术岗位往往工资比其他行业要高一些,但是实际程序员的工作没有大家想象的那么光鲜。下面是一些老程序员给大家讲解真实的互联网技术行业的现状。
第一、软件开发行业,很多都是小公司,往往一个公司只有2-3名程序员,所以程序员工作并不好找,往往一个程序员被辞退,将在短期很难找到像对口工作。不像做销售的,需求量大,很多销售公司一个部门就有好几百号员工,而且长期招工。软件公司的程序员岗位需要的人数少,基本长期不招人,就是有人才流失,往往也是通过熟悉的关系渠道挖人才。所以从事软件开发的程序员往往很难找到工作。
第二、软件开发公司虽然人数少,但是并不代表事情少,恰恰相反事情非常多,往往是一个人做多种事情,这就对程序员悄悄比较高,要求程序员既要业有专攻,同时又必须是多面手,而且还是救火队队长,因为程序经常出现BUG,软件上线了出现BUG就得马上去修复,哪怕是深夜1,2点,老板也会打你电话让你起来修复BUG .
软件开发公司,加班是家常便饭,客户都是要求软件尽快上线,抢占商机,慢了就不行。所以软件公司老板基本长期处于赶工期的状态,而且软件开发变数比较大,有时候客户要求增加一个新功能,客户认为这个新功能很简单,但是技术上往往让程序员费尽心思,因为有些功能以前没有写过这样的代码,公司代码库也没有储存过,那么就得让程序员反复研究,反复试错,其中的难度,夸张一点说法,好比爱迪生发明灯泡,要试错上千次才能成功。而更重要的是要在客户贵的的时间内完成,于是程序员能做的就是加班,往死里加班。
所以程序员根本没有自己的私人空间,所以程序员很多都是单身,程序员拿着白领的工资过的却是农民工一样的生活,所以很多人把写代码的程序员称为:“码农”!
第三、程序员要求有相当强的学习能力,因为软件行业更新换代太快了,这就要求程序员要不断学习新知识,如果不学习新知识将什么事也做不成,自然会被淘汰。就比如游戏开发引擎 unity3D,每隔几个月就更新,而游戏开发者就得不断学习unity3D的新技术,否则将无法使用,如果你一年不学习unity3D新技术,你可能会像一个新手一样面对unity3D根本就不认识。
相对于传统行业技术变化没有那么快,往往学一次用终身,比如司机只需要学会驾驶技术,就可以用终身,因为汽车驾驶技术基本是数十年不会变。但是软件行业则恰恰相反,变化太快,也行你从事软件开发数十年的经验,还不如一个刚入门的新手,因为新手往往学的是最新的技术,而老程序员用的还是过去的老技术,这就好比马车在好也跑不过汽车,新技术优势太明显了。
所以很多公司对35岁以上的程序员采取劝退的方式,这是有原因的,因为35岁以上的人往往不再对新东西感兴趣,也不愿再学习新技术,这样的人基本就是被榨干了的枯木,没有再使用价值了。
之前有传闻华为劝退35岁以上的技术员,可以想象的到,做程序员如果35岁,不能转到管理岗位,那么你就等着被辞退!
第四、程序员辞职创业成功率极低。很多人看到马化腾,李彦宏,雷军,等人都是做程序出生的,他们最终都辞职创业成功,但是往往很多人没有去统计概率,这些光鲜的IT创业明星,往往都是低概率事件!比中彩票的概率还要低。
我们过去说业务员离老板最近,也就是说做业务出生的创业成功率高的多,现在依然如此。这是有原因的,以为你作为一个创业者,要求具备的是综合型能力,而不是哪一个专项技术。及时像马化腾,李彦宏,雷军一单自己当上老板也没有继续做技术岗位了,而我转向了管理。
做技术的人往往缺乏管理能力,也缺乏营销能力,就好比马云的营销能力要远远强于马化腾,和李彦宏。做业务出生综合能力要远远强于做技术的。当然也有少数特例,这里我说的是大多数情况。
所以很多老程序员,做了10几年程序员后,反而更加看不到前头,所以很多老程序员告诫大家,精通技术是没错的,但不要一条路给自己堵死,比如大家都知道阿里的程序员晋升有两条路线,一条是技术专家(P4-P14),另外一条则是管理路线(M1-M9),P和M的差别在于,P级更多通过专业贡献带来价值,M则通过整合团队资源拿到结果。P的晋升主要看成长能力,M更多的是看组织需要。
当然了,首先你也得进的了阿里这种大厂,入职门槛可不低。之前我一个学长因为想要跳槽天天找面经,后来还真的找到了一份,通过这份面经成功入职阿里,起薪36K。 这份资料GitHub 上标星 120k,内容还真的不错,来简单看一下目录和部分内容截图。包括 Java 基础、Java 容器、Java 并发、Java 虚拟机和 Java IO,非常全面。
(一). 基础
1.Java 基本功
- Java 入门(基础概念与常识)
- Java 语法
- 基本数据类型
- 方法(函数)
2. Java 面向对象
- 类和对象
- 面向对象三大特征
- 修饰符
- 接口和抽象类
- 其它重要知识点
3. Java 核心技术
- 集合
- 异常
- 多线程
- 文件与 I\O 流
(二). 并发
1. 并发容器
- JDK 提供的并发容器总结
- ConcurrentHashMap
- CopyOnWriteArrayList
- ConcurrentLinkedQueue
- BlockingQueue
- ConcurrentSkipListMap
2. 线程池
- 使用线程池的好处
- Executor 框架
- (重要)ThreadPoolExecutor 类简单介绍
- (重要)ThreadPoolExecutor 使用示例
- 几种常见的线程池详解
- ScheduledThreadPoolExecutor 详解
- 线程池大小确定
3. 乐观锁与悲观锁
- 何谓悲观锁与乐观锁
- 乐观锁常见的两种实现方式
- 乐观锁的缺点
- CAS与synchronized的使用情景
(三). JVM
1. Java内存区域
- 概述
- 运行时数据区域
- HotSpot 虚拟机对象探秘
- 重点补充内容
2. JVM垃圾回收
- 揭开 JVM 内存分配与回收的神秘面纱
- 对象已经死亡?
- 垃圾收集算法
- 垃圾收集器
3. JDK 监控和故障处理工具
- JDK 命令行工具
- JDK 可视化分析工具
以上资料,对于想要面试大厂的小伙伴来说应该会很有帮助,希望也能帮助到你。需要的小伙伴可以点击下面的名片免费领取。
