文章目录
职业分析与计算机方向的选择、发展
一:编程学习解读与职业分析
导入:编程学习的主要问题:
学到什么程度才叫精通?35岁行业危机?总是和企业的要求有距离?
1.编程的学习阶段:
首先,我们要在思路上做出一个改变,编程学习,不单单是让你去解题;去背书。而是要从一个 “做题家” 变成 “创造者”,创造天地万物,大小神明。而编程技术就是我们去创造这个世界的法术。编程的本质实际上就是在模拟现实,我们要做的就是用技术工具去创造世界。
我们要去思考,我们所学的这些东西有什么用?要怎样去使用?想一想你当前所学的这些技术,在你想要创造的这个世界里,它能够发挥出怎样的作用和意义。设计重于一切,先理清思路再编写代码。
(1)入门阶段
作为一个初学者要怎样去接触编程:
- 要想学习编程,得先学会使用工具
- 再学操作,最后再深入其原理
- 先学会一门高级语言,有助于我们更好的去理解计算机基础
- 编程的学习方法:我认为学习编程最好的方法就是 ”复现“ :复现前人的代码,去深度的理解、思考前人的思路,最后尝试着去完善
(2)熟悉阶段
- 这个阶段最大的问题就是学的越多;忘的越多,这个问题也是大多数人都会遇到的问题,也许有很多人现在正在经历,后面的内容还没有学会,前面的就已经忘掉了,此时就有人会重新回顾前面所学习的内容,反反复复,导致进度条很难推动,情绪也越来越焦虑,这种焦虑初学者往往都会经历,所以不必担心。
- 大家都知道,我们学习数学应该记住数学公式;学习英语应该记住英语单词;那么我们学习编程,应该记住的是什么呢?编程语法?代码公式?还是设计模式?其实都不是,我们应该记住的是编程思想,也就是我们自己的编程思维。编程语言说到底只是一个供我们去使用的工具,因此没有必要死记硬背,更不能死记硬背。
- 我们学习的所有的计算机技术和计算机概念,只有两个目标:解决问题和更好地解决问题。如果你去学习一项技术,学到最后连自己都不知道这项技术可以去解决怎样的问题,那这项技术基本就等于白学。因此在编程学习过程中往往要以问题为导向,发现问题,解决问题,优化方案。而最重要的则是勤加练习。
- 所以,我们学习编程,学到最后会忘记,忘了便忘了,没有人会记住所有东西。编程从来都不是靠背就能学会的学科。在这么多年的学习生涯中,我们会发现一个神奇的现象,学习一项技术,如果经常使用,经常与人去讨论这项技术,基本上是很难忘掉的。经常用的不需要去背,而不经常用到的东西也没有必要去背。
(3)学到什么程度才叫精通呢?
解决这个问题的前提,大家要先思考以下几个问题:
我们在学习一项技术前,要先对这项技术有一个大概的了解:
我在学什么东西?它存在的意义是什么?
之后,我们在学习的过程中一定要去实践,切勿纸上谈兵:
这项技术有什么用?怎么去使用?
大多数人在学的过程中,往往只是把前两步给完成了,这样最多叫做熟练,你只是熟悉了怎样去使用它。如果想要把这项技术掌握到精通仅仅是这样并不够,还要解决下面的两个问题:
为什么是这样?还能怎么样?
想要解决这两个问题,我们就要去深入了解它的底层,熟悉它的原理;可以自己去优化、设计、实现。如果把这些内容给弄清楚,就说明你已经半精通了这项技术。但是还不够,你还要将它们代入到工程,到这里如果全部都弄会的话,才真正意义上达到了精通。尽管以后忘了,也就忘了,因为这项技术的精髓你已经掌握了。
补充: 如何做笔记?
不要去把别人讲的话原封不动的抄写下来,这样做意义不大。笔记里应该去记你对这个概念这项技术的理解;最好放上自己写的代码的一个demo。当你需要用到这项技术的时候,就去看自己写的demo去回忆这个概念的使用。
2.职业分析
(1)岗位分析
职业分析 | 描述 | 具体事例 | 岗位分析 |
---|---|---|---|
计算机科学家 | 奠定学科基础的系统结构 | 研究的是计算机是什么?怎么构成的?研究的核心就是怎样以更快的速度去处理更多的数据 | 在国内的大厂很少见,一般是在一些研究所、研究院。这个岗位并不适合就业,最好的出路就是留校 |
研发工程师 | 给技术从业者提供技术工具 | 比如C++ ;Python ;Java 这类编程语言本身及开发数据库这类存储工具。结合最基础的计算机理论去研发这些技术工具 | 在一些大公司;商业公司;研究所;高校。岗位薪资高,相对来说比较适合就业,但要求也很高,硕士居多 |
开发工程师 | 解决现实需求的产品应用 | 比如写个APP ;做个网页;游戏等等。使用技术工具去实现业务,把技术和业务更好的结合,侧重一半技术一半业务 | 80%从业者在做的,绝大多数人的未来。岗位最多,薪资跨度大(大到几十万,小到几千) |
计算机结合某个领域的特定解决方案 | 比如CAD这类工业软件、人工智能、计算化学等这类自成一派的交叉学科 | 多为高校;研究所。交叉是大势所趋,但交叉不适合就业 | |
站在政策的角度来看行业 | 国家规划 |
注意: 到了这里,补充一点,现在很多人都担心计算机行业是不是不行了。但计算机发展到今天已经与所有的科技发展密切挂钩。科技是第一生产力,大家如果想要判断计算机的发展方向在哪,不要去看什么营销号,更不要盲目跟风。可以去看看国家的规划,尤其是十四五规划。大家一定要站在政策的角度来看。
(2)程序员未来发展方向
- 下面我们从上面的第3点(开发工程师)切入,我们的发展要么往底层走(研发工程师;计算机科学家);要么能够去熟悉某一个领域,对于业务非常的精通。
- 既然选择了计算机这碗饭,我们就要知道,对于这个行业来讲,学习是持续性的。入职只是新一轮征程的起点,把学习当成一种习惯,不要把它当作负担。
只要还是吃计算机这碗饭,那么未来的发展方向大致分为两种:
- 业务开发方向 —— 围绕海量数据的处理和解决方案
这个方向的最多特点就是技术壁垒不高(在同一体量下,技术差距不大),相对来讲更加着重业务,也要项目经验丰富,有团队统筹能力
什么叫做体量:
比如从一个小公司到一个大公司,有一个非常重要的指标,就是数据量。越大的公司数据量越高,如此庞大的数据对于服务器、底层优化、安全性等要求会很高。而关于数据量带来差异的同时也带来了另一样东西,也就是海量数据的处理和解决方案
而关于未来发展有一个很重要的能力,也就是工程能力:
(1)分析业务
(2)技术选型
(3)团队统筹
工程能力也就是你能够从0到1的去完成整个项目的过程,统筹团队解决问题完成需求的能力,也就是解决方案。你统筹多少人完成了多大的需求也就决定了你值多少钱。
- 技术专家方向 —— 底层的计算机基础知识深入,计算机技术工具的研发方向
这个方向着重计算机学科的学习(比如四大件要学的更深),深入底层,这个方向的核心只有一个就是优化能力:
- 用更少的系统资源以更快的效率完成
注:
要么去提升工程能力,要么去提升底层能力。来应对程序员35岁行业危机
不要相信一些程序员的二次培训机构,没有实际意义。把综合能力提升上来才是最重要的
二:计算机方向的选择、发展
1.计算机三大方向:
(1)理论计算机科学:
理论计算、信息编码、数据结构和算法、程序设计语言等
- 很难在企业中找到相对应的工作,一般在实验室,对数学要求极高
- 发论文极其困难(很难毕业)
- 对于科研,由于是基础理论研究,经费很难申请
- 入门门槛极高,且大环境不好(在慢慢的变好)
- 一般停留在科研阶段,公司不做
- 基本全是卡脖子的东西(编译器;编程语言等)
(2)计算机系统科学:
计算机体系结构与工程、性能分析、安全和密码学、并行计算、分布式等
- 对代码功底要求极高,且项目周期很长
- 需要对计算机系统十分了解,学习周期很长
- 对于科研,经费极其充足
- 基础架构、解决方案、优化、设计、高性能等
(3)计算机应用科学:
人工智能、计算机图形和可视化、数据库和数据科学等
- 跟计算机本身没有太大的关系,更多的是利用计算机去解决一些问题
- 不需要特别强的代码功底和数学功底
- 上手很快
C++
(注重学历、经验)、软件开发、嵌入式开发、游戏开发等AI
人工智能(门槛非常高、能够落地的东西非常少)
2.计算机大的方向:
- 十四五规划:国家政策代表一切
- 408的改动:大纲的改动
- 未来技术学院的落地:对交叉专业感兴趣的可以考虑
3.良好的学术道德
- 合理的时间付出是必须的(不要间断性学习)
- 可以去焦虑,但要良性焦虑,不要干扰自己的情绪
- 作为计算机专业的学生,大脑要跟着逻辑走(随时随地都要有解决问题的步骤)
- 敢于挑战传统思维(不要盲目的把前辈说的话奉为真理),不要随波逐流
- 保持初心!!!
以上内容仅为参考,欢迎大家在评论区讨论、纠正