微小说之一个外科医生和互联网公司高管的对话
一个外科医生和一个互联网高管,在年末的某个聚会见面了,意气风发,志得满满。
“您好!”
“您好!“
“今年怎么样?很辛苦吧?”
“还好,这一年大概做了三百多台手术,您怎么样?”
一个外科医生和一个互联网高管,在年末的某个聚会见面了,意气风发,志得满满。
“您好!”
“您好!“
“今年怎么样?很辛苦吧?”
“还好,这一年大概做了三百多台手术,您怎么样?”
我在M公司工作了接近三年,跳槽前接到的的最后一项工作,是作为公司的黑客马拉松组委会一员,组织当年的黑马活动:CTF夺旗赛,即Capture The Flag。做网络安全应该很熟悉这项赛事,而我在当时,仅仅是对这个赛事的名称和赛制略有了解而已,虽然当时已经确定了下一份工作是一家API安全公司。 参与这个工作的原因大致是因为我要离职,所以手上没有确定的长期工作,而过往的工作交道中可能给组委会的负责人K姐留下了点做事细致且能填得了新坑的印象,反正公司内也没什么研发懂这个事情,于是我就稀里糊涂了便成为了实际上的技术负责人,时间其实有点紧张,印象中是在我提出离职后,大概也就不到一个月的准备时间。 大部门的领导帮忙出面向其他部门邀题的同时,我就在思考题目的组织方式,不能太难,Pwn这种二进制漏洞作为非安全公司的黑马竞赛题目就完全不合适了,可能时间全部耗完都没人有任何思路,Reverse Engineering也不太合适,简单到可以归类于MISC难度的还凑活。最后的题目主干由Crypto和MISC,以及Web组成,重点用Web做区分度。 我当时的设想是,整个比赛要有话题性和热度,不能太难,让参赛队伍都卡住,也不能太简单,让参赛队伍最后按照解题速度来排名,最好有点普适的趣味度让不同背景的团队都有所得,也能有一定的安全实战场景,体现一定的专业性和教育性。 因为这是公司的第一届CTF比赛,所以并没有合适的人讨论或者过往的经验参考,专业的CTF比赛经验又不适用于我们,所以在网上选题的时候,我对于每道题都会在不看答案的情况下从头开始思考,一直到做出结果,然后再去看题目原有的解题思路,考虑和比较其中的不同之处,再考虑所有参赛队伍的能力情况,以此来预测最后的通过率和解题时间的上下限。基于这种"普通程序员“的视角,很多从其他部门邀来的题目,就被淘汰掉了,或者过于偏门,或者过于艰难,所以最后所有的题目都是我筛选或者选择后的定稿。 压轴题是一道PHP的Phar漏洞和目录遍历漏洞的Web题,在网上找到原题后,从头开始做了一遍再对照原题的解题思路,把细节处做了一些调整,使得题目与原题不全相同又更简单了一些。虽然略显“专业”,但是对于基础扎实和逻辑性强的队伍,即使没有任何相关背景,也能通过搜索关键词在网上找到提示,一步步做出解答。 最后再对所有题目检查一遍,确保解题思路在“普通程序员”的知识范围之内,虽然这个知识范围的跨度也已经很大了,但总归能在互联网上找到思路却又不能照抄。对题目调整难度,控制解答时间,其实是一个很主观的工作,我只能不断猜测,上千人公司的研发团队,参赛的三人队伍有几十支,大部分队伍是什么样的,最优秀的又应该是什么样的。 整理完题目后便是靶场和比赛环境的部署了,虽然有运维团队和公司的网安同事帮忙,然而细节上仍然要靠自己把关,即自己去故意破坏或者修改靶场环境,单是redis环境的安全性测试就把相关的文档和配置重新啃了一遍,有些配置甚至在正常的研发需求中很少遇见,这避免了竞赛中有人删改原有答案,撑爆内存以及故意关机等,从赛后的日志来看,这些尝试都出现不止一次,当然也都失败了。 除了靶场环境以外,作为输入答案和提供实时排名的CTFd也在nginx上做了防护和实时的请求统计,当时的预测就是难免会有过度上头的围观者基于恶作剧的心态来破坏秩序,果不其然开赛时ctfd就被海量的请求刷到卡顿,在公司大群内贴出警告和对应的IP统计信息后,这些异常请求就偃旗息鼓了。 之后就是顺利的一下午,不同团队的比分逐渐拉开差距,但又都有不同速度的进展,最后半小时有两只队伍平分,并且都卡在最后的PHP的漏洞题目上,比赛截止前大概不到十分钟左右,唯一的优胜者终于打通全关。戏剧感拉足,没有意外,系统没有被破坏,所有的题目都能够被解答出来,排名在前的队伍得分紧凑又有差距,几乎所有队伍都在各自不同擅长的题目上得了分。 大老板和其他领导给优胜者们颁了奖,一等奖的团队很兴奋,二三等奖也很开心。我也很开心,虽然领导们肯定不知道这后面有什么样的细节工作,但是一切尽在计划中的满足感才能产生最多的内啡肽。K姐虽然不是研发出身,不过依照对我的信任和她自己的敏锐度应该能猜出来我到底避开了多少坑,于是赛后还特意给我发了个纪念品。 我没有给我所在团队的同事漏题,他们也没拿到任何优胜,只是参赛纪念而已,但我想他们也丝毫不会想过埋怨我 ,毕竟对于正直的人而言,公正远比蝇头小利重要得多。 离开M公司已四年有余,老同事们也星散四方,写下这段记忆,算是对当初工作一点的自傲的追忆,也是对那些可敬可爱同事的回忆。
这篇文章是作为后续一篇讨论程序员细分工作的文章的前提,我们之所以先从程序语言的历史说起,是因为当我们将程序员分为各种岗位讨论时,这些岗位其实都起源于某个源头,并从中分化,如果我们想对现实进行一个较为深入的探讨,就不得不对历史有所回顾。
今天要从宏观角度讲一个程序员是如何写程序的故事,我们假设这个程序员是一个理想的程序员,并且是无所不能的,精力充沛的,因为这样可以减少涉及多人的合作和交流(即额外的成本),我们在本文中将避免讨论此类影响。当然,理想的程序员并不存在,世界上存在的是能力上有着极大差距的个体,很多项目也需要多个程序员或者细分的其他角色来合作开发。
日报周报以及站会,在公司尤其互联网公司中,似乎总会成为一个让人感觉五味陈杂的话题,本文就借助一点作者过往的实践,做一些初步的探索。
评估一个员工的产出犹如征税,越需要精确的评估,则评估成本和对员工产出的影响则越大,如同精确征税时对征税方和被征税方的成本支出的影响,或者说,这似乎也可称作某种“测不准原理”,技术的进步可以减轻这种成本的影响,但一定无法完全消除。
前言:
黑话一词由来甚久,常人最直观的印象,便是和帮派江湖有关,而这对于大部分普通人来说自然是在现实中难以接触的,所以通常是通过文艺创作的方式让大众了解,最耳熟能详的大概便是林海雪原中的“天王盖地虎,宝塔镇河妖”。又譬如在西游记中,孙悟空在求师于菩提祖师时,也说自己“不懂行帮的市语”,请祖师讲的浅显些。查询网上的材料,大致的说法是黑话起源于唐朝,然而终究难见系统的整理,大概因为和帮派相关,上不得台面,所以无法在正史中记载,而仅能在各种文学作品或者口耳相传中记录和进化下来,唐朝又是雕版印刷术和传奇类小说兴起的朝代,这可能是黑话较难见到早于唐代记录的重要原因。
人性和理性的讨论文字,已经很多了,或者再用一个相当模糊或者不准确的定义,把人性置换为感性,大概文字会更多。
我却以为,还应该加上“财性”为好,虽然这个概念是我杜撰的。这三者大概是一个三角的关系,虽然说三者的边界往往模糊不清。
考虑各种各样的假设中的极端情况:
如果用金钱来衡量财富的话,假设一个人带着价值一千万的黄金回到100年前,甚至40年前,按照他可能的物质生活状态,可能现在的我们并不能说他富有。
既然说到盈利,那么利润从哪里来?
前文和本文可能有几点致命的缺陷,比如一,限于没有受过严格的逻辑训练,逻辑不严谨甚至有明显缺陷,定义不清晰甚至混乱,二,忽视了企业交付产品的复杂度以及金融工具的必要性,企业最早期无法交付时,是必然暂时无法盈利并且存在融资需求的,三,对金融财务等知识和货币政策的无知,宏观的背景对于企业个体的影响可能会很大。然而本文仍然斗胆尝试挑战利润起源这个话题,是因为无论从产品还是财务还是货币政策,都有太多可参考的讨论,而在这里,作者只将讨论限制在个人感兴趣并且很少找到答案的方面,即企业如何与客观世界产生了联系并且通过创造价值获取利润,并且试图理解,在隔离了各种金融工具讨论的前提下,这一点有多重要。
本篇及接下来的文章均倾向于谈论互联网行业的企业,且作者理论知识和实践经验极为有限,因而注定有所偏颇。在接下来的几篇文字中,会尝试从最尽量普适的概念开始推理,试图推导出一些常见但又不那么直接的结论,这于作者也是一种新的探索和尝试,仅试做一个交流的通道和对自我过往经验的质询,因而不敢论,甚至讲谈两个字也担当不起,于是也就随便说说罢了。