月度归档: 2016 年 6 月

此处有bug:程序员统治的黑暗世界

此处有bug:程序员统治的黑暗世界

如果做搜索引擎的人在自己家人生病时不用自己做的搜索引擎寻医问药,如果做视频网站的人不会让自己的女儿看自己做的视频网站上的内容,如果做社交网络的人劝告自己的父母不要相信自己做的社交网络上传播的信息,那就说明这些人知道自己是在作恶。

学会这7招 7天学会任意一门语言

学会这7招 7天学会任意一门语言

掌握了十门语言的双胞胎Matthew和Michael Youlden在他们的居住地柏林接受了“一周内学会一门语言”的挑战。我们能从他们的学习方式中学到些什么呢?一起来看这7条经验。

聊聊程序员的工匠人生

聊聊程序员的工匠人生

程序员的人生看起来五花八门,可以是Windows系、Android系、iPhone系等,这代码如人生的的IT行业,码农们也具有珍贵的工匠精神。泰山不让土壤,故能成其大;河海不择细流,故能就其深。优秀程序员的价值,不在于其所掌握的几招屠龙之术,而是在细节中见真著。来读一读网友 Hesey小纯纯的描述。

一个老码农的技术理想

一个老码农的技术理想

工作这么多年,一直在思考工程师这三个字的意义,终于有一天恍然大悟,原来就是:用技术手段改进世界。

程序员编程的7+1条小贴士

程序员编程的7+1条小贴士

用 10 分钟,20 分钟甚至 30 分钟的时间来想想你需要什么,想想什么样的设计模式(如果有的话)适合你将要编码的东西。真的要好好想想,你会很庆幸“浪费”了那几分钟,当你不得不更改或添加东西到代码中,而这只花费了你 30 分钟的时间而不是 5 小时。

开发一个软件最少需要多少人?

开发一个软件最少需要多少人?

“换一个灯泡需要多少个______?” 类似的笑话有无数个版本。

假如程序员生活在童话里…

假如程序员生活在童话里…

在 IT 行业里,有这样一个美丽的传说。据故老相传,每年的农历七月初七,程序员们可以回家,和老婆孩子见上一面……

软件开发不能用盖房子来比喻

软件开发不能用盖房子来比喻

多年以来,软件行业一直在使用一种类比,即以建筑行业来做参考和比喻。这种比较在软件语言里随处可见,比如架构(architecture)、地基(foundation)、建造者(constructor)、项目(project)、施工规范(building code)等。这些说法是如此之流行,以至于影响到了我们对软件开发的理解。不幸的是,这种比喻从根本上来说是不恰当的,它的缺陷已经把我们引向了一些错误的道路。

“吃饭、睡觉、写代码、周而复始”,何其操蛋的生活

“吃饭、睡觉、写代码、周而复始”,何其操蛋的生活

“吃饭、睡觉、写代码、周而复始”这句口号在会议期间随处可见。我之前也读到过,只是这一次尤其触动我,或许原因是如此重要的技术大会不遗余力的大势宣传。毫不夸张地说,我的确确在见到标语时发出了一声感叹。

王垠:Swift 语言的设计错误

王垠:Swift 语言的设计错误

在『编程的智慧』 一文中,我分析和肯定了 Swift 语言的 optional type 设计,但这并不等于 Swift 语言的整体设计是完美没有问题的。其实 Swift 1.0 刚出来的时候,我就发现它的 array 可变性设计存在严重的错误。Swift 2.0 修正了这个问题,然而他们的修正方法却没有击中要害,所以导致了其它的问题。这个错误一直延续到今天。

如何养成好的阅读习惯?

如何养成好的阅读习惯?

Rick Webb 写了一篇关于阅读的好文,提到了他一年要读 60 本书,而他却是一个手头事情很多、忙忙碌碌的专业人士,那么他的阅读习惯是什么呢?我这里借鉴了他的观点,也加入了一些我自己的想法。

为什么代码缩进时必须要用 Tab 而不能用空格

为什么代码缩进时必须要用 Tab 而不能用空格

美化代码(对齐和缩进)时用 Tab 还是空格,这个话题和浏览器和操作系统之战,都是老生常谈的话题,都能让程序员争辩很久的。2015 年程序员 Uku Pattak 分析了 GitHub 上多种语言的热门项目(star 数量高)中使用 Tab 和空格的对比情况。今天这篇文章出自前端大牛 Lea Verou。

程序员必须掌握的6种软技能

程序员必须掌握的6种软技能

如果你想要开启作为 web 开发人员的职业生涯,那么你需要涉及的不仅仅是知道如何写代码。有一些通用的软技能几乎可用于每个领域——包括技术行业。成为软件开发人员涉及的不仅仅是编写代码。自从我开始我的第一份作为软件开发人员的工作之后,我很快就知道了这一点。如果你想要在这个领域茁壮成长的话,那么你需要学习“特定的技能系列”

图解Javascript原型(prototype)链

图解Javascript原型(prototype)链

