今天早上开车的时候,一直都在构思要写点什么。于是,我可能超速了。圆明园西路和万泉河路那一段,限速60,监控也多,稍不留神就容易超速。就为了我这么专注和敬业的劲儿,你们是不是应该表示表示......
说到专注,我觉得程序员是最能让人专注的职业,构思代码逻辑、算法设计、编程调试、BUG FIX...每一样都必须100%的专注才能做好。程序员也是让人羡慕的职业,只需要敲敲键盘、用用脑子,就能拿到比其他职业高得多的薪资。
那么,怎么才能做好一名程序员?这得先从咱们程序员使用的十八般兵器说起。没有趁手的兵器怎么上阵杀敌?本文就来捋一捋当今程序员们的兵器库。
我记得2003年的时候,当时Python也没开始流行,开源的项目更是少得可怜。为了做一个境内网站自动发现和备案的系统,我用C语言从零开始写了TCP半连接扫描代码,程序逻辑和代码操作要精细到TCP/IP协议中的每个Bit;为了开发爬虫,连一个简单的URL Parser都得自己用C从头开始写。那个年代就是程序员的新石器时代,只能拿木棍和石头作为武器,战斗效率是很低的... 哪像现在的程序员这么幸福啊,各种高级语言随便选:JAVA / Python / Go / Swift / Javascript / Scala / Luby / Kotlin / Julia... 开源工具更是比比皆是,简直不要太爽。
本文我们不讨论哪种语言更好(你看上面我都没列PHP),而是集中捋一捋这近几年程序员们日常工作中常用的开源工具,这才是我们上阵杀敌的真正兵器。
经过这二十多年开源社区运动的磅礴发展,如今不管是前端工程师,还是JAVA工程师、大数据工程师、AI算法工程师...每种岗位都有无数的开源工具供你使用。熟练掌握这些兵器怎么用、用在哪里是程序员们上阵杀敌的必备技能。
以下根据本人过去几年的工作经历梳理而成,我们来看一看每一类工程师的常用兵器都有哪些,供需要的朋友参考。受限于自己的经历,加上技术发展太快,这个清单肯定不全面,大家可以在评论区补充和完善。
  • 交互设计师 常用兵器
    • UI设计软件:Illustrator / Photoshop / AfterEffects / Sketch
    • UE设计软件:Axure / XMind
  • 前端工程师常用兵器
    • 基础语言:HTML / CSS /Javascript
    • 开发框架:React + React-router + Redux;Vue + Vue-router + vuex
    • 数据可视化:Echarts; Three.js, D3, zrender
    • 打包工具:Webpack / Gulp
    • 服务端:Node.js, npm
  • JAVA工程师常用兵器
    • 微服务开发框架:Spring boot + Spring Cloud
    • 注册中心:Eureka,服务网关:Zuul,服务容错:Hystrix
    • 配置中心:Appolo;流量控制:Sentinel
    • 日志监控:ElasticSearch + Logstash + Kibana
    • Metrics监控:Sprint boot Metrics + Grafana
    • 消息队列:Kafka,缓存:Redis,客户端Jedis或Redisson
    • 数据访问层:Mybatis + MySQL
    • API定义与测试及文档生成工具:Swagger
  • 爬虫工程师常用兵器
    • 前端结构解析:HTML / CSS / Javascript / XPath / csspath / regexp
    • 后端分析破解:HTTP; Cookie; Session
    • 常见开发语言:Python / Javascript / Typescript / Java
    • 爬虫框架:scrapy;Chrome + Puppeteer; PhantomJS + WebDriver; Node.js + Virtual DOM
    • 数据存储:Redis, Kafka, MySQL, SSDB, ElasticSearch, Zookeeper
  • 大数据工程师常用兵器
    • 开发语言:JAVA / Python / Scala / Go
    • 两大生态:Spark / Hadoop
    • 数据汇集:数据同步 Sqoop / Flume / Canal / FlinkX / Databus; ETL工具:NIFI / Flume / Kettle / Logstash
    • 数据存储:HDFS / ALLUXIO / HBase / ElasticSearch / MySQL / TiDB / MongoDB / FastDFS; Greenplum / ClickHouse; InfluxDB / TDEngine; Neo4j / Titan
    • 数据分析:HIVE / Presto / Impala / Kylin;图挖掘:NetworkX / GraphX
    • 离线计算:Spark & SparkSQL / MapReduce;任务调度 AirFlow
    • 实时计算:Kafka + Spark Streaming / Storm / Flink
    • 微服务:Dubbo / Netty / Spring系列 / Zookeeper
    • 展现应用:HUE,  Airpal, Superset, Jupyter
  • 算法工程师常用兵器
    • 机器学习:sklearn, CRF++, libsvm, XGBoost, LightGBM, LightLDA
    • 深度学习:TensorFlow, MXnet, Pytorch, caffe/caffe2, Keras
    • 自然语言处理:word2vec, ELMo, BERT, GenSim, fastText, StanfordNLP, jieba, LTP, AllenNLP
    • 排序学习:RankLib
    • 图像处理:opencv
  • 测试工程师常用兵器
    • 测试开发:JAVA/Shell/Python
    • 性能测试:Jmeter, LoadRunner
    • 自动化测试:RobotFramework, Selenium, Appnium, QTP
    • 接口测试:PostMan
    • 安全测试:NMap, AWS, Nessus, Metasploit
    • 持续集成:Jenkins
  • 运维工程师常用兵器
    • 运维开发:Shell / Python / Java / PHP
    • 监控工具
      • 数据存储:ElasticSearch / MongoDB
      • 数据获取:beats / Flume / Logstash
      • 可视化:Kibana / Grafana
      • 告警:Grafana
      • 网络监控:SNMP + Logstash + ElasticSearch + Grafana, PRTG;
    • Hadoop集群监控:Ambari + Dr. Elephant
    • 服务器自动化:SaltStack, Cobbler, foreman, storcli+megacli, IPMI远程管理
    • 虚拟化工具:VMWare Vsphere / KVM / libvirt
    • 容器相关:Docker, 编排工具Rancher / Google Kubernates,镜像管理 Apache Harbor
    • DNS :NSD + UNBOUND,PDNS+PDNS-RECURSOR;
    • 代理及隧道:Nginx / ShadowSocks / Stunnel+Squid;
    • 安全工具
      • Web安全测试: BurpSuite / Fiddler / SoupUI / Sqlmap / AWVS / OWASP ZAP;
      • 渗透测试: Nmap / Hydra / hashcat / Ophcrack / OpenVAS / Nessus / Beef Framework / Metasploit / CobalStrike / Empire / PowerSploit / NiShang
      • 代码审计:Fortify / findbugs;
      • 安全防御体系: 主机入侵检测OSSEC / 网络入侵检测Suricate / 安全运维平台OSSIM / OpenSOC / 蜜罐Kippo / 日志审计ELK / Splunk;
      • 应急响应与取证: Autopsy / Volatility;
    • 源码库及版本管理:SVN / Gitlab; JAVA Lib私服:Nexus; NPM私服sinopia
看了上面这些琳琅满目的兵器库,会不会感觉脑仁疼... 
从互联网在国内开始兴起那会儿,程序员才正式成为一门职业,至今也还不到三十年;而个人计算机作为程序员日常工作的工具,也才出现四十年。短短几十年,这个职业对程序员的技能要求越来越高、越来越繁杂... 以至于你稍不留神就会跟不上时代。如何应对技术的日新月异?我想,快速的自主学习能力,应是程序员最重要的一项能力。
如果你是程序员,不妨在评论区说说你是什么岗位、日常兵器都有哪些?
本文若对你有所帮助,可以点击下方的“喜欢作者”那将是对本人莫大的鼓励。
继续阅读
阅读原文