我今年 25 岁,男,本科数学系,在 2014 年开始自学程序与网络知识。常用语言为 python3。一直想进入信息安全领域工作,但无相关经验,想著求一个见习机会也好。
只求能学到东西,有前辈带领入门少走点弯路,所以不在乎工资多少,对工作时间、地点也没有特殊要求,各个城市都可以考虑。
英语
2014 年在自学编程的同时也开始重新自学英语,一边背单词看语法练听力一边啃技术文档。至今已具备足够的英语水平,裸考雅思学术类成绩 7.0 (阅读 8.0 )。已非常习惯于每天的英文文档阅读,经常发英文邮件交流。
网络
了解 TCP/IP 体系,熟悉应用层、传输层、网络层及各层的几个常用协议,并写过脚本实践。
html+css+javascript
在开始自学后,接触 python 前,我花了半年时间从 MDN 入手结合英文书本开始学习前端相关知识,并写了大量用户脚本(其中一个发上了 Github,见后文)。因为我在 2015 年开始从 javascript 转向 python,所以对于 ES6 标准的了解比较有限。
python
熟悉及至 python3.6 为止的大部分 python3 特性。对除了标准库文档以外的所有官方文档通读了至少一遍。而在学习 python 的过程中我大部分时间都花在在诸多 python3 标准库中,读过大约其中一半的文档,实践过其中的小部分,读过其中一些的源代码(特别是网络相关的)。迄今我已将 python3 作为常用的系统脚本语言,写过大量脚本,其中部分练手的项目可以在我的 Github 找到(见后文)。
我并没有花太多注意力在非标准库上,只是读过 requests flask aiohttp tornado django uwsgi 等知名库或工具的文档,没有看过它们的源代码也没有做过它们的实践项目。
很早就听说 python 是信息安全领域常用语言,但我却并不知道从事信息安全工作具体需要哪些东西,所以至今的学习过程可能比较盲目。
其他
工作平台为: thinkpad x1c + debian + xfce + screen + vim
本科时曾学过基础的 c 和 java,以及自学过操作系统、组成原理、数据结构这些计算机基础课程。
我的 Github 地址: https://github.com/heroesm
因为目的在于练手,所以我的 Github 上所有的项目都没用使用任何第三方库,以下为各项目简介:
我学习 javascript 时在 16 年初写的练手项目,一个用户脚本,功能是满足我在 5sing 听歌时的一些需求,这也是当时为止我写过最长的单文件脚本(一千多行)。在写出这个后我就开始转而学习 python3 了。
我有时候会在 b 站直播听唱歌,正好就此写了一些脚本练手,有 javascript 的有 python 的,像是直播提醒、命令行弹幕机、自动监听下载直播流的程序等等。其中命令行弹幕机是我在初学 python3 后写的第一个相对较大的项目,算是对多个标准库的综合实践,代码结构不算很合理。
为了更加方面自由地日常使用 google drive,我参考 google 的 OAuth2 和 REST API v3 文档写了这个 google drive 客户端库。这里我使用一些标准库实现了简单的 OAuth2 验证获取 token,以及使用 token 和云端交互,对文件进行上传下载等操作。
学习 rawsocket 时练手的项目,包括了实现 ping traceroute mtr 功能的一些脚本。写这些的同时也复习了传输层和网络层的一些细节。同时我开始尝试 python3 的异步编程,asyncio 库。
因为 google drive 无法在国内直连访问,所以在我使用自己写的 google drive 库时需要通过代理进行连接。但是原生的 python 不直持 socks5 代理,因此这时候我要么使用 proxychains 这类外部程序,要么修改内部代码使用 requests 或 pysocks 这些支持 socks5 代理的第三方库。后来我决定练练手,自己实现一个 socks5 客户端,它的功能是让 python 原生的 socket 和 urllib 库可以使用 socks5 代理。
写完这个客户端之后,以练习 python3.5 3.6 风格的异步编程为主要目的,我参考 rfc 也写了一系列 socks5 服务器端脚本:它们是分别利用 asyncio 的最底层的异步函数、中层的 transport 和 protocol,以及最高抽象层的 stream 的三种 socks5 服务器端实现。
这个项目是我前不久开始写的,写得差不多把 asyncio 已经摸熟之后,我觉得实现 GSSAPI 有点麻烦而且有 ss 也用不上这个,就暂时干别的去了。
无不良爱好。烟酒不沾。不玩游戏。主要娱乐活动为听音乐。已保持打羽毛球的习惯多年。
可以把大部分时间精力集中在工作任务上。
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.