关于国内程序员肉身翻墙

Image result for 翻墙本来是没有倾向谈论这个话题的,但是最近邮件或者微信问我这个问题的国内程序员朋友很多,我在这里一并介绍一下,也算作简单的解答。同样的问题就直接参阅即可。事实上,我很乐意收到这样或者那样的问题,也包括肉身翻墙这样的话题,混熟了的话瞎扯也开心。但是也请大家注意一点礼貌,有好几次有程序员没头没脑地微信上跳出来问问题,然而话都说不清楚,或者连个招呼也不会打,更有甚者二话不说直接把 log 贴过来让我看问题,实在是让人觉得很不舒服。有些我回复了,有些我实在是不想回复了。另外,具体的问题我比较好解答,像有不少人问我,“你觉得美国怎么样?”,我都不知道从何说起。具体问题还是邮件沟通更合适,我答复起来也更舒服,微信 [……] 阅读全文

折腾的快乐

sde

先讲个故事

公司里有这么一个小小的差事,某一个月,每天都要把 Excel 的某一列的数据根据某种规则换算以后拷贝到另一列去。

DA(数据分析师)看了以后说,就手工完成吧。反正只有一个月,这件事情每天做 3 分钟,也没有多耽误时间。

TPM 看了以后说,这事情每天做做很简单啊,写一张便签贴在屏幕上,每天就不会忘记了。

Dev Manager 看了以后说,衡量一下这个很小的时间成本,用其它的方式来解决是不划算的,还是手工搞定吧。

……

不过地球上还有一种特殊的物种不同意。它门叫做程序员——这么重复性的劳动难道不能用脚本完成吗?

就是,用 geek 的脚趾头想一想,这还用问?

于是写脚本,调试,测试,整合,两个钟

[……]阅读全文

谈谈月饼事件

mind control

最近在程序员圈子内引起热烈讨论的月饼事件的详情 在此 ,阿里巴巴也给出了 官方回应 ,事件本身的大致内容是:

阿里巴巴有一些低于市场价的月饼供员工抢购,算是公司福利的一种体现。但是安全相关部门的 5 位员工写了脚本,利用内部抢购系统漏洞,抢到了超过限制数量的 133 盒月饼。

于是看到了各种各样的声音,有表示公司做得对;有表示公司的处理方式简直不可理喻;也有质疑公司 HR 的权力之大的。于是讨论就上升到了公司的文化,以及公司的价值观上面。

这件事情在互联网上的讨论已经非常充分了。以下是我的几个观点:

从公司层面上看,杀一儆百,给其他员工带来的是警示作用。我更相信他们只是为了践行这一点的牺牲品。有点必须绝对“

[……]阅读全文

再谈程序员学英语

english

2012 年的时候,我曾经写了一篇 《程序员学英语》,总结了一些我对于英语学习的看法,包括为什么英语对于程序员来说如此重要,还有一些自己总结的英语学习的方法。时过境迁,在西雅图待了半年多了,于是在这些内容基础上,我现在有了一些新感触,以 tips 的记录在这里,希望对于像我这样对于英语学习天赋平平的程序员来说有所帮助。

先说明一点,通常情况下我不太赞同高强度的语言训练,譬如连续地花时间背诵红宝书,我没有 GRE 的迫切压力,自然也不会像那些莘莘学子一样花数周的时间反复强力地背诵和巩固红宝书词汇。当然,话说回来,这可能还是最佳的单词记忆方式,因为可以做到高密度的反复。在一周内记诵的词汇得到反复,比每天零零

[……]阅读全文

进阶过程:程序员做项目的独立性

project 第一阶段:编码机器

这是最低级的阶段,程序员拿到详细设计文档,上面连许多方法接口都定义好了。重构一些代码,写一些实现,调用一些既定的 API,然后花许多时间在各种各样的场景测试上面。从做的工作上看,这都不能算程序员,最多,只是编码技巧卓越的码农而已。因为它几乎扼杀了一切创造力,但是这很常见,比如在一些对日外包公司,就是如此。

第二阶段:独立的实现者

