其实我一直很想写一篇文章分享自己这么年来,工作以及自我学习的经验,也算是过来人的经验分享。才工作的时候,写过一篇[文章] (https://madneal.com/post/programer/)分享自己当初作为菜鸟的学习经验,这么多年过去了,我也能作为一个老鸟分享这么多年的开发、安全、以及技术学习的经验。

我的经验还是比较多元化的,包括软件测试、开发、应用安全、基础安全、安全开发经验。本科的时候,我做过将近一年的软件测试实习。不知道是不是因为这个原因,现在我还是很喜欢给别人以及我自己的代码找 Bug。研究生的时候做过一年多的前端开发的实习,当时用的还是远古的前端框架 Ext.js,这个框架估计现在的前端甚至可能都没有听说过。毕业的时候当初本来是要去做开发的,后来也是阴差阳错来了安全,后面就一直从事安全方面的工作,从最开始的基础安全,做安全运营,SIEM,做一些安全工具的开发。听我前同事做,我之前开发的那个工具,现在还经常在公司里面去用。后来基本主要就是做应用安全的方向了,也包括去做安全开发,从头搭建一个主要是基于安全漏洞运营的平台,推广到全公司范围内去使用。虽然,毕业后一直是做安全方面的工作,但是每份工作中其实还是花了一半以上的时间去做安全工作。安全知识和开发知识本来就是相辅相成的,开发知识能够帮助你更好的发现安全问题,安全知识能够帮助你写出更健壮的代码。开发语言基本上用的也比较杂,最初做前端的时候刚好是前端几个框架大冲突的时代,那时候经常有很多人为哪个框架更好整的天翻地覆。前端的开发经验也帮助我在后面坐全栈开发游刃有余,每个系统我都有信心能够从头搭建起来。后面也有 Java,Python 以及 Golang 的开发经验,其实 Rust 也是我一直很想学习的语言,但一直没有找到合适的契机,也希望今年能够起码能把 Rust 做一个入门。

给后来者的几条可执行建议

  1. 深度优先于工具收藏:一个漏洞类型吃透,胜过二十个只会扫的工具。
  2. 写是强迫思考:博客与报告把混沌经验变成可检索资产。
  3. 安全要懂开发:不会读代码的应用安全,沟通与修复都会卡壳。
  4. 软技能是倍增器:清晰表达、优先级、推动修复,决定你是否「有结果」。
  5. 健康与节奏:键盘生涯是马拉松,睡眠和运动是生产力工具。

小结

从测试、开发到安全, equip 的是同一套:问题分解、验证、复盘。老鸟不是懂得最多命令的人,而是能在约束下稳定交付判断的人。