学习、工作心得分享
2016过去了,2017来了,你好,2017!感谢你2016,你带给我太多的惊喜和不舍。今天我写下一路辛苦做出的总结,希望有一天有人看到这份总结,因为这份总结而少走一些弯路,少趟一些雷。也希望当有一天我站在高处回头望时,这份总结不会因为时间而尘封,依旧那么闪亮!一、学习(目的性一定要强)学习过程[*]夯实基础:语言基础、第三方库、多了解底层(系统层面、协议层面、语言实现层面)
[*]量变到质变:多敲、多看书、少看视频、找到弱点大量练习
[*]记录:记录学习过程、学会总结、写blog、丰富自己的github
[*]交流:少说多看、少问多想、分享成果与过程、拉帮结派、团伙作案
[*]投资:买书、补课培训、学会计算投资与回收、投资时间
[*]英语:必须掌握好,甚至要达到母语水平
技巧:
[*]搜索引擎:谷歌-》必应-》百度
[*]一手资料:阅读官方文档,其次是翻译过的或者别人总结的
[*]利用清晨:一篇新闻、一篇博文、一篇总结和计划、找出难题中午吃饭之前解决
[*]TODO:制定TODO、利用闹钟提醒、TODO做完写出要点
[*]发散:扩大知识面(不只是技术方面)、读读心理学(了解别人想要什么)、开脑洞、多看科幻
[*]总结:总结出来不是高手,高手是用一句话总结出来
[*]会睡觉:安排好作息时间,熬夜学习不划算
[*]零散时间利用:利用坐车、等人、吃饭时间尝试阅读书籍或利用移动设备看学习相关的视频
学会提问
[*]谦虚:不分回答的人年龄、地位 保持友善,甚至是尊敬 听人说完,想想再继续问
[*]问到点:问之前先把问题想清楚,一句话问到位 问之前一定自己把问题全面考虑过,尝试解决过
[*]仔细想:不是每个人回答者都很耐心,所以记住人家的话,仔细品味思考,争取不要问第二次
二、面试(如果你是处,那就先面试一百家)简历
[*]造假:简历写的天花乱坠,吹牛逼上了天,只能让你吃不了兜着走 适当造假,面试之前想好怎么圆谎
[*]不造假:实事求是,会什么写什么,不会的千万不要写
[*]适当美化:不要千篇一律、有自己的模板、不花哨 联系方式加粗 多写专业名词 按次序写 重要的写前面
[*]不要废话:精简 页眉页脚写Blog、github地址 不要写与专业无关的 写出特色
[*]写要点和绩效:项目要点、技术关键点、产生多少效益
投简历
[*]懂市场:所在城市行情、同水平薪酬范围、不要去智联和51job(首选拉钩、Boss直聘)
[*]先调查:查企业信用公示板、企业注册登记查询 百度、知乎等搜索企业信息
[*]抓住机会:不要因为待遇问题而丧失机会 不要怕,不敢想
笔试
[*]钻空子:可以字数写多,字写的不好看
[*]做题:可以做,不要刷,找目标公司以前的面试题
面谈
[*]渴望:表达对目标公司的渴望,降低自己的身份
[*]不要说谎:实事求是,真诚的看着面试官的眼睛
[*]错了就问:答错了直接问为什么,与面试官简单讨论(不宜讨论时间过长)
[*]衡量自己:自己值多少钱就多少钱,不要高也不要低
[*]善待面试官:切记不要顶撞,不要自以为是 真诚、尊重
三、工作(用心)选工作
[*]外包:外包并不一定好也不一定坏,好在锻炼人,坏在不当人,适合初学者
[*]非外包:看产品,看用户量
[*]传统:流程完善,可能生产力低,适合初学者
[*]互联网:敏捷比较多,生产力高
[*]小公司:全方面锻炼,加快学习
[*]大公司:一个萝卜一个坑,全靠自己才能升
放开
[*]思想:都是同志,互相分享互相信任 不要怕面对上级 多一些思考多一些点子
[*]技术:贡献自己会的,能做的 尝试用创新解决团队问题
小心
[*]说话:先想再说 多问少说 不要顺嘴就说
[*]本职工作:不要毛 不要慌 不要手抖 多测试
多想
[*]业务:业务第一,想不明白就问,问不明白多想,多参加业务培训
[*]技能:技能第二,还是持续学习,多想为什么(为什么这么实现,为什么用这样技术)
降低身份
[*]对上:保持恭敬而不低三下四,善意真诚直视对方,适当赞扬
[*]对下:保持平等而不高傲,微笑面对对方,适当关心
[*]对外:对客户=对上,对其他人=对下
先解决别人的问题
[*]用户为先:把用户当傻子、自己体验自己的产品、尽力完善用户需求和体验(不合理的需求要学会为客户变通)
[*]帮助别人:举个例子,当你解决了dba连接数据库的工具,那dba就会帮你解决你sql语句查询慢的问题
天助自助者
[*]学习:持续学习,夯实基础,掌握方法,记住核心
[*]忙碌:多加班,充分利用8小时,如果不累中午多学习,快速完美的完成任务,不瞎忙
[*]扩大影响力:组内-》部门内-》公司内-》公司外,参加各种大会(尝试演讲),与别人讨论
四、技术(持续学习,夯实基础,大量阅读代码)java
[*]基础:语法、类和对象、static作用域、IO、语法糖、java core、反射、异常 api、collections用法与底层实现
[*]框架:spring mvc、spring、spring boot、mybatis、slf4j、maven、apache commons、fastjson、ProtoBuf、xml、httpclient等等
[*]设计模式:单例、工厂、策略、装饰者、建造者、观察者、适配器、依赖注入与控制反转
[*]多线程:concurrent、队列、生产-消费者、锁(悲观与乐观)、信号、共享内存、各种数据结构在高并发下出现什么问题
[*]jvm:gc、内存模型、字节码格式、反编译、阅读openjdk源码和jvm规范、jvm参数、内存分析工具
[*]高并发:nio、多线程、dubbo、缓存、消息队列、反向代理与负载均衡、jmeter、loadrunner
c
[*]算法与数据结构:堆栈、队列、链表、哈西、树、图,查找、排序、其他更专业的算法和数据结构
[*]各种lib:libevent、libcurl、qt、数据库驱动等等
[*]模型:epoll、select、零拷贝、事件、回调钩子等
[*]协议与驱动:tcp、udp参数和报文状态、http协议,学会抓包,尝试编写硬件驱动
[*]指针、宏、结构体:函数指针、指针函数、引用与句柄、野指针、多级指针,指针压缩,宏运算、宏展开、宏条件判断,结构体嵌套,结构体序列化与反序列化,结构体、联合体压缩
[*]gcc:gdb、gcc优化等级、自定义gcc,利用makefile
linux
[*]基础:常用命令、网络配置、仓库、vi、bash脚本语法、计划任务、鉴权、文件系统、引导装载程序
[*]服务:ntp、nfs、iscsi、dns、dhcp、autofs、udev、cron、syslog以及其他第三方服务(ngix、apache、tomcat、vsftp等)
[*]性能与安全:内核调优、启动调优、针对服务调优、鉴权、灾备、chkrootkit、rootkithunter
[*]监控:top、netstat、iostat、htop、vmstat、ps、lsof、nagios、tail -f查看日志
[*]自动化:bash、python脚本,自动化部署、自动化运维工具,蜜罐、ips
数据库
[*]基础:sql语句(DDL、DML),数据库架设,查看日志 事务隔离级别 存储引擎特性
[*]执行计划:explain,看懂查询计划并优化
[*]索引:什么语句用的了索引,什么用不了索引,聚集索引与非聚集索引,什么列该加索引,什么不该加,最左原则,索引底层数据结构
[*]语句优化:减少语句网络请求,利用查询计划和索引,减少like in,不要select *,不要全表扫描,不要超过3表以上链接等等
[*]NoSQL:redis、mongodb等
[*]分布式:cluster、第三方proxy、读写分离、主从复制
[*]灾备:制定备份和恢复方案、利用自动化备份、了解binlog、了解存储结构和存储方式
[*]监控:旁路监控、利用数据库本身提供的监控工具
架构
[*]模型:事件驱动模型、领域模型等
[*]进阶:单机整站、多机整站、多机横纵向切分、多机业务切分、分布式微服务、云计算与虚拟化、雾计算
[*]需求与业务:需求和业务优先于技术与架构,架构师需要把业务玩的透透的才能合理设计架构
[*]设计与拆分:拆分业务、拆分系统、拆分模型、拆分接口、拆分代码、拆分数据存储、拆分通信过程、UML和各种文档的编写
[*]重构:持续重构、不断优化、抽取提炼、多用设计模式
[*]代码整洁之道:命名规范、代码量规范、工程结构规范、配置规范、注释规范,持续整理
[*]封装:封装基础服务,封装基础数据,封装基础类库,封装底层实现,封装协议标准,降低部署复杂度,降低一切复杂度
[*]高可用与性能:压测得出指标、优化完成指标、量化细节指标、出现问题快速解决或回滚、丰富测试环境与预发布环境、分流引流、优化架构与设计、持续监控优化性能
[*]多语言:学习掌握go、erlang、nodejs等现代编程语言,适当使用弥补不足
[*]管理:人员分配、工时分配、项目风险控制、资源利用率、投资回报、采用何种方式管理(敏捷还是传统)
楼主这篇帖子信息量真大
页:
[1]