黑客 骇客

程序员为省点儿饭钱 黑进餐馆系统办了“永久饭票”

想知道“黑客”是怎么吃饭的吗?最近,南京秦淮警方抓获的一名“黑客”嫌疑人来告诉你。他在某餐馆办理一张储值卡后,便利用“黑客”技术侵入该餐馆系统,修改储值金额数据,将储值卡变成了一张“永久饭票”。而据该“黑客”交代,他这么做仅仅是为了省点伙食费。

游戏中学会撸代码:这些编程学习网站不容错过 - 1

程序员, 你过度封装了吗?

过度封装是程序员最容易犯的错, 因为是否过度并没有固定的数值标准, 只能是有经验的程序员基于科学的判断. 过度封装的危害十分严重, 所以必须重视, 并且极力避免.

linux

Linux grep命令详解

Unix的grep家族包括grep、egrep和fgrep。egrep和fgrep的命令只跟grep有很小不同。egrep是grep的扩展,支持更多的re元字符, fgrep就是fixed grep或fast grep,它们把所有的字母都看作单词,也就是说,

开源正在毁掉 Android 吗? 安卓

手把手教你搞懂Android反编译

反编译别人的程序不是什么值得炫耀的事,希望大家最好只是兴趣探索,而不是利益驱动。本文主要目的是绕开一个简单的激活程序。

Python 是电视剧,Java 是咖啡屋小甜心,程序语言都是如何命名的? - 4

Java究竟是不是纯种的面向对象?

但是在后来,我在互联网站上陆续看到不少开发者说 “Java 实际上不是纯粹的面向对象,因为并不是所有的东西在 Java 世界都是一个对象”。他们很多的论点都可以概括为以下两点:

小米首席架构师:作为20年开源老兵,我看开源这些年

一篇文章,掌握所有开源数据库的现状

本次分享聚焦于数据库既结构化数据存储 OLTP 及 NoSQL 领域,不会涉及 OLAP、对象存储、分布式文件系统。

mysql

详解MySQL调优指令 explain

在 explain的帮助下,您就知道什么时候该给表添加索引,以使用索引来查找记录从而让select 运行更快。如果由于不恰当使用索引而引起一些问题的话,可以运行 analyze table来更新该表的统计信息,例如键的基数,它能帮您在优化方面做出更好的选择。

5d4e8eff6553f83e6ffe983323a8ac07

好代码如白居易的诗:老妪能解

bug少、性能好、易修改。好的代码有着很高的影响力,能否写出这样的代码,正是评判一位开发人员是否优秀的标准。然而,虽然代码的质量很重要,但是新入行的开发人员往往感觉心有余而力不足。

红黑树 算法

红黑树算法探索笔记

最近花了些时间重拾数据结构的基础知识,先尝试了红黑树,花了大半个月的时间研究其原理和实现,下面是学习到的知识和一些笔记的分享。望各位多多指教。本次代码的实现请点击:红黑树实现代码 – gist

SaaS

何为软件即服务(SaaS)?

通俗易懂地解释了 Software-as-a-Service (SaaS) 商业模式。这种商业模式的优缺点,如果你要购买 SaaS 网站该注意哪些地方,如果你要卖你的 SaaS 网站又该注意些什么?

因为太难而被禁用的 18 道 Google 面试题

我是如何面试WEB前端开发人员的

作者先后在twitter,Stripe工作,期间会参加面试工作。实际上参加面试工作的人都知道要想在一个较短的时间内(30min-1h)就对一个应聘者做出判断其实是很难的,因此我们不得不想尽办法去更加合理的去判断面试者。下面是作者理出的一个思路:

how-to-avoid-brittle-code-624x307

让你的代码更健壮的诀窍

遗留代码最常见的问题就是脆弱性。团队如要修改脆弱的代码库,必定伴随着巨大的痛楚。在我们 ThoughtWorks 开发产品的 10 年里,当我们年复一年地尽量保持庞大代码库的延展性时,学到了一些惨痛的教训。我想在本文分享我们从最大挑战中吸取的教训。

bug debug 调试程序

程序员,你会从 Bug 中学习么?

Bug 是绝佳的学习机会。所以我们怎样尽可能多地从修复的 bug 中吸取经验?我至今已经用了 13 年的一个方法是,写下这个 bug 的简单描述、修复方法以及吸取的经验。遥想 2002 年,我偶然发现一篇描述这个方法的博客(很不幸,我没再找到)。我从那时起就使用这个方法了,并且相信它能帮助我成为一个更出色的程序员。

cm6fhYTtHuBV6J2OozWL.png

为什么谷歌将数十亿行代码储存在单一代码库中?

来自 Google 的大规模代码管理的经验之谈。monolithic repo 便于代码复用,公司范围内不同团队的人都能方便地学习以及改动所有代码,尤其是改动不同平台的代码,一个 commit 就搞定了。除了 Android 等开源项目外,Google 内大部分代码都在同一个 repo 中。这个 repo 的代码有 86 TB 之大,20 亿行源代码,共 3500 万个 commits;25000 个工程师都能访问大部分代码(除了排序算法之类的商业机密外)。

scrum-story-board 敏捷开发

为什么敏捷开发在亚洲实行不了

亚洲人习惯于和自己的伙伴保持和谐的关系,避免冲突,这就影响了亚洲的敏捷小组在从事敏捷开发时的工作方式,包括迭代计划、迭代回顾及日常敏捷工作等。据Partogi说,人们习惯于保留意见,因为他们无法适应一个他们可能会犯错误的环境,即使在这样的环境下犯错误也无所谓。

12张图看微软走过的40年 - 2

微软说它深爱着Linux,现在它用行动证明了

昨日清晨,微软在Red Hat DevNation大会上正式发布了.NET Core以及ASP.NET Core 1.0,并提供了下载,其不仅能在Windows操作系统上运行,还能在Linux和Mac OS X操作系统上运行

