• 希望大家早点知道的Vim技巧

    从2009年开始Vim一直是我主要(并且是唯一的)文本编辑器。这几年,我发现了许多希望当初能早点知道的Vim技巧,因为他们显著改善了我的文本编辑效率。在这片博文中,我想和你们分享最重要的几点。 “不要使用方向键,使用h/j/k/l替代!”通常是给Vim新手的第一条建议。很长一段时间我忽略了它因为这似乎对我有些荒唐。我到底为什么需要那么做?终于有一天我决定尝试一番。从那以后,再也没有回过头。我用了许多天来习惯,当我习惯后,我惊讶于我所失去的。h/j/k/l键在本列位,你不必过多移动你的手。这不仅帮助我移动得更快,而且让我的……
  • 15年资深架构师总结的7条经验

    作者:刘欣。码农翻身(coderising)公众号作者,15年的软件行业从业经验,曾任IBM高级系统架构师,擅长企业应用架构和设计,参与并且领导过多个企业级应用的设计和开发工作,IBM敏捷软件开发专家,曾经给多家公司企业做敏捷咨询和培训服务。 我和很多人交流过一个有趣的现象,那就是刚毕业到30岁这段时间,会觉得时间过得很慢,总觉得自己还很年轻,但是一旦过了30岁,时间就如白驹过隙,一年又一年飞逝而过。 我自己也是,眼瞅着毕业快15年了,15年间从一个刚毕业的菜鸟,成长为技术骨干,做到架构师的职位,回头看看,当年听取亲戚的……
  • code123
    支付宝架构师:从工程师到架构师的成长之路

    支付宝架构师:从工程师到架构师的成长之路

    0、前言 架构师是一个没有被严格定义的角色。 在写这篇文章之前,我特意把这几年看过的关于架构和架构师的书重新翻了一遍,结果发现它们……
  • code123
    雷军回顾20年前自己的“程序人生”

    雷军回顾20年前自己的“程序人生”

    今天,雷军在他的公众号里发了一篇他 20 年前写的帖子,那个时候还是 1996 年,是通过电话线拨号连接到西点 BBS 上飙帖子玩的年代。那是……
  • 程序员困境

    最近,我招聘一个内核程序员的岗位,几十个人过来面试。这些应聘者都来自优秀的大公司,不是开发芯片的,就是开发内生的操作系统的。其中有些人声称自己在内核上开发的时间至少 10 年!他们的简历美轮美奂,各种完成的项目,各种获得的褒奖。 但是绝大多数人都无法回答一个最基本的问题:当我们调用一个标准内存分配函数时,在内核中会发生什么? 别惊讶。当我请其中一位应聘者写一个简单的,基于在 glib 库中 hash 函数上搭建的 LRU 缓冲框架时,他表示压根没用过 glib。这也正是我想要的答案。我给他看了 glib hash 的 api 页面,同时……
  • 关于社交这回事

    时常有人说跟我打起交道来,感觉不像普通的程序员。我不知道这到底是褒还是贬,不过原因我大致清楚,因为在普通人印象里,程序员应该是很沉闷很木讷、不善于交流的。大家不知道的是,在很长的时间里我也确实是比较沉闷和低调的,这也是选择计算机专业的部分原因。但是一个偶然的机会,改变了我对社交的认识,从此促成了我“不像程序员”的改变。 我刚工作不久,有一次和炳叔(当时炳叔是同事嘛)吃饭聊天,炳叔说的话着实吓到我了:你看美国的电影里,那些小孩,那么小就得穿着正式去参加各种活动,其实这是社交,社交这东西是得从小时候……
  • 培训机构毕业的程序员被歧视的背后逻辑

    现在,像达内、华清远见、国嵌、北大青鸟、传播智客等等IT培训机构很多,为尚未毕业的大学生、毕业了一时找不到工作的大学生、工作后想转行的再就业者提供了一个掌握新技能的机会,通过三个月或半年或更久的培训,你就可以掌握某一种技能,比如Android开发、Java Web开发、iOS开发、嵌入式Linux开发,然后,没然后了吗…… Sorry,然后还是有的,只不过,“然后”并不是像培训机构的销售代表频频给你通电话时宣传的那样光明罢了。有的机构会推荐你就业直到你彻底失望他们推荐的单位,有的机构会放你出去闯荡江湖四处碰壁……形式不一,但,一……
  • code123
    编程的智慧

    编程的智慧

    编程是一件创造性的工作,是一门艺术。精通任何一门艺术,都需要很多的练习和领悟,所以这里提出的“智慧”,并不是号称三天瘦二十斤的减肥……
  • code123
    怎样尊重一个程序员

    怎样尊重一个程序员

    得知一位久违的同学来到了旧金山湾区,然而我见到他时,这人正处于一生中最痛苦的时期。他告诉我,自己任职的公司在他加入之前和之后,判……
  • code123
    真实工作中的编程是怎么样的?

    真实工作中的编程是怎么样的?

    刚进公司时,在你正式动手写代码前,很可能要理解code base。这一过程至少持续1个月,取决于你所在项目的规模。你会发现你不得不使用你浑……
  • 18条程序设计最佳实践

    好的编程原则跟好的系统设计原则和技术实施原则有着密切的联系。下面的这些编程原则在过去的这些年里让我成为了一名优秀的程序员,我相信,这些原则对任何一个开发人员来说,都能让他的编程能力大幅度的提高,能让他开发出可维护性更强、缺陷更少的程序。 1. 不要自我重复(DRY - Don't repeat yourself) 这也许是在编程开发这最最基本的一个信条,就是要告诉你不要出现重复的代码。我们很多的编程结构之所以存在,就是为了帮助我们消除重复(例如,循环语句,函数,类,等等)。一旦程序里开始有重复现象的出现(例如很长的表达式、一大堆……
  • 演讲实录:《人,技术与流程》

    我先做一下自我介绍,我是 07 年加入的 Google,在 Moutain View 总部任Google SRE,今年年初回国加入 Coding。 在 Google 我参与了两个 Project, 第一个就是 Youtube, 其中包括 Video transcoding, streaming 等,Google 的量很大,每个月会有 1PB 级别的存储量,存储,转码后,我们还做 Golbal CDN ,最大的时候峰值达到 10 TB,我们在全球 10 万个节点,每台机器都是 24 核跑满状态。然后我从 Youtube 团队离开加入 Google Cloud Platform Team。我们做的主要工作是管理 Google 全球的机器,大概有 100 万台左右。我离开 Google 之……
  • 高效程序员的狂暴之路

    不觉间已经工作六年,回想第一天实习的场景历历在目、恍若昨日。六年已 足以令许多人转管理、转产品、转测试、转行,也一定有人还在坚守着编码,只因热爱。遇到过形形色色的经理、架构师、运维、性能工程师等等,还是觉得写代码 的才是最厉害的!在这里分享一些这些年来修习到的个人心得。也许并不适用于其他人,但对于我却都是最珍贵的“宝藏”。也谨以此文纪念在代码堆里度过的青 春~ 看到这些点点滴滴的收获,就会感到所有逝去的光阴和挥洒的汗水都是值得的。 1.启动:得心应手的工具 1.1 全能IDE 关于IDE,目前我使用Intellj IDEA和Su……
  • 如何快速熟悉一门语言/框架

    首先请原谅我这个标题起的有点大,只是希望你能从我的经历中得到启发。 我看到不少没有编程背景的人也收藏了这篇文章,我会把太学术的地方注释一下。 编程一直是我的爱好,我最喜欢的是和图形图像有关的部分,但是过去几年里我学的一直是和电子有关的内容。我最初上手编程是通过数学软件Mathematica,它本身也是一个强大的函数式编程语言,于是顺手学习了Haskell/Scheme/Prolog等FP语言。后来修了一门分布式系统的课程,为了设计分布式系统我学习了Erlang,因为也是函数式编程,且语法很多借鉴了Prolog,所以使用了很长时间。 FP指funct……
  • 如何全面提升编程技能

    杰出程序员之所以如此成功,就是因为他们一直在锻炼。完美的身材要靠定期的锻炼才能获得,而且必须坚持锻炼才能保持,否则身材就会走形。对于编程和软件工程来说,道理是一样的。 这是一个重要的区别——我每天都开车去上班,但我的驾驶水平远远不如专业车手;类似的情况,天天编程可能并不足以使你成为一名专业的程序员。那么,什么才能把一个普通人变成一名专业车手或者专业程序员呢? 答案就在《科学美国人》的一篇名为“The Expert Mind”(专家思维)的文章里: 爱立信提出,重要的并不是经验本身,而是“努力的学习”,也就是要不断地挑……