你知道国外成熟的软件公司,程序员的title是什么吗?
不是programer,是engineer。
公司里的程序员,本质上是工程师。软件工程属于工程学的子科学,解决的是大规模生产下的架构、成本管理、可靠性等各方面问题。
如果你真的不理解工程是啥意思,拿土木行业举个例子吧:
中国农村有一种行业叫泥瓦匠,不需要科班出身,不需要职业证书,他们就是题主所说的“拿自己的手艺卖钱”的人,他们自由,有稀缺性,比村里别人赚的都多,而且比很多在工地上搬砖的人赚的也更多,因为搬砖的技术要求也更低。
但你有没有听过,土木行业有各种证书的工程师,只要挂靠就赚得比泥瓦匠多得多?
因为现实中,生产一个超大型产品与生产一个小型产品是完全不同的事情。
一个泥瓦匠两个月可以盖一个3层的小楼,不需要任何证书。
盖一个300层的高楼,是不是直接雇佣100个泥瓦匠两个月就可以盖出来了?还是说村里的泥瓦匠200个月就可以盖出来?长江大桥又需要多少个泥瓦匠才能盖出来?大家都是建筑行业嘛!
土木行业的工程师需要去搬砖吗?不搬砖的工程师是否有存在的意义?你想想,他存在的意义是啥?
有没有明白一点?
独立开发者的本质是个体手艺人,个体手艺人解决的是生产他个体能产出的规模的产品。比如他一年可以生产3万行代码,他就可以做这么大的生意。当然销售是另一个问题,缺少销售渠道也会导致销量受限。
而公司之所以成为公司,肯定是需要规模化生产的,如果是10个人以内的公司,其实生产能力与个体的差异并不明显。但如果需要制造的产品需要更多的人,更短的时间,更高的质量,那遇到的问题可就多多了。
- 50人的研发团队生产一个软件,你就需要组织这50个人的工作,不是简单的分工哦,这50个人的工作都是互相关联的,用专业术语叫耦合,你要去拆解工作,让他们的工作正确的协作运行,俗称解耦,如果缺乏解耦,就会导致效率大幅降低,到处都是质量问题
- 50人的研发团队生产的软件,所遇到的技术挑战,是1个人开发的软件遇不到的,比如大型互联网公司遇到的高并发问题,在个人软件里并不需要,而学习这种能力又只能在大公司,导致这些技术能力很稀缺,也就更赚钱
- 大型软件作为长期存在的产品,需要保证很多指标是个人软件用不到的,比如扩展性、可维护性、按时可交付性、并发性、容灾性、事务性、鲁棒性等等,需要更严谨的科班知识,行业领域知识以及技术沉淀,建立一套工程能力(与2区别在于,偏向于技术管理,并非是单点的技术能力),比如技术规范、业务架构、技术组件、技术体系等等,没有这种工程能力的团队,会很容易在长期迭代下导致产品交付或质量崩溃,所以大公司也需要工程能力的人才,这种能力无法在github找到,也导致一定的稀缺性
所以,很多时候大公司员工拿的“死工资”,比很多中小创业者赚的多得多,根本上在于大型工程中的很多能力是稀缺的,老板不得不拿出高薪留住人才,所以他们选择“死工资”,或者寄希望于自己成长为能拿更高“死工资”的人。
学习计划
那么问题又来了,作为萌新小白,我应该先学什么,再学什么?
既然你都问的这么直白了,我就告诉你,零基础应该从什么开始学起:
阶段一:初级网络安全工程师
接下来我将给大家安排一个为期1个月的网络安全初级计划,当你学完后,你基本可以从事一份网络安全相关的工作,比如渗透测试、Web渗透、安全服务、安全分析等岗位;其中,如果你等保模块学的好,还可以从事等保工程师。
综合薪资区间6k~15k
1、网络安全理论知识(2天)
①了解行业相关背景,前景,确定发展方向。
②学习网络安全相关法律法规。
③网络安全运营的概念。
④等保简介、等保规定、流程和规范。(非常重要)
2、渗透测试基础(1周)
①渗透测试的流程、分类、标准
②信息收集技术:主动/被动信息搜集、Nmap工具、Google Hacking
③漏洞扫描、漏洞利用、原理,利用方法、工具(MSF)、绕过IDS和反病毒侦察
④主机攻防演练:MS17-010、MS08-067、MS10-046、MS12-20等
3、操作系统基础(1周)
①Windows系统常见功能和命令
②Kali Linux系统常见功能和命令
③操作系统安全(系统入侵排查/系统加固基础)
4、计算机网络基础(1周)
①计算机网络基础、协议和架构
②网络通信原理、OSI模型、数据转发流程
③常见协议解析(HTTP、TCP/IP、ARP等)
④网络攻击技术与网络安全防御技术
⑤Web漏洞原理与防御:主动/被动攻击、DDOS攻击、CVE漏洞复现
5、数据库基础操作(2天)
①数据库基础
②SQL语言基础
③数据库安全加固
6、Web渗透(1周)
①HTML、CSS和JavaScript简介
②OWASP Top10
③Web漏洞扫描工具
④Web渗透工具:Nmap、BurpSuite、SQLMap、其他(菜刀、漏扫等)
那么,到此为止,已经耗时1个月左右。你已经成功成为了一名“脚本小子”。那么你还想接着往下探索吗?
阶段二:中级or高级网络安全工程师(看自己能力)
综合薪资区间15k~30k
7、脚本编程学习(4周)
在网络安全领域。是否具备编程能力是“脚本小子”和真正网络安全工程师的本质区别。在实际的渗透测试过程中,面对复杂多变的网络环境,当常用工具不能满足实际需求的时候,往往需要对现有工具进行扩展,或者编写符合我们要求的工具、自动化脚本,这个时候就需要具备一定的编程能力。在分秒必争的CTF竞赛中,想要高效地使用自制的脚本工具来实现各种目的,更是需要拥有编程能力。
零基础入门的同学,我建议选择脚本语言Python/PHP/Go/Java中的一种,对常用库进行编程学习
搭建开发环境和选择IDE,PHP环境推荐Wamp和XAMPP,IDE强烈推荐Sublime;
Python编程学习,学习内容包含:语法、正则、文件、 网络、多线程等常用库,推荐《Python核心编程》,没必要看完
用Python编写漏洞的exp,然后写一个简单的网络爬虫
PHP基本语法学习并书写一个简单的博客系统
熟悉MVC架构,并试着学习一个PHP框架或者Python框架 (可选)
了解Bootstrap的布局或者CSS。
阶段三:顶级网络安全工程师
这部分内容对于咱们零基础的同学来说还太过遥远了,由于篇幅问题就不展开细说了,我给大家贴一个学习路线。感兴趣的童鞋可以自行研究一下哦,当然你也可以点击这里加我与我一起互相探讨、交流、咨询哦。
学习资料分享
当然,只给予计划不给予学习资料的行为无异于耍流氓,这里给大家整理了一份【282G】的网络安全工程师从入门到精通的学习资料包,可点击下方二维码链接领取哦。
![](https://img-blog.csdnimg.cn/img_convert/1501e337aebd22dfa9d637b6c5c641e0.png)