learn-git-in-30-minutes

30分钟学会使用Git

这是一篇给像我这样的新手或者是熟悉图形工具的老鸟看的。仅作为快速入门的教程。

n0T3oC7odYK9c6KOzPJC

在软件开发团队里如何打口水仗

开发软件是一个非常情绪化的工作,团队中的每一个人都希望这个软件可以获得成功,而有的时候这种情绪会在团队中制造紧张气氛。软件团队中流行着这样一句话:“你必须要挑选你自己的战斗。”那么问题来了,如何做这样的决定?你要跟谁干仗?

names

如何给变量取个简短且无歧义的名字

湾区日报上分享的一篇文章,文章的作者在Google设计Dart语言,就变量命名方面给了4点建议,文中也列出了好变量名、坏变量名的对比。不管作者的看法与你实际中的命名习惯是否一致,看完这篇文章,相信可以在变量命名方面有一些新的思考。

576cc069b5dc9

黑客是如何玩死微信聊天机器人的

微信作为时下最in最热的移动端即时通讯App,把我们的工作和生活紧密联系到了一起。一个脑洞大开的程序猿写了用开源程序改了一个微信聊天机器人,并且在不断调试中给它赋予了n多好玩的功能譬如防撤回信息之类。然后好死不死他在号称白帽黑客欢喜地的 “i春秋-信息安全魔法学院”微信群中做机器人的调试,于是分分钟被凶残的坏蛋们玩坏,这个小程序猿也被微信封号处理,结果顽强不息的程序员为了突破微信封锁又做了很多逗逼尝试……

职人介绍所:年薪不过百万就不是好程序员? - 1

职人介绍所:年薪不过百万就不是好程序员?

好多人一直在问我们,你们什么时候访谈程序员什么时候访谈程序员什么时候访谈程序员?程序员这就来了。这期《职人介绍所》中,我们请到了不论是技术水平还是名气(也许包括薪水)都在业界名列前茅的@winter 和@赵劼。

125201811899

女程序员在互联网界到底有没有被歧视?

翻开科技界的历史,我们惊奇地发现女性在其中的地位和能力从来不亚于男性,然而随着时代的发展,不知从何时起,我们越来越少地听到女性在科技圈中的发声,却越来越多听到对她们的负面评价:代码水平不高、抗压能力差、很难独当一面等。有些企业在招聘技术人才时甚至暗文规定:不招女程序员,或者给她们开出更低的薪资。

golang go语言

为什么Go是一种设计糟糕的编程语言

好吧,我承认这个标题有点放肆。我多告诉你一点:我爱肆意妄言的标题,它能够吸引注意力。不管怎样,在这篇博文中我会试图证明 Go 是一个设计得很糟糕的语言(剧透:事实上它是)。

关于如何学习的二八法则

关于如何学习的二八法则

苏伽特·米特拉是一位杰出的教育领袖,但是他搞错了一件事情。他认为我们无需劳神记住那些事实性知识,因为当我们需要时,我们可以利用 Google。实际上,背记事实性知识特别关键。保存在你记忆中的事实性知识可以帮助你解决问题

一个特别好用的搜索框必须考虑的五个方面 - 16

程序员的生存技巧——搜索技巧

人人都可以接触到海量的信息,那么衡量信息财富多寡就只剩下技巧这惟一的标准了:善用搜索引擎的都是信息时代的富翁,不懂搜索引擎的都是信息时代的负翁。

为什么程序员都喜欢上StackOverflow?

为什么程序员都喜欢上StackOverflow?

作为一名程序员,如果没有听过 Stackoverflow,那么你最好去面壁思过一下。程序员最需要阅读的一本编程书籍(其实编程书留下这本就够了!):

8fb545067c0f4c6b949c8f0f27f34ba7_thumb

程序员的生存环境和代码的生存环境

微观代码环境 这个是最直接的,每天都在做各种业务的支持,写各种代码亦或是抄各种代码。你有没有在不经意间思考这么个问题,你所产生的代码如果能思考,它会怎么看那些 跟他在同一个文件中的其他代码?另外一个问题是这个模块中有那么多代码,为什么你改掉了别人之前写的代码,而放下你的代码?你的代码可能会在什么样的场景 下被别人修改?

程序员 辛苦 加班 熬夜 鼓励师 美女程序员

那些零基础转行做程序员的人是如何拿高薪的

除非天赋异禀骨骼惊奇,不然不要指望入行就有 20 K 月薪!或许在大公司,顶级学校,和突出的个人技术水平会有这样的待遇。但对于转行者来说,达到这个水平至少也要 3 – 5 年的时间。

pair programming 结对编程

为什么结对编程并不那么受欢迎?

是什么原因导致他们不采用结对编程呢?在我个人的经验当中,采用结对编程和协作仍有许多障碍。许多团队合作(cooperate)的很好,但实际上并不是协作(collaborate)。因为协作基于信任,它是结对编程的关键环节之一。

程序bug导致了天大的损失,要枪毙程序猿吗? - 9

一位编程老手13年来处理棘手bug的18个心得

我在《从你的bug总结经验教训》一文中写道,我一直在如何跟踪遇到的最有意思的bug。我最近回顾了全部194个bug(时间跨度达13年),看看从中学到了什么经验教训。下面是最重要的几个经验教训,分为编码、测试和调试这三大类:

如何不用那么担心成为一个坏程序员

如何不用那么担心成为一个坏程序员

我无意中发现了“冒充者综合征”的另一种表现形式,总是质疑“我是一个真正的开发者吗,或只是一个善于网络搜索的代码搬运工?”我看到的答案忽略了要点,因此我打算接下这个烂摊子,好好解说一下,因为太多人都有着这种担忧。

7-tips-for-coding

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

