同盾研发技能表


v0.93, 2015/4/8

软性技能

  • 不甘平庸。每个人都有自己的梦想。
    • 向业界和身边优秀的人看齐
    • 从小事做起,并把它做好
      • 代码的逻辑正确无误
      • 代码的执行效率很高
      • 代码的结构清晰易懂
      • 代码的可扩展性良好
      • 重复的工作自动化
  • 积极主动。态度决定一切。
    • 发现工作中的问题及时反馈
    • 自己主动承担把问题解决掉
    • 协调资源推动他人一起解决
  • 保持好奇心。对技术敏感,知其然也知其所以然。
    • 追踪最新技术动态
    • 阅读源码
      • GitHub:最大的源代码托管站
    • 尝试一门新的语言
  • 勤奋好学。快速、持久的学习能力是技术人最重要的素质之一。
  • 乐于沟通。你可以不喜欢交际,但一定要学会沟通。
    • 及时沟通,信息透明
    • 尊重他人,学会提问
    • 沟通方式
      • 正式:Email
      • 非正式:微信/QQ
      • 特殊情况:面对面
    • 工作周报
      • 按时发送
      • 抄送所有相关人
      • 清晰、明了、美观
      • 不要敷衍写一句话周报
      • 目标、过程、结果、思考
    • 合理使用Teambition
      • 及时更新工作进展
      • 追踪重点技术项目
  • 学会分享。输出是最好的输入。
  • 团队意识。公司利益大于个人利益,公司利益最大化才能让个人利益最终最大化。
    • 要有大局观
    • 杜绝小团伙
    • 别太在意个人得失
  • 掌握做事方法。正确的方法可以事半功倍。
    • Plan(计划):从问题的定义到行动计划
    • Do(执行):实施行动计划
    • Check(检查):对过程中的关键点和最终结果进行检查
    • Act(修正):总结经验教训,将好的方面进行标准化
  • 管理好自己的时间。事情要分轻重缓急,优先做重要并紧急的事情。

专业技能

Linux

  • 常用命令
    • 文档和目录:ls,pwd,cd,cp,mv,rm,mkdir,cat,find,tar,<,>,tail,head,more,ln,open,touch,sort,uniq
    • 权限和账户:chown,chmod,passwd,su
    • 系统和服务:ps,kill,fg,bg,nohup,reboot,shutdown,date,time,uname,df,fdisk,top,free,history,mount,chkconfig,service,crontab
    • 网络:netstat,ping,telnet,ifup,ifdown,nslookup,scp,ssh
    • 其它:alias,man,echo,xargs,grep
    • 扩展:vim,tree,wget,curl,yum,apt-get,brew
  • 高级功能
    • awk:做一些复杂的处理文本非常方便
    • sed:利用正则来做查找、替换等
    • iptable:Linux自带的防火墙
    • 性能诊断
  • bash
    • echo
    • if
    • for
    • 数学运算

Web前端

  • HTTP协议
  • HTML
    • HTML5
      • WebSocket:从服务器端可以直接推送消息到浏览器
  • CSS
    • 盒模型
  • JavaScript
    • ajax
  • 框架
    • bootstrap:Twitter开源的、目前最流行的前端框架
    • jquery:让js小白也能实现很多强大的前端交互
    • highcharts:最好的前端图表框架
    • echarts:百度出品的前端图表框架
    • Angularjs:Google出品的函数库
  • 图形
    • SVG
    • WebGL
  • 工具
    • Chrome开发者模式
      • 审查元素
      • 网络请求
    • FireFox FireBug 插件
  • 浏览器工作原理

