有网友在某职业社区求助:“今年 35 岁,刚过完年第一天,因为年纪较大被公司劝退了,建议我这个月底提离职。十年开发经验,接下来我该怎么办?怎样维持生计?
35 岁,真的是程序员的一道坎吗? 程序员的核心竞争力到底是什么? 作为程序员需要掌握多少技能才能“可持续发展”呢?
01 核心竞争力
除去平时被提到无数遍的学习能力、编程能力、表达能力、耐心等。究竟是哪些明显不同于其他人的能力,可以助力你在职场上一路顺利前行呢?小编采访了几位年龄不同的程序员,从不同的年龄段的程序员身上,得到了不同的答案。
(1) 解决问题的稳准狠是衡量一个程序员是否优秀的重要因素之一,也是资深技术人员真正的价值所在。
作为一名程序员,我们要掌握多门编程语言和各种数据库技术,了解前端技术、后端技术,通晓网络七层架构,知道 TCP/IP 三次握手和四次挥手,编写漂亮的代码,设计优美的架构。除了这些知识储备之外,在工作中,我们面对的更多的是研发、程序运行和产品上线过程中遇到的各种问题,如何利用自己已有的知识储备,以最小的代价在短时间内解决问题,才是展现一位程序员真正能力的时候。
随着时代的发展,技术信息多如山海,一位刚毕业的大学生,如果足够勤奋,也能在两三个月之内掌握一门编程语言,编写出像模像样的软件。而他们的学习速度通常比老程序员更快,那么,作为有经验的程序员,你的优势是什么?是解决问题的能力,依靠时间、经验甚至是惨痛教训历练而成。 大多数的工作中的问题,只要给足时间,都是能够解决的,不过是时间长短而已。如果你遇到问题告诉上级,这个问题交给我了,两年之内搞定绝对没问题。那估计项目组要组团打你了,在这个急速发展的时代,大家要的是在最快的时间内解决,不是两年。在最短的时间内,用最小的代价快速解决问题,这才是程序员的价值。
(2) 整合资源的能力
遇到一个新的需求,什么时候造轮子,什么时候不造轮子,什么情况下利用公司自己的轮子,什么情况下利用开源的轮子,都是需要考虑的问题。在自己的技术栈中,不同的框架有何优劣,各自都适合于哪种场景,都应该能了熟于心。最不可取的是,长时间调研没结果,学习了很多框架,做法,但无法认真对比优劣,这就是不能抓住核心的问题。
(3) 方法论
刘未鹏的《暗时间》是专门为程序员写的方法论,其中有些很好的思维方法值得我们参考。
在程序员的眼里,做一个项目,首先想到的是用什么语言、什么框架、什么库。很多人会想用这个方向最厉害最前沿的方法去完成,用老套的方法格外没有成就感。其实,这种想法就属于只考虑单个孤立因素的决策,就是希望能在展现自己技术能力和技术水平的情况下解决这个问题。然而, 事实上,相比这些,更为重要的是,这个产品需要满足什么需求,有什么市场,是不是值得去做。
再举个例子,领导分配给了你一个产品信息分类的问题,你发现这个问题刚好可以有机会试用一下自己最近刚学的 NLP 中的一些分词、段落以及短语比较和分类的框架,而且这个工作好像很有挑战性,还不是一般人能做的了的,综合以上几点,你跃跃欲试,准备大干一场。然而,考虑到以上各点,这将是个投入相当大的项目,那么,其收益就必须对得起这个投入,技术上很牛不代表商业上就牛,再厉害再难做的项目如果不能带来商业价值,那就是负的收益。
总之,一件事情仅仅让你觉得挺牛不代表这件事情就是值得做的;一件事情仅仅让你很感兴趣并不代表这件事情就是值得做的。
02 学习技能
作为一名程序员,单纯说技术上的技能,那么要学习的技能大概是无限多。 从开发语言: C,C++,Java,Python,到开发内容:Web 开发,嵌入式,AI 应用等等。要说这些技能,大概是永远都学不完的,但无论你是使用什么编程语言,做哪种开发和研究工作,有些基本且通用的职业技能,是作为一名合格的程序员所必须的,能否用好这些技能,直接关系到了你的职业生涯。那么,让我们来看看,哪些通用技能,可以为你的职业发展给予帮助。
(1)文档习惯
把文档习惯放在第一点,因为很多人还没有意识到好的文档习惯的重要性。说高水平程序员从来不写文档的肯定是乳臭未干的毛孩子,良好的文档是正规研发流程中非常重要的环节,作为代码程序员,30 %的工作时间写技术文档是很正常的,而作为高级程序员和系统分析员,这个比例还要高很多。 缺乏文档,一个软件系统就缺乏生命力,在未来的查错,升级以及模块的复用时就都会遇 到极大的麻烦。因此,有良好文档习惯,增强自己代码的可管理能力,一定能够为自己在团队协作中增添不少光彩。
(2)归纳总结的能力
相比于其他行业,计算机行业的知识和技能的更新迭代速度更快,因此,程序员队伍是很容易被淘汰、很容易落伍的。可能某种技术仅仅是在近两三年具有通用性和先进性,一旦被淘汰了,就立刻要开始掌握新的技术。因此,善于学习,将学习新技能当做是工作和生活的常态,是良好的职业技能的体现,每次完成一个研发任务,完成一段代码,都要归纳总结一些之前没有注意到的点,随时总结,找到自己的不足,并不断自我提高。
(3)模块化的思维能力
经常可以听到一些程序员有这样的抱怨,写了几年程序,变成了熟练工,每天都是重复写一些没有任何新意的代码,这其实是中国软件人才最大浪费的地方,一些重复性工作变成了熟练程序员的主要工作,而这些,其实是完全可以避免的。
复用性设计,模块化思维就是要程序员在完成任何一个功能模块或函数的时候,要多想一些,不要局限在完成当前任务的简单思路上,想想看该模块是否可以脱离这个系统存在,是否可以通过简单的修改参数的方式在其他系统和应用环境下直接引用,这样就能极大避免重复性的开发工作,如果一个软件研发单位和工作组能够在每一次研发过程中都考虑到这些问题,那么程序员就不会在重复性的工作中耽误太多时间,就会有更多时间和精力投入到创新的代码工作中去。 一些好的程序模块代码,即便是 70 年代写成的,拿到现在放到一些系统里面作为功能模块都能适合的很好,而现实中则是,很多公司的软件一旦升级或者改进就要全面代码重构,这些大部分的重复工作浪费了大量的人力物力。
(4)皮实的身心
作为一名程序员,始终是要要学会养生,懂得生活。积极锻炼身体,少熬夜,关注发际线
题外话
网络安全行业特点
1、就业薪资非常高,涨薪快 2022年猎聘网发布网络安全行业就业薪资行业最高人均33.77万!
2、人才缺口大,就业机会多
2019年9月18日《中华人民共和国中央人民政府》官方网站发表:我国网络空间安全人才 需求140万人,而全国各大学校每年培养的人员不到1.5W人。猎聘网《2021年上半年网络安全报告》预测2027年网安人才需求300W,现在从事网络安全行业的从业人员只有10W人。
行业发展空间大,岗位非常多
网络安全行业产业以来,随即新增加了几十个网络安全行业岗位︰网络安全专家、网络安全分析师、安全咨询师、网络安全工程师、安全架构师、安全运维工程师、渗透工程师、信息安全管理员、数据安全工程师、网络安全运营工程师、网络安全应急响应工程师、数据鉴定师、网络安全产品经理、网络安全服务工程师、网络安全培训师、网络安全审计员、威胁情报分析工程师、灾难恢复专业人员、实战攻防专业人员…
职业增值潜力大
网络安全专业具有很强的技术特性,尤其是掌握工作中的核心网络架构、安全技术,在职业发展上具有不可替代的竞争优势。
随着个人能力的不断提升,所从事工作的职业价值也会随着自身经验的丰富以及项目运作的成熟,升值空间一路看涨,这也是为什么受大家欢迎的主要原因。
从某种程度来讲,在网络安全领域,跟医生职业一样,越老越吃香,因为技术愈加成熟,自然工作会受到重视,升职加薪则是水到渠成之事。
关于网络安全学习指南
学习网络安全技术的方法无非三种:
第一种是报网络安全专业,现在叫网络空间安全专业,主要专业课程:程序设计、计算机组成原理原理、数据结构、操作系统原理、数据库系统、 计算机网络、人工智能、自然语言处理、社会计算、网络安全法律法规、网络安全、内容安全、数字取证、机器学习,多媒体技术,信息检索、舆情分析等。
第二种是自学,就是在网上找资源、找教程,或者是想办法认识一-些大佬,抱紧大腿,不过这种方法很耗时间,而且学习没有规划,可能很长一段时间感觉自己没有进步,容易劝退。
第三种就是去找培训。
接下来,我会教你零基础入门快速入门上手网络安全。
网络安全入门到底是先学编程还是先学计算机基础?这是一个争议比较大的问题,有的人会建议先学编程,而有的人会建议先学计算机基础,其实这都是要学的。而且这些对学习网络安全来说非常重要。但是对于完全零基础的人来说又或者急于转行的人来说,学习编程或者计算机基础对他们来说都有一定的难度,并且花费时间太长。
第一阶段:基础准备 4周~6周
这个阶段是所有准备进入安全行业必学的部分,俗话说:基础不劳,地动山摇
第二阶段:web渗透
学习基础 时间:1周 ~ 2周:
① 了解基本概念:(SQL注入、XSS、上传、CSRF、一句话木马、等)为之后的WEB渗透测试打下基础。
② 查看一些论坛的一些Web渗透,学一学案例的思路,每一个站点都不一样,所以思路是主要的。
③ 学会提问的艺术,如果遇到不懂得要善于提问。
配置渗透环境 时间:3周 ~ 4周:
① 了解渗透测试常用的工具,例如(AWVS、SQLMAP、NMAP、BURP、中国菜刀等)。
② 下载这些工具无后门版本并且安装到计算机上。
③ 了解这些工具的使用场景,懂得基本的使用,推荐在Google上查找。
渗透实战操作 时间:约6周:
① 在网上搜索渗透实战案例,深入了解SQL注入、文件上传、解析漏洞等在实战中的使用。
② 自己搭建漏洞环境测试,推荐DWVA,SQLi-labs,Upload-labs,bWAPP。
③ 懂得渗透测试的阶段,每一个阶段需要做那些动作:例如PTES渗透测试执行标准。
④ 深入研究手工SQL注入,寻找绕过waf的方法,制作自己的脚本。
⑤ 研究文件上传的原理,如何进行截断、双重后缀欺骗(IIS、PHP)、解析漏洞利用(IIS、Nignix、Apache)等,参照:上传攻击框架。
⑥ 了解XSS形成原理和种类,在DWVA中进行实践,使用一个含有XSS漏洞的cms,安装安全狗等进行测试。
⑦ 了解一句话木马,并尝试编写过狗一句话。
⑧ 研究在Windows和Linux下的提升权限,Google关键词:提权
以上就是入门阶段
第三阶段:进阶
已经入门并且找到工作之后又该怎么进阶?详情看下图
给新手小白的入门建议:
新手入门学习最好还是从视频入手进行学习,视频的浅显易懂相比起晦涩的文字而言更容易吸收,这里我给大家准备了一套网络安全从入门到精通的视频学习资料包免费领取哦!
如果你对网络安全入门感兴趣,那么你需要的话可以在下方扫码领取!!