这篇文章我已经构思了几个星期了,现在决定发表出来。请享用!

fcfaaf51f3deb48fad18fb2af21f3a292cf578d4

HBO热播剧《硅谷》里的人物原型是哪些大咖?

美国HBO电视网的热播剧《硅谷》 (Silicon Valley)让我们领略了真实科技从业者的成功和失败以及他们的放荡生活。这部热播剧非常真实,以至于“阅后即焚”照片分享应用Snapchat的 CEO伊万?斯皮格尔(Evan Spiegel)曾惊呼,它“基本上是一部纪录片”。本月初,《硅谷》超级粉丝和科技顾问雷克斯?索格茨(Rex Sorgatz)将《硅谷》中的人物与真实科技行业中的人物一一对应了起来。我们结合索格茨的研究、我们自己的观察以及网络评论整理出了下面的对应关系。

神秘的程序员 漫画

《神秘的程序员们》漫画48~49: 那些年你面试过的奇葩

《神秘的程序员们》漫画48~49: 那些年你面试过的奇葩

开源正在毁掉 Android 吗? 安卓

开源正在毁掉 Android 吗?

长久以来流传着一些观点譬如 Android 不是真正的开源,开源在毁掉 Android 等等,ZDnet 最新文章又再一次挑起这个话题,你的想法是什么?欢迎在文章末尾投票或者留言表达你的观点。

985b6346fa633b0f01285bad6a9bad29

Tomcat 架构探索

花了一个礼拜的时间阅读了 how tomcat works,本文基于此书,整理了一下Tomcat 5的基本架构,其实也没什么多复杂的东西,无非是解析Http请求,然后调用相应的Servlet。另推荐看CSAPP的网络编程那一章,顺便问问有无需要暑假实习的?坐标杭州,Java后台方向

7cc829d3gw1f54ibvilhxj20g40c30tg

身份证号码验证算法

做项目的时候需要对拿到的数据进行“清洗”,比如剔除一些不可能存在的身份证号码。查阅了网上的身份证号码验证算法,自己也总结一下。

算法 复杂度

每个程序员都应该收藏的算法复杂度速查表

这篇文章覆盖了计算机科学里面常见算法的时间和空间的大 O 复杂度。我之前在参加面试前,经常需要花费很多时间从互联网上查找各种搜索和排序算法的优劣,以便我在面试时不会被问住。最近这几年,我面试了几家硅谷的初创企业和一些更大一些的公司,如 Yahoo、eBay、LinkedIn 和 Google,每次我都需要准备这个,我就在问自己,“为什么没有人创建一个漂亮的大 O 速查表呢?”所以,为了节省大家的时间,我就创建了这个,希望你喜欢!

nosql

当规模到亿级,MySQL是一个更好的NoSQL!

MySQL是一个更好的NoSQL数据库。当考虑到NoSQL的使用案例,比如对Key/Value键值存储来讲,MySQL在性能、易用性和稳定性方面更有意义。MySQL毕竟是一款成熟稳定的产品,在互联网上有大量的在线教程,范围从操作到失败案例,从主从复制到其它不同模式的应用,不一而足。基于这个原因,MySQL相比其他新兴并没有经过多年洗礼的NoSQL来讲,确实有一定的优势。

135818916

五个重要的应用程序发展趋势 开发者必须知道

在最近几个月,相继召开了三次大型开发者会议。对于应用程序在未来可能会起到的作用,我们听到了各种不同的想法。

程序员应该知道的七个图形工具 - 11

程序员应该知道的七个图形工具

今天让我来分享一下,我常用的一些图形工具,主要有两类: 流程图 数据可视化

javascript_words-100159658-primary.idge.jpg

JavaScript 被忽视的细节

《JavaScript 权威指南》这本书从第四版开始,一直到第六版,每个版本我都逐字逐句读过几遍,然而每一遍下来的感受却完全不一样。上上周的周一,再次翻开了这本犀牛书, 这一次我是带着批判精神和研究精神过来的,所以看的时候也写下了一些感受和笔记,都是些容易被忽略的点,部分内容犀牛书上不一定有提到。

浅谈测试代码覆盖率

浅谈测试代码覆盖率

经常有人问这样的问题:“我们在做单元测试,那测试覆盖率要到多少才行?”。答案其实很简答,“作为指标的测试覆盖率都是没有用处的。”Martin Fowler(重构那本书的作者)曾经写过一篇博客来讨论这个问题,他指出:把测试覆盖作为质量目标没有任何意义,而我们应该把它作为一种发现未被测试覆盖的代码的手段。

logo-failure

十条敏捷失败之路

本文提出了10条敏捷失败之路,旨在说明采用相反的做法可以提高敏捷性和成功几率。

编程 程序员 程序猿

关于静态类型令人震惊的秘密

TypeScript 最近迅速流行起来。我喜欢 TypeScript,我也喜欢静态类型。尽管我不使用 TypeScript,但由于 TypeScript 的类型系统,它获得一些非常棒的特性。TypeScript 的静态类型是结构不是名义,意味着它基本上像自动鸭子类型一样工作,而不是基于名字或者标识符的类型检查。这对于 JavaScript 一类的动态语言来说很合适。

满满的回忆:盘点已过时的25大技术

满满的回忆:盘点已过时的25大技术

如今科学技术飞速发展,不断有新的设备和产品出现,同时也有许多曾经在人们生活中不可或缺的物品变得可有可无。很多几年前还那么高大上的技术,如今已经快成了古董

linux

fork()函数与Linux中的多线程编程

,线程是最小的调度单位)。在Linux系统中 创建进程有两种方式:一是由操作系统创建,二是由父进程创建进程(通常为子进程)。系统调用函数fork()是创建一个新进程的唯一方式,当然 vfork()也可以创建进程,但是实际上其还是调用了fork()函数。fork()函数是Linux系统中一个比较特殊的函数,其一次调用会有两个返 回值,