Java

  • 容器类
    • List
    • Set
    • Map
  • IO/NIO
    • File
    • Network
    • ByteBuffer
      • DirectByteBuffer
      • HeapByteBuffer
  • 并发和多线程
    • sychronized
    • volatile
    • lock
      • ReentranLock
    • Semaphore
    • ConcurrentHashMap
    • LinkedBlockingQueue
    • Callable
    • Future
    • Executor
    • ThreadPoolExecutor
    • ForkJoinPool
  • JDBC
    • Druid:阿里开源的目前最强大数据库连接池
  • JVM
    • 内存模型
      • Heap
        • 年轻代(Young Generation)
          • eden
          • S0
          • S1
        • 老年代(Old Generation,tenured)
        • 永久代(Permanent Generation)
      • Stack
      • Method Area
      • Native Method
      • PC Registers
    • 配置参数
      • -Xmx3g:设置整个堆的大小
      • -Xms3g:设置初始化堆的大小
      • -Xmn1g:设置新生代的大小
      • -XX:PermSize=192m:设置Perm区大小
      • -Xss256k:设置线程栈的大小
      • -XX:+UseConcMarkSweepGC:垃圾回收算法,CMS
      • -XX:+UseCMSInitiatingOccupancyOnly
      • -XX:CMSInitiatingOccupancyFraction=70:设置执行CMS垃圾回收的阈值
      • -XX:+PrintGCDateStamps:打印GC时间戳
      • -XX:+PrintGCDetails:打印GC详情
      • -Xloggc:$APP_OUTPUT/logs/gc.log:设置GC日志路径
      • -XX:+PrintGCApplicationStoppedTime
      • -XX:+PrintGCApplicationConcurrentTime
      • -XX:ErrorFile=$APPOUTPUT/logs/hserr_pid%p.log
    • 垃圾回收算法
      • Serial
      • Parallel
      • CMS
      • G1
    • javap
    • 工具
      • jps
      • jmap
      • jstack
      • jstat
  • 框架
    • Webx:在阿里大规模使用的MVC框架
    • Spring:IoC框架
    • MyBatis:ORM框架
    • Netty:异步事件驱动的高性能网络通讯框架
    • Logback:log4j作者打造的下一代日志框架
    • Drools:规则引擎
    • Fastjon:阿里开源的Json序列化和反序列化框架
    • Velocity:模板引擎
    • Akka:基于消息驱动的弹性高并发分布式框架
  • 中间件
    • Dubbo:阿里开源的RPC框架
    • Kafka:分布式消息中间件系统
  • 应用服务器
    • Tomcat:最流行的应用服务器
    • Jetty:轻量级的应用服务器

Python

  • 集合
    • list/tuple
    • dict
    • set
    • 切片:lst[1:3]
    • 迭代:for c in 'abc'
    • 生成器:range(10)
  • 函数
    • 函数定义
    • 字符串
      • len
      • join
      • encode
      • decode
      • 格式化
    • 高阶函数
      • map
      • reduce
      • filter
      • sorted
    • 匿名函数
    • 偏函数
  • 装饰器
  • 对象
    • 类和实例
    • 访问限制
    • 继承和多态
  • 错误
    • try...except
  • 单元测试
  • 进程和线程
  • 协程gevent
  • 正则表达式
  • 组件
    • MySQLdb
    • json
    • logging
    • datetime
    • os
    • re
  • 框架
  • 教程

其它语言

