Tuesday, February 2, 2016

Essential Skills for Software Architects



Chapter 1. Gracious Behavior
• Choosing relationships over correctness
• Learning to delegate
• Realizing that life is reflexive
• Acting as though words have a lasting impact
• Dealing with others with integrity and honesty without bluntness
• Confronting issues in a timely manner
• Providing a professional service
• Forgiving and forgetting past offenses
For technically inclined individuals, working toward becoming a gracious professional not only makes life as a whole more enjoyable, but also opens new opportunities for advancement and growth.
Chapter 2. Communication
• Listen first, talk later.
• Be there.
by sitting up straight, putting my feet directly under my seat, taking notes, and actively looking at the person who is speaking, I will naturally be engaged in what is going on in the meeting and project a positive image of active engagement both verbally and nonverbally.
• Be positive.
• Apologize early.
• Avoid the feeding frenzy.
• Communication strategies:
Prefer yes over no.
• Reserve your no’s for special occasions.
• Avoid the urge to get defensive.
• Hear suggestions as collaborative improvements.
• Learn others’ interaction styles, including your own.
• Be prepared to think on your feet.
• Communicating with executives:
• Executives thrive on trust, loyalty, and consistency.
• Prefer clarity over completeness.
• Avoid surprising executives.
Chapter 3. Negotiation
• Avoid organizational surprises.
• Don’t waver on decisions.
• Delegate authority, not accountability.
• Seek help when you are in over your head.
• Don’t cover things up.
• Do the right thing even when it is hard.
• Negotiation strategies:
• Listen to your gut.
• Manage to yes.
• Don’t find the differences.
• Focus on finding common ground.
• If general agreement is not possible, make everyone slightly unhappy.
• Use negotiation as a means of improvement.
• Negotiation prep work:
• Know what is negotiable.
• Know how to surf the organization.
• Seek a collaborative context for key decisions.
• Learn the culture of those involved in the decision.
• Let others understand your thinking.
• Negotiation wrap-up:
• Be prepared to provide an ongoing defense of the decision.
• Maintain an architecture decision log.
• Realize that sometimes you win and sometimes you lose.
• Learn from delegating.
Chapter 4. Leadership
• Establish trust.
• Establish a common vision.
• Establish strategic partnerships.
• Eat your own dog food.
• Perceive risks, assessing their impact and acting to minimize them.
• Deal with risk appropriately.
• Leadership strategies:
• Utilize Occam’s Razor.
• Present information in a visual format.
• Lead by keeping things focused.
• Look for opportunities to leverage existing resources.
• Sell the vision based on the context of the audience.
• Focus executives on strategy, not conflict resolution.
• Leadership timing:
• Capitalize on organizational momentum.
• Learn when to step in and rescue a project.
Know when to stand alone.
• Know when to ask for forgiveness versus when to ask for permission.
• Leading others:
• Engage others through influence.
• Allow others to contribute.
• Support others in taking ownership.
• Deal with conflict.
4. Restate your understanding of the problem in your own words as succinctly as possible.
5. Address the issue in a manner that clearly demonstrates that you understand the matter.
• Understanding what politics is.
• Understanding the nature of the political marketplace.
• Political context:
• Align your goals with strategic company directions.
• Understand the culture of where you are at.
• Address the concerns of others early on.
• Believe in what you are selling.
• Realize that some things are not your problem.
• Recognize that relationships matter.
• Political principles:
• Take the high road.
• Avoid compromising your values.
• Compete graciously.
• Operate with transparency.
• Be who you are.
• Help others and do not expect anything in return.
• Realize that life is reflexive.
• Political strategies:
• Help others achieve their objectives.
• Learn to enjoy the journey and not just the destination.
• Strive for excellence in the areas that matter.
• Be willing to compromise on lower-priority goals.
• Don’t be offended by poor behavior.
• Deal with interpersonal issues privately.
• Political timing:
• Execute things in a timely fashion.
• Realize that failure today does not preclude success tomorrow.
• Realize that you will not always win.
• Get in the game.
• Realizing that architects live in a glass house.
• Self-transparency:
• Be yourself.
• Acknowledge your weaknesses.
• Acknowledge your strengths and interests.
• Beat the crowd to your boss.
• Project transparency:
• Let executives see all the cards.
• Realize that architects can bring transparency and clarity to many areas.
• Bring discovery to business acquisition.
• Relational transparency:
• Give credit to others where credit is due.
• Be consistent in what you say.
• Learn to apologize.
• Learn to hear before you react.
• Allow others to be transparent with you.
• Realizing that architects live in a glass house.
• Self-transparency:
• Be yourself.
PASSION
• Understanding what passion is.
• Discovering passion:
• Understand how to find passion.
• Combine persistence and passion.
• Choose passion over position.
• Rekindling of your passion is occasionally required.
• Using passion as a guide:
• Watch for the quiet voice of opportunity.
• Learn to follow your instincts.
• Choose areas that you are passionate about.
• Change your environment or circumstance.
• Realize that a lack of passion will limit your career path.
• Do the hard things well, and give them everything you have.
• Supply your drive by using passion as the fuel.
• Protecting passion:
• Ignore the critics.
• Avoid distractions.
• Pursuing your passions beginning today.
• Learning to jump in and enjoy the ride.
• Context 1: Self-awareness
• Be where you are.
• Be aware of your weaknesses.
• There’s more to life than work.
• Don’t fall prey to the myth of multitasking efficiency.
• Keep the adrenaline in check: slow down.
• Context 2: Architectural awareness
• Bring the -ilities.
• Seek proper coupling and cohesion.
• Constantly build your context.
• Context 3: Elephant awareness
• What is not being said?
• Ask yourself and others the hard questions; if you don’t, those questions will just get asked later.
• Deliver the bad news early.
• Ask others what they would do if they owned the company.
• Context 4: Decision awareness
• Do they already have the problem solved?
• Do they know which alternatives are possible?
• Have others already weighed in on the decision?
• Be a neutral third party, even when it is to your disadvantage.
• Context 5: Conversational awareness
• Avoid meetings and email; prefer face-to-face conversations.
• Bring others in if needed (now).
• Context 6: Audience awareness
• Know your audience.
• Be appropriate.
• Sometimes play “good cop, bad cop.”
• Supply background information.
• Context 7: Project awareness
• Be conscious of the budgets you need to operate within.
• Be pragmatic in your approach.
• Learn to surf the avalanche.
• Seek dedicated resources.