fkX4izDbQRH0Bj_tjAdm

微软对开源的兴趣从何而来?

微软盈利中占比重最大的是服务器产品与Azure(20%),且Azure的业务增长飞快。如果不支持开源,不支持 Linux 的话,怎么吸引开发者们迁移到 Azure?

5767b89f56a19

国产超级计算机再次登顶世界TOP500:这次CPU也是国产

据最新消息,继天河2号之后,国产超级计算机“神威太湖一号(Sunway TaihuLight)”再次登顶世界TOP500,成为世界上运算速度最快的计算机。需要特别指出的是,这次神威太湖一号所使用的CPU也完全是国产的。

04-medical-reasons-youre-t.jpg

编程30年,我是如何避免累觉不爱的?

我读了一些关于程序员的对编程感到倦怠的文章,读完后我开始思考为什么我在工作了这么多年之后(从 1981 年开始),还依然对编程充满兴趣。为什么我依然喜欢写代码?

Objective-C

这些年我们爱着的 Objective-C

Objective-C 是开发 OS X 和 iOS 应用的标准语言。即便是天天跟它打交道的开发者,有些也会误以为 Objective-C 就是 Apple 公司创建出来的语言,但实际上它并不是 Apple 的亲骨肉,而是从别人家过继过来的孩子。程序设计语言是一个规范,它可以有许多种实现。在历史的漫漫长河中也出现过其他 Objective-C 实现,下面我会主要以 Apple 的 Objective-C 实现来论述。

programming-languages 编程语言

王垠:我为什么不再研究编程语言(PL)

我不做程序语言(PL)的工作已经半年了。在这半年里,我变得快乐了很多,对世界也有了新的观点。现在我想来讲一讲,我为什么不想再做 PL 的工作和研究。我只希望这些观点可以给正在做 PL,或者考虑进入这个领域的人们,作为一份参考。

辞去工作,开发首个 app - 13

传统的 8 小时工作制为什么会效率低下?

理 想的工作-休息比例是 52 分钟的工作之后进行 17 分钟的休息。按照这种时间分配,工作时会格外集中注意力。约 1 小时的时间里,大脑会 100% 专注于将要完成的任务,而不会去刷微博或被邮件分心;1 小时结束大脑开始感到有些疲劳时,完全放下工作,短暂地休息一会,又有助于在接下来的 1 小时重新高效率工作。

那些年,被自己的技术者思维虐过的项目经理们 - 9

那些年,被自己的技术者思维虐过的项目经理们

不论在哪个国家,IT 公司中的项目经理,很大一部分都是技术出身。的确,工程师背景的项目经理,在开发人员选择,开发进度控制,客户需求把握等诸多方面,有得天独厚的优势,从程序员到 leader 再到项目经理也是常见职场发展方向之一。

为什么我从来不无偿加班?你也不应该!

互联网加班狗健康工作指南

加班是个普遍现象 前一段时间,我们曾做过一个简单调查,通过与不同岗位、不同工作经验和地区的用户沟通,我们发现:他们每周的平均工作时间在 51 个小时,平均每天的工作时长为 10.2 小时,对工作-生活平衡满意度打分为 3.61 分(5 分制),以下是一些代表性观

程序员,对自己好一点 - 10

怎样才算得上是全能程序员(全栈程序员)?

与其他互联网热词一样,全栈工程师也是英译过来的,英文全文是:Full-Stack Developer,你想啊,中国人民怎么会用客栈的栈、堆栈的栈来形容工程师呢?

编程 程序员 程序猿

两种编程高手

对于团队来说,我们希望程序员具有第一种编程高手的天份,同时写出来的代码要像第二种编程高手那样方便理解。需要注意提升的是第三种编程高手,他们缺乏第一种编程高手的天资,同时还没有掌握第二种编程高手的技能,经常自己被自己写出来的代码搞糊涂。

guido-photo

Python之父谈Python的未来

6月初,Python之父Guido van Rossum在今天的PyCon US大会上作了名为“Python Language”的演讲。近日,他又接受了IT媒体Infoworld的采访,大谈Python的未来。我们一起来看看Guido老爹对Python的 未来是怎么看的吧。

javascript_words-100159658-primary.idge.jpg

关于JavaScript调试的十来个小技巧

有时候在生产环境下我们发现了一些莫名奇妙的问题,然后忘了把sourcemaps放到这台服务器上,或者在看别人家的网站的源代码的时候,结果就 看到了一坨不知道讲什么的代码,就像下图。Chrome为我们提供了一个很人性化的反压缩工具来增强代码的可读性,大概这么用:

如何管理你的程序员

“技术领导”和“技术管理”

关于技术领导力已经有很多的讨论,我自己也写过好几篇文章。这次我避免“大而全”地讨论技术领导力,只简单谈谈技术领导力的几个主要侧面,供大家在自己的工作中参考。首先要明确的是,我们谈的是“技术领导”而不是“技术管理”。

程序员,对自己好一点 - 5

程序员,对自己好一点

昨天在Google图片中输入“程序员”,搜索到的第一张图片是这样的:一位平头兄桌上两台笔记本一台台式机。其中的一台中显示是某个论坛的页面【估计正在回答某个问题】、中间那台正在启动Eclipse【要开始写Java程序了】、平头兄的目光此时盯在台式机的显示器上【应该是正在远程或者是某个虚拟机】,旁边还有一本打开的书…

我在华为敲代码知道的事

华为的工资高不高?家属有话说(完整未删版)

“华为”成为媒体热词。“华为人”成为网民关注的对象和群体。甚至连其工资收入等敏感问题都已被脱敏晒在互联网上。我们常被各种各样的统计数据平均,这次也不例外。华为人的年收入也被“人均80万”了。这是一个令人羡慕的数字。然而身边的华为人对此嗤之一笑说“对不起,我拖后腿了”。

