知道創宇研發技能表

 

知道創宇研發技能表v2.2

2014/3/9 發佈

by @知道創宇(www.knownsec.com) @餘弦 & 行之

知道創宇是國內Geek十足且普遍被認爲特別有前途的互聯網安全公司,

動態請關注微信公衆號:Lazy-Thought

  • 說明
    • 本技能表爲知道創宇研發工程師必備技能
    • 聰明的人會根據每個tip自驅動擴展
    • 不聰明的,坐等別人手把手的人請繞行,不僅不適合知道創宇,也不適合任何有Geek精神的公司
    •  
      附件標誌是我們推薦的附加資源,感謝資源提供者
  • 通用技能
    • 公司與個人
      • 公司是盈利性組織
      • 個人和公司必須雙贏
      • 工作
        • 在認同公司理念且能夠給公司創造足夠價值的基礎上,爲個人發展而工作
    • 溝通、反饋、責任
      • 一個無溝通能力的人,要麼是天才,要麼是不可愛的人
      • 反饋要及時
        • 避免出問題不反饋,影響進度
        • 方式
          • 正式的:郵件
          • 臨時的:QQ等即時通信
          • 禮貌的:給個電話、短信
      • 工作有大小,責任心無大小
      • 週報的透明
        • 意義:大家互相瞭解工作與心得,有利於自己的判斷與成長
        • 不是單純的給領導彙報工作
    • 任務四象限,決定優先級
      • 緊急重要
      • 重要不緊急
      • 緊急不重要
      • 不緊急不重要
    • 新事物的敏感性
      • 保持好奇心
      • 不要侷限在自己的圈子,適當跨界吸收靈感
      • 訂閱國內外優秀博客/資源,鮮果RSS閱讀不錯
        • 英文很重要
      • 選擇性參與一些必要的會議,聽必要的主題,討論必要的話題
    • 成長
      • 對知識的渴望程度決定了前進動力的大小
        •  
          BT常說:「做人一定要狂熱!」
        •  
          我說:「一定得貪婪!」
      • 不要矯情,不要浮誇!
      • 和比你厲害的人在一起,和一流的人工作
        • 指點往往是精華
        •  
          杜絕笨蛋爆炸
          • 二流的人招進來的人不太可能是一流的
      • 思考
        • 批判性思考
        • 換位思考
      •  
        提問的智慧
        • 遇到問題先獨立思考,盡最大努力後再提問
        • http://www.wapm.cn/smart-questions/smart-questions-zh.html
      •  
        小事心態
        • 越基礎的事越關鍵,需要越細心
        • 不要一味盲目追求「高級感」,而忽視「小事」/「簡單事」/「基礎事」
        • 基礎不牢、地動山搖
        • 小事做不好,別提大事
      •  
        任務拆分
        • 成長過程會經歷:能力越大、責任越大、事情越多
        • 思路
          • 拆分細化爲多個點
          • 排好優先級
            Arrow Link
          • 加入時間維度:何時完成什麼
            Arrow Link
          • 是否需要尋求幫助,誰能幫你,自己單幹?
            Arrow Link
          • 任務是否可以切換/併發
          • 自己欠缺什麼,立馬發現
      •  
        方法論
        • 完成一件事有好幾條途徑,優秀的人的途徑最短
        • 任務拆分很容易得出做事的方法論
        • 好的「方法論」會讓你具備更強的「創造力」!
          •  
            時刻問自己:「是否具備創造力?」
    • 牛人姿態
      • 即使現在不是牛人,也得具備這樣的姿態
      • 這種感覺只能意會
      • 沒有一定紮實內功與遠見的人很少有這樣的姿態
    •  
      完成的定義
      • 比如寫個POC
        • 1. 搞懂了目標Web應用漏洞的原理
        • 2. 熟練運用Python各相關模塊與機制
        • 3. 熟練了解了HTTP協議
          • HTTP請求
          • HTTP響應
        • 4. 代碼寫得夠規範,讓人看起來就是爽
        • 5. 程序經過足夠的測試
          • 黑測試
          • 白測試
        • 6. 及時反饋進度
          • 我遇到困難了
          • 我搞定了
        • 7. 更新相關文檔,沉澱
    •  
      熟練的定義
      • 比如熟練SQL注入
        • SQL語句這門“語言”能脫離文檔順手寫出
        • 主流數據庫的SQL特有函數、存儲過程、機制我都瞭如指掌
          • MySQL
          • MSSQL
          • Oracel
          • Postgre
          • Access
          • SQLite
          • ...
        • 牛逼的工具我不僅用的順其自然,源碼還讀過幾遍,我能修改
          • sqlmap
          • ...
        • 我具備創造性,而不僅僅是跟在大牛身後
          • 研究出了幾個不錯的技巧
          • 發了幾篇不錯的Paper
          • 對外會議/沙龍等進行了幾次分享
          • 寫出了自己的相關工具,爽
        • 我實戰了N回,遇到了很多奇葩環境,我有足夠的信心繞過
        • 以上這些之後,這才叫熟練!其他同理
    • 好書推薦
      • 推薦理由
        • 打通任督二脈的書,怎能不看?
        • 任何科學研究最終必須至少到哲學層面,觸碰到上帝的腳
        • 具體技術類書籍請見“專業技能”相關部分
      • 雞湯類
        • 黑客與畫家
          • 印象深刻:設計者的品味
            • 好設計是簡單的設計
              • 抓住本質
            • 好設計是永不過時的設計
              • 如果解決方法是醜陋的,那就肯定還有更好的解決方法,只是還沒有發現而已
            • 好設計是解決主要問題的設計
            • 好設計是啓發性的設計
            • 好設計通常是有點趣味性的設計
            • 好設計是艱苦的設計
            • 好設計是看似容易的設計
            • 好設計是對稱的設計
            • 好設計是模仿大自然的設計
            • 好設計是一種再設計
            • 好設計是能夠複製的設計
            • 好設計往往是奇特的設計
            • 好設計是成批出現的
            • 好設計常常是大膽的設計
        • 浪潮之巔
          • 感受IT帝國的崛起與沒落,我們現在站在又一個互聯網浪潮之巔
      • 潔癖類
        • 重構
        • 代碼整潔之道
        • 代碼大全2
        • 數學之美
      • 敏捷類
        • Rework中文版
          • 37signals團隊的敏捷經驗
        • 高效程序員的45個習慣
      • 產品類
        • 人人都是產品經理
        • 結網
      • 神書
        • 自私的基因
        • 失控
        • 萬物由來
      • ...
  • 專業技能
    •  
      原則
      • 至少完整看完與練習好一本書
      • 至少過一遍官方文檔
    •  
      基礎必備
      • HTTP抓包與調試
        • Firefox插件
          • Firebug
            • 抓包與各種調試
          • Tamper Data
            • 攔截修改
          • Live Http Header
            • 重放功能
          • Hackbar
            • 編碼解碼/POST提交
          • Modify Headers
            • 修改頭部
        • Fiddler
          • 瀏覽器代理神器
          • 攔截請求或響應
          • 抓包
          • 重放
          • 模擬請求
          • 編碼解碼
          • 第三方擴展
            • Watcher
              • Web前端安全的自動審計工具
        • Wireshark
          • 各種強大的過濾器語法
        • Tcpdump
          • 命令行的類Wireshark抓包神器
        • Python
          • urllib2
            • 打開請求響應調試
              • 編輯urllib2的do_open裏的h.set_debuglevel
              • 改爲h.set_debuglevel(1),這時可以清晰看到請求響應數據,包括https
      • 什麼是跳轉
        • 服務端跳轉
          • 302
            • <?php header("Location: 3.php"); ?>
          • 301
            • <?php header("HTTP/1.1 301 Moved Permanently"); header("Location: 2.php"); ?>
          • u=urllib2.urlopen(url)後,u.url能得到服務端跳轉後的地址
            • urllib2自己的特性
            • 所謂的會跟進去
        • 客戶端跳轉
          • <meta http-equiv="refresh" content="0; url=http://www.evilcos.me" />
            • htmlparse解析就行了
          • location.href="http://evilcos.me";
            • 正則(弱),js引擎(王道)
      • Python編碼規範
        •  
        • 入門書
          • Python核心編程2
            • 第4章 Python對象
              • 完整熟練
            • 6.8 Unicode
              • 完整熟練
            • 8.11 迭代器和iter()函數
              • 完整熟練
            • 第9章 文件的輸入和輸出
              • 完整熟練
            • 第10章 錯誤和異常
              • 完整熟練
            • 第11章 函數和函數式編程
              • 完整熟練
            • 第12章 模塊
              • 完整熟練
            • 第14章 執行環境
              • 完整熟練
            • 第15章 正則表達式
              •  
                完整熟練
            • 第18章 多線程編程
              • 完整熟練
            • 20.2 使用Python進行Web應用:創建一個簡單的Web客戶端
              • 完整熟練
      • Office能力
        • Word文檔編寫,看去要專業,尤其對外的
        • Excel裏面大量的統計、圖表功能,需要善於使用
        • PPT演講、培訓等必備,如何做好PPT?百度一下……
        •  
          進一步
          • yEd
          • Visio
          • FreeMind
            • 本技能表就是這個製作
      • 熟練VIM
      • 算法
        • 快排
        • 二分
      • 正則表達式
      • 研發能力
        • 瀑布模型
          • 需求->需求分析->設計->開發->測試->上線->運維/運營
        •  
          需求分析能力
          • 給你一個需求,如何給出一個優美的執行思路——方法論
          • 這個能力非常非常非常的關鍵
        • 調試能力
          • 只要定位出,就沒有解決不了的Bugs
          • 肉眼看到的都是假象
            • 一定要專業的工具與經驗配合
          • Bugs在哪出現,最終就在哪進行真實模擬調試
          • 縮小範圍
            • 構建自己的測試樣例
              • 排除網絡複雜未知情況
            • 關聯模塊一個個排除
            • Python單步調試
              • import pdb;pdb.set_trace()
              • 在需要單步調試的地方加上面這句,運行程序後中斷在此,然後h查看指令進行一步步細細調試
            • 粗暴調試:print
        • 敏捷思想
          • 快速迭代
          • 任務拆細
          • v1原則:定義好v1的目標,快速完成v1爲優先
          • 習慣Wiki記錄,利於沉澱與分享
      • 翻牆
    • Web安全
    • 研發清單
      • 編碼環境
        • pip
        • Vagrant
        • tmux/screen
        • vim
        • zsh + oh-my-zsh
        • Python2.7
        • >Django1.4
        • web.py
        • node.js
        • Ubuntu/Gentoo/Centos
        • ipython
        • 版本控制
          • git/svn
          • gitlab
        • Nginx+uWSGI
      • Python
        • 官方手冊
          • 至少過一遍,這都沒過一遍,視野會侷限
          • 行之說:「我沒看過Python的書,卻熟讀官方手冊……」
      • Linux
      • 前端
          • JavaScript DOM編程藝術
        • 瞭解DOM
          • 這同樣是搞好前端安全的必要基礎
          • jQuery
            • 優秀的插件應該體驗一遍,並做些嘗試
            • 官方文檔得過一遍
          • ECharts
            • 來自百度
          • Google API
          • ZoomEye Map組件
            • ZoomEye團隊自己基於開源的打造
          • AngularJS
            • Google出品的顛覆性前端框架
          • Bootstrap
            • 應該使用一遍
      • 爬蟲進階
        • 代理池
          • 爬蟲「穩定」需要
        • 網絡請求
          • wget/curl
          • urllib2/httplib2/requests
          •  
            scrapy
        • 驗證碼破解
          • pytesser
      • 調度
        • crontab是最原生的定時調度
        • 基於redis實現的分佈式調度
        • 基於rpyc實現的分佈式調度
        • celery/gearman等調度框架
      • 併發
        • 線程池
          • 進程內優美的併發方案
        • 協程
          • 進程內另一種優美的併發方案
        • 多進程
          • os.fork
          •  
            multiprocessing
      • 數據結構
        • JSON
        • cPickle
        • protobuf
      • 數據庫
        • MySQL
        • MongoDB
        • Cassandra
        • Hadoop體系
        • Redis
        • Sqlite
        • bsddb
      • DevOps
        • SSH證書
        • Fabric
        • SaltStack
        • puppet
        • pssh/dsh
      • 調試
      • 算法
      • 持續集成
        • 自測試
          • nose
        • Jenkins
      • 協作
        • 類似Trello的在線協同平臺
        • 微信
        • 立會
    • 設計思想
      • 人人都是架構師:具備架構思想是一件多酷的事
      • 實戰出真知
      • 如何設計
        •  
        • 鬆耦合、緊內聚
        • 單元與單元屬性
        • 生產者與消費者
        • 結構
          • 隊列
          • LRU
        • 分佈式
          • 存儲
          • 計算
        • 資源考慮
          • CPU
          • 內存
          • 帶寬
        • 粗暴美學/暴力美學
          • 大數據,先考慮run it,然後才能知道規律在哪
          • 「run it優先」能快速打通整體,洞察問題
          • 「run it優先」能擺脫細節(繁枝末節)的束縛
          • 「run it優先」能快速迭代出偉大的v1
        • 一個字總結
    • 優質資源
    • 牛人1,2,3
      • 1研究:研究東西,有足夠洞察力,研究水準不錯
      • 2研發:hack idea自己有魄力實現,不懂研發的黑客如同不會游泳的海盜
      • 3工程:研發出來的需要實戰、需要工程化,否則只是玩具,而不能成爲真的武器
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章