=Start=
缘由:
去年7、8月份看的这本书,还参加了作者的激情分享,刚参加完的时候还是挺热血的,想着照着书里说的好好改造一番自己,但是,后来连书都没有看完,更别说照着做了。。。
最近看到了别人博客里面关于此书的一些笔记,就想着把当时看了的一些内容记录下来,学到一点是一点。
正文:
参考解答:
第一篇 职业
- 你所能犯的最大错误就是相信自己是在为别人工作。这样一来你对工作的安全感依然尽失。职业发展的驱动力一定是来自个体本身。记住:工作是属于公司的,而职业生涯却是属于你自己的。
大多数软件开发人员从职业生涯一开始就犯了几个严重的错误,最大的错误就是没有把自己的软件开发事业当作一桩生意来看待。你应该把自己当作一个企业去思考,把雇主当作是你的软件开发企业的一个客户。 - 通常软件开发人员售卖的就是他们把一个想法变成一个数字化的现实产品的能力。因此你需要做到:专注于你正在提供怎么样的服务以及如何营销;想法设法提升你的服务;集中精力成为一位专家。
- 如何设定目标:起步阶段最简单的就是在心中树立一个大目标,然后再建立能帮你达成这个大目标的小目标。较小的目标可以让你航行在自己的轨道上,激励你保持航向朝着更大的目标前进。
- 学会与人打交道:每个人都希望感到自己重要;永远不要批评;换位思考;避免争吵。
- 关于面试:让面试官对你怀有好感(比如阅读过你的博客,比如有员工推荐你);集中精力证明自己无需督促也能自动自发做好事情以及在技术上你确实胜任工作;坚持阅读技术书籍和博客文章,提升自己的技能;扩展自己的社交网络;
- 专业化很重要:虽然会把你关在一些机会的大门之外,但与此同时它将打开的机会大门要比你用其他方式打开的多得多。专业化的规则是程序越深,潜在的机会越少,但获得这些机会的可能性越大。
- 不同规模的公司选择:小公司(承担更多职责但稳定性差)、中等规模公司(工作稳定但变化很慢)、大公司(完备的流程和规范但负责一小部分且可能充斥着官僚作风)。
- 关于晋升:承担责任(负责不受重视的项目、帮助新人成长、负责文档更新等);引入注目(记录活动日志、提供演讲、发表意见);自学(提升技能并分享);成为问题的解决者。
- 成为专业人士是一种心态。如果我们总是与恐惧。自毁。拖延和自我怀疑作斗争,那么问题就是我们正在像外行那么思考问题。外行毫不起眼,外行人废话连篇,外行屈从于逆境。专业人士可不这么想。不管怎样,他引人注目,他恪尽职守,他始终如一。
对技术虔诚的一大问题是,我们中的大多数崇拜某项特定的技术,只是因为自己熟悉这种技术,我们很自然地会相信自己选择的是最好的,然而这会让我们经常忽略任何反对意见。
第二篇 自我营销
- 自我营销的关键在于:如果想让别人喜欢你,想和你一起工作,你必须要为他们提供价值。自我营销无非就是学习如何控制好自己要传达的信息,塑造好自己的形象,扩展信息送达的人群。
- 尽管有多种媒介可供你使用,但对于软件开发人员,最突出也是我个人推荐的还是博客。我认为博客就是你在互联网上的大本营,这是一个你完全能够控制信息的地方。
- 自我营销的基本机制是,要想让人们追随你、倾听你,你就要带给他们价值:你能为他们的问题提供答案,甚至是给他们带去欢乐。
- 打造成功博客的最大秘诀有且仅有一个——持之以恒。定好计划,然后坚持不懈,另外还需要重视博客内容品质。
第三篇 学习
- 通过动手实践和教会他人,我们能学得更好。与其他的学习方式相比,主动学习是效率更高的方式。
- 十步学习法:要对自己要学的内容有个基本的了解然后利用这些信息勾勒出学习的范围,依靠这些知识找出各种资源来帮助自己学习,最后创建自己的学习计划、列出要学习的相关课程、筛选学习材料,再通过“学习-实践-掌握-教授”的过程假设理解。下面是十步学习法的示意图,第1步到第6步只做一次,集中精力完成足够多的前期调研,确保自己明确知道要学哪些内容,以及如何确认自己已达成目标,另外还需要挑选最好的资源、制定学习计划;第7步到第10步通过LDLT的方式真正领会知识。
- 寻找导师与做一名导师。
- 发现自己的知识短板:消除短板的关键就是定位短板,然后通过十步学习法用心掌握它。
第四篇 生产力
- 如何专注:挑选短时间片专注于单一任务(番茄工作法)、克服集中于单一任务的痛感(学会享受任务和奖励)、屏蔽打扰。
- 生产力提升计划:季度计划 -> 月计划 -> 周计划 -> 日计划及执行,使用看板实时关注进展。
- 番茄工作法:每25分钟一个番茄,专注于当前优先级最高的任务,拥抱变化并诚实地记录中断。
- 定额工作法:给自己在确定的期限确立一个明确的目标;挑选一些需要重复去做的事情,设定一个定额,如每周写一篇博客。
批量处理生产效率更高,比如处理电子邮件、开短会,避免多任务同时处理。 - 职业倦怠:穿多那堵墙(很多倦怠是自然而然产生,但是如果咬牙坚持或许就是不一样的风景)。
- 追踪你的时间:了解自己每天时间的使用情况(比如RescueTime工具),避免浪费。
- 习惯主要由三个要素构成:暗示、惯例和奖励。找出坏习惯,改掉!养成好习惯。
- 任何行动往往都比没有行动好,特别是当你一直停滞在不愉快的情势下很长时间的时候。如果这是一个错误,至少你学到了一些东西。这样一来,它就不再是一个错误。如果你仍然选择停滞不前,那么你就学不到任何东西。
第五篇 理财
- 金钱只是一种工具,它会带你去往任何你想去的地方,但不会取代你成为司机。
- 是成为百万富翁还是一生都靠薪水过活,选择权在你自己,而且在很大程度上取决于你在财务管理方面的知识,以及世界金额系统运行方面的知识。
- 怎样支配你的薪水:拒绝短期思维(更长远地看待薪水的分配而不仅仅是当前);资产与负债(通过成本和价值来考虑的理财思维)。
- 怎样进行薪酬谈判:薪酬水平受声望的影响(自我营销);先出价者输(先出价的人处于明显的劣势);被要求先出价怎么办(先要求了解预算范围、不透露当前薪酬、了解自己值什么价钱)。
- 期权:赋予你再未来某个日期之前以固定价格购买一定数量股票的选择权。
- 规划退休计划的关键就是利用逆向思维,计算退休目标。
第六篇 健身
- 人的身体就是人的灵魂的最好写照。
- 健身不仅是保持健康体魄的关键要素之一,也是灵活的、具有创造性的脑力活动的基础。健身可以增强自信心、提高创造力、减少对疾病的恐惧。
- 设置你的健身标准:挑选一个具体的目标(比如增长肌肉)、创建里程碑、对进展进行可视化。最后保持健康的生活方式。
第七篇 精神
- 信念决定思想,思想决定言语,言语决定行动,行动决定习惯,习惯决定价值,价值决定命运。(by 甘地)
- 拥有正确的心态:重新启动。积极思考问题的根源是这样一种信念——你比你所处的环境更伟大。这种信念让你总能先看到事物好的一面,因为无论身处何处,你都有能力改变自己的未来。这是人类成就的最高信念,是世界上最强大的力量。
感悟
- 职业发展的驱动力一定是来自个体本身。
- 工作是属于公司的,而职业生涯却是属于你自己的。要把自己当成一个企业去经营。
- 如果想让别人喜欢你,想和你一起工作,你必须要为他们提供价值。
- 通过动手实践和教会他人,我们能学得更好。
- 设置你的健身标准:挑选一个具体的目标(比如增长肌肉)、创建里程碑、对进展进行可视化。最后保持健康的生活方式。
- 信念决定思想,思想决定言语,言语决定行动,行动决定习惯,习惯决定价值,价值决定命运。
参考链接:
- http://www.epubit.com.cn/book/details/4056
- https://www.zhihu.com/question/48434399/answer/110848609
- http://www.jianshu.com/p/d8709f48d155
- https://book.douban.com/subject/26835090/
- https://www.zhihu.com/question/48406009
- https://book.douban.com/review/7686245/
- http://ginobefunny.com/post/soft_skills/
附:《软技能-代码之外的生存指南》目录
第1章 为何这本书与你先前读过的任何书籍都迥然不同
第一篇 职业
第2章 从非同凡响开始:绝不要做他人都在做的事
第3章 思考未来:你的目标是什么
第4章 人际交往能力:远比你想象的重要
第5章 破解面试之道
第6章 就业选择:列出你的选择
第7章 你是哪类软件开发人员
第8章 公司与公司是不一样的
第9章 攀登晋升阶梯
第10章 成为专业人士
第11章 赢得自由——如何辞职
第12章 成为自由职业者:开启自己的一片天地
第13章 创建你的第一个产品
第14章 你打算开始创业吗
第15章 远程工作的生存策略
第16章 假装自己能成功
第17章 单调乏味的简历——如何修改
第18章 请勿陷入对技术的狂热之中
第二篇 自我营销
第19章 针对“码农”的营销基础课
第20章 打造引人注目的品牌
第21章 创建大获成功的博客
第22章 你的主要目标:为他人增加价值
第23章 善于运用社交媒体
第24章 演讲、报告和培训:做“说话的极客”
第25章 著书立说,吸引追随者
第26章 百折不挠,越挫越勇
第三篇 学习
第27章 学习怎样学习:如何自我教育
第28章 我的“十步学习法”
第29章 第 1 步到第 6 步:这些步骤只做一次
第30章 第7步到第10步:循环往复
第31章 寻找导师:找到你的尤达
第32章 开山收徒:成为尤达一样的大师
第33章 传道授业:若要学知识,必得为人师
第34章 你需要一个学位吗,还是可以对此忽略不计
第35章 发现自己的知识短板
第四篇 生产力
第36章 一切始于专注
第37章 我的私房“生产力提升计划”
第38章 番茄工作法
第39章 我的“定额工作法”:我是如何做到超额完成工作的
第40章 对自己负责
第41章 要不要多任务并行
第42章 职业倦怠:我已找到解药
第43章 时间是怎样被浪费掉的
第44章 形成惯例的重要性
第45章 培养习惯:刷新你的代码
第46章 分解任务:如何吃掉一头大象
第47章 努力工作的价值,以及为什么你总是逃避努力工作
第48章 任何行动都比不采取行动好
第五篇 理财
第49章 怎样支配你的薪水
第50章 怎样进行薪酬谈判
第51章 期权:所有乐趣之所在
第52章 房地产投资面面观
第53章 你真的了解自己的退休计划吗
第54章 债务的危害:社保债务代价昂贵
第55章 额外馈赠:我是如何做到33岁退休的
第六篇 健身
第56章 为什么需要破解自己的健康密码
第57章 设定你的健身标准
第58章 热力学、热量和你
第59章 动力:让你的屁股离开椅子
第60章 如何增长肌肉:书呆子也能拥有强健的肌肉
第61章 如何获得完美腹肌
第62章 启动跑步程序
第63章 站立式办公及其他窍门
第64章 高科技健身装备:极客现身
第七篇 精神
第65章 心灵是如何影响身体的
第66章 拥有正确的心态:重新启动
第67章 构建一个积极的自我形象——规划你的大脑
第68章 爱情与恋爱:计算机无法牵着你的手
第69章 我的私房成功书单
第70章 积极面对失败
第71章 结束语
附录A 如果你能写代码,你就能理解金融
附录B 股市是如何运作的:系统的游戏规则
附录C 垃圾进来,垃圾出去:饮食和营养基础知识
附录D 如何吃出健康来:比萨并不是一个食物组
=END=
《 “读《软技能-代码之外的生存指南》” 》 有 42 条评论
一个人的成长需要哪些软技能,怎样快速提高?
https://www.zhihu.com/question/28311294
`
作者:一叶
链接:https://www.zhihu.com/question/28311294/answer/40542287
1、尽量不说话。( 是这样,首先,你要具备说话的能力,所谓能力,不是胡说八道,而是任何场合都能不怯场,任何场合都能控制局面,任何领导跟你说话你都接的住,任何工作上的事你都能既说得出数据又说得出构想,任何下属冷不防给你出状况你都压制得住;然后,学会闭嘴。 )
2、努力微笑。
3、多忙也要在出门前打理好自己的脸、头发、衣服。反正我就是坚持,宁可实在来不及迟到,也不要乱糟糟地出门。
4、坚持锻炼。
5、学会做饭、手洗衣服、随手收纳杂物。
6、每天至少洗一个澡。
7、不要跟自己的上司较真,不要把给自己下属的承诺当真。
8、除非情之所至,否则不要轻易跟人上床。
9、要知道自己的酒量,不管你是男是女,喝断片都是件坏事。
10、但行好事,莫问前程。
突然又想到几点,再补充下:
11、上班就踏踏实实工作,不要学电视剧里撒娇卖萌耍帅,让上司觉得你是一个成熟的人和觉得你是一个有能力的人同等重要。
12、所有的文本里绝对不要有错别字、错标点、错数据、错格式,绝对不要有!
13、有空的时候搭配几身各种场合穿的衣服鞋子,熨展,挂好,鞋子上油、擦亮。不是像时尚杂志那样把衣服铺在那搭配,是要真的穿上,相应的内衣、袜子、鞋子都穿上,比美观更重要的是舒适。我见过无数次女孩子穿着高跟鞋弯腰驼背,双腿僵硬;穿紧身上衣能看到胸衣疲软的轮廓;戴着美瞳眼睛红得像兔子……丫头,你那样子,一点都不美,我讲真!
14、如果不懂品鉴香水,那就不要涂,男女都是。如果上班涂,女孩子最好用男香,我上班用的就是爱马仕的大地,低调又令人舒适,男孩子上班不要擦香水。
15、不要染头发!不要做美甲!男女都是,那样让你整个人看起来很廉价。
16、如果皮肤出状况了,就向单位请假,然后去医院治疗,好了以后再去上班!不要学网上那些涂很厚的遮瑕膏和粉底的化妆方法,痘痘遮起来是满脸干皮,过敏遮起来是满脸渣,在自然光下看起来,超级恐怖啊!
17、不要与人争辩。与下属有分歧,就让他闭嘴,然后狠狠骂他(我的下属还都是已婚男……),让他长记性;与领导有分歧,就笑笑,按领导的办,记得用手机偷偷录下音,万一出状况了也是他的责任;与爱人有分歧,就大家分开冷静一下……总之永远不要让自己看起来像一只斗鸡。
`
程序员的成长离不开哪些软技能?
https://www.zhihu.com/question/48406009
`
1.跳出舒适区
2.持续学习
自学能力:
首先是学习内容的选择能力;
其次是学习的速度和质量平衡。
`
https://zhuanlan.zhihu.com/p/21926306
实用性超强的一页纸理财计划
https://mp.weixin.qq.com/s?__biz=MjM5NjA3OTM0MA==&mid=2655710860&idx=1&sn=2ec00bc0c57aecb945617c8afaaa6658
`
《99%的人一看就会的理财书》
真正与之有关的只有一个问题:什么是对你真正重要的?
一页纸计划只需要反映对你来说最为重要的三四件事情即可:你要做的几件事,以及你做这些事的理由。
`
翻译:有哪些针对软件工程师提高效率的小贴士?
http://www.zlovezl.cn/articles/65/
http://www.quora.com/What-are-some-productivity-tips-from-various-professions
程序员的修炼之路
https://mp.weixin.qq.com/s?__biz=MzI2OTQxMTM4OQ==&mid=2247484942&idx=1&sn=4b87aaecdc70ccb7d0598d80024c8170
`
开始升级比较快,越往后面越难。这是一场持久战,出征的战士应该时刻都注意检查自己的装备、时刻操练技能。
前三年,重点积累技术实力;三年或五年以后开始关注你的业务能力和沟通能力;五年以后开始注意自己的影响力和个人品牌。
一、你必须去弄清问题的原因和解决方案。(技术上的挑战)
二、你必须去说服你的leader和你的团队。(沟通能力)
既要埋头苦干,更要仰望天空。
因为你所在的公司不可能是你的最后一站,你要想清离开的时候你该带走什么。
`
程序员,感觉技术停滞了怎么办?
https://mp.weixin.qq.com/s?__biz=MzAxMTEyOTQ5OQ==&mid=2650610876&idx=1&sn=f4e7648465e1a12b25bab5661edc8590
技术方向的选择
https://mp.weixin.qq.com/s?__biz=MzAxMTEyOTQ5OQ==&mid=2650610851&idx=1&sn=3b0dacbc38d4595b0e49fd0f2835619f
`
有时这样的选择确实很难,因为我们缺乏足够的信息来做出最优选择。赫伯特·西蒙说:当你无法获得决策所需的所有信息时,不要追求“最优决策”,而要追求“满意决策”。定下自己的满意标准,找到一个符合满意标准的折中方案,就开始行动吧。
停留在原地纠结,什么也不会改变。
`
找一个好工作,谈一份好薪水
https://mp.weixin.qq.com/s?__biz=MzAxMTEyOTQ5OQ==&mid=2650610879&idx=1&sn=4043b6af30f2690ae1aeff9a66e6c3e7
http://mindwind.me/blog/2017/06/18/%E6%89%BE%E4%B8%80%E4%B8%AA%E5%A5%BD%E5%B7%A5%E4%BD%9C-%E8%B0%88%E4%B8%80%E4%BB%BD%E5%A5%BD%E8%96%AA%E6%B0%B4.html
程序之外的人生
https://mp.weixin.qq.com/s?__biz=MzA4NzAzMjk4Mw==&mid=2247483730&idx=1&sn=1d27294a03b566665edb1fe8369188d3
`
健康
房地产
理财
父母的健康
子女的教育
代码之外的技能(兴趣、爱好、特长、能力)
`
程序员,如何在工作之外,增加自己的收入?
https://mp.weixin.qq.com/s?__biz=MzI2OTQxMTM4OQ==&mid=2247484814&idx=1&sn=b3050bbe67b0b4c61b8d7d54856a8de3
`
1、干私活,接外包
2、参加比赛,赢取奖金
3、开付费圈子,做人生导师
4、线上录课,线下兼职教学
5、知名平台投稿
6、炒股票
7、写书
`
技术与技术人员的价值
https://mp.weixin.qq.com/s?__biz=MzAxMTEyOTQ5OQ==&mid=2650610928&idx=1&sn=303fa33e8bccfe8172c76831220acda6
`
“高”、“精”、“尖”。指的是 “高级(High-grade)”、“精确(Precision)” 和 “尖端(Advanced)”。“高” 是往宏观走,“精” 是往微观走,“尖” 是去突破边界。
技术像是一根棍子,能发挥多大价值,取决于棍子本身的品质和运用的方式。在你追求个人价值最大化时,首要就是选好价值支点,再去用技术撬动价值。
`
我是如何评估面试者的软技能的?
https://juejin.im/post/59ac9b9d518825242a028687
http://www.jiuzhang.com/qa/4133/
`
交流能力
团队合作精神
适应能力
解决问题的能力
领导能力
职业道德/尊重规则
耐高压能力
强烈的学习欲望
对工作的热爱
分析规划能力
正确对待失败的能力
查找错误的能力
注重deadline
……
`
如何成为优秀的程序员?
http://insights.thoughtworks.cn/excellent-developer/
`
简单归纳一下,总共有7条:
1、保持健康
2、编程之外的爱好
3、持续学习
4、正确应对犯错
5、不要囿于角色
6、展示你的创意
7、刻意练习手速
`
如何在三年内快速成长为一名技术专家
https://yq.aliyun.com/articles/224980
`
学习方法
1:掌握良好的学习心态
2:掌握系统化的学习方法
3:知识如何内化成能力
4:广度和深度的选择
实战技巧
1:你需要学会的编码习惯
2:在业务团队做开发如何成长
`
这8种武器点亮程序员的个人品牌
https://mp.weixin.qq.com/s?__biz=MzAxMzUzNzYyNA==&mid=400224612&idx=1&sn=8325d95feed09db90520e77bd555d609
`
产品(虽然说个人英雄主义时代已经过去,但独具特色的产品依然是一个程序员最好的证明。)
所在公司和团队的背景(因为人和人之间的难以了解,程序员的工作背景才会变得很重要。)
开源项目(假如你能有一个被人喜爱和传播的开源项目,那你一定会被别人刮目相待。)
技术博客(能在一定程度上说明一个程序员的分享精神和技术能力。)
出版技术书籍(维护一个高质量的技术博客,能增大你出版图书的机会。)
持有专利(你可以试试的。)
证书(各种工程师证书、获奖证书、学历证书等)
口碑
`
小公司程序员怎么进大公司
https://mp.weixin.qq.com/s/HZe_Mzcu6qLXMrVX_KymjQ
A collection of (mostly) technical things every software developer should know(每个软件开发人员都应该知道的技术相关合辑)
https://github.com/mr-mig/every-programmer-should-know
软件工程师的职业建议
http://survivor.ruanyifeng.com/startup/advices.html
`
1.兴趣
2.认知
3.EQ(情商)
4.学技术要掌握本质
5.刻苦修炼内功
6.唯坚持得成功。
7.不要别人点什么,就做什么
8.推销自己
9.学会带领团队
10.生活才是最重要的
11.自己找到道路
12.把自己当成主人
`
如何写一份成功的简历
https://mp.weixin.qq.com/s/3aoLTi4dRvpC3HVIwv_UEg
`
Ⅰ. 简历制作的三大原则
1. 简单清晰、一目了然
2. 内容主次分明、可读性强
3. 精致美观、用心设计
Ⅱ. 首先每个人都要避免的低级错误
错别字
缺少/乱用标点符号
措辞假大空
简历页数过多
不要随便贴照片
不要写民族、籍贯、党籍等冗余信息
海投简历
与应聘职位不相关的信息
`
年后找工作的你,如何写一封好的简历?
https://mp.weixin.qq.com/s/LWQzEEYuEc0Z4VHsr_S1EA
躁动的季节里非典型跳槽指南,03篇 | 容易被忽视的简历问题
https://mp.weixin.qq.com/s/-QEt928fhgnV2I2AVcHmKg
计算机行业是否需要学历?
http://riusksk.me/2018/03/14/%E8%AE%A1%E7%AE%97%E6%9C%BA%E8%A1%8C%E4%B8%9A%E6%98%AF%E5%90%A6%E9%9C%80%E8%A6%81%E5%AD%A6%E5%8E%86/
`
单纯说需要或者不需要学历都是片面的。
持续学习才是王道!!!
整体而言,拥有学历并不是什么坏事,就中国国情而言,学历还是需要的,至少拥有本科学历会更好,至于是否考研读博,可参考上一条自行选择。
`
[演讲]这些软技能,让程序员更幸福 QCon Beijing 2017
https://junq.io/%E6%BC%94%E8%AE%B2-%E8%BF%99%E4%BA%9B%E8%BD%AF%E6%8A%80%E8%83%BD-%E8%AE%A9%E7%A8%8B%E5%BA%8F%E5%91%98%E6%9B%B4%E5%B9%B8%E7%A6%8F-qcon-beijing-2017.html
https://mp.weixin.qq.com/s/msmJGtMygEsxnZDFciAoeg
软件开发之技能梳理
http://www.importnew.com/27919.html
`
编程开发本质是运用程序和计算机来解决现实中的各种问题,因此,编程开发人员的才智发挥载体是计算机或者说计算设备,直接武器是程序。程序员用来进行编程开发所需要的技能,归结起来主要如下:
1. 理解计算模型和框架: 顺序计算、并发计算 (并行计算、分布式计算); 理解应用所基于的计算模型和框架是非常重要的。传统应用通常基于顺序计算,而现代商业应用,比如云计算,通常基于分布式计算架构; 大规模的科学计算应用, 比如基因序列计算, 则基于并行计算。
2. 高效的数据处理:熟悉常用数据结构和算法设计,能够针对计算目标设计高效的数据结构和算法并实现之, 满足性能需求。
3. 大容量的数据管理与检索:至少精通一种主流数据库, 从数据处理中分离出的一种专门针对大量应用数据实时检索要求的技术。
4. 系统底层机制: 进程、信号、 内存管理、API 等, 理解相关概念及实现,熟悉使用Linux&MacOS&Windows至少一种操作系统。
5. 进程的网络通信: TCP/IP socket , RPC ,Http , 序列化与反序列化, 熟悉网络程序设计的底层原理。
6. 编程语言: 面向过程、面向对象、脚本语言、函数型、浏览器语言等,最好每种类型语言掌握一种。
7. 正则表达式:灵活地操作文本和字符串。
8. 代码阅读与维护: 能够读懂代码,维护代码,重构或扩展代码。
9. 错误处理技术: 异常机制、 返回值与全局变量、 直接退出或重续 等; 建造稳固可靠的应用的必要基础。
10. 网络搜索: 寻求有益资源、远程协作伙伴及有效解答。
11. 程序质量: 保证程序的时间性能、空间性能、安全性、可靠性、可用性、 可扩展性、可读性、可维护性、可移植性、用户体验。
12. 设计模式: 解决实际的设计开发问题, 在现有项目的基础上扩展功能模块时应该会经常用到。
13. 系统架构: 用于子系统的设计, 需要项目经验积累。
14. 处理大数据量: 通常基于分布式计算架构,比如云计算基础设施。
15. 选用可靠的工具及软件库、包: 首先必须确定具体需求,深入了解各种工具、技术与框架及其优劣,然后根据需求选择最适合的那种。
16. 诊断和修复计算机或程序的故障: 上网搜索已有解决方案;根据原理进行推断和验证猜想; 排查缩小范围; 对比分析; 打印信息。
18. 除了编程的其它使用计算机解决问题的技术和方法: 比如使用现有的软件。
针对每个问题,将自己掌握的技术和方法整理出来,并使用示例来说明,基本上就可以了解自己的技术水平了,同时亦可备日后用。积微知著。人们常说的那些“大技能”,其实可以分解为大量的微技能,而积累越多的微技能,在处理问题时便有了越多的选择和思考余地。具体而言:
1. 语言: 至少熟悉六种编程语言,掌握两种编程语言。 “熟悉”是指大量学习和使用过,“掌握”是指能够使用该语言 构建大型可靠的软件系统。 对象式,函数式, 过程式,客户端语言,脚本语言,数据语言。 例如, Java / Scala / Python / C / Shell / JavaScript / SQL ;
2. 工具: 编辑器 + IDE + 工程构建 + 版本控制 + 控制台 + 浏览器 + 笔记软件。 例如 Vim (Sublime) / IntellJ / Maven / Git / Shell / Chrome;
3. 方法: 自顶向下,意图导引,自底向上; First Right, then Good ; 预先设计, 及早动手; 迭代式开发、发布、反馈和成长 ; 预估时间;
4. 风格: K&R C , Java 编程规范, 排版整洁,代码简洁无冗余, 一致, 使用地道表达范式;
5. 模型: 串行, 并发,多进程, 多线程, MapReduce , B/S , 异步, 回调,阻塞, 非阻塞,并行,分布式;
6 思想: 结构,控制,过程, 对象, 函数,声明, 原语, 集合, 组合, 抽象, 封装,复用,分层,模式,分治,缓存,中断,数学性质;
7. 算法: 分治, 递归,动态规划, 时空权衡, 贪婪算法,优先级算法,迭代改进,深度遍历,广度遍历,问题转化;
8. 排序: 插入排序, 选择排序,快速排序, 堆排序, 归并排序,基数排序,外部排序;
9. 搜索: 顺序搜索, 二分搜索, 哈希搜索, 深度优先搜索,广度优先搜索,分段并行搜索;
10. 数据结构: 位图,数组, 链表,栈,队列, 二叉树, 字符串, 哈希表,图;Json, XML, 记录,数据库; Key-Value 值对集合;非结构化存储。
11. 文本处理: find , grep, awk, sed, sort, cut, uniq, tr, ls, cat, xargs, 正则表达式;
12. 设计模式: 工厂, 单例,原型, 模板,策略, 状态, 观察者, 中介者, 责任链, 组合, 命令, 代理,外观,适配器,装饰器,迭代器;
13. 应用模式: WrapperFacade, Component Configurator, Interceptor, Extension Interface, Reactor, Proactor, Asyn Completion Token, Acceptor-Connector, Strategized Locking, Thread-Safe Interface, Double-Checked Locking Optimization, Active Object, Monitor Object, Half-Sync/Half-Async, Leader/Followers, Thread-Specific Storage ;参见《面向模式的软件架构:并发与联网对象模式》
14. 进程与网络: ps(pstree), top, kill, crontab, ifconfig, ping, telnet, netstat, tcpdump, ssh, scp, wget, curl, Socket , HTTP ; 任务管理器 ;
15. 开发框架: Servlet, Spring, Struts, ibatis , Hibernate, Aop, jQuery , Extjs, Bootstrap, Flex ;
16. 常用组件: 日志 , 实用工具 (字符串, 日期, JSON/XML, HTTP, Email) , 签名校验,集合容器,模板引擎,并发库,图表(Highcharts)等 ;
17. 运行容器: apacheHttp , tomcat, jetty, nginx , Docker,JVM, 浏览器,集群;
18. 中间件: Tair, Zookeeper, Dubbo, 数据库连接池,日志服务, 缓存, 定时任务,可靠消息服务,可靠心跳服务,工作流引擎, 负载均衡 ;
19. 软件架构: MVCDD (Model – View – Controller – Domain – DB) ;流水线,管道与过滤器; 事件驱动; 领域建模;以数据为中心的架构;
20. 测试技术: 质量风险分析,测试数据集, 测试用例,等价类划分, 分支覆盖, 域测试,正交表,决策表,状态转换图,边界测试, 空测试, 异常测试,漫游测试, 依赖Mock;单测;接口测试;集成测试;全链路压测;
21. 代码组织: 头文件, 类文件,包机制,名字空间;
22. 软件工程: 模块化, 封装,面向对象,用户故事,迭代开发,持续集成,单元测试,CodeReview,验收测试,持续交付;
23. 测量监控: 性能测量,time ,系统/接口/业务指标,错误报警;
24. 学习资源: 开源项目,公开课,论文,infoq, stackoverflow , blogs, google , baidu;
25. 经典书籍: 参见《计算机专业及软件开发推荐书籍》
`
项目管理感悟(二)
https://mp.weixin.qq.com/s/PdxthgGuc30v5cSOK10FXg
https://paper.tuisec.win/detail/3bc7e710917f5cd
`
说话的方式简单点
打破思维定式
有法可寻
要支持(要明确你要什么支持,别人才能更好、更有效率的配合你)
价值与收益
`
想要走上巅峰?练好演讲也是必不可少的技能
https://www.cnblogs.com/Zachary-Fan/p/Speech.html
`
为什么需要练好演讲
先跨过心里的障碍
怎么锻炼演讲?
锻炼演讲三部曲——演讲内容
锻炼演讲三部曲——演讲风格
锻炼演讲三部曲——演讲状态
高危情境
结语
`
什么样的简历不会被丢进回收站
https://crossoverjie.top/2018/08/21/skill/resume/
http://cv.ftqq.com/
`
1. 前言
2. 突出优势
2.1. 博客、GitHub
2.2. 项目特色
3. 需要避免
4. 1~3 年
扎实的基础,且应当把简历重心放在学习能力、积极主动性上面
5. 3~5 年
需要突出自己解决问题的能力、把设计产出方案这些技能表现出来
6. 总结
`
软能力那点事,你知多少
https://mp.weixin.qq.com/s/tqP7_C0bQxp2Meh4pGx9dQ
`
软能力是能够让你变得优秀的关键能力。
“十步学习法”, 如下:
第一步:了解全局
第二步:确定范围
第三步:定义目标
第四步:寻找资源
第五步:创建学习计划
第六步:筛选资源
第七步:开始学习,浅尝辄止
第八步:动手操作,边玩边学
第九步:全面学习,学以致用
第十步:乐为人师,融会贯通
`
简历减分项有哪些?
https://www.zhihu.com/question/19727053/answer/497712979
`
1.邮件标题不写清楚个人信息的!!!减分!!
2.邮件正文空着,就发了个附件的!!减分!!!
3.用QQ邮箱,发件人姓名没有改,还是以往的非主流昵称!!!减分!!
4.不管什么经历,不管有没有用都往上加!!减分!!
5.附件简历请带有格式的word,刚好和hr的不匹配!!导致格式错乱!!减分!!
6.提离职的原因时乱喷前任公司,或者是让hr一眼看出你是全找别的原因!!!减分!!
7.放“皂骗”,脸P的跟你完全不一样!!减分
`
不敢跳槽也不敢生二胎,一个中年“码农”的困局
https://mp.weixin.qq.com/s/MF7sFAkumZM4O5Sot8iwkg
教你用认知和人性来做最棒的程序员
https://www.jianshu.com/p/ef383e9e9b52
https://paper.tuisec.win/detail/ebabc1483d5ed9a
https://toutiao.io/posts/zi904h/preview
`
这里我不会过多去梳理认知和人性的概念,后面会用很多例子来说明,保证通俗易懂,只想先提2个概念:
1、对人性的理解能帮助提升认知;
2、狭义的技术是指java,php,android,spring,vue等的掌握和实践,它们只是帮助你提升认知的工具,却绝不等同于认知。
例子1-技术选型
例子2-查线上问题
例子3-技术面试
例子4-最严重的线上故障
例子5-如何看待代码逻辑复用
例子6-开源的意义
关键点:如何提升认知
内心简单。
相信跨界的力量。
相信更高认知人的指引。
持之以恒地实践。
最后总结一下,现在已经不是一个单纯比拼知识量的时代,而是比拼认知高低的时代。作为程序员我们并不特殊,和市场,财务,产品,运营的这些同学一样,核心看的是认知,并不存在谁比谁困难,谁比谁辛苦的这种浅层比较。
而我们学习的那些语言,框架,工具,和我们大学时期学习的微积分,高等物理没有区别,都只是帮助我们不断训练提升认知的实践工具,而不是认知本身。让我们不要再局限于程序员狭义技术的范畴内,把提升自己的认知作为最重要的目标,我们要努力做到“既是程序员,也不是程序员”。
`
我建议你尽早进入大厂的 6 个理由
https://mp.weixin.qq.com/s/p_bkkVTMLZZB7khenVuFZw
`
公平
我们大家都知道一线城市比二线城市更公平,更开放。大厂也是一样的,大厂有更多的包容,即便是最近的寒冬零星的大厂分别裁员,整体大厂的环境还是不错的。
如果是小公司会有更多的参差不齐,各种裙带关系,各种克扣军饷。只要能 8k 招聘你绝对不会给你 9k,只要能通过避税节省开销绝对不会给你多上一分公积金,如果业务不景气马上就会开掉你,如果业务不明朗在试水,会考虑多招聘几个 70% 试用期的人做完就开除来减少成本。当然不是所有的小公司都这样,但是他确实是一个真实存在的现象。
大公司就截然不同,即便是某团要裁员他也会优先内部竞岗,即便是某滴裁员力度很大,但是也觉得会留住自己的主业务和裁员补偿,即便是某东高喝 10% 的裁员,也是按照优胜劣汰来评估,这就是给了你更多的选择,更多的公平。
成长
有人说我在某某公司独立负责 3 个 App 的开发和运维工作,已经是技术负责人了。那么这才是非常严重的问题,因为你现在解决问题基本靠自己了,没有产入。遇到问题你的解决方案便是最优的,那么你就失去了一双可以看到优和美的眼睛,一叶障目。如果是大公司则不然,每天的技术分享、每个项目的技术沉淀、每个中间件的设计思想和身边的激情小伙儿都是你学习的方向。当然有人觉得大公司勾心斗角,压力太大,然而没有竞争的公司人类又该是会多么的堕落呢?
格局
之前看过一篇文章,大概的内容讲的是请不要逃离北上广。是的,一个环境给你的不仅仅是知识,成长空间,更多的是你造就的不同格局。从技术上讲从小公司你可能着眼于实现功能,优化性能?但是大公司更强有力的臂膀让你可以思考团队合作、业务发展、行业现状。因为本身大厂势必是一个领域的先锋,在这里你看到的不仅仅是垂类的精粹,还能看到不同体量、不同层次、不同使命下面的不同的出发点和对于社会的意义。
价值
一个人的成长并不是成长,放到大环境中的成长才能让一个人变得有价值。你在一个小公司可能年薪40w+,也不少,但却不能很好的给自己一个定位。大厂评级就是一个清晰的衡量,每一个级别的待遇和能力在任何一个大厂都是被社会认可的。你一个百度的 T6 去了阿里绝对不会给你 P5,亚马逊的 SDE2 去了阿里也绝对不会给你一个 P6。大厂给你的定位和价值不仅仅是你的待遇,而是社会的认可。
圈子
我觉得 MBA 并不是那么重要,重要的是你攻读 MBA 过程中结识的圈子。近朱者赤近墨者黑,这个道理一直都不会错。你身边如果都是高手,自然你也不会差到哪里去。这个圈子不仅仅逼着你前行,让自己更强大,同时更是自己的一面镜子。大厂的体量有多大你的镜子就有多少扇,扇面多了自然也就多方面检测了自己,时间长了自然而然就“抄袭”了很多优点。你回想一下你工作的方式、职场的技巧哪个是一本书就能解决的?不同的圈子才能编织了你不同的梦。
附加
附加其实是最物质的也是最不重要的。值得一说的是大厂确实给力你很多附加。比如在社区上大家愿意为你买单,在亲戚朋友中有面子,在朋友圈里面自信等等。这些附加并不是一个炫耀的资本,而是一个开放性作文,得等着你自己写……
`
难以置信!996.ICU 世界排名第 7 了!
https://mp.weixin.qq.com/s/B5rjHdYbWZVKgLkaZS1EtA
https://www.zhihu.com/question/317722302
为什么大部分码农做不了软件架构师?
https://mp.weixin.qq.com/s/YkoaYOyYk7xz67ncOYk7gQ
`
小团队一般 10 人左右,其中常常是技术最牛的人做架构师(或TL)。所以,架构师在广大码农中的占比大概平均不到 10%。而架构师也可以分为初级、中级、高级三档,江湖上真正高水平的软件架构师就更少了。
所以,大部分(超过九成的)码农干上许多年,还是做不了架构师,这是什么原因造成的呢?
1、码农分为真的能写代码的,以及自认为能写代码的。
2、真的能写代码的码农又分为自认为写的不错的,以及真的还不错的。
3、真的能写不错代码的码农又分为会钻研会不断优化的,以及安于现状的。
4、会钻研的码农又分为喜欢广度了解新技术蜻蜓点水的,以及深入钻研用到知识的。
5、了解广度的码农又有少部分愿意深入某些技术,喜欢深入研究的又往往缺乏广度知识。
6、极少深度广度都关注的码农又分为为技术而技术和为业务而技术的。
7、纯为技术而技术的码农在国内的软件行业需求太少,且需求的往往不是应用软件领域了。
8、为业务而技术的深度广度都了解的码农,又需要有良好的沟通能力。
9、而沟通好的,又有一部分当PM去了。
10、然后剩下的,又有一部分慢慢脱离实际开发(不再做任何实现)或者开始依靠拿各种中间件搭积木来作为“架构”手段。
11、除去这些,剩下对业务有一定了解,对技术广度上有多种涉猎,深度上对部分技术研究彻底,还有很重要的一点,考虑问题足够细致全面。
12、细致全面善于沟通,技术上深度广度都没问题, 又喜欢这个工作,还会不时做底层实现,从业务和开发两个角度出发,搭出“架构”来是为了开发效率,为了运行效率,为了开发质量,为了业务灵活和运行稳定,为了维护方便等等这样的人,个人认为可以称为“架构师”。
总之,成为架构师,不仅仅是工作上的简单积累,更需要主动接纳工作外的大量知识,同时,对性格上对于非技术能力上也有一定的要求,不仅如此连思维方式都很重要,外加职业发展中又有很多岔路,最后走到架构师这根树枝上的就寥寥可数了。
`
《不止代码》的要点
http://www.giantbranch.cn/2018/07/10/%E3%80%8A%E4%B8%8D%E6%AD%A2%E4%BB%A3%E7%A0%81%E3%80%8B%E7%9A%84%E8%A6%81%E7%82%B9/
http://techforum-img.cn-hangzhou.oss-pub.aliyun-inc.com/1530517140411/Codelife.pdf
`
1. 如何成长为技术大牛
1.1. 误区
拜大牛为师
业务代码一样很牛逼
上班太忙没时间自己学习
1.2. 正确的做法
Do more:熟悉更多业务,熟悉更多代码;熟悉端到端;自学——能够从头开始做,即使没有组件和框架
Do better: 能不能改进
Do exercise: learning、trying、teaching
2. 技术变化那么快,程序员如何做到不被淘汰?
3. 如何在阿里技术面试中脱颖而出?
4. 技术人如何不断成长?
5. 哪些技术好书值得一读再读?这有一份经典书单
-《Effective Software Testing》
-《程序员修炼之道 – 从小工到专家》
-《设计模式之禅》
-《Spoken Language Processing: A Guide to Theory, Algorithm and System Development》
-《机器学习导论》
-《Reinforcement Learning: An Introduction》
-《Programming Rust》
-《Machine Learning: A Probabilistic Perspective》
-《Architecture of a Database System》
6. 阿里技术大牛最爱的“闲书”,你看过多少?
-《从优秀到卓越》
-《为什么精英都是时间控》
-《创新者的窘境》
-《魔鬼经济学》
-《孙子兵法》
-《创造自然》
-《浮生六记》
`
技术人如何通过了解业务,获取晋升机会?
https://mp.weixin.qq.com/s/o4CfgIcPibG_QxrsZ4x7sA
`
1.按时交付,质量一般,大概就是对外包的要求;
2.技术增值,能够很快而且很爽地完成交付,这种情况下需要磨刀或者升级研发工具,会存在研发效能提升的机会,事实上研发大部分的技术沉淀也会在此,就是升级自己的研发流程和工具,提升自己的交付效率和研发体验。我们听过业务方对我们最多的诉求就是希望快速上线,因此研发效能是技术的生命线。
当然研发效能提升也没那么容易,而且很难量化,因为即使是同一个人,不同时间面对的事情也是不一样的,而同一个事情,在不同阶段的策略和细节也不一样,因此即使你做了一些研发效能提升的事情,也很难说到底对交付效率提升了多少,很多情况下会是研发自己觉得爽了,当然研发自己爽这也很重要,因此对于这类研发效能类工具,研发满意度和用户数是比较重要的评价指标;其他类型的,尽量找定量结果,通常是一些可模式化的工作,比如还原一个视觉稿的速度,客户端发版的速度,编写一个 http 接口的速度,上线一个应用的速度。
3.技术增值,除了按时完成交付之外,还能把产出质量做得很好,比如端的体验(流畅度、性能)、稳定性、接口的速度与数据实时性,安全性等,按理说这些是基本的要求,为何要成为技术的增值价值呢?
因为从软件工程的角度来讲,软件质量是一定有问题的,而且与项目复杂度和周期成正比,而且业界也没有标准,说什么规模、特质的业务应该达到什么样的体验,因此这里更多要依赖于技术人员的工匠精神与技术挖掘能力,而且软件质量看起来对业务没有直接驱动作用,但是在竞争对手足够多而且用户更换成本又低的情况下,软件质量的好坏对用户留存有一定的影响。这是定性,当然大部分研发的困境也就在此,就是如何量化体验提升对用户转换和留存的价值?
如果无法量化,那么在软件体验上应该投入多少呢?ROI 如何衡量呢?当然有一点可以肯定的是,你的质量要做到一定范围的领先,超过同类产品,那么你的增值价值就更能体现,对于技术本身就是业务的公司如云计算公司,技术产品本身的质量对业务的价值则非常明显了。
4.仍然是技术增值,但是这里的技术具有鲜明的业务场景特色,比如 SEO 技术、B 类的大额支付、A 站的弹幕技术、广告的创意技术、店铺装修技术,这里所有的技术沉淀都是围绕业务来的,因此我把它画在中间,属于又有技术沉淀,又能带来业务结果的技术。
5.业务增值,就是做了一些业务方原以为技术不能干、干不好的那些能够直接促进业务发展的事情,这就是所谓的技术驱动业务。当然这里的抓手还是技术,但是,与前面说的区别是,这里的出发点或者说结果,是直接能对业务产生有利增长的,前面很多事情提升的都是一些技术指标,比如交付周期、crash 率、页面或接口性能等等。
技术驱动业务也是大部分工程开发最困惑的一点,也是对业务型开发影响最大的点,在前面的阶段,研发做的事情都是解决技术的事情,这个阶段,你需要去发掘业务痛点或机会,然后用技术力量去改善,当然这里的技术力量可以是有很大厚度的。比如算法与机器学习,也可以是不需要技术厚度,但是需要产品设计和链接的,也可以是老技术,也可以是新技术。总的来说,它更看重业务价值,而不是技术厚度,哪怕是简单的技术解决了业务问题,也是值得喝彩,这就是我经常说的,站在业务视角,技术价值能够被放大。
6.直接参与业务决策的阶段,在云计算公司、技术产品型公司或者业务模式简单的公司,技术参与决策的机会更大,部分高管本身也会是技术出身,也可能是技术高管直接担任业务负责人,在腰部,也会有一些技术主管直接带运营和产品。
但是大部分情况并不是这样,尤其是商业模式复杂,生态复杂的公司,产品、运营和技术,三位一体,角色分明,即使技术可以在一些产品和业务上提供建议或者分析依据,但通常不会成为业务的主要决策力量,是因为整体上,技术对商业的理解比较碎片,或者仅仅是想法而已。
运营通常在某一行业深耕许久,接触到的情况,实践过的东西非外行能够快速追赶,当然业务和技术对行业、对市场大局的洞察,以及做事情需要的优秀特质,这一点,并不存在很大的壁垒。
个人认为,技术是否要做到这一阶段,取决于个人的职业发展规划,属于做了需要奖励但不必作为基本要求,需要要求的是,对业务的理解尽量与业务高度接轨,对业务要有自己的洞察,清楚业务的痛点和难度,理解背后战略意义,做到这一点,可以做到上一个阶段说的很多事情,就是能够做更多技术驱动业务的事情,因为你对业务的理解有了,才知道业务更需要什么,也会有使命感去推进这些事情。
上述几个阶段,层层递进,对业务的影响不断提升,不管是间接还是直接地做效能、体验、质量、稳定,还是做直接促进业务增值的事情,最终都是要促进业务发展的,只是方式不一样,影响程度不一样,作为技术的职责,就是要想办法让业务能够更好,能让技术的价值有更大的体现。
那么不理解业务是不是就无法做驱动业务的事情,或者说就不做那些驱动业务或者参与业务决策的事情,只做那些技术的基本要素的事情——质量、稳定、体验、性能,就行了?事实上也是可以的,我看到很多优秀的同学发展得不错,他们也没怎么去看业务的事情,也有一些人对业务理解并不是那么好,但是能抓住一些小点,做了一些改善局部业务的事情,也取得了很好的结果。
这是因为我们讲究的是多元化人才,人是阿里的最大财富,每个人的特质不一样,有的人善于钻研技术,有的人善于做串联协调,有的人具有产品 sense,他们都是我们需要的人才,业务理解和业务结果不是唯一衡量研发或人才的指标。
但是有一点可以肯定的是,理解业务有助于你做技术决策去驱动业务,有助于你对资源的优先级做判断,而且还有助于提升你的研发效能,是不是听错了,理解业务有助于提升研发效能?我们一般讲研发效能都是依赖一些技术或工具手段来改善的,理解业务怎么能促进研发效能,大部分持这一观点的人,都忽视了人的精神因素,一个对业务理解的人,一个认可业务的人,他做事情的时候会有很大的使命感,业务有一定成绩会有很大成就感,这都能让他又好又快完成任务的交付,因此也是研发效能的提升,这就是我们的老板经常和我们讲业务策略,或者搞业务动员大会的原因;反之一个对业务背后的 why 不理解,没有使命感的人,如何要求他做出高质高效的交付呢?更不用说增值价值了。
`
干货 | 测试工程师职业发展漫谈
https://mp.weixin.qq.com/s/i8r2OL5HZ5iDT4bTzzBcUA
`
1. 测试行业发展背景
2. 测试行业发展总结
3. 测试工程师职业发展关键因素
4. 当下测试行业的发展
5. 迎接测试行业的变化
6. 测试职业发展建议
职业上升的关键因素
· 技术能力决定了你的薪资增长加速度。在月薪 1-3w 中间。技术能力助力会较多。
· 管理能力决定了你的薪资阶层。月薪 2-5w 是管理层基本薪资。后面的要靠公司的股票和奖金。
· 业务能力决定了你的地位和长期回报。对业务的把控决定你在团队的影响力和重视度,也关联期权和股票的数量。
· 运气和选择决定了你的人生轨迹。选择的好就能获得最大回报。
· 股票或者期权回报是超过工资的。选择一家靠谱的可持久的公司很重要。
一个合格的优秀的测试工程师,应该是能做到如下几点:
· 懂业务。能扎实的保证业务质量。不排斥用脑力和体力去保证质量。
· 懂技术。能够做深入的自动化或者分析工作。能够利用工具和技术解决问题。
· 懂架构。能够跟研发和产品进行正常的交流,保证产品需求和实现都没问题。能带团队走上更好的发展。
关于测试技术路线,我的建议是:
· 多读书。能系统的了解很多东西。
· 多看别人的代码。他山之石可以攻玉。别人的开源代码里面藏着很多的经验和智慧。要善于学习。
· 早期多造轮子。这是一种不断演习的强化锻炼。可以强化自己的技能。
· 多承担开源维护工作。尽可能的参与开源社区的维护工作。跟这些人的协作你能学习到很多有用的实践知识。能够强化自己的沟通协调和架构设计的能力。
· 多泡论坛交流。闭门造车,敝帚自珍,固步自封都是没什么成长的。跟这些保守的人交流你也学不到太多。
· 打怪升级。从部门里一件件的改进做起,实现把技术转化为生产力。
`
https://testerhome.com/topics/6911
干货分享 | 一位软件工程师的7年总结
https://mp.weixin.qq.com/s/5yqiQ01fEeqr3VXrHEu2ag
`
「学历代表过去、能力代表现在、学习力代表未来。」
「重要的道理明白太晚将抱憾终生!」
13、本文的总结与反思:
A:不要去做技术上的高手,除非你的目标如此。虽然本文是关于提高软件开发知识的建议,做技术的高手是我一向都不赞同的。你可以提高自己的专业知识,但能胜任工作即止。
B:提高软件知识和技术只是问题的表面,本质是要提高自己认识问题、分析问题、解决问题的思想高度。软件专业知识的很多方法和原理,可以很容易地延伸、应用到生活的其它方面。
C:在能胜任工作的基础上,立即去涉猎其它领域的专业知识,丰富自己的知识体系、提高自己的综合素质,尤其是那些目标不在技术方面的朋友。
`
一个老程序员的30年生涯回顾(译文)
https://mp.weixin.qq.com/s/j8lW24TeBp4TQxgbjoAh8g
`
回顾我的30年程序员生涯,软件行业发生了翻天覆地的变化。
现在的软件业有更多时尚的行话和术语,比如用户故事、技术债务、敏捷、重构、迭代、里程碑等等。在我看来,所谓迭代,就是说这段时间你会过度劳累,没有其他含义。
奇怪的是,他们用各种办法监督程序员,但是招聘的时候,职位要求依然写着,需要具有独立工作精神、高度主动性的人。这真是讽刺。
现在的软件业还流行开放办公室,这意味着完全不可能集中精力。你的工作被持续不断地打断,没法关门保持沉默和集中注意力。如果你戴着耳机,就意味着你的团队合作精神不够。
现在的软件业提倡测试驱动开发这种荒谬方法。我在许多地方都读到,在软件开发中,没有什么比单元测试更重要了,甚至比交付成果的本身还要重要。单元测试是设计,是定义API的地方。测试覆盖率不到100%,就是存在欠缺,100%覆盖率是程序员的荣誉, 开发人员应该负责测试他们的产品。我们不再需要黑匣子测试流程,也不需要测试工程师。
我认为,这些态度充满了狂热主义。每个人都有盲点,总是会存在忽略编写测试的案例与忽略编写代码的案例。
我喜欢编程,喜欢解决问题和开发功能,从小开始直到现在都是如此。
以前,我选择服从那些流行的做法,但是现在不会了。我不会在开放式办公室工作,不会持续一个星期听所谓的专业术语,不会将各种新词用来描述旧事物,不会结对编程,不会参加频繁的会议,不会在意对团队协作精神的要求,也不会嘲笑那些独自工作的人。
我喜欢服务器端开发,未来希望还可以做这方面的工作。同时,我正在转向技术写作,学习远程工作所需的新技能。
我喜欢现在这种一点不疯狂的环境。
`
What Happened to Software Development?
https://hackernoon.com/what-happened-to-software-development-j92032w9
写给技术人的人性课
https://mp.weixin.qq.com/s/fEpZlkpSSqASCupqAEHHWg
`
1. 做事,不要离人的直觉太远
很多东西要能用起来发挥作用,就不能离人的直觉太远。
2. 霸道总裁其实不完全霸道
3. 技术思维成就不了区块链产业
技术永远只是一个因素, 而成事,需要很多因素。
做产品的人都知道有句话叫“合理的部分是理性,不合理的部分是人性”, 嗯, 这个世界不是完全靠理性就能理解的,遇到不理性的事情,可以换到人性的视角再看看。
技术人关注事物和原理比较多,关注人比较少,但人终究会成长,一旦你做了技术管理者或者领导者,那么就得多关注人了。
希望作为一名技术人,大家可以“少点儿技术思维,多点儿人性光辉”。
尤其是技术领导者和管理者们,天天讲“以人为本”,其实又有几个人真的认同并去践行呢?
`
软技能-代码之外的生存指南
https://www.xinke.org.cn/books/%E8%BD%AF%E6%8A%80%E8%83%BD-%E4%BB%A3%E7%A0%81%E4%B9%8B%E5%A4%96%E7%9A%84%E7%94%9F%E5%AD%98%E6%8C%87%E5%8D%97.pdf
《软技能:代码之外的生存指南》
https://zr9558.com/2020/05/10/softskill/
《软技能——代码之外的生存指南》
https://zhuanlan.zhihu.com/p/21926306
软件工程师除了写代码,还能做什么工作?
https://www.infoq.cn/article/MwqrL2yeD6arBgLrMb3F?utm_source=rss&utm_medium=article
`
软件工程是一个令人兴奋的领域,但它并不适合所有人。
很多学过、做过软件开发的人不想再从事软件开发工作,这篇文章将向软件开发人员介绍许多可行的职业道路。我会解释每一份工作是做什么的,你可以怎样跨入这一职业的大门,你已经掌握的开发技能和知识在其中能够发挥什么优势,以及这些工作的长期前景。
# 面向客户的岗位
1. 开发者关系,宣传,或传道
2. 开发者营销
3. 销售工程师
4. 技术招聘
# 面向产品的岗位
5. 质量保证或测试工程师
6. 业务分析师
7. 项目经理
8. Scrum Master
9. 产品经理
10. 设计师
11. 无代码或低代码开发人员
# 支持类角色
12. 系统管理员或 DevOps 工程师
13. 数据库管理员
14. 网站可靠性工程师
15. 技术或客户支持
# 教学与写作类角色
16. 技术写手
17. 教师
18. 培训师
# 分析类角色
19. 数据科学家或工程师
20. 安全分析师
21. 研发
# 独立的、灵活的角色
22. 自由职业者或顾问
23. 创业公司的创始人
# 结语
软件工程是一个令人兴奋的领域,但它并不适合所有人。即使你离开这一领域,决定做些别的事情,你已经掌握的技能也不会白白浪费。
许多人对于在软件开发领域之外找工作充满顾虑,而我鼓励你走自己的路。在务实(赚足够的钱来生活)和你的兴趣之间找到平衡,希望你能找到一条让工作感觉不像是“工作”的职业道路。
`
https://www.freecodecamp.org/news/alternative-career-paths/
程序员的酒后真言
http://www.ruanyifeng.com/blog/2021/06/drunk-post-of-a-programmer.html
`
(1)职业发展的最好方法是换公司。
(2)技术栈不重要。技术领域有大约 10-20 条核心原则,重要的是这些原则,技术栈只是落实它们的方法。你如果不熟悉某个技术栈,不需要过度担心。
(3)工作和人际关系是两回事。有一些公司,我交到了好朋友,但是工作得并不开心;另一些公司,我没有与任何同事建立友谊,但是工作得很开心。
(4)我总是对经理实话实说。怕什么?他开除我?我会在两周内找到一份新工作。
(5)如果一家公司的工程师超过 100 人,它的期权可能在未来十年内变得很有价值。对于工程师人数很少的公司,期权一般都是毫无价值。
(6)好的代码是初级工程师可以理解的代码。伟大的代码可以被第一年的 CS 专业的新生理解。
(7)作为一名工程师,最被低估的技能是记录。说真的,如果有人可以教我怎么写文档,我会付钱,也许是 1000 美元。
(8)网上的口水战,几乎都无关紧要,别去参与。
(9)如果我发现自己是公司里面最厉害的工程师,那就该离开了。
(10)我们应该雇佣更多的实习生,他们很棒。那些精力充沛的小家伙用他们的想法乱搞。如果他们公开质疑或批评某事,那就更好了。我喜欢实习生。
(11)技术栈很重要。如果你使用 Python 或 C++ 语言,就会忍不住想做一些非常不同的事情。因为某些工具确实擅长某些工作。
(12)如果你不确定自己想做什么东西,请使用 Java。这是一种糟糕的编程语言,但几乎无所不能。
(13)对于初学者来说,最赚钱的编程语言是 SQL,干翻所有其他语言。你只了解 SQL 而不会做其他事情,照样赚钱。人力资源专家的年薪?也许5万美元。懂 SQL 的人力资源专家?9万美元。
(14)测试很重要,但 TDD (测试驱动的开发)几乎变成了一个邪教。
(15) 政府单位很轻松,但并不像人们说的那样好。对于职业生涯早期到中期的工程师,12 万美元的年薪 + 各种福利 + 养老金听起来不错,但是你将被禁锢在深奥的专用工具里面,离开政府单位以后,这些知识就没用了。我非常尊重政府工作人员,但说真的,这些地方的工程师,年龄中位数在 50 岁以上是有原因的。
(16)再倒一杯酒。
(17)大多数头衔都无关紧要,随便什么公司都可以有首席工程师。
(18)手腕和背部的健康问题可不是开玩笑的,好的设备值得花钱。
(19)当一个软件工程师,最好的事情是什么?你可以结识很多想法相同的人,大家互相交流,不一定有相同的兴趣,但是对方会用跟你相同的方式思考问题,这很酷。
(20)有些技术太流行,我不得不用它。我心里就会很讨厌这种技术,但会把它推荐给客户,比如我恨 Jenkins,但把它推荐给新客户,我不觉得做错了。
(21)成为一名优秀的工程师意味着了解最佳实践,成为高级工程师意味着知道何时打破最佳实践。
(22)发生事故时,如果周围的人试图将责任归咎于外部错误或底层服务中断,那么是时候离开这家公司,继续前进了。
(23)我遇到的最好的领导,同意我的一部分观点,同时耐心跟我解释,为什么不同意我的另一部分观点。我正在努力成为像他们一样的人。
(24)算法和数据结构确实重要,但不应该无限夸大,尤其是面试的时候。我没见过药剂师面试时,还要测试有机化学的细节。这个行业的面试过程有时候很糟糕。
(25)做自己喜欢的事情并不重要,不要让我做讨厌的事情更重要。
(26)越接近产品,就越接近推动收入增长。无论工作的技术性如何,只要它接近产品,我都感到越有价值。
(27)即使我平时用 Windows 工作,Linux 也很重要。为什么?因为服务器是 Linux 系统,你最终在 Linux 系统上工作。
(28)人死了以后,你想让代码成为你的遗产吗?如果是那样,就花很多时间在代码上面吧,因为那是你的遗产。但是,如果你像我一样,更看重与家人、朋友和生活中其他人相处的时光,而不是写的代码,那就别对它太在意。
(29)我挣的钱还不错,对此心存感激,但还是需要省钱。
(30)糟糕,我没酒了。
(完)
`
开源浪潮下程序员的职业规划和成长
https://www.upyun.com/opentalk/463.html
`
首先选一个自己最感兴趣的方向,提升自己的技术深度,这样才能持续地提升自己的核心竞争力。技术深度就跟海面上的冰山差不多,海面上你可以看到的只有那么一小点,但在海面之下还有很多很多。
技术的深度是无限的,当你把技术深度提升到一定程度之后,你会发现好像我不知道的东西越来越多,这是一个技术人常常会有的感觉。如果你很长时间没有这种感觉了,认为好像所有的东西我都知道,所有面临的问题我都能解决。这个情况我认为,你可能需要去参与一些开源项目,或者出去跟别人交流一下,或者换一份工作,开阔一下自己的眼界。当你的技术深度到了一定程度,例如能 cover 住面临的绝大多数问题时,我建议你在这个时候尽量提升一下自己的技术广度。
最后我们来聊聊程序员的副业,这个事情也许大家会比较感兴趣一些。在谈到副业的时候,你要先评估一下自己能做什么,量力而行在任何情况下都是比较正确的。承认自己在某些方面不擅长,或者某些方面不太懂这个事情其实没有什么的,如果强行做不擅长的事情,可能得到的结果并不太好。
很多人可能会问我能做什么?我认为其实还是有很多的事情可以做,具体肯定看个人的选择。做副业能为自己带来最直观的,大家可能认为是金钱收益。但实际上如果你把耗费的时间精力折算一下,可能会发现这个事情收益很少。陪陪家人、跟爱人约个会,出去玩一趟,可能能收获的更多。现在整体来说就是两种选择,一是用时间换钱,另一种是用钱换时间。很多事情如果年轻的时候错过了还是会很遗憾的。所以还是要建议大家根据自己的情况衡量一下。
`
6年团队Leader: 程序员的8种软技能
https://mp.weixin.qq.com/s/Nb_r35ppnEVoGhQPdD_ajA
`
我在带团队的六年中发现,程序员们在职场都有一个共同的困扰:“写代码好像都没什么问题了,日常工作基本上都是应付业务需求做开发,好像找不到其它更大的附加价值了,应该找一些什么样的发力点才能让自己的价值更突出呢” ?
这就是典型的硬技能“看似”没有什么问题了,瓶颈卡在了软技能上,所以想聊聊程序员的软技能。注意:本文讲的软技能 ≠ 心灵鸡汤,都是实实在在要学的技能。结合自己的个人心得与梳理,与大家做个分享,一起学习。
# 什么是软技能
本文提及的软技能,是相对于“硬技能”而言的。对于程序员来说,硬技能就是计算机专业技术能力,软技能则是专业之外的所有技能,包括职业规划能力、处理人际关系能力、专业态度、做事的方式和方法等。
# 程序员最重要的八种软技能
## 人际交往能力
不要只是埋头写代码
主动与人打交道
别独自用餐
换位思考
## 结构化思维能力
概念不能多
有逻辑关系
黄金圈法则(What、How、Why)
## 沟通能力
上下/平级之间的沟通(向上沟通要有胆量/平行沟通要有肺腑/向下沟通要有心肝)
沟通中的非暴力
沟通中的结构化
说话的方式简单点
改掉那些不好的口头禅
## 写作能力
排版
结构化的写作
周报/月报的表达
## 自我营销能力
为什么要自我营销?
影响力的两种分类(职权影响力与非职权影响力)
提升影响力的几种方式
## 演讲能力
一场好的演讲通常由以下几部分组成:
1. 提前了解听众的诉求:针对面向的群体类型,以及听众的诉求来设计这一次的演讲
2. 好的开场是成功的一半:开场可以来一些小互动以及调研等,把听众的思绪带进到分享主题里来
3. 好的内容结构:参考「结构化思维」的内容
4. PPT 只是配角:把结构内容呈现到 PPT 上,切记不要把一个好的演讲全部归功到 PPT 上
5. 把控好整体节奏:思考如何让听众跟着你的思路走,一旦跟不上,就算不上好的演讲
6. 趣味性的互动:合适的情况下可以来一些互动,避免单向输入带来的乏味
7. 肢体语言:好的肢体语言可以让演讲更生动
8. 声音控制:流利的表达、抑扬顿挫的表达会让人更能接受你的信息
9. 收尾时强调重点:跟写文章的中心思想类似,把听众的思绪拉倒中心思想上来
有一个演讲法则称为“10-20-30”法则,具体来说就是幻灯片不要超过 10 张、演讲时间不要超过 20 分钟、字体大小不要小于 30 号。
## 协同/领导能力
在工作中我们基本上都会遇到团队内部协同、跨团队协同以及跨部门协同的情况,特别是到了一定的层级,需要做项目管理、团队管理之后,协同与领导能力更为重要,我们也称为「借人成事」的能力。这里我们要学习很多协同领导方面的相关能力,比如:
* 项目管理(预期/过程/质量/风险):项目管理是个专业活儿,每个程序员必学
* 开好会:需要协同的角色越多,开会的效率就变得尤其重要,在大厂有多少程序员的时间是花在了开会上,这部分建议参考集团内部的《高效会议指南》
* 复好盘:柳传志在《我的复盘方法论》中说到:在这些年管理工作和自我成长中,复盘是最令我受益的工具之一,可见复盘对人成长的重要性,这里推荐一本书叫做 《复盘+:把经验转化为能力》
* 做到事事有回应、件件有着落、凡事有交代:做一个靠谱的职场人,三个最重要的要素
* 诚信:说到做到,提升信任感
* 保持正能量:谣言与八卦在职场中常常被人津津乐道,但也会带来负面影响
* 严于律己,宽以待人:领导者必备
## 抗压能力
这里可以给一些提升抗压能力的建议,也是我个人在工作之外会经常保持的习惯:
* 培养兴趣爱好:把兴趣爱好作为自己的灵魂伴侣
* 有三五好友可以交流与倾诉:遇到压力和挫折的时候,身边如果有人能够相互鼓励,压力会小很多
* 保证充足的睡眠:很多时候,我们遇到压力和挫折的时候会失眠,但我们尽量在挫折不出现的时候就保证充足的睡眠的习惯,压力来的时候不至于影响太大,压力越大越无法入睡,会进入一个恶性循环(这里没有理论做支撑,自己的感受)
* 保持运动习惯:保持对自己兴趣的运动习惯,和三五好友打球,充足睡眠自然来
`