当然了,十年前的薪资和现在的薪资肯定不能同日而语了。5k 左右的薪资算是比较低的了,但在当时的苏州,感觉还可以吧。
计算机行业的薪资真的高吗?
这道题其实可以改成:计算机行业如何才能拿到高薪呢?
我认为有以下几点,如果你能做到的话,拿到相对比较高的薪资还是没问题的。
1)算法
各大公司的笔试基本都考这个,《剑指 Offer》上的所有题目如果能背下来,LeetCode 刷个一百到三百道题,参加过 ACM 竞赛的也可以。
《剑指 Offer》,指的是《剑指 Offer:名企面试官精讲典型编程题》这本书,里面剖析了 50 个典型的程序员面试题,包括基础知识、代码质量、解题思路、优化效率和综合能力等 5 个方面。
LeetCode,一个在线刷题网站,包含了海量技术面试题,包括算法、数据结构 和 系统设计等 1000+ 题目,能帮助大家快速地提高编程技能,轻松拿下世界知名 IT 企业的梦幻 Offer。
给大家推荐一份纯 Java 版的 LeetCode 刷题笔记吧,作者是美团的技术大佬。基本上每道题都给出了多种思路,对算法薄弱的同学会很有帮助
2)数据结构
计算机存储、组织数据的方式,包括数组、链表、栈、二叉树、哈希表等,算法是解决问题的方案,为数据结构服务。算法能对数据结构中的数据进行各种处理,比如查找数组中的数据,或对其进行排序等等。
3)计算机组成原理
计算机是由 CPU、内存、显示器这些设备组成的硬件,但我们大学毕业后,往往从事的是软件方面的开发工作。那怎样才能在硬件和软件之间自由穿梭呢?答案就是学好计算机组成原理。
4)操作系统
为什么要学习操作系统呢?
第一,面试要考;第二,无论学习哪门子编程语言,比如说 Java、C/C++,都需要和操作系统打交道,像 Java 中的多线程技术,其实是由操作系统来负责进程和线程管理的;第三,学习操作系统,还能学到内存分配方面的知识。学完操作系统要能搞懂下面这几个问题。
-
进程与线程简单介绍,区别,以及进程间通信方式,线程同步方式
-
用户态和内核态
-
内存管理:分页分段,虚拟内存,空闲地址管理方法
-
死锁:死锁的必要条件,死锁的检测与恢复,死锁的预防,死锁的避免
更详细的答案可以参照我之前的一篇文章,2 万+的阅读量了。
震惊!2022 年秋招 Java 后端开发岗竟然一片红海!算法岗都不香了吗?
对于计算机专业的同学,西安电子科技大学在 2021 届的报告里提到了下面 5 点:
我觉得非常重要,这里就细说一下。
1)信息搜索与处理能力
互联网时代,信息不再是匮乏的,而是精华与糟粕并存,如果信息搜索和处理能力没有提高,看到的都是一些垃圾,那自然差距就和别人慢慢拉大了。
对于计算机专业来说,GitHub、Stack Overflow、百度、谷歌,一定要用得好,像 GitHub,大量优质的内容都在上面,学会搜索,基本上任何宝藏你都能 get 到。
2)环境适应能力
进入一个公司后,不管是实习,还是正式参加工作,一定要能尽快适应下来,和同事打成一片,关系融洽,才能更好的工作,把自己的能力表现出来。如果这不适应,那不适应,工作的状态就会很差。
3)解决问题能力
大家想一想,程序员最核心的竞争力是什么?
解决问题的能力,是我认为最核心的竞争力。
当一个问题摆在你面前,你不能束手无策呀!你热爱,你努力,最终是要解决问题的,你做不到的话,就只能被扣上“纸上谈兵”的帽子了。
解决问题的过程可以分为三步:
-
透彻理解问题是什么?
-
导致问题出现的根本原因是什么?
-
找到最佳的解决方案。
对于新人来说,一开始遇到问题的时候,只能面向搜索引擎,去看看别人有没有遇到类似的问题,有没有解决方案,然后套用一下,看能不能把问题给解决了。
问题解决不了的时候,想问领导,想问大佬,能不能手把手教一教啊!
有一说一,我一开始也是这样的。但渐渐地,我就会去思考,为什么会出现这个问题,这个问题的底层逻辑是什么,除了这种解决方案,还有没有其他更好的呢?要不自己再花点时间去研究一下?
当你有了敢一个人去解决问题的胆量后,其实已经证明你进步了,因为只有支撑你的基础扎实了,你才会有这样的胆量。
4)终身学习能力
活到老,学到老,这没什么可说的,一旦停下来脚步,很可能马上就被别人超越了。生如逆旅,不进则退啊。
5)阅读能力
前几天,有个同学问我该怎么学习 Java,我把我最近高赞的回答发给了他。