- 硬技能的高低决定一个人能否完成某项任务,软技能则会决定一个人成就某项事业的潜力。
- 做人要学道家,要大气一点;做事要学儒家,要实在一点。
梦想一旦被付诸行动 就会变得神圣 -- 阿·安·普罗克特
- 每个人都有自己的梦想。
- 向业界和身边优秀的人看齐
- 从小事做起,并把它做好
- 代码的逻辑正确无误
- 代码的执行效率很高
- 代码的结构清晰易懂
- 代码的可扩展性良好
- 重复的工作自动化
- 态度决定一切。
- 发现工作中的问题及时反馈
- 自己主动承担把问题解决掉
- 协调资源推动他人一起解决
- 快速、持久的学习能力是技术人最重要的素质之一。
- 学会翻墙
- 老 D
- VPS
- 善用 Google 和 Stackoverflow、Slideshare
- 订阅技术文章
- Hacker News:硅谷教父 Paul Granham 创办的 YC 出品
- Startup News:国内 IT 圈的知名人士 @Fenng 出品
- ImportNew:专注于 Java 技术分享
- ifeve:偏重于 Java 并发和高性能
- High Scalability:专注于大规模可扩展性系统架构
- 码农周刊:每周推送一封,全是干货
- 编程狂人:各方面的编程技术文章
- 坚持读好书
- 参加技术交流
- 学会翻墙
- 及时沟通,信息透明
- 尊重他人,学会提问
- 沟通方式
- 正式:Email
- 非正式:微信 /QQ
- 特殊情况:面对面
- 工作周报
- 合理使用 Teambition
- 及时更新工作进展
- 追踪重点技术项目
- 向上沟通
- 任务开始时:
- (1)任务发起的原因
- (2)结果的形式与内容
- (3)优先级,期望完成的时间
- 任务过程中:及时向上反馈 (1)整理思路 (2)及时报告里程碑式进度 (3)潜在的风险与判断 (4)可能需要的支持
- 向上沟通时:高效表达 (1)总结先说 (2)重点内容按逻辑说(分清主次) (3)细节领导关心再说
- 任务开始时:
- 完成一件事有好几条途径,优秀的人的途径最短
- 任务拆分很容易得出做事的方法论
很多原先设定的计划,在半年或者更长时间,却发现由于各种原因,很多计划都没能实施的原因
why 思维和 what 思维的不同
为什么思考的明明是同一件事,思考的方向却完全不一样呢?
相信你已经发现了,关键的因素是时间。是的,我们的思考模式,会随着时间发生变化。
当一件事还很遥远时,我们思考的是 why ,也就是为什么要做这件事,做这件事的意义是什么。
而随着时间的推进,当我们开始做这件事的时候,我们思考的是 what,具体应该如何做这件事,这件事是否有可行性。
- 正确的方法可以事半功倍。
- Plan(计划):从问题的定义到行动计划
- Do(执行):实施行动计划
- Check(检查):对过程中的关键点和最终结果进行检查
- Act(修正):总结经验教训,将好的方面进行标准化
- 努力不仅仅指埋头做事,要学会更好层面思考
- 不要用战术上的勤奋来掩饰自己战略上的懒惰(雷军)
- 一个人的工作能力,主要体现在他可以将一个问题拆解成可执行的步骤的能力
- 好的工作计划是分解,不是罗列,不断地把笼统的事物分解到可控制、可管理的单元为止(https://zhuanlan.zhihu.com/p/102318622)
- S:任务是否明确
- 不明确的任务搞起来就是浪费生命
- M:任务是否可度量
- 不可度量如何体现价值?
- A:任务是否可搞定
- 搞不定就不应该接,接就得有魄力搞定
- R:任务的相关性如何
- 决定了任务的价值,相关性越高越能体现价值,比如这个任务搞定了能让团队获得公司、客户等更大的认可
- T:任务的时间
- Timeline:任务时间轴,什么时间点需要搞定什么
- Deadline:任务的最后期限,做评估时最好提前,因为总会有各种意外或拖延本性
- Timeline上一些很关键的时间点我们可以称为里程碑,搞定每个里程碑应该庆祝下
永远要设定 deadline,完成比完美更重要。接到一个任务时,先做一个 1.0 的版本,实现最小可用或者部分可用,然后再慢慢迭代添加新的功能
- 事情要分轻重缓急,优先做重要并紧急的事情。
- 四象限法则
- 摆脱手机依赖症,上班时间少玩手机
- 公司利益大于个人利益,公司利益最大化才能让个人利益最终最大化。
- 要有大局观
- 杜绝小团伙
- 别太在意个人得失
- 构建标准,形成共识是困难的,但破坏是容易的
- 常用命令
- 文档和目录: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
- 高级功能
- bash
- echo
- if
- for
- 数学运算
- HTTP 协议
- HTML
- HTML5
- WebSocket:从服务器端可以直接推送消息到浏览器
- HTML5
- CSS
- 盒模型
- JavaScript
- ajax
- 框架
- bootstrap:Twitter 开源的、目前最流行的前端框架
- jquery:让 js 小白也能实现很多强大的前端交互
- highcharts:最好的前端图表框架
- echarts:百度出品的前端图表框架
- Angularjs:Google 出品的函数库
- 图形
- SVG
- WebGL
- 工具
- Chrome 开发者模式
- 审查元素
- 网络请求
- FireFox FireBug 插件
- Chrome 开发者模式
- 浏览器工作原理
- 容器类
- 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)
- 年轻代(Young Generation)
- Stack
- Method Area
- Native Method
- PC Registers
- Heap
- 配置参数
- -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=$APP_OUTPUT/logs/hs_err_pid%p.log
- 垃圾回收算法
- Serial
- Parallel
- CMS
- G1
- javap
- 工具
- jps
- jmap
- jstack
- jstat
- 内存模型
- 框架
- 中间件
- 应用服务器
- 集合
- 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
- 框架
- 教程
- 反编译
- uncompyle6
pip install uncompyle6
它接受 python 1.3 版到 3.8 版的字节码,这其中跨越了 24 年的 python 版本
- uncompyle6
-
Android
- 环境
- Android Studio(推荐)
- Eclipse + Android SDK + ADT
- 四大组件
- Activity
- 生命周期
- AsyncTask:轻量级异步任务
- Handler,Message,Looper:线程间通信
- Service
- startService/bindService:非粘性 / 粘性
- AIDL、Messenger:进程间通信
- BroadcastReceiver
- 两种注册方式:xml,代码动态注册
- ContentProvider
- Activity
- 数据存储方式
- 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 文档中寻求解决问题的能力
- 同时熟悉面对对象和图形化开发
- 编译环境
- 本地缓存
- 分布式缓存
- 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:实时搜索引擎
- 批量部署
- cobbler(用于自动化网络安装操作系统)
- 批量配置
- 监控报警
- 自动化
- ansible:部署、配置工具
- puppet
- 虚拟化
- KVM / Xen
- Docker
- Vagent
- OpenStack
- TestNG
- Selenium
- Jekins
团队管理的 1+4+7 法则
- 培养一群善于解决问题的人,而不是自己去解决所有问题!
- 1)员工的方法可以解决问题,哪怕是很笨的方法,也不要干预!
- 2)不为问题找责任,鼓励员工多谈哪个方法更有效!
- 3)一个方法走不通,引导员工找其他方法!
- 4)发现一个方法有效,那就把它教给你的下属;下属有好的方法,记得要学习!
- 1)创建舒服的工作环境,让员工有更好的积极性、创造性去解决问题。
- 2)调节员工的情绪,让员工从积极的角度看问题,找到合理的解决办法。
- 3)帮员工把目标分解成一个个动作,让目标清晰有效。
- 4)调用你的资源,帮员工解决问题,达到目标。
- 5)赞美员工的某个行为,而不是泛泛赞美。
- 6)让员工对工作进度做自我评估,让员工找到完成剩余工作的办法。
- 7)引导员工“向前看”,少问“你为什么”,多问“你怎么办”。
项目管理并非新概念,它已存在数百年之久。由古到今项目成果的例子包括:
中国长城;金字塔;泰姬陵; 巴拿马运河;
奥林匹克运动会;人类登陆月球;
商业软件应用程序;儿童读物的出版;
这些成果都是由有效的项目管理达成的。
项目是为创造独特的产品、服务或成果而进行的临时性工作。项目的“临时性”是指项目有明确的起点和终点。
- 内涵 1:可能会产生以下一个或多个可交付成果;
- 内涵 2:有始有终(有明确的起点和终点)。
举几个栗子:
1、建造一座大楼;(最后建成一座 30 层大楼,从 2018 年 5 月 1 日到 2019 年 7 月 16 日完工交付。)
1. 项目目标是什么?
2. 项目背景是什么?即“为什么做”
3. 项目内容和范围是什么?即“要做什么”
4. 项目结果或 KPI?即“如何证明做到了”/项目检验标准
5. 项目执行的基本思路和方案?即“怎么做”
6. 项目里程碑 & 计划
7. 项目职责与分工
8. 项目资源需求
9. 项目风险控制
- 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:开源虚拟化软件
- 一键打造 Vim IDE
- Python
- ipython
- pip
- PyCharm CE
- Java
- Eclipse
- IntelliJ idea
- 其它
- Navicat:跨平台的 MySQL 客户端
- Sublime Text 2:跨平台的文本编辑器
- Pocket:跨平台的稍后阅读工具
- Xmind:跨平台的思维导图工具
- Linux
- 鸟哥的 Linux 私房菜:学习 Linux 必看
- Shell
- Linux Shell 脚本攻略(第 2 版)
- Java
- Java 性能优化权威指南:性能优化必读之作
- Java 并发编程实战:深入理解 Java 并发
- 深入理解 Java 虚拟机:国内为数不多介绍 JVM 的好书
- Python
- 数据库
- MySQL 性能调优与架构设计:阿里资深 DBA 力作
- 架构
- 大型网站系统与 Java 中间件开发实践:来自淘宝一线架构实践
- 互联网
- 人文社科
- 文明之光:人类如何从蒙昧一步步走向文明
- 其它
- 影响力:你为什么会说“是”?
- 现在做什么能让五年后的我收益匪浅
- 运维
- SRE Google 运维解密
- 运维实践指南