提高程序员身心健康和工作效率的装备有哪些? - 10

不要浪费开发时间:给初次创业的伙伴们的 6 个软件开发建议

初创公司因为产品定位还不明确,常常花一堆时间做好功能,却发现没人要用,浪费了宝贵时间。犯过这种错误几次之后,我们慢慢整理出一些比较有效的开发方法。这些方法帮我们省下很多开发时间,今天跟大家分享一下!

黑客 骇客

程序员、黑客与开发者之间的区别

程序员、黑客与开发者究竟有何区别?这个问题往往会引发踊跃的讨论与辩论。但是我看到的很多说法往往至少在一个重大方面是有瑕疵的,所以在此我愿给出我的定义,希望这个定义能够更准确些。

不拼颜值的编程世界你靠什么上位? - 5

再提敏捷已死

“敏捷软件开发已经死了。如果你还在实践它或还在用那种管理方式,你本身就是一种障碍。敏捷运动浪潮已经结束了,如果你还想购买证书来掩人耳目,那就是在浪费钱了。”

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

程序员过的开心的方法

经常有人发帖讨论「怎么做一个成功的程序员」,「如何才能成为一个优秀的程序员」,我并不太同意这些文章中的看法,想在这里我想提出一些我对于程序员这个职业自己的想法。

程序员的烦恼、技术领导的烦恼和管理者的烦恼

程序员的烦恼、技术领导的烦恼和管理者的烦恼

我专业从事软件开发工作已超过 10 年的时间,我热爱这份事业,希望有一天我会被人们称呼为老程序员。但这一路走来,我经历了许多可怕的事情,这些事情让我讨厌我的工作。在职业生涯早期,我曾期望有人能给我一份职场指南,这样当遇到之前未曾遇到的事情时,我就不会感到如此的孤单和沮丧。

编程 程序员 程序猿

编程时避免使用 if 语句的五种模式

大约十年前,我听说了反if的活动,觉得这个概念非常荒谬。如果不用if语句,又怎么能写出有用的程序呢?这简直太荒谬了。但之后你会开始思考:是否还记得上周你拼命想读懂的深度嵌套代码?糟透了对么?要是有办法能简化它该多好。反if活动的网站上没给出多少实用性建议,因此在本文中,作者将会提供一系列模式,也许你会用得上。但首先我们来关注一下if语句到底造成了什么问题。

让Flash内心崩溃的HTML5小历史 - 3

让Flash内心崩溃的HTML5小历史

对于HTML5,在今天这个互联网时代,大部分人应该至少都听说过这个名字,或许很多人对HTML5的了解都起于一句话:FLASH杀手。

小扎的教训,如何防范你的账户被黑 - 3

小扎的教训,如何防范你的账户被黑

网络账户被盗的事情常听,扎克伯格也不知道自己多个社交账户会被黑。防范意识很重要,但是保护账户安全的干货相对来说更重要。怎么防范账户(特别是绑定了银行卡或者支付端的账号)被黑呢?Mashable 给我们提供了以下几个方面的指

天才 精英 There-is-no-great-genius-without-some-touch-of-madness.1

编程不需要天份,也不需要热情

从来没有一个技能,曾经被神化到这个程度:「你不但要有天份,还要有热情,才适合写代码。」那些写代码的人,好像「从小就立定志向,决定未来要写代码了」。缺乏其一的话,你要嘛是个假货,要嘛走不远,总之就是不适合。这种深植人心的刻板印象不但大错特错,同时还是有害的。随便找几个程序员都能证明这点。

BMKUQQQ70AI20009

盘点科技巨头们正改变世界的12大科技项目

与我们今天使用的技术相比,将来孩子们在日常生活中使用的技术设备将完全不同。通过谷歌、微软以及Facebook等科技巨头正在从事的前沿科技项目,我们已经可以窥见一些端倪。美国科技内幕网站盘点了科技巨头们正在进行的12大科技项目,它们将彻底改变我们所熟知的世界。

18 个你可能不相信是用 CSS 制作出来的东西 - 2

用 CSS 隐藏页面元素的 5 种方法

用 CSS 隐藏页面元素有许多种方法。你可以将 opacity 设为 0、将 visibility 设为 hidden、将 display 设为 none 或者将 position 设为 absolute 然后将位置设到不可见区域。

都是干货!谷歌Daydream团队分享VR应用3大设计原则

谈一谈越来越难做的前端

我接触前端的时间不长也不短,13 年入门,14 年初在百度实习,14 中正式参加工作,掐指一算 4 年整。然而这四年间前端的变化已经让很多人摸不着头脑。我要说话。昨天还发了一条微博,调侃 jQuery 是一个坚韧的社区,有人留言问我为什么这么说。我要说话

成功创业者的7个好习惯

程序员走向成功的10步技巧

你是不是觉得自己已经很厉害了?是不是觉得自己已经掌握了所有的编程技巧?不要太自大了!只要你活着一天就有很多东西要学,永远不会有你会所有东西的那一天。

程序员应该使用什么样的键盘? - 10

程序员应该使用什么样的键盘?

我们每天几乎要用 8 小时的键盘,为什么不试着改善一下它的质量和外观呢?

我在华为敲代码知道的事

华为员工真实工资揭秘:用十年青春换百万年薪,你愿意吗?

部分人士对腾讯科技表示,该说法并不准确。“年薪过百万的员工是有,但过万人有些夸大。其次,能达到这个级别的基本上都是 10 年以上的老员工。”

css-border-radius

阮一峰:CSS Modules 用法教程

本文介绍的 CSS Modules 有所不同。它不是将 CSS 改造成编程语言,而是功能很单纯,只加入了局部作用域和模块依赖,这恰恰是网页组件最急需的功能。因此,CSS Modules 很容易学,因为它的规则少,同时又非常有用,可以保证某个组件的样式,不会影响到其他组件。