• Know the assumptions you are making.

http://www.chawenti.com/articles/14877.html
对自己:
1.可以完全开放自己,暴露所有兴趣、优点、缺点,不要压抑自己本来的样子,以免被人发现后会觉得你不信任别人。
2.不要视图在任何方面都成为专家。
3.出了问题自己早承认,别让别人捅出来。
4.考虑学工商管理课程,比如MBA,了解财务、销售、营销部门,了解公司的历史和收入模型。
5.掌握某领域知识,学会建立领域模型。
6.学会如何给非技术人员讲述技术。
7.记录自己所有的点子,别担心别人说你是疯子,要坚持自己的想法!
8.和真正掌握决策权的人搞好关系,了解真正的驱动力。
9.玩政治游戏最好的方法就是不玩。尊敬、公正、不利用人、交谈正直、说到做到就可以了。花时间了解不同办公室的文化可以避免政治地雷。
10.致力于和所有人发展积极关系,便于合作。
11.不要失态!
12.如果真有人和你对着干,私下谈谈。
13.学会将目前思考的内容“压栈”,判断突然来到的事情的优先级,并快速“出栈”。
沟通:
1.说话的内容要连贯一致、实事求是,表现得忠诚。
2.出现问题时要诚恳地给出问题事实,而不是让人觉得惊讶。
3.谨慎作答,一旦作答就要坚持它、兑现承诺,不要轻易修改做出的决定。
4.与客户沟通时,留意那些系统应该据此构建的话语。
5.学会察言观色,了解对方需要什么,讨论的过程当中可以让他回去等一会,自己想一些解决方案,试图一一列出优劣,让对方点头,而不要盲目做别人的拐杖。
6.当自己被别人打断时,如果不是很紧急,约对方稍后再谈。
7.了解对方的背景?他想知道什么?自己的决定对周围会产生什么影响?
8.注意观察学习上司的沟通风格。
9.在别人试图搞清楚你的问题时不要保持沉默。
对人:
1.人不是软件,不要做刻薄、爱挑人错的人,不要一味纠正,否则会留下不好的印象,而是要更注重人际关系。
2.要鼓励别人提出自己的想法,而不是一味反对,否则别人会对你的想法产生敬畏,你会得到更少其他人的想法。
3.忘掉别人对你的冒犯,也不要当众指责人。
4.要中性、务实地指出别人的问题,而不是抱怨。
5.温柔地应付“看似恶意”的说话态度。在“挫败”下也要有风度。
6.不要虚张声势,不要说“我早告诉过你要这样”之类的话。
7.领导力是建立在信任、认知、安全、清晰度的原则上的,领导扮演的是一起前行的角色而不是宗教领袖。
8.告诉别人要如何做,这么做的好处和风险、未来会面对的问题是什么,激励手下自己决定如何做这件事,而自己放权。当别人遇到困难,就要尽量帮人越过障碍,当然不一定要马上介入解决,可以让别人撞墙来获取经验。
9.学会让别人去做决定,将自己的部分工作分给别人,并根据别人的成果审视自己。
对事:
1.不会就说出不会,免得出了问题失去信任,承认不擅长的方面,并补足到一定程度。
2.前期发现小问题一定要尽早提出。有担忧一定要说。
3.有问题先给出解决方案,而不是留疑虑给人。
4.做评审时不要过分批评,不要针对人。
5.抑制想保护自己的冲动,不要逃避责任。
6.当发现自己没有能力/权利的时候要立刻请求帮助。
7.在更高层次的决策上,开销、时间、质量之间要平衡,有时候不得不牺牲质量,采用“足够好”的技术方案而不是最好的。
8.在团队间谈判时,要找到目标和成功的定义,找到共同利益,必要的地方做出对自我利益的牺牲保全大局。
9.要预测问题带来的风险,根据会不会影响上级,判断要不要马上去干预。处理风险要适当。当问题无法解决/难以挽救时,想清楚有什么影响,有无替代方案,如何寻求帮助?
10.让人分神的琐事,根据紧急性判断要不要处理,做事不要跑题。
11.不该做出比实际需要更多的假设。从各种建议当中抽取最有用的。
12.尽量利用已有资源(比如,其他部门做过类似的),充分咨询别人。当某项新技术能提供清晰可证明的好处时才采用它。
13.谨慎使用新技术。问“你为什么要用这个新技术?”想“有什么地方用到了吗?”考虑新技术的学习维护成本,别人是否已经权衡评价过这个技术?有无替代方案?
14.在推销自己的想法时,指出如何与公司商业目标保持一致。尽量让自己的目标和公司的目标重合。先考虑如何为公司创造最大价值,之后再雕琢自己的作品。
15.慢下决策,下决策时要做记录。透明的做事(如书面化),能支持决策的完整性,减少不愉快的政治事件。
16.尽早处理别人的问题,但是要知道哪些是可以放下的。
17.以积极的态度面对一些不得不妥协的决策。
18.尽量面对面谈问题而不要用邮件等方式,如果有紧急重要的事情,立即和别人加入开个小会。做决策时将所有的东西摆在台面,不要害怕问人,为公司最大利益考虑。
19.有时候需要慢下来,考虑你的答复对全局的影响。要警惕决策时哪些事情没有提到,防止后患。有难题要问。早些提出坏消息,及早解决。
20.对于重构等举动,要考虑实用性。
21.在引入新颖的点子时不要打破公司原有的计划
第一部分 关系技能修炼
第1章 文雅的举止 3
1.1 别人怎样评价你 3
1.2 技术之天花板 4
1.3 变得文雅、专业的途径 6
1.3.1 注重关系甚于争执孰对孰错 6
1.3.2 学会委派 8
1.3.3 生活是有反作用的 9
1.3.4 有效沟通之生与死 11
1.3.5 要正直诚实而不是率直 13
1.3.6 不要掩盖问题—它们以后还会冒出来的 14
1.3.7 提供专业的服务 16
1.3.8 忘掉以前的冒犯 17
1.4 小结 19
1.5 参考资料 19
第2章 沟通 22
2.1 沟通原则 23
2.1.1 先听后说 24
2.1.2 专心致志 24
2.1.3 正面思考 25
2.1.4 尽早道歉 25
2.1.5 不要在缺陷上招致恼羞成怒 26
2.2 沟通策略 27
2.2.1 多说“是”,少说“不是” 27
2.2.2 在销售过程中建立起信任关系 28
2.2.3 特殊场合才说“不” 29
2.2.4 抑制想自卫的冲动 31
2.2.5 倾听建议来改善合作 31
2.2.6 了解别人和自己的沟通需求 32
2.2.7 才思敏捷 34
2.3 与执行官沟通 35
2.3.1 执行官需要信任、忠诚和连贯性 35
2.3.2 清晰性甚于完整性 36
2.3.3 不要让执行官感到惊讶 37
2.4 小结 38
2.5 参考资料 39
第3章 协商 41
3.1 协商原则 42
3.1.1 不要让人惊讶 42
3.1.2 不要模棱两可 43
3.1.3 委派权威而不是义务 43
3.1.4 有困难时寻求帮助 44
3.1.5 不要掩盖问题 44
3.1.6 即使很难,也要坚持做正确的事 45
3.2 协商策略 45
3.2.1 倾听你的内心呼唤 45
3.2.2 设法同意 45
3.2.3 不要找分歧 47
3.2.4 寻找共同点 47
3.2.5 如果无法达到一致,就让所有人稍微不满吧 48
3.2.6 将协商作为一种改进措施 49
3.3 协商前的工作 49
3.3.1 知道哪些是可协商的 49
3.3.2 了解如何在单位里游刃有余 51
3.3.3 关键决定上寻求合作氛围 52
3.3.4 学习文化 53
3.3.5 让别人明白你的想法 53
3.4 协商的收尾 54
3.4.1 捍卫决策的执行 54
3.4.2 维护架构决定记录 54
3.4.3 你有时会赢,有时会输 55
3.4.4 从委派中学习 56
3.5 小结 56
3.6 参考资料 58
第4章 领导力 60
4.1 领导力的原则 61
4.1.1 建立信任关系 61
4.1.2 建立共识 62
4.1.3 建立战略伙伴关系(通过关系带来安全) 62
4.1.4 要身体力行(为你所说的话带来安全) 63
4.1.5 感知风险、评估影响、做出行动(明确风险的清晰度) 64
4.1.6 适当处理风险:什么是鞭炮,什么是原子弹(明确影响的清晰度) 65
4.2 领导策略 66
4.2.1 奥卡姆剃刀法 66
4.2.2 展现可视化信息 66
4.2.3 领导者要确保事情不跑题 67
4.2.4 基于环境推销 68
4.2.5 随大流(找机会利用已有的资源) 69
4.2.6 关注执行官于认知,而非解决冲突 69
4.3 领导的时机 70
4.3.1 利用单位的动量 70
4.3.2 知道何时伸出援手 71
4.3.3 允许其他人学习 71
4.3.4 知道何时该卓尔不群 72
4.3.5 请求原谅还是征求允许 73
4.4 领导别人 73
4.4.1 允许别人奉献(不要命令) 74
4.4.2 通过影响力激励别人 76
4.4.3 确保别人能做主 76
4.4.4 处理冲突 77
4.5 小结 77
4.6 参考资料 79
第5章 政治 81
5.1 政治的定义 81
5.2 政治市场 82
5.3 政治环境 85
5.3.1 与公司的战略方向保持一致 85
5.3.2 理解你所处的文化环境 86
5.3.3 及早处理别人关注的问题 87
5.3.4 相信你所推销的东西 89
5.3.5 不关我的事 90
5.3.6 关系很重要(与别人的关系) 90
5.4 政治原则 91
5.4.1 宽宏大量 91
5.4.2 不要为你的价值妥协 92
5.4.3 光明正大地竞争 92
5.4.4 透明地操作 92
5.4.5 你是怎样的人就怎样表现 93
5.4.6 帮助别人,不求回报 93
5.4.7 认识到生活是反身的 93
5.5 政治策略 94
5.5.1 帮助别人达成其目标 94
5.5.2 学会享受过程而不是目标 94
5.5.3 在关键之处力争出色 95
5.5.4 愿意就低优先级目标妥协 95
5.5.5 不要对别人的糟糕举止采取冒犯的行动 96
5.5.6 私下处理人际问题 97
5.6 政治时机 97
5.6.1 以适时的作风执行事情 97
5.6.2 今天失利并不代表明天不会成功 98
5.6.3 要认识到政治上你不会是常胜将军 99
5.6.4 积极参与政治游戏 99
5.7 成为一名好的政治人物 100
5.8 参考资料 101
第二部分 个人技能修炼
第6章 透明化 105
6.1 住在玻璃房中的架构师 105
6.2 透明化的类型 106
6.3 自我透明化 107
6.3.1 表现自然真诚 107
6.3.2 承认自己的弱点 108
6.3.3 承认你的实力和兴趣 109
6.3.4 赶在人前与上司沟通 110
6.4 项目透明化 111
6.4.1 让执行官看到你手里所有的扑克牌 111
6.4.2 架构师把透明化和清晰性带到许多领域 112
6.4.3 架构师将“发现”变成“收获” 113
6.5 关系透明化 116
6.5.1 该信任时就给别人信任 116
6.5.2 你说的话长久不变 117
6.5.3 道歉表明你的透明化 118
6.5.4 学会在做出反应前倾听(寻求透明化) 118
6.5.5 允许别人对你透明化 119
6.6 成为一名透明的架构师 119
6.7 参考资料 120
第7章 激情 122
7.1 什么是激情 123
7.2 发现激情 124
7.2.1 如何找到激情 124
7.2.2 恒心与激情:终极的杀手组合 125
7.2.3 岗位上的激情 126
7.2.4 重新点燃激情 127
7.3 将激情作为向导 127
7.3.1 等待机遇:它经常在找你,说话非常轻 128
7.3.2 跟着直觉走 129
7.3.3 选择你有激情的领域 129
7.3.4 改变会督促你前行 130
7.3.5 缺乏激情会成为你事业上升的天花板 131
7.3.6 把难事做好,尽心尽力投入 131
7.3.7 激情是提供动力的内在燃料 132
7.4 保护你的激情 132
7.4.1 忽略批评:这是你的激情、你的认知,不是他们的 132
7.4.2 不要分神 133
7.5 今天能做什么来追求你的激情 134
7.6 学会投入并享受过程 135
7.7 成为一名激情四射的架构师 135
7.8 参考资料 136
第8章 语境切换 138
8.1 自我意识语境 140
8.1.1 专心致志 140
8.1.2 明白你的弱项 141
8.1.3 生命中不仅仅有工作 141
8.1.4 多任务工作的效率奥秘 141
8.1.5 控制你的肾上腺素:慢下来 142
8.2 架构意识语境 142
8.2.1 使用“可/有…性”的字眼 142
8.2.2 寻求适当的耦合性和内聚性 142
8.2.3 持续构建你的语境 143
8.3 “大象”语境 144
8.3.1 哪些事没有提到 144
8.3.2 提问一些难题 145
8.3.3 早些发出坏消息 145
8.3.4 如果他们拥有这个公司,他们会怎么做 146
8.4 决策意识语境 146
8.4.1 他们真的已经把问题解决了 146
8.4.2 他们知道哪些替代方案可行吗 147
8.4.3 别人是否已经权衡过此技术 147
8.4.4 作为中立的第三方,即便这样做是个缺点 147
8.5 交谈语境 148
8.5.1 不要开会和用电子邮件 148
8.5.2 如果需要,(马上)让别人参与进来 148
8.6 谈话者语境 148
8.6.1 了解你的谈话对象 148
8.6.2 中庸之道 149
8.6.3 有时要唱红脸,有时要唱白脸 149
8.6.4 提供背景信息 149
8.7 项目语境 150
8.7.1 提出预算 150
8.7.2 带来实用性 151
8.7.3 学会在雪崩中冲浪 151
8.7.4 挑出专门的资源 151
8.7.5 你做出了哪些假设条件 152
8.8 成为一名善于察言观色、见风使舵的架构师 152
8.9 参考资料 154
第三部分 商务技能修炼
第9章 商务知识 157
9.1 了解商务 159
9.1.1 营销、财务(投入产出比)和销售 159
9.1.2 考虑拿一个商务学位 161
9.2 了解你的公司 162
9.2.1 了解产品对客户的价值所在 162
9.2.2 知道你的公司如何赚钱 163
9.2.3 了解你公司的历史、文化 163
9.3 了解你的顾客 164
9.3.1 考虑拜访顾客、打电话给销售或者在门面上帮员工干活 164
9.3.2 考虑参与可用性研究,参与产品概念访谈或其他客户产品评估 167
9.3.3 考虑使用敏捷技术 167
9.4 了解你的领域 167
9.4.1 收集领域知识 168
9.4.2 在商务环境中了解你的领域 169
9.5 帮助公司更好地了解技术 169
9.6 成为一名谙熟商务的架构师 170
9.7 参考资料 171
第10章 创新 173
10.1 创新的定义 174
10.2 建立边界条件 175
10.2.1 找出边界条件 175
10.2.2 在边界内创新 176
10.2.3 你会做什么(假如没有约束条件,不必故作姿态) 178
10.2.4 鼓励别人思考、开放 178
10.2.5 应对那些唱反调的人 179
10.2.6 避开唱反调的人,找个安全的地方来思考 179
10.3 发展内心准则 179
10.3.1 顺从你的直觉 179
10.3.2 学会信任自己 180
10.3.3 认真倾听客户的声音,但要保持自己的认知 180
10.3.4 听听别人的话(协作) 181
10.3.5 你今天能迈出一小步吗 181
10.3.6 今天不行没关系:继续埋头苦干,早晚会成功的 182
10.4 组合基本概念 182
10.4.1 阅读、阅读、还是阅读 183
10.4.2 疯狂的主意让你发现真正的边界 183
10.4.3 要有大眼光 184
10.4.4 创新者的困难抉择 184
10.4.5 创新与集聚:将事情按正确分组整合在一起 184
10.4.6 选择简洁 185
10.4.7 简洁性是知识产权的根本 185
10.4.8 在着手解决前先思考问题 186
10.4.9 定义问题 186
10.4.10 睡觉时思考 187
10.4.11 战略问题还是战术问题 187
10.5 成为一名能创新的架构师 187
10.6 参考资料 189
第11章 实用主义 191
11.1 实用型架构的定义 191
11.2 范围管理 192
11.2.1 与商务伙伴一起确定特性的优先级 192
11.2.2 帮助执行官做出正确决策 193
11.2.3 处理不确定性 193
11.2.4 有些时候,你只需要一个概念就能开始干了 193
11.2.5 使用敏捷过程作为一种实用主义方法 194
11.3 风险管理 194
11.3.1 区分可能性和可行性 194
11.3.2 对于每个决定,都自问一些重要的问题 196
11.3.3 应对可能的风险 197
11.3.4 架构刺探 197
11.3.5 与运营人员一起确定效率 197
11.3.6 观察其他项目,决定有哪些地方是可牺牲的 198
11.4 沟通 198
11.4.1 记录下大家一致同意的决议 199
11.4.2 提供多种替代方案,并推荐其中一种 199
11.4.3 用透明性拉平期望值 199
11.4.4 发展经验方法来估量项目 200
11.5 成为一名实用主义的架构师 200
11.6 参考资料 201
第12章 认知 203
12.1 认知之定义 204
12.2 找寻和创立引人注目的目标 204
12.2.1 发现认知 204
12.2.2 从混沌现实编造出有说服力的故事 206
12.2.3 克服障碍 207
12.3 开发与建立战略路线图 208
12.3.1 将路线映射至认知 208
12.3.2 制定支持认知的战略 209
12.4 确定志同道合的伙伴 210
12.4.1 认知需要齐心协力 210
12.4.2 认知要求有关键的利益相关者 211
12.4.3 认知需要资金支持 212
12.5 实践认知 213
12.5.1 将认知当做增加投入产出比的战略 213
12.5.2 使用认知灌输目标感 213
12.5.3 在项目评估时就应用认知 214
12.5.4 采用支出信封(界定认知范围) 215
12.6 成为一名有远见的架构师 215