程序员得到的只是粗略的设计文档,也许注明了外部接口的清单,还有框架和基础设施的 API,需求已经澄清清楚,接下去要做的就是发挥聪明才智把软件实现设计好,把代码写好,测试通过。这项工作可以在安静和独立的环境中完成,因为没有什么是不够明确的,那些本不清楚

[……]阅读全文

多面手程序员

1 先来看看这样的场景:

  • “没有美工做的高保真页面,我怎么来开发呢?我没有审美,也不会用 PS 作图啊。”
  • “正交测试这种技巧,是测试工程师应该掌握的,开发不需要了解。”
  • “目前进度的瓶颈在产品经理那里,他还没有给我澄清需求。难道要一个写代码的去给客户整理需求么?”
  • “我是 C++程序员,我是做底层开发的啊,这种页面样式的问题我怎么可能懂?”
  • “这是维优人员关注的线上数据,他应该把日志、错误现象全部备齐了再提交问题给开发。”
  • “这是他的模块,把问题提给他来处理。”
  • ……

这些是我下面要反驳的一些做法,你有没有中枪的?

事实上,我已经在很多篇文章里(比如 这篇文章)阐述了这样的观点:程序员要多能。很多情

[……]阅读全文

我们到底要怎样招程序员?

hire 我曾经写过一篇 《我面试别人的常见方式》,也是我在上一家公司面试程序员采用的办法,现在想来,我的许多观念已经发生了变化。面试的过程,是一个双向选择的过程,更是一个学习思考的过程,在这个过程中,沟通交流的时间特别多,这和一般工作时间的氛围和体验是有所不同的。对人的选择,IT 领域有太多的观点。这些想法几个月前就有,不过其实我更想等经历更多的面试,想法成熟一点再说,不过最近一段时间也没有什么机会参加面试,所以我想先把这些思考记录下来。毕竟,错过的东西总是显得可惜。

选择“ 知识” 还是“ 能力”?

从拿来即用的要求出发,知识开阔、有丰富经验的程序员总是更

[……]阅读全文

程序员漫画

今天有一位同事群发了这样一张有意思的程序员漫画:

wtf

上面说的是,唯一有效地测量代码质量的标准是:每分钟“WTF (What The Fuck)”的数量。

然后,又有一位同事给了 stackoverflow 上的一个新 链接 ,爆长的回复。帖子名称叫做:What’s your favorite “programmer” cartoon?(最喜欢的程序员漫画是什么?)

楼主贴图:

fox

这则程序打印的内容是:我再也不在课堂上乱扔纸飞机了。这句话打印 500 次。

后面有人吐槽:居然打印那么多都没有换行。然后就是关于这个 main 函数语法的讨论,哎,程序员啊……

下面还有 207 个其它回答:

xkcd

这是从大名鼎鼎的 x

[……]阅读全文

C++程序员和 Java 程序员的差异

C  _Java 首先说明,这几年接触的最多的程序员就是 C++程序员和 Java 程序员,这只是我自己的一点体会而已,一个人的眼光难免是浅薄的。不过,欢迎拍砖,也欢迎对号入座。

从对基础知识掌握的程度来说,例如数据结构和算法,C++程序员要比 Java 程序员牢靠得多。究其原因,大概是因为 C++程序员需要经常自己实现那些项目基础设施,但是 Java 程序员大多拿来即用。公平地说,C++不是一门适合程序员初学者的语言,但是 Java 是。C++程序看起来确实要比 Java 程序稍难懂一些,C++程序员往往思维更加严密。另一方面,我也发现内地的程序员要比沿海和发达城市的程序员基础扎实,而且低调内敛,不那么浮华,但是就是善于解决那些难

[……]阅读全文

编程的未来

1 最近在看一本书,加来道雄(Michio Kaku)的《物理学的未来》,第一、第二章是程序员更加关心的,对于下一个 100 年计算机和人工智能未来的预测。想想计算机发展短暂的历史,这些发生了的翻天覆地的变化,似乎都在弹指一挥间。谁的大胆预测可以那么准确?无论如何,书中对其这样几个猜想令我记忆深刻:

  • 因特网眼镜和隐形镜片
  • 无人驾驶汽车
  • 摩尔定律结束
  • 通用翻译器
  • 全息摄影和三维影像
  • 意识识别
  • 有意识情感的机器人
  • 模拟大脑