关于设计原则的思考

面向过程,面向对象,函数式,一个问题的三种思考方式

我之所以对函数式代码感兴趣是因为函数式代码富有表现力,可以使用简短、紧凑的代码完成工作,同时能对特定的问题给出优雅的解决方案。现代的编程语言不约而同的朝着面向对象、函数式、动态、解释执行的方向发展,例如Ruby,Swift。而另一些语言则更加强调函数式编程,如F#,Scala,这种语言有着强大的类型推断系统,编写的代码洁程度则令人叹为观止。

一个32岁入门的70后程序员的传奇故事

一个32岁入门的70后程序员的传奇故事

总有人质问:“我现在学编程晚吗?”,“我 30 岁之后还能继续写程序吗?”,“学编程难吗?”看完这篇文章后,我相信你不会再问了,因为如果你真的是热爱编程,你就应该像我父亲那样,无论现实如何逼迫,初心永远不忘。

2958a3346afc18e8bf2a312aea99bdcc

程序员,你有危机感吗?

十一回来,第一天上班,领导找我说,你的人都划入各个事业部,管理权也都放在各事业部,于是我就成了一个光杆司令,后续未知。小组是个技术团队,现有10人左右,承接着公司各个事业部的技术开发任务。公司业务人员已经分成了事业部,由于技术的平台性和共享性,技术一直是以研发中心存在的单独部门,没有分开。

5bcb7c695ebabe73279957dc997ae6bd

从PHP到Node,聊一聊淘宝首页背后的技术

从 2014 年双十二结束开始接手淘宝首页,到如今差不多 1 年半时间了,不久前完成了首页相关工作的交接。经历了两次改版和一次从 PHP 到 Node 的迁移,还是颇有感受,下面给大家分享下。

66372-20160612200307308-765249296

《神秘的程序员们》漫画47:这些年你读过的书 /*皮*/

《神秘的程序员们》漫画47:这些年你读过的书 /*皮*/

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

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

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

s_2498c28ae7b146319c2aa8fcdaffa0e6

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

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

聊聊程序员的工匠人生

聊聊程序员的工匠人生

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

032frm

一个老码农的技术理想

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

240_F_91386741_RBVx3x3bfPM5TH5Y1mkSUNCJm3AQCIUT

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

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

7cc829d3gw1f4nnv3lysej20dw0ag3yy

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

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

假如程序员生活在童话里... - 2

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

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

43f56ffaddbf8215137dc94248ff114e

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

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

66372-20160608180444886-1101756700

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

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

swift

王垠:Swift 语言的设计错误

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

7cc829d3gw1f4lmxvn6igj20go0b4gmi

如何养成好的阅读习惯?

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

代码缩进 code indent

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

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

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

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

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

基于 JavaScript 的操作系统你听说过吗?

图解Javascript原型(prototype)链

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

tux-linux

Linux Shell编程中的特殊符号

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

linux

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

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

7cc829d3gw1f54ibvilhxj20g40c30tg

身份证号码验证算法

做项目的时候需要对拿到的数据进行“清洗”,比如剔除一些不可能存在的身份证号码。查阅了网上的身份证号码验证算法,自己也总结一下。

算法 复杂度

每个程序员都应该收藏的算法复杂度速查表

这篇文章覆盖了计算机科学里面常见算法的时间和空间的大 O 复杂度。我之前在参加面试前,经常需要花费很多时间从互联网上查找各种搜索和排序算法的优劣,以便我在面试时不会被问住。最近这几年,我面试了几家硅谷的初创企业和一些更大一些的公司,如 Yahoo、eBay、LinkedIn 和 Google,每次我都需要准备这个,我就在问自己,“为什么没有人创建一个漂亮的大 O 速查表呢?”所以,为了节省大家的时间,我就创建了这个,希望你喜欢!

程序员应该知道的七个图形工具 - 11

程序员应该知道的七个图形工具

今天让我来分享一下,我常用的一些图形工具,主要有两类: 流程图 数据可视化

04-medical-reasons-youre-t.jpg

编程30年,我是如何避免累觉不爱的?

我读了一些关于程序员的对编程感到倦怠的文章,读完后我开始思考为什么我在工作了这么多年之后(从 1981 年开始),还依然对编程充满兴趣。为什么我依然喜欢写代码?

辞去工作,开发首个 app - 13

传统的 8 小时工作制为什么会效率低下?

理 想的工作-休息比例是 52 分钟的工作之后进行 17 分钟的休息。按照这种时间分配,工作时会格外集中注意力。约 1 小时的时间里,大脑会 100% 专注于将要完成的任务,而不会去刷微博或被邮件分心;1 小时结束大脑开始感到有些疲劳时,完全放下工作,短暂地休息一会,又有助于在接下来的 1 小时重新高效率工作。

编程 程序员 程序猿

两种编程高手

对于团队来说,我们希望程序员具有第一种编程高手的天份,同时写出来的代码要像第二种编程高手那样方便理解。需要注意提升的是第三种编程高手,他们缺乏第一种编程高手的天资,同时还没有掌握第二种编程高手的技能,经常自己被自己写出来的代码搞糊涂。

guido-photo

Python之父谈Python的未来

6月初,Python之父Guido van Rossum在今天的PyCon US大会上作了名为“Python Language”的演讲。近日,他又接受了IT媒体Infoworld的采访,大谈Python的未来。我们一起来看看Guido老爹对Python的 未来是怎么看的吧。

程序员,对自己好一点 - 5

程序员,对自己好一点

