Category Archives: Intern&Job

Monitoring Tips

1. Don’t panic when error rates increase, compare with history data, if it has same errors before and doesn’t have obvious more in new instances, then be calm down and continue roll out. 2. If specific availability zones have issue, … Continue reading

Posted in CS Research&Application, Intern&Job, Uncategorized | Tagged , | Leave a comment

《朱赟的技术管理课》学习笔记

1.从给答案到做引导 首先,什么时候适合直接给答案,什么时候适合给线索让对方自己找式 我觉得,如果是一个新人,当他刚进入全新的领域,或者所问问题的答案就是某些知识点时,不妨直接给出答案或知识点。因为这些问题,即便他全然没有线索,我们也不可能让他自己去推导出业界多年发展才形成的规则和规律 等对方已经有一定的积累和经验后,就可以让他自己去探求解决方案了。这时候我们需要给出一些提示,或者这样说对于问题本身,我也没有完整的答案,只有些直觉和想法。”给他方向和建议,让他继续寻找,这样比把问题解出来,然后再直接告诉他一个确切的答案更有意义 其次,如何引导。 这里最关键的一点是,问对方正确的问题,通过问题去引导对方进行深入思考,找到解决方案。当一个好问题摆在面前的时候,人们更容易主动思考,他们会跳出自己之前设定的方案和框架,换一个角度去看待问题,或者被带到一条之前没有发现的道路入口,然后自己走下去,直到找到答案 最后,引导的好处是什么 虽然最终的结果都是对方找到了想要的答案,但如果是通过别人的引导,他自己摸索出来的,那么他解决类似问题的能力就会提升。 2.如何帮助团队成员成长 一名优秀的技术管理者应该做哪些工作呢?我想,至少需要涵盖三个重点。 一是帮助团队成员迅速成长。这包括通过指导、反馈、监督、交流、协调资源等方式帮助下属提升能力,使其迅速成长。 二是明确地分解与布置任务。这不仅包括分解与布置任务,还包括界定需求边界、制订计划、选拔人员和工作授权等。其中,界定需求边界又要求与上级和下属细致沟通,确定下属需要做什么和怎么做。 三是建立有效的合作关系。这里的“有效”,指的是与上级、下属和相关部门建立坦诚交流和相互信任的合作关系。 不要陷入静态思维,在硅谷,有很多公司(如Google、Facebok、 Airbnb等)在提升一个人到下一个级别时,对每个级别都在各个方面设定一些标准。比如, 你在技术上要达到什么水平,执行能力如何,做出的项目是不是有足够的影响力,是不是能够独立地去解抉各种困难,有没有对别人的成长做出贡献等。 3.项目延期了,作为负责人该怎么办? 对于不可控因素,我们能做的并不多,只能权衡取舍,对项目期限人员或者需求范围做出调整。如果是计划本身的问题,或者是因为项目成员没有很好地跟进同一个计划并保持一致,那我们应该尽最大可能避免这些问题的发生。 怎样才能做到这一点呢?下面的几个策略是我在工作中经常使用的,对你也许会有帮助。 建立一定的流程。这里包括计划制订流程和计划跟进流程,也许是每周一次的同步会议,也许是一个共享的任务管理工具。 在整个项目计划中,要有明确的优先级。道哪些任务是非做不可的,哪些任务是需要提前完成的。人们往往有先处理简单任务的惰性,如果没有搞清楚轻重缓急,那就有可能出现“不太重要的杂事都做完了,而重要的事却没有太大进展”的情况。 制作一个共享的项目状态表,让团队成员可以一眼就看清楚项目进展,并保持该图表的更新。进度表可以作为大家进行进度评估的工具,也可以作为负责人判断哪里需要重点跟进的依据。确保这个计划是每个主要相关者都确认并同意的,并确保他们之后每天都能看到这个计划的所有更新。 不要漏掉任何一个人。不要觉得暂时还有他的活儿,可以先不用与他沟通。当一个项目的计划落实后,应该第一时间让所有相关的人了解。 提供一个有效的反馈渠道。任何人在任何时候对项目有担心或者质疑的话,确保他可以通过有限途径让你第一时间知道他担心。 4.管理和被管理:期望值差异 首先,最重要的一点是增加对彼此的了解。 要知道对方是内向还是外向,平时对负反馈接受程度如何,是偏自负还是自信心不足,是喜欢自己跟自己较劲还是爱和别人攀比等。这些你可以通过平时合作中的接触和交流来慢慢了解。只有对一个人有了深入了解才能在交流中采用更好的方式方法保证自己的良好意愿被准确传达。 其次,每半年或一年进行一次关于期望值的深度对话。 需要通过对话尽可能地了解对方的兴趣是什么,加入这个团队希望做什么,未来两三年的职场计划如何,对方做了哪些努力并正在做哪些努力除了目前在做的工作,还想做什么,还能做什么,想承担什么样的责任。在获得了这些信息之后,进一步了解对方希望你(也就是他的上级)提供哪些帮助。接下来,就是澄清和约定。明地告诉对方,如果他想达到自己的期望值,需要证明自己。然后告诉他你对他的期望,包括对他当前所做项目的期望值,以及未来的期望值,并表示自己会尽最大可能提供机会和支持。这里需要明确的是,如果对方以前承诺的目标还没有达到,那就暂时不能把更有挑战性的机会留给他。 最后,也是最重要的,有了这样的约定,还需要持续跟进。 设置一些检查点,一周或两周检查一次,确保对方不会因为某个地方没有得到充分的支持而停滞不前。如果有任何客观因素导致一方之前的承诺没有兑现,双方要在第一时间保持一致的判断,并做出调整。由于所有的约定都是在初始阶段达成一致的,在这种情况下,后续的任何正反馈或负反馈都会更加客观并充满正向激励,双方的交流也会变得更加容易。 5.管理者在进行工作分配时,会考虑哪些问题 在没有建立充分信任的情况下,我们该如何分配工作呢? 建立参考基线 当和一个人没有直接接触过时,我们可以通过第三方评价、个人履历以及他做过的项目或产品来衡量他的能力。 问对问题比给出正确答案更重要 把任务交到员工手里之前,要和他进行充分的沟通。告诉他任务的详细情形,看他会问出什么样的问题,提出哪些想法。 工期估算 估算完成任务的工期是分配任务中必不可少的环节。你可以让接受任务的员工试着去估算:需要多久完成,大概什么时候完成,需要什么样的资源等。 执行力 … Continue reading

