摘要:大局意识就是合理地优先处理某些重要的小项目。对于所做事情的意义,我想到了美国西部大淘金的时代。我在美国时发现很多产业都只剩下几个巨头在竞争,而国内各种类似领域有大量小公司的存在。
Integ 是 SegmentFault 的前端 Hacker,在本次访谈中贡献了编程五年多的感悟与总结。Codes Don"t Lie 这个标题(并非 Hips Don"t Lie)代表了 Integ 的诚恳和回答的干货满满。在访谈中,他谈到了最近国内互联网创业热潮的成就及其存在的问题,发表了对行业热门的 JavaScript 的看法,对极客精神的理解,并且在最后谈到了政治和商业对个人隐私的威胁。
Part I. Scrum Master 与“大菊观”你为什么自称 Scrum Master?
"It sounds cool."
只是单纯的喜欢这个名字,虽然我个人是反对 Scrum 的,原因是它限制了程序员的创造力。SegmentFault 团队在尝试过一次之后也没有继续使用。
Scrum 在橄榄球里的意思是争球,而在软件工程中是一种协同工作的方法论,也就是常说的“敏捷开发”。大致的流程是大家通过积极的讨论,确定各自的任务和所需的时间,通过移动 Storyboard 上的小纸条,清晰地向所有人展示整个项目的状态。先拆分任务,然后大家一起用扑克牌来估时,每个人使用一张扑克牌,上面的数字代表这项任务需要多少时间完成。通过这种方式,理论上一个庞大的团队可以有效率的完成一个项目。
在我们使用 Scrum 的过程中,第一个 Sprint 就觉得它很有趣,效率也很高。可是慢慢的我们发现它过于程式化,给人一种死板、走流程的印象。在我们只有 3 个人的小团队(一个前端,一个后端,一个设计师兼产品经理)里根本施展不开,简直就是用超级计算机玩扫雷。Scrum 的强透明的属性可能更适合远程的团队使用。
JavaScript 最近几年是程序员中的一个热点,你对此有什么看法?
JavaScript 是互联网时代的汇编语言。
我写 JavaScript 已经接近 5 年了,但是觉得距离精通这门语言还很远。JavaScript 是一门更新很快的语言,用最新的 JavaScript 规范写出的代码,和 JavaScript 刚创造出来时写出的代码,看上去可能差别很大,甚至是用另一种语言写出来的感受。然而,虽然已有多代的更新,我个人觉得,编程的思维模式几乎没有改变。JavaScirpt 最初只是 Brendan Eich 用很短时间设计出来的语言,很难做到完美。然而现在用户众多,即使有更好的语言出现,我个人认为在短时间内也难以替代。
你个人积累了很多开发经验,有什么给新手程序员的建议吗?
“大菊观。”
当我刚开始接触编程的时候,关注点都在于如何用代码来实现自己的想法。写了很多个小程序,当我开始真正接触大项目,我发现写代码来解决某一个问题只是编程的第一阶段而已。这仅仅是实现编程路上的一个小台阶。到了第二个阶段,编程的关键在于拥有大局意识,不仅要把功能实现,还要把程序实现得优雅,易于维护,甚至可以快速推倒重来。大局意识还有一个好处:可以大幅节省时间。一个大项目,可以拆分成很多个小功能,这些小功能有些简单有些复杂,有些重要,有些不重要,一定要先挑简单且重要的做,然后是重要但不简单,而复杂且不重要的一定最后做,因为它们很可能在之后的产品设计中被抛弃。大局意识就是合理地优先处理某些重要的小项目。
简单介绍一下在 SegmentFault 的工作。如何看待 SegmentFault 的价值?
我在 SegmentFault 主要做的是前端开发。除了网站的开发和维护,还会做一部分运营和创意的工作,偶尔还会客串下 DevOps。在 SF 所有工作的目的都是一致的:保证每个用户都可以轻松愉快地使用我们的服务。对于 SF 所做事情的意义,我想到了美国西部大淘金的时代。虽然现在已经没有淘金者了,但是那些默默无闻的为淘金者提供各种相关服务的人同样推动了那个时代的发展。同样的道理,这是开发者的时代,大量的资本和人才涌入互联网行业,SF 服务于开发者,为他们搭建平台,提供支持。所以我对 SF 的未来还是很有信心的。
Part II. 互联网创业热潮与极客精神身为创业公司的一员,你对国内的创业热怎么看?
商业是有生命的,会自我驱动和救赎。
我认为国内的互联网创业热潮,彻底改变了中国互联网的面貌,甚至改变了很多人的命运。虽然不可避免的存在一定泡沫的,但勇敢的弗拉多正站在这样一群霍比特人之间。虽然我对一些互联网公司的未来不是很乐观,可能一些公司更像是在做市场调研,付出了很多努力,发掘了新市场后,很有可能后来居上,被其他人学走商业模式和核心技术,然后把第一批初创公司挤出市场。创新在很多领域都有,重点在于如何构建商业模式,实现它的价值。我在美国时发现很多产业都只剩下几个巨头在竞争,而国内各种类似领域有大量小公司的存在。对于小公司来说规模扩张的成本在提高,人力成本也在提高,每个领域最后可能只会剩下做得最好的几家公司。
你是如何理解极客精神的?
Geek 都是理想主义者。
在我看来,真正的极客精神是非常理想化的。首先,你需要大量的时间,需要不用去考虑物质因素,不向现实妥协。在这种不计成本的情况下,真正的极客会不计精力地去钻研 TA 所热爱的事物,制造新鲜的东西。如果有人问一个专业登山者:“你为什么做这些?”,正确的答案是:“因为山就在那里”。极客也是如此。纯纯粹粹地为了探索而探索,就像物理学家费曼,特别喜欢研究如何开锁,但他不用去顾虑这些研究是否会带来实质性的回报。与此同时,真正的极客不能局限于某个领域,那样只能被称作某些领域的专家。极客有着无限膨胀的好奇心,对身边的各种事物都会克制不住地去探个究竟。从这个意义上说,国内真正的极客还是少见的。
Part III. 自由软件与知识产权激进主义看到了你博客里关于《若为自由故》的读书笔记1,想问下你对知识产权和开源的个人看法?
《Free as in Freedom》这本书向所有人发出了警告,信息安全问题势必成为互联网行业的 H-Bomb。
无论是微软、苹果之类的科技公司巨头还是各类信息服务提供商,虽然可能并不希望这样做,但它们的一些不透明行为,导致其用户的隐私,存在着严重的安全隐患。除了这些公司里的一部分人,其使用者根本不能确定自己的用户信息、密码、搜索记录等内容是否万无一失,是否会被他人染指。尤其是在恐怖主义的威胁下,很多国家出台了应对法案,一个主要附带结果就是个人隐私的威胁进一步扩大。《若为自由故》的作者 Richard Stallman 提出的解决方案是拥抱自由软件。
可能很多人会误解自由软件,认为开源和保护知识产权是相互矛盾的,其实并非这样。正因为各种开源协议的存在,我们可以更好的保护自己的知识产权不受侵害。而且,自由软件并不反对商业。甚至 RMS 明确提出了“自由商业软件”的概念。
人们应当可以以任何有价值的方式自由地使用软件。——自由软件的哲学
互联网之子 Aaron Swartz 的自杀,引发了人们对公共领域的思考。他是一个殉道者,他做的事情在当时是存在道德风险的,然而他的死促进了社会大众对公共领域看法的大幅改变。人类知识智慧的结晶应让所有人分享,这样我们才能在真理的追求上不断前进,然而我不否认知识产权所有者对应得利益的索取。
Richard Stallman 和 Arron Swartz 都是 知识产权激进主义 的代表人物。他们的行为和观点不能简单的用对或错来评价,这些观点对于处在不同时代不同的人有不同的利与弊,受争议是必然的。
如果大家有任何问题,或者就某一话题想讨论,请在评论区留言给 Integ~
//看破红尘清新文艺的编程女纸 Lily,愤世嫉俗逗逼无穷的编程喷子 Pepper
Pepper:Lily,我们是何方妖怪?
Lily:我们都是萌萌哒美帝大二在读生,现在在 SegmentFault 实习中。
Pepper:我们最近两打什么酱油?
Lily:我们要制作一个访谈系列,为打破外界对程序员简单平面的偏见,他们其实都是有血有肉有思想的创造家。
《自由软件利与弊》 ↩
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/78561.html
摘要:错过了一周的优质内容,不要再错过周一的快速回顾一周深度揭秘启动全过程翻译组每周社区问答入门语言简明入门与提高一只爬虫崔小拽爬虫知乎用户数据爬取和分析如何学习开源动效分析二动画最佳实践一工具箱之生命周期工具箱之权限管理一步步创建自己的框 错过了一周的优质内容,不要再错过周一的快速回顾 一周 fir.im Weekly -《深度揭秘 App 启动全过程》 SwiftGG翻译组 -《每周 S...
摘要:错过了一周的优质内容,不要再错过周一的快速回顾一周深度揭秘启动全过程翻译组每周社区问答入门语言简明入门与提高一只爬虫崔小拽爬虫知乎用户数据爬取和分析如何学习开源动效分析二动画最佳实践一工具箱之生命周期工具箱之权限管理一步步创建自己的框 错过了一周的优质内容,不要再错过周一的快速回顾 一周 fir.im Weekly -《深度揭秘 App 启动全过程》 SwiftGG翻译组 -《每周 S...
摘要:为了避免重复调用,可以适当地做缓存,的装饰器可以完美的完成这一任务。这意味着我们可以为方法创建装饰器,只是要记得考虑。装饰器封装了函数,这使得调试函数变得困难。另外,使用装饰器去管理缓存和权限。 原文地址 之前用python简单写了一下斐波那契数列的递归实现(如下),发现运行速度很慢。 def fib_direct(n): assert n > 0, invalid n ...
摘要:基本概念首先,函数不能存储的值,指向哪里,取决于调用它的对象。如果没有这个对象,那默认就是调用非严格模式下。也就是说是在运行的时候定义的,不是在绑定的时候定义的。 基本概念 首先,函数不能存储this的值,this指向哪里,取决于调用它的对象。如果没有这个对象,那默认就是window调用(非严格模式下)。也就是说this是在运行的时候定义的,不是在绑定的时候定义的。 funct...
阅读 3727·2021-11-24 09:39
阅读 3442·2019-08-30 15:56
阅读 1368·2019-08-30 15:55
阅读 1030·2019-08-30 15:53
阅读 1918·2019-08-29 18:37
阅读 3599·2019-08-29 18:32
阅读 3126·2019-08-29 16:30
阅读 2916·2019-08-29 15:14