昨天在Google图片中输入“程序员”,搜索到的第一张图片是这样的:一位平头兄桌上两台笔记本一台台式机。其中的一台中显示是某个论坛的页面【估计正在回答某个问题】、中间那台正在启动Eclipse【要开始写Java程序了】、平头兄的目光此时盯在台式机的显示器上【应该是正在远程或者是某个虚拟机】,旁边还有一本打开的书…

程序员的烦恼、技术领导的烦恼和管理者的烦恼

程序员的烦恼、技术领导的烦恼和管理者的烦恼

我专业从事软件开发工作已超过 10 年的时间,我热爱这份事业,希望有一天我会被人们称呼为老程序员。但这一路走来,我经历了许多可怕的事情,这些事情让我讨厌我的工作。在职业生涯早期,我曾期望有人能给我一份职场指南,这样当遇到之前未曾遇到的事情时,我就不会感到如此的孤单和沮丧。

编程 程序员 程序猿

编程时避免使用 if 语句的五种模式

大约十年前,我听说了反if的活动,觉得这个概念非常荒谬。如果不用if语句,又怎么能写出有用的程序呢?这简直太荒谬了。但之后你会开始思考:是否还记得上周你拼命想读懂的深度嵌套代码?糟透了对么?要是有办法能简化它该多好。反if活动的网站上没给出多少实用性建议,因此在本文中,作者将会提供一系列模式,也许你会用得上。但首先我们来关注一下if语句到底造成了什么问题。

程序员应该使用什么样的键盘? - 10

程序员应该使用什么样的键盘?

我们每天几乎要用 8 小时的键盘,为什么不试着改善一下它的质量和外观呢?

关于设计原则的思考

面向过程,面向对象,函数式,一个问题的三种思考方式

我之所以对函数式代码感兴趣是因为函数式代码富有表现力,可以使用简短、紧凑的代码完成工作,同时能对特定的问题给出优雅的解决方案。现代的编程语言不约而同的朝着面向对象、函数式、动态、解释执行的方向发展,例如Ruby,Swift。而另一些语言则更加强调函数式编程,如F#,Scala,这种语言有着强大的类型推断系统,编写的代码洁程度则令人叹为观止。

一个32岁入门的70后程序员的传奇故事

一个32岁入门的70后程序员的传奇故事

总有人质问:“我现在学编程晚吗?”,“我 30 岁之后还能继续写程序吗?”,“学编程难吗?”看完这篇文章后,我相信你不会再问了,因为如果你真的是热爱编程,你就应该像我父亲那样,无论现实如何逼迫,初心永远不忘。

5bcb7c695ebabe73279957dc997ae6bd

从PHP到Node,聊一聊淘宝首页背后的技术

从 2014 年双十二结束开始接手淘宝首页,到如今差不多 1 年半时间了,不久前完成了首页相关工作的交接。经历了两次改版和一次从 PHP 到 Node 的迁移,还是颇有感受,下面给大家分享下。

43f56ffaddbf8215137dc94248ff114e

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

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

swift

王垠:Swift 语言的设计错误

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

代码缩进 code indent

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

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

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

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

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

基于 JavaScript 的操作系统你听说过吗?

图解Javascript原型(prototype)链

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

tux-linux

Linux Shell编程中的特殊符号

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

css-border-radius

CSS中的背景用法大全

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

编程语言

编程语言漫谈

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

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

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

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

574ffa1136965

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

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

132743070748

中国的程序员培训是不是有问题?

中国技术开放日的出海团对日本进行了为期一周的访问。笔者随行了头两天,参加Slush Asia大会,并访问了Gungho和Deloitte两家企业。虽然已经在日本生活了四年,但这样的体验却甚少,对中日两国的技术力有不少思考。不知从什么时候起,我凡是听到中国人在日本人的面前提起“程序员”三字,从头皮到脚跟都要发麻。中国企业培训出来的程序员,和日企培训出来的“会写程序的人”,从称呼、内涵到侧重点都是完全不同的。

javascript_words-100159658-primary.idge.jpg

看看国外的十三道 JavaScript 题,你能全部做对吗?

以前看过一套 JavaScript 题目,借花献佛拿出来分享一下。附带了自己的理解和答案。有争议的地方,欢迎大家指出和讨论。

b4465ddfd06bd06532b86b2a622c3dd8

程序员从菜鸟到优秀的成长三阶段

绝大部分软件工程师的成长经历是这样的: 阶段一, 没有防卫 这个阶段很快就会过去,因为有无数的书本和”前辈”在提示防卫性编码的必要性。
阶段二, 疯狂防卫 无论是模块之间,还是模块内部,处处充满检查,首先是检查参数,其次是检查返回值和出参;最后,给自己写的函数通通加上指示成功失败的返回码。

111946k7zjg0iekgz78bqi

如何用开源经历为你的简历增加光彩

在这篇文章中,我将会分享我的方法,让大家利用开源贡献在技术领域的求职中脱颖而出,成为强有力的候选者。

golang go语言

王垠:Go语言野心勃勃,实际情况又如何

以前写过一些对 Go 语言的负面评价。现在看来,虽然那些评价大部分属实,然而却由于言辞激烈,没有点明具体问题,难以让某些人信服。在经过几个月实际使用 Go 来构造网站之后,我觉得现在是时候对它作一些更加“客观”的评价了。

guido-photo

Python之父谈Python的未来

6月初,Python之父Guido van Rossum在今天的PyCon US大会上作了名为“Python Language”的演讲。近日,他又接受了IT媒体Infoworld的采访,大谈Python的未来。我们一起来看看Guido老爹对Python的 未来是怎么看的吧。

bug

有人向我反馈了一个bug

有人向你反馈了一个bug。 “26楼会议室的灯亮着。它需要被熄灭。”bug的备注里写道“你应该能在5分钟内搞定,只要按一下开关就好了。“ 你去了26楼的会议室。灯的确亮着,但房间里没有灯的开关。

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

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

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

1248902582770.jpg