移动开发

  • Android

    • 环境
      • Android Studio(推荐)
      • Eclipse + Android SDK + ADT
    • 四大组件
      • Activity
        • 生命周期
        • AsyncTask:轻量级异步任务
        • Handler,Message,Looper:线程间通信
      • Service
        • startService/bindService:非粘性/粘性
        • AIDL、Messenger:进程间通信
      • BroadcastReceiver
        • 两种注册方式:xml,代码动态注册
      • ContentProvider
    • 数据存储方式
      • SharePreferences
      • I/O流文件读写
      • 网络存储:httpClient和httpServer
      • SQlite
      • 属性系统
    • UI设计
      • 常用布局
        • FrameLayout:框架布局
        • LinearLayout:线性布局
        • AbsoluteLayout:绝对布局
        • RelativeLayout:相对布局
        • TableLayout:表格布局
      • 两种动画
        • Teen Animation:补间动画
        • Frame Animation:逐帧动画
      • GUI警告
        • Dialog对话框
        • Menu菜单
        • Notification
      • 常用UI控件
      • ListView、下拉刷新
      • Fragment
      • WebView混合开发
      • 适配
        • 字符串和国际化
        • 屏幕尺寸适配
    • NDK开发
    • 传感器
    • 大位图处理
    • Manifest.xml配置文件:组件注册、权限设置
    • Android开源项目
  • iOS

    • 编译环境
      • Mac OS +Xcode
    • 常用语言
      • c语言(熟练)
      • obective-c(熟练)
      • swift(了解)
    • OC内存管理关机机制
      • ARC
      • MRC
    • 类的类别和扩展
      • Categories
      • Extensions
    • 常用设计模式
      • 代理模式
      • 观察者模式
      • MVC模式
      • 单例模式
      • 工厂模式
      • Target-Action模式
    • 第三方开源库
      • jsonjson编码解码
      • GTMBase64 base64编码解码
      • TouchXML 解析
      • SFHFKeychainUtils 安全保存用户密码到keychain中
      • MBProgressHUD很棒的一个加载等待特效框架
      • ASIHTTPRequest 等相关协议封装
      • MJRefresh 下拉刷新代码
      • AsyncImageView 异步加载图片并缓存代码
      • 类似setting的竖立也分栏程序
      • MBProgressHUD——进展指示符库
      • Flurry——详尽的使用统计
      • CorePlot——2D图形绘图仪
      • GData client——iPhone上所有Google相关服务的类库
      • SDWebImage——简化网络图片处理
      • RegexKitLite——正则表达式支持
    • 多线程开发
      • NSThread
      • NSOperation
      • GCD
      • 数据持久化
      • 属性列表(NSUserDefaults)
      • 对象归档、
      • SQLite3
      • Core Data
    • NSNotification和KVO
      • NSNotification
      • KVO
    • UI设计
      • 动画的使用:旋转,偏移,消失,出现等
      • 首手势的使用:点击,侧滑,长按等;
      • AutoLayout
      • Size classes
    • 其他常用技能
      • 熟悉系统自带框架以及熟练使用
      • 熟练使用Block进行功能的实现
      • 对新机型进行适配
      • 在API文档中寻求解决问题的能力
      • 同时熟悉面对对象和图形化开发

缓存

数据库

  • MySQL
    • 存储引擎
      • MyISAM
      • Innodb
    • 索引
      • Btree
      • Hash
  • Berkeley DB
  • LevelDB:Cassandra有类似的数据结构

代理/负载均衡

  • HAProxy:高性能的TCP/HTTP负载匀衡器
  • Nginx:最流行的Web服务器和反向代理服务器
  • Apache:老牌的Web服务器
  • Keepalived:热备切换工具

大数据

  • 论文
  • 算法
    • DHT
    • Gossip
    • Paxos
  • Hadoop
    • HDFS
    • Hive
      • Hive on Spark
      • Hive on Tez
    • Hbase
  • Spark
    • SparkSQL
    • Spark Streaming
    • Spark MLLib
    • Spark Graphx
  • Storm:分布式实时计算框架
  • Cassandra:分布式、P2P结构的NoSQL数据库
  • ElasticSearch:实时搜索引擎

运维

  • 自动化
    • ansible:部署、配置工具
    • puppet
  • 虚拟化
    • KVM / Xen
    • Docker
    • Vagent
    • OpenStack

测试

  • TestNG
  • Selenium
  • Jekins

环境工具

  • Git
    • git add
    • git clone
    • git commit
    • git pull
    • git push
    • git branch
    • git merge
    • git log
    • git push
    • git status
    • gitlab
  • Maven
    • mvn eclipse:clean eclipse:eclipse
    • mvn clean install
    • mvn assembly:assembly
    • mvn dependency:tree
  • Mac
    • Alfred: Mac下第一神器
    • iTerm:比自带的终端更好用
    • zsh + oh-my-zsh: 比bash更加强大
    • tmux: 终端多窗口分屏工具
    • CatchMouse: 快捷键多屏切换
    • Reeder:最好的RSS阅读工具
    • VMWare:无缝的虚拟机软件
    • MacDown:markdown编辑器
    • Dash:各种文档资源,非常好用的snnipets
    • VirtualDiff:代码比较工具
  • Linux
    • Terminator:终端多窗口分屏工具
    • VirtualBox:开源虚拟化软件
  • Python
    • ipython
    • pip
    • PyCharm CE
  • Java
    • Eclipse
    • IntelliJ idea
  • 其它
    • Navicat:跨平台的MySQL客户端
    • Sublime Text 2:跨平台的文本编辑器
    • Pocket:跨平台的稍后阅读工具
    • Xmind:跨平台的思维导图工具

推荐阅读

yikebocai /

Published under (CC) BY-NC-SA in categories tech  tagged with