Posted in CS Research&Application, Intern&Job, IT, Uncategorized | Tagged , | Leave a comment

极客时间专栏陈皓《左耳听风》笔记二

主动学习与被动学习 你听别人讲,或是自己看书,或是让别人演示给你,这些都不能让你真正获得学习能力,因为你是在被别人灌输,在听别人说。 只有你开始自己思考,开始自己总结和归纳,开始找人交流讨论,开始践行,并开始对外输出,你才会掌握到真正的学习能力。 学习不是努力读更多的书,盲目追求阅读的速度和数量,这会让人产生低层次的勤奋和成长的感觉,这只是在使蛮力。要思辨,要践行,要总结和归纳,否则,你只是在机械地重复某件事,而不会有质的成长的。 深度学习十分重要 应该怎样进行深度学习呢?下面几点是关键。 高质量的信息源和第一手的知识。 把知识连成地图,将自己的理解反述出来。 不断地反思和思辨,与不同年龄段的人讨论。 举一反三,并践行之,把知识转换成技能。 换言之,学习有三个步骤 知识采集。信息源是非常重要的,获取信息源头、破解表面信息的内在本质、多方数据印证,是这个步骤的关键。 知识缝合。所谓缝合就是把信息组织起来,成为结构体的知识。这里,连接记忆,逻辑推理,知识梳理是很重要的三部分。 技能转换。通过举一反三、实践和练习,以及传授教导,把知识转化成自己的技能。这种技能可以让你进入更高的阶层。 我觉得这是任何人都是可以做到的,就是看你想不想做了。 学习是为了找到方法和原理 学习不仅仅是为了找到答案,而更是为了找到方法。只有掌握解题的思路和方法,你才算得上拥有解决问题的能力。 学习不仅仅是为了知道,而更是为了思考和理解。在学习的过程中,我们不是为了知道某个事的表面是什么,而是要通过表象去探索其内在的本质和原理。 在学习的过程中,我们要不断地问自己,这个技术出现的初衷是什么?是要解决什么样的问题?为什么那个问题要用这种方法解?为什么不能用别的方法解?为什么不能简单一些?…… 拥有正确的学习观念:学习不仅仅是为了找到答案,而更是为了找到方法;学习不仅仅是为了知道,而更是为了思考和理解;学习不仅仅是为了开拓眼界,而更是为了找到自己的未知,为了了解自己;学习不仅仅是为了成长,而更是为了改变自己,改变自己的思考方式,改变自己的思维方式,改变自己与生俱来的那些垃圾和低效的算法。 端正的学习态度和正确的学习观念,是高效学习的第一步,拥有这两者一定可以让你事半功倍。 挑选知识和信息源 如果你觉得用百度搜中文关键词就可以找到自己想要的知识,那么你一定远远落后于这个时代了。如果你用 Google 英文关键词可以找到自己想要的知识,那么你算是能跟得上这个时代。如果你能在社区里跟社区里的大牛交流得到答案,那么你算是领先于这个时代了。 你的信息源要有下面几个特质。 应该是第一手资料,不是被别人理解过、消化过的二手资料。尤其对于知识性的东西来说,更是这样。应该是原汁原味的,不应该是被添油加醋的。 应该是有佐证、有数据、有引用的,或是有权威人士或大公司生产系统背书的资料。应该是被时间和实践检验过的,或是小心求证过的,不是拍脑袋野路子或是道听途说出来的资料。 应该是加入了一些自己的经验和思考,可以引发人深思的,是所谓信息的密集很大的文章。 注重基础和原理 我说过,很多人并不是学得不够快,而他们的基础真的不行。基础不行,会影响你对事物的理解,甚至会让你不能理解为什么是这样。当你对事物的出现有不理解的东西时,通常来说,是因为你的基础知识没有跟上。 使用知识图 画知识图的方式可以让你从一个技术最重要最主干的地方出发开始遍历所有的技术细节,也就是画地图的方式。如果你不想在知识的海洋中迷路,你需要有一份地图,所以,学习并不是为了要记忆那些知识点,而是为了要找到一个知识的地图,你在这个地图上能通过关键路径找到你想要的答案。 系统地学习 在学习某个技术的时候,可以使用一个学习模板。只有把这个学习模板中的内容都填实了,我才罢休。这个模板如下。 这个技术出现的背景、初衷和要达到什么样的目标或是要解决什么样的问题。这个问题非常关键,也就是说,你在学习一个技术的时候,需要知道这个技术的成因和目标,也就是这个技术的灵魂。如果不知道这些的话,那么你会看不懂这个技术的一些设计理念。 这个技术的优势和劣势分别是什么,或者说,这个技术的 trade-off 是什么。任何技术都有其好坏,在解决一个问题的时候,也会带来新的问题。另外,一般来说,任何设计都有 trade-off(要什么和不要什么),所以,你要清楚这个技术的优势和劣势,以及带来的挑战。 … Continue reading