这是物理学家眼中的世界(另外推荐他的另一本书《平行宇宙》),激动人心;另一方面,我回想起小时候无比痴迷的机器猫,小小四维空间袋,寄托了孩子多少纯真的梦想,有多少神奇的

[……]阅读全文

致那些自嘲码农的苦逼程序员

1 好吧你可以说这是水文。

今天下午和经理聊了一些关于软件行业的话题,这两天晚上都有朋友向我倾诉程序员的茫然和苦楚,我觉得有些想法可以记录下来。时光佐证,其实我好久没写发骚的文字了,就啰嗦啰嗦。我不算一个梦想家,但是对于信念还比较固执。人各有志,赚钱多多的钱,没有什么不好。但是我希望赚钱能真正作为一项副产品,把自己希望的事情,当做一项事业去做。

互联网环境恶劣、软件环境恶劣,来到北京工作数个月,我有一些未曾体味到的感触。多少人都在议论吃青春饭的职业,多少人在自嘲重复劳动、苦逼工作,多少人在听到“ 程序员” 三个字以后露出鄙夷的神色…… 我已经没法

[……]阅读全文

解雇专业的运维人员吧

mt 在很多情况下,运维占到软件成本的大块,专业的运维人员更是不好找。这样的人需要熟悉操作系统、网络以及数据库。而运维又是一件很苦逼的事情,成了算是软件写得好,研发团队的功劳;败了就得彻夜坚守岗位提供支持,不可控的因素太多。是上游团队的软件质量太差吗?

我在 09 年的时候曾经到过局方,呆了挺长一段时间,既是开局,也做运维的工作,和运维的工程师朋友一起蹲机房、守夜、切设备,知道其中无比的苦楚。很多情况下,版本的更迭、割接,都要在凌晨完成,需要仔仔细细地测试;不幸失败了还需要立即回滚,然后陪着项目组等领导骂,等新版本或者补丁到来,再重复熬夜的这段过程……

不如大胆一些,解雇你那些抱怨不止、喋喋不休的运维

[……]阅读全文

程序员学英语

老实说,我对于英语的认识,从没有把它的重要性放到一个足够的高度上来,从去年下半年开始,接触到越来越多的英文材料,也随着视野的开阔,逐渐发现英文能力,是程序员个人发展的必备技能。在很多情况下,它的重要性可以用“ 致命” 来形容。以前有同事说,程序员职业生涯的发展,起到决定作用的,绝大多数时候都不是技术和业务,而是其他被人忽视的“ 软实力”,譬如沟通、性格、英文等等。兴许我现在正在渐渐参悟这句话的含义。

我在 这篇文章 中,已经讲到了“ 为什么程序员非得搞定英语”:

中国人为什么要学英语,程序员为什么要学英语,当我把那些方法名、

[……]阅读全文

普通程序员、文艺程序员和 2B 程序员

本文纯属扯淡,欢迎对号入座。如果你不知道什么是普通青年、文艺青年和 2B 青年,请绕道。我说的是程序员的版本。

 

笔记本电脑

普通程序员:

image

文艺程序员:

image

2B 程序员:

image

 

求 2 的 32 次方

普通程序员:

System.out.println(Math.pow(2, 32));

文艺程序员:

System.out.println(1L<<32);

2B 程序员:

System.out.println(2*2*2*2*2*2*2*2*2*2*2*2*2*2*2*2*2*2*2*2*2*2*2*2*2*2*2*2*2*2*2);

[……]阅读全文

“ 你不适合做程序员”

1 我的一位同事,他带他读小学的孩子去学钢琴,通过关系找了一位有点名气的退休的老教师,学费不菲。他说其实他并不知道为什么要学,但是看到那么多孩子都在学钢琴,他想,他的孩子不能落后。一个月之后,他去问钢琴老师,对孩子的学习有什么建议没有。钢琴老师用尽了委婉的表达,最后说:

对于你的孩子在学音乐方面,我最大的建议,就是你的孩子最好别学音乐 ”。

什么?!

这位同事听了当然恼怒,但是转念一想,老师未尝不是负责任的。通常这样的老师,赚钱之心,都会忽悠家长,或者好话歹说,很少有说“ 不” 的。 但是真话就是这么犀利

