最新文章
那些让人睡不着觉的bug,你有没有遭遇过? 程序人生
我先讲一个小故事,以前在外企工作时的一个亲身经历。 当时我所在的team,负责手机上多媒体Library方面的开发。有一天,一个具有最高等级的bug被转到了我的手上。这个bug非常诡异,光是重现它就需要花很长时间。在公司内部的issue追踪系统上,测试人员描述了详尽的重现步骤,大概意思是说,...
观察之道:带你走进可观察性 软件工程
今年,“可观察性”(Observability)被引入到了 IT 领域。可观察性是一套理念系统。其重点是团队要融入可观察性的理念,特别是要求研发写出的应用是可观察的。将可观察性包含在你的需求之中,它是与扩展性,可用性同等重要的非业务性需求。 一个故事 距离伦敦 150 英里的地方有一座...
危害程序员职业生涯的三大观念 程序人生
蓦然回首自己做软件开发这个行业已经十年了,这十年中我获得了很多,技术能力、培训、出国、大公司的经历,还有很多很好的朋友。但再仔细一想,这十年中我至少浪费了五年时间,这五年可以足够让自己成长为一个优秀的程序员,可惜我错过了,我用这五年时间和很多程序员一样在困惑和迷茫中找不到出路! 路其实一直都...
断点单步跟踪是一种低效的调试方法 编程基础
断点单步跟踪的交互式调试器是软件开发史上的一项重大发明。但我认为,它和图形交互界面一样,都是用牺牲效率来降低学习门槛。本质上是一种极其低效的调试方法。 我在年少的时候(2005年以前的十多年开发经历)都极度依赖这类调试器,从TurboC到Visual C++,各个版本都仔细用过。任何工具用上...
测试 | 让每一粒尘埃有的放矢 软件测试
对很多开发人员来讲,测试人员是扫雪工,没什么真本事。并且,在他们自己构建代码时,也对测试不屑一顾。要么是抱着老子天资聪慧,用不着这些繁文缛节的官僚流程;要么是觉得写测试并没有什么“实际”的贡献,花了大量的功夫,似乎什么都没有推进,什么实质性的feature都没被实现,只不过是一堆检验性质的监视器...
从Excel到微服务 软件设计
Excel很老,Excel很土,Excel一点也不sexy;微服务新,微服务很潮门,微服务很高大上。那么,Excel和微服务有什么关系? 上个月看了篇文章,The Unbunlding of Excel。作者认为,对于初创公司(尤其是非“纯IT”初创公司)来说,Excel几乎包办各种工作。想...
如何提升你的能力?给年轻程序员的几条建议 程序人生
一转眼工作已有8年,前两天公司一位初入职场的同事希望我给一些建议与经验。我觉得这个话题很有价值,这里以个人的想法与经历写成此文,希望给年轻的开发者们一些启发。 我工作过的公司有4家,NVIDIA, Google, Slide和Glow。其中两家是知名的大公司,Slide我是D轮过后加入的,那...
程序员的那些反模式 程序人生
有鸡汤就有反鸡汤,有模式就有反模式。 今天,我们来谈一谈程序员的行为中的那些反模式,涉及程序员的日常工作和学习的各个方面。 这些反行为模式,并不针对某些特定的个人。如果你不幸中招,千万不要懊恼,因为这实在太正常不过了,很多反模式的坑我也是亲身踩过的^-^ 稍微修改几行代码就调试 ...
程序员的宇宙时间线 程序人生
蜘蛛的选择 周六晚上,我把车停在了亲戚家小区门外的路边。在三个小时之后我准备开走的时候,突然发现,前车门外面似乎有一根银色的细线,在远处路灯投下的微弱余光中轻轻地颤动。我借助手机屏幕的亮光才得以看清,原来是一只蜘蛛正在左后视镜和前车门之间织网。 一阵晚风吹来,裹挟着旁边温榆河的水气。蜘蛛...
突破程序员思维 程序人生
过去我曾一直认为程序员是依靠他们的技术在编程,也是因为技术使得程序员的水平有高低之分,但随着我写代码的时间越来越长,也接触到更多的程序员,我渐渐发现程序员们其实是依靠他们所特有的程序员思维在进行编程的,而他们中的佼佼者正是那些有着更高思维成熟度的优秀程序员们。 什么是程序员思维 那么,...
云、雾和霭计算如何一起工作 云计算
英文原文:How cloud, fog, and mist computing can work together 在过去 10 年,云计算开始风靡全世界。当一些公司认识到他们使用云可以节省多少成本时,他们开始考虑将云计算应用到其他业务方面,以便进一步降低成本。此外,随着云...
你可以把编程当做一项托付终身的职业 程序人生
编程的意义是什么,我又为什么要编程呢?这是一个不时会浮现在我脑海中的问题,它来得并不频繁,但每次却都伴随着对自己职业生涯或人生目标的质疑而产生,令我感到些许困惑和不安。而在这十几年的职业生涯中,我也似乎总能在每个阶段为自己找到一个继续热爱编程的理由,直到它已无法解答再一次疑惑的产生。就这...
评审的艺术——谈谈现实中的代码评审 软件工程
曾经写过一点关于代码评审(code review)的文章,比如这篇和这篇,现在觉得关于它的认识又有了不少更新。软件工程的技术和实践分成两部分,一部分是和书本知识一致的,大约占一半,这部分基本上在大学里就可以学,自学只要方法得当、刻苦努力也可是途径;但是第二部分来自于实际团队、经验,内容通常无法从...
如何高效学习 程序人生
IT 行业是一个变化非常快的行业,它需要我们持续去学习新的知识和技能。但是,工作以后,我们经常会发现自己学习的东西很少了,倒不是没有时间去学习,而是学习的效率太低了。久而久之,就演变成『一年的工作经验,重复用十年』。 当然,有些人会说自己经常加班,没有时间学习,这只是表象,时间挤挤总是有的。...
如何成为优秀的程序员? 程序人生
作为一个从业快10年的程序员,我想给新入行的程序员们一些建议。这些建议是我希望自己可以在毕业时就读到的,也希望它们可以帮助你成为一个更好的程序员。 简单归纳一下,总共有7条: 保持健康 编程之外的爱好 持续学习 正确应对犯错 不要囿于角色 展示你的创意 刻意练习手速 下面我来详细说说...
菜鸟工程师的超神之路 -- 从校园到职场 程序人生
码农咖啡馆近日收到一位大三学生的留言,表达了实习期的一些困惑:压力大、工作内容琐碎、导师又没多少耐心指点。看到这篇幅很长的苦恼,我突然觉得有责任去为他(她)做些事情。这世界上仅有极少的天分和运气兼备的程序员,得以通过惊世骇俗的创造或者创业实现人生的跨越,剩下的普罗众生,都要经历职业的道路去积攒财...
如何识别人的技术能力和水平? 求职面试
这个题目是比较复杂的,它包含的东西比较多,认真讨论估计能写几万字。如果是专业研究,我看能写一本书了。这里打算根据自己的学习过程和工作经验,谈一下要点问题,均属个人看法,欢迎讨论。 写这篇文章的初衷,跟前段时间跟朋友们聊招聘有关。因为技术招聘除了考察人的协作精神和工作态度,一大目标便是判断人...
写给自学者的入门指南 程序人生
在IT工程师和培训机构多如牛毛的时代,拜师学艺并不难。但自学编程对于毫无基础的同学来说却可能是个问题,相信有过类似经历的朋友都有一把辛酸泪和一肚不吐不快的体会。让我们从一个故事说起… 故事 某君在一个普通大学读着自己不喜欢的专业,以打游戏、刷段子和睡觉度日,突然有一天想学点什么。学编程...
和程序员谈恋爱 程序人生
原文发布于2017年9月10日 最近被Wephone创始人被妻子逼死的事情刷屏,甚至还引起了不少的恐慌,具体细节大家可能都已经知道了,两个人在相亲网站上认识,两个月闪电结婚,还在海南给女方买了房子、买了特斯拉,不了解女方的婚史等情况下,把自己公司的事情都告诉了她,结果反倒被这个女的逼到自杀。...
学会学习 程序人生
英文原文:Relearning to Learn 译/张健欣 本文要点 阅读和理解是不够的,你还需要记住你学的内容。 进行主动阅读——你的大脑充分理解这些概念并将它变成你自己的东西。 放慢你的大脑,做有创意的笔记,而且反复阅读是没有用的,测验才有效。 经常反思你读过的东西并进行联...