Posted in CS Research&Application, Intern&Job, IT, Uncategorized | Tagged | Leave a comment

极客时间专栏陈皓《左耳听风》学习笔记

  本文是极客时间专栏《左耳听风》学习笔记第一篇 1.如何让自己的技能变现 第一,千里之行,积于硅步。 任何意见成功的大事,都是通过一个个小的成功达到的。所以你得确保你有一个一个的小成功。 第二,关注有价值的东西。 价值受供需关系影响的,供大于求,就没有什么价值,供不应求,就有价值。 这意味着你不仅要看到市场,还要看到技术的趋势,能够分辨什么是主流技术,什么是过渡式技术 关于市场需求:看看各个公司在做什么,他们的难题是什么 关于技术趋势:了解历史,了解技术发展的轨迹,将一些老的技术的本质吃透 第三,找到能体现价值的地方。 在一家高速发展的公司中技术人员的价值可以达到最大化。 而刚起步的公司,业务还没跑顺,公司主要精力会放在业务拓展上,这个时候也不需要太高精尖的技术,所以,技术人员的价值也体现不出来。 比较好的成长路径是:先进入大公司学习大公司的技术和成功的经验方法,然后找到告诉成长的公司 第四,动手能力很重要。 第五,关注技术付费点。技术付费点体现在两个地方 能帮被人挣钱的地方 能帮别人省钱的地方 第六,提升自己的能力和经历。付费的前提是信任,只有提升自己的能力和经历后别人才会对你有一定的信任。 第七,找到有价值的信息源。 第八,输出观点和价值观。 第九,朋友圈很重要。 2.技术领导力 尊重技术和不尊重技术的公司案例 亚马逊、Facebook这样的公司早期的业务型公司转变为技术型公司,发展的很好。 雅虎、百度这样的公司从技术型公司变成了广告公司,走下坡路。 谷歌当年举公司之力不做技术做社交,很失败;拉里佩奇重新让工程师重新掌权,才有了无人车和AlphaGo这样的惊世之作。 微软在之前由一个做电视购物的销售担任CEO,出现了技术领导力不足的情况,导致走下坡路。 苹果公司之前聘任了一位非技术的CEO后也几近破产。 什么是技术领导力? 直白点说:你还在用大刀长矛的时候,别人已经用上了枪支大炮;你还在用马车的时候,对方已经用上了汽车…. 技术领导力不仅仅是呈现出来的技术,而是一种可以获得绝对优势的技术能力。 从工业革命的历史中推导出技术领导力: 尊重技术,追求核心基础技术。 追逐自动化的高效率的工具和技术,同事避免无效率的组织架构和管理。 解放生产力,追逐人效的提高。 开发抽象和高质量的可以重用的技术组件。 坚持高于社会主流的技术标准和要求。 软件工程师怎么才算拥有技术领导力? 能够发现问题。能够发现现有方案的问题。 … Continue reading