Labels

Review (572) System Design (334) System Design - Review (198) Java (189) Coding (75) Interview-System Design (65) Interview (63) Book Notes (59) Coding - Review (59) to-do (45) Linux (43) Knowledge (39) Interview-Java (35) Knowledge - Review (32) Database (31) Design Patterns (31) Big Data (29) Product Architecture (28) MultiThread (27) Soft Skills (27) Concurrency (26) Cracking Code Interview (26) Miscs (25) Distributed (24) OOD Design (24) Google (23) Career (22) Interview - Review (21) Java - Code (21) Operating System (21) Interview Q&A (20) System Design - Practice (20) Tips (19) Algorithm (17) Company - Facebook (17) Security (17) How to Ace Interview (16) Brain Teaser (14) Linux - Shell (14) Redis (14) Testing (14) Tools (14) Code Quality (13) Search (13) Spark (13) Spring (13) Company - LinkedIn (12) How to (12) Interview-Database (12) Interview-Operating System (12) Solr (12) Architecture Principles (11) Resource (10) Amazon (9) Cache (9) Git (9) Interview - MultiThread (9) Scalability (9) Trouble Shooting (9) Web Dev (9) Architecture Model (8) Better Programmer (8) Cassandra (8) Company - Uber (8) Java67 (8) Math (8) OO Design principles (8) SOLID (8) Design (7) Interview Corner (7) JVM (7) Java Basics (7) Kafka (7) Mac (7) Machine Learning (7) NoSQL (7) C++ (6) Chrome (6) File System (6) Highscalability (6) How to Better (6) Network (6) Restful (6) CareerCup (5) Code Review (5) Hash (5) How to Interview (5) JDK Source Code (5) JavaScript (5) Leetcode (5) Must Known (5) Python (5)

Popular Posts