本文尝试阐述Js中原型(prototype)、原型链(prototype chain)等概念及其作用机制。上一篇文章(图解Javascript上下文与作用域)介绍了Js中变量作用域的相关概念,实际上关注的一个核心问题是:“在执行当前这行代码时Js解释器可以获取哪些变量”,而原型与原型链实际上还是关于这一问题。

Linux Shell编程中的特殊符号

Linux Shell编程中的特殊符号

学会本文内容可以帮助你写出天书一样的bash脚本,并且顺便解决以下问题: 输入输出重定向是什么原理? exec 3<> /tmp/filename是什么鬼?
你玩过bash的关联数组吗? 如何不用if判断变量是否被定义? 脚本中字符串替换和删除操作不用sed怎么做? ” “和’ ‘有什么不同? 正则表达式和bash通配符是一回事么?

新手选择使用 Linux 桌面的七个注意点

新手选择使用 Linux 桌面的七个注意点

这个问题没有轻松的答案,如果你是新用户,之前没有用过任何Linux桌面选项,更是这样。围绕这个话题而写的文章大多数也没有多大帮助,因为它们主要阐述什么最适合新用户使用,而不是帮助新用户自行确定。本文给出对立的设计选择,让用户根据自己的偏好和工作习惯来选择。

程序员为什么会是现在这个样子?

程序员为什么会是现在这个样子?

一直以来,人们对男性程序员的印象是不善交际的、刻板的。虽然,“技术多样性”是一个 非常热门的话题,但这一印象仍没有得到任何改善。相反,许多IT业内外人士都认为这是理所 当然的,这种刻板的印象是一种自然常态,而这种感觉正式这个行业更包容,更令人为之心动 的一个方面。那么,这种印象是从何而来呢?

李开复:为什么我不赞成毕业后创业?

李开复:为什么我不赞成毕业后创业?

有同学曾经问我:开复老师,我是一个即将大学毕业的理工科学生,面临着自己创业与进入企业的两难选择,如果我最终选择自己创业,您是否能够提供一些经验之谈?

Sass 与 SCSS 是什么关系?

Sass 与 SCSS 是什么关系?

我最近写了很多 Sass 代码,但是最近发现并不是每一个人都知道 Sass 具体是什么。下面是一个简短的说明:当我们说起 Sass ,我们经常指的是两种事物:一种 css 预处理器和一种语言。我们经常这样说,“我们正在使用 Sass”,或者 “这是一个 Sass mixin”。同时,Sass (预处理器)有两种不同的语法:

CSS中的背景用法大全

CSS中的背景用法大全

,最早的background 只能使用纯色填充,现在却可以使用各种渐变效果。现在所用的模型来自于CSS Backgrounds and Borders Module Level 3所定义的规范,主要分成了8个子属性。

Linux 新手要了解的十个知识点

Linux 新手要了解的十个知识点

Linux是大小写敏感的系统,举个例子,Mozilla, MOZILLA, mOzilla和 mozilla是四个不同的命令(但是只有第四个mozilla是真正有效的命令)。还有,my_filE, my_file,和 my_FILE是三个不同的文件。用户的登录名和秘密也是大小写敏感的(这是因为UNIX系统和C语言的传统一向是大小写敏感所致)。

编程语言漫谈

编程语言漫谈

我们知道现有语言的编程范式有:过程式,面向对象,函数式,逻辑式。随着软件工业化程度的普及,以及软件的复杂度越来越高,编程语言的发展历程 也是从最初的过程式(命令式)语言c,发展到以java语言为代表的面向对象编程语言。而逻辑编程语言(以prolog为代表)和函数式语言(lisp系 列)还多用在学术和人工智能领域中。近几年,随着多核,云计算时代的到来。函数式编程语言逐渐浮出水面,最经典的语言以scheme,common- lisp,ml,clojure,go为代表.而且最近的jdk8也逐步加入了functional,closure,lambda等语法

59 条搞笑但却真实无比的编程语录

59 条搞笑但却真实无比的编程语录

一个人写的烂软件将会给另一个人带来一份全职工作。

在日本,程序媛的生活是怎样的?

在日本,程序媛的生活是怎样的?

项目开始,晃晃悠悠 项目收尾,点灯熬油的情况 大家一定经历过很多吧?在这个行业里面都说,女人当男人用,男人当牲口用。虽然程序媛们很辛苦,但我想也一定是累并快乐着吧。经历过赶场似的项目,累归累 但也学到了很多东西不是吗?各位职场新人们,如果你们有什么感悟的话,欢迎在下面留言,和大伙儿分享一下吧。

扫地机器人是怎么做路径规划的?

扫地机器人是怎么做路径规划的?

移 动机器人的路径规划技术已经取得了丰硕成果,但各种方法各有优缺点,也没有一种方法能适用于任何场合,如模版匹配方法过于依赖机器人过去的经验; 人工势 场路径规划方法通常存在局部极小点和计算量过大的问题。不过随着科技不断发展,这些问题都会出现新的解决或者替代方法,