他说:“ 我们平时并不容易听

[……]阅读全文

谈谈对程序员的培养

1 这篇文字是我好久以来的想法,有一些感悟,有一些激烈的言辞,我很自豪我就是一名程序员,我希望给程序员或者前程序员们带来一点启发。也许你认可我的言辞,也许你不屑我的观点,无论如何,欢迎谈谈你的看法。

 

让程序员做更多种类的事

为什么有人说小公司锻炼人?在小公司,条件并不那么齐备,很多事情都需要程序员自己做,自己去澄清需求、自己做设计、自己搭建环境、自己测试,甚至自己上线、自己维护(这件事情在我们团队被称为“自己吃自己狗食”)。

然而到了某些公司,在一些正规的流程下,“人”反而显得不那么重要了:一个完、整的流程被切分成若干环节,程序员只能负责那小小的一环,更严重的是,他们显示出消极和片

[……]阅读全文

程序员眼中三种类型的公司

1 劳动密集型公司

这样的公司以业务为导向,市场团队在公司中占据较高的地位。每一个技术人员最终被折算到了“人天”里面去,团队规模相对较大,所有技术人员都比较容易被替代,能力强的可以做更多的事情,能力弱的就少做一些。通过强有力的制度、政策和流程的规约,团队有条不紊地运作起来。业务氛围强势,技术通道升级较慢,需要非常长期的积累才可以获得丰厚的回报,诸多优秀人才脱离编码,而潜心转管理、谈需求并获得回报。愿意招纳毕业生编码,以减小运营成本。只鼓励小范围、浅层次的创新,对于优秀的创意、想法,必须转化为生产力才能够被认可。

 

技术密集型公司

这样的公司较为重视技术和创新,敢于在产品中使用预期能够

[……]阅读全文

写在职业生涯的路口

cross 工作变更的事宜快要告一段落了,从电信行业转向互联网行业。其实我不算一个很有经历的人,但是我依然愿意回头望望走过的路,记录下我的体验、感触,给那些刚入职的兄弟们、遇到困惑的朋友们,说一些小小的事情,给一些小小的建议;同时,更作为一份小小的新年礼物,送给自己。

 

—————————————————————————————————————-

 

关于求职

 

每一次求职都意味着一次挑战,在这一步过程中,至少要

[……]阅读全文

一些平安夜里的 IT 人

1 一个普通的平安夜。

而我,已经过了遍地牢骚的年纪。

可是有一些 IT 人,他们都在平安夜里做什么?

有人在和客户洽谈,有人在现场维护,有人在加班 Coding,还有人,像我一样,在各个技术网站上闲逛,写一些小众的、自我感觉有一点点营养的博客,赢取 IT 业的兄弟姐妹们一点唏嘘,一点赞同。

年岁不算大,但是在 IT 业,工作经历也到了一个可以被称作老员工的时候;故事不算多,但是在 IT 业,生活体验也到了一个可以被扯出来摆事实讲道理说教的阶段。我做出了一个决定,在思索良久之后,我想从电信领域转到互联网领域,寻求下一段职业发展旅程。

好歹不算头疼脑热,好歹也不算神经冲动, 最近看到一篇文章 ,又让我想起了最

[……]阅读全文

程序员看法上的几个典型错误

1 今天我不谈抱负理想,也不谈具体的技术,我来谈几个看法上的典型错误。下面的这些问题都是我曾经遇到,或者是我的朋友们遇到过的问题,这些都是我个人的理解,希望对大家有帮助。

 

关于设计模式、设计原则

有人认为,熟悉了设计模式、设计原则,就学会了设计。其实,设计模式和设计原则,只是前人根据设计实践做的总结和提炼, 设计,归根到底是要解决问题的,把具体问题的解决办法,经过一定的抽象,变成程序员的语言

我见过一些人, 他们知识渊博、见识广博,甚至理论可以给你阐述得冠冕堂皇,但是到了实际需要解决问题的时候,他们却拿不出巧妙的、优雅的办法,这是典型的象牙塔人

另一方面,也有一些人看不起学习设计模

[……]阅读全文

back to top