Posted in Book/Movie/Music, Intern&Job, IT, startup, Uncategorized, 他山之石 | Tagged | Leave a comment

Best Practice for Coding

1. Annotation always write before the code 2. Remove the console.log message and the redundant code once done. 3. For Javascript, prefer console.debug() when you have to have temporary logging in the code. 4. killall python 5. If need more data … Continue reading

Posted in CS Research&Application, Intern&Job, IT, Uncategorized | Tagged , , | Leave a comment

Programming Reflection (Jun 8, 2017)

1.  BITT Principle Brute Force (暴力解法,低效/费空间) Improvement (优化解法,高效/省空间) Time and space complexity (时间/空间复杂度) Test (测试) 2. Array is sorted and may have better performance (3Sum o(n^2) solution) 数组排序过后可能有奇效 3. Test cases are designed on purpose to test the functionality, not … Continue reading

Posted in CS Research&Application, Intern&Job, Uncategorized | Tagged , | Leave a comment

Programming Reflection (Jun 1, 2017)

1. Programming, programming, programming Keep brushing up algorithm and data structure problems Summarize the approach and the process to figure out solution 多刷题 多总结(回顾解题思路) 2. Technical Knowledge: Breadth vs Depth Concentrate on one in early stage, then learn about more 职业早期专精一门,之后拓展广度 … Continue reading

Posted in CS Research&Application, Intern&Job, Uncategorized | Tagged , | Leave a comment

Programming Reflection May 17

1. Array is easy to index specific element with index, it’s easier to calculate the difference between different elements than linked list. 2. LeetCode Trap Rain Water problem: iterate left and right elements for each element in the input array, … Continue reading

Posted in CS Research&Application, Intern&Job, IT, Uncategorized | Tagged , , , | Leave a comment

Leet Code Summary and Reflection

  Array Tips: keep two points and shrink from left and right to center, check to meet certain requirement (sum equals a target number) until left index is over right one. Problems: Two Sum, 3Sum, 3Sum Closest, 4Sum, etc.   … Continue reading

Posted in CS Research&Application, Intern&Job, IT, Uncategorized | Tagged , , | Leave a comment

Programming Reflections Mar 10

1. Clarify question, design algorithm and data structure, pseudo-code, coding, test. 2. You don’t need master everything to solve problem in real life,  a better way is to learn something new, apply it, correction, repeat. Just like change tire while … Continue reading

Posted in CS Research&Application, Intern&Job, IT, Uncategorized | Tagged , | Leave a comment