做程序猿的老婆应该注意的一些事情

经过初步了解,配电脑、修电脑、装系统等都可以找程序猿来干。而且程序猿不会油嘴滑舌的。很多妹子也都这么想的,于是大学四年,程序猿钻了不少次各种妹子宿舍,一去就一下午,他说装系统太慢,我暂且就信了吧。

javascript_words-100159658-primary.idge.jpg

看看国外的十三道 JavaScript 题,你能全部做对吗?

以前看过一套 JavaScript 题目,借花献佛拿出来分享一下。附带了自己的理解和答案。有争议的地方,欢迎大家指出和讨论。

笑话 幽默

要嫁就嫁程序猿——钱多话少死的早

我是一个苦b的程序员,今晚加班到快通宵了,困得快睁不开眼了,女上司很关心,问我要不要吃宵夜。我没好气地说,宵夜就算了,能让我睡一觉就行了。女上司红着脸说了句讨厌

programming-languages 编程语言

亚马逊工程师论各种编程语言的优缺点

这是我写的旋风式的编程语言简介 ,我会讲C、C++、Lisp、Java、Perl (我们在亚马逊用到的所有语言)、Ruby (我就是喜欢) 和 Python,把 Python 加进来是因为 —— 好吧,你看了就知道了,现在我可不说。

f

为什么有些大公司技术弱爆了?

今年年初,到一家互联网公司实习,该公司是国内行业龙头。
不过技术和管理方面,却弱爆了。

不想当程序员的总统不是好歌星 - 17

游戏中学会写代码:这些编程学习网站不容错过

下面这些网站是从 200 多个游戏编程网站选出的 12 个网站,你可以通过下面的网站在游戏中学习编程。

武器

如果编程语言是种武器

对程序员来说,编程语言就是武器,但有的武器好用,有的武器不好用,有的武器甚至会杀了自己

1342582137-810237896

如何教会非计算机专业的女友写代码

女友14年本科毕业,学的是商科,大学里一点编程都没接触过,毕业后也从事与编程无关的工作,工作了一年多觉得工作不合适自己,想换一份持续学习、有挑战的工作;与此同时在我的耳濡目染下渐渐对写程序产生了兴趣,于是我们就做了大胆的决定,转程序媛吧。

giftCenterPresentBow

能让程序员心花怒放的七种礼物

以开发软件为职业的程序员是偏理性的人群的代表,不是一般的难伺候。你可以说他们木纳、死脑筋、不懂人情世故。很难打动他们。

正则表达式

知道这20个正则表达式,能让你少写1,000行代码

正则表达式,一个十分古老而又强大的文本处理工具,仅仅用一段非常简短的表达式语句,便能够快速实现一个非常复杂的业务逻辑。熟练地掌握正则表达式的话,能够使你的开发效率得到极大的提升。下面是技匠整理的,在前端开发中经常使用到的20个正则表达式。

maxresdefault.jpg

程序员的成长和代码行数的关系

我的朋友Clift Norris发现了一个基本常数,我称之为Norris常数,一个未经培训的程序员在他或她遇到瓶颈之前能写出的平均代码量。Clift估计这个值是1500行。超过这个数以后,代码会变得如此混乱,以至于本人都无法轻而易举的进行调试和修改。

你不知道的关于计算机大师Dijkstra的事情 - 1

你不知道的关于计算机大师Dijkstra的事情

他是几位影响力最大的计算科学的奠基人之一,也是少数同时从工程和理论的角度塑造这个新学科的人。他的很多论文为后人开拓了整个新的研究领域。我们现在熟悉的一些标准概念,比如互斥、死锁、信号量等,都是 Dijkstra 发明和定义的。

the-friendship-algorithm-the-big-bang-theory.jpg

十大编程算法助程序员走上高手之路

编程算法,是完成程序逻辑的主要途径。本文推荐十大编程算法,有利于程序员的编程逻辑。

66372-20160425165201017-1800288349.png

这些书影响了马云、乔布斯一生,你读过几本?

每年的4 月 23 日,除了是私募大佬们赶考的日子,还是第 22 个世界读书日,也是“世界书籍与版权日”,此外,这一天还是大文豪莎士比亚逝世 400 周年纪念日。今天,几位不必参加赶考的企业家大佬为您推荐他们最欣赏的书籍。在这个碎片化阅读的时代,真正的思想者是不满足于碎片化阅读的。面对商业世界的巨变,企业家如何从书籍中找到方向?

https-tls.png

聊聊HTTPS和SSL/TLS协议

要说清楚 HTTPS 协议的实现原理,至少需要如下几个背景知识。1. 大致了解几个基本术语(HTTPS、SSL、TLS)的含义2. 大致了解 HTTP 和 TCP 的关系(尤其是“短连接”VS“长连接”)3. 大致了解加密算法的概念(尤其是“对称加密与非对称加密”的区别)4. 大致了解 CA 证书的用途

面试中的排序算法总结 - 8

面试中的排序算法总结

查找和排序算法是算法的入门知识,其经典思想可以用于很多算法当中。因为其实现代码较短,应用较常见。所以在面试中经常会问到排序算法及其相关的问题。但万变不离其宗,只要熟悉了思想,灵活运用也不是难事。一般在面试中最常考的是快速排序和归并排序,并且经常有面试官要求现场写出这两种排序的代码。对这两种排序的代码一定要信手拈来才行。还有插入排序、冒泡排序、堆排序、基数排序、桶排序等。

瞧不起

程序员的鄙视链

在软件工程师(中国叫做「程序员」或「码农」)的圈子里,文人相轻的现象可是非常严重的,在程序设计的各个领域里都有着错综复杂的「鄙视链」。从程序语言、编辑器、平台到 { 是写在 if 的同一行还是下一行,不同阵营的人都习惯鄙视来鄙视去。