分类: 业界观察

程序猿,怎样才能写好程序?

程序猿,怎样才能写好程序?

我和狗叔回忆,我们好像都没有正经上过什么“把程序写好”的培训班,也没有《九阴真经》之类的宝典。但是我们又都看到,很多程序员写的程序是不合格的,大量基础规范都没有遵循(更可怕的是这样的程序很可能还在服务我们每天的生活)。那么,优秀的程序员,是从哪里学到把程序写好的知识的呢?

简述百年计算机科学

简述百年计算机科学

我有些同事知道了我最近对学术论文有所研究后,都在问我建议他们从哪里开始。看了Michaels Feathers和Fogus做的一张类似的清单后,我也编辑了一份自认为代表了过去100年计算机科学发展历程的清单。在编辑的时候,我采用了如下的选择标准: 这篇论文必须改变了世界 这篇论文必须颠覆了我当时的既有观点 每十年只能有一篇入选

美国联邦政府仍在使用的10大古老软件系统

美国联邦政府仍在使用的10大古老软件系统

一份最新美国政府内部报告显示,政府信息科技系统使用过时且不支持的软件和硬件发布恶劣气象预警,处理数以百万计纳税申报表,追踪危险废物事件,甚至保护美国核兵工厂。有多过时?据政府问责总署发布的最新报告显示,某些联邦 IT 系统使用的应用程序编程语言在安迪·格里菲斯秀(Andy Griffit Show)首次公演时(20 世纪 60 年代)算是新的。

12个关键词,告诉你到底什么是机器学习

12个关键词,告诉你到底什么是机器学习

随着人工智能(AI)技术对各行各业有越来越深入的影响,我们也更多地在新闻或报告中听到“机器学习”、“深度学习”、“增强学习”、“神经网络”等词汇,对于非专业人士来说略为玄幻。这篇文章为读者梳理了包括这些在内的 12 个关键词,希望帮助读者更清晰地理解,这项人工智能技术的内涵和潜能。

谷歌胜诉,Android 可以光明正大的使用 Java API

谷歌胜诉,Android 可以光明正大的使用 Java API

旧金山消息——经过了两个星期的庭审,联邦法院最终于当地时间周四裁定Google的Android操作系统并没有违反Oracle的版权,因为Google重新编写的 37 个(有争议的)API受“正当使用(fair use)”法律条款的保护(译注:“fair use”是一项法律条款,指允许人们在不影响作者利益的情况下有限地引用他人的作品。)。经过三天的深思熟虑,陪审团终于达成了一致并形成了判决。

槽点比亮点多 Android N并非如你所想

槽点比亮点多 Android N并非如你所想

在Android 4.4时候引入了对齐唤醒的功能来提高Android手机的续航能力,接着就在Android 5.0时候引入了Battery saver这种俗称省电模式的玩意。Android 6.0提供了全新的Doze电量管理模块,在Android 7.0为Doze引入了新的内容,届时需要对比一下续航成绩才知道是亮点还是纯属噱头。

我的 NodeJS 一年之旅总结

我的 NodeJS 一年之旅总结

这是《为什么我从Python转换到Node.js》这篇文章的后续。《为什么我从Python转换到Node.js》写于一年多前,主要是说因为我对Python感到失望于是打算尝试Node。

Linus对于Linux内核中潦草的Unix千年虫bug补丁感到很不爽

Linus对于Linux内核中潦草的Unix千年虫bug补丁感到很不爽

一向爽直的 Torvalds 曾猛喷过自己是“越看越不爽”。有趣的是,同样于数月前提交的一些变动,却还没有被审查。XFS 专家 Paul Chinner 自称是系统文件开发者,他在看过代码后说到: 在我试图让你重建补丁却被猛喷之后(正如 Linus 当前认为的那样),我撒手并没再看你们的补丁了。难怪没有其它文件系统维护者愿意把时间浪费在这件破事上面…

用户的注意力极其重要,在网页设计中如何引导?

用户的注意力极其重要,在网页设计中如何引导?

在界面中突出强调一个聚焦点 每个界面都应该有一个清晰的起点。用户应该从哪里看起?要设计清楚。

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

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

作为一个在美国工作长达 30 年的程序员,我在这期间很多时候每周工作超过 40 小时,加班这在这一行业中并不那么常见。而且我从未领到更多的薪水。现在再也不这样了,我觉得加班这一想法非常恶心。

和程序员打官司是一种怎样的体验

和程序员打官司是一种怎样的体验

前述起诉杭州麻瓜网络科技有限公司(公众号“差评“运营方)疑似抄袭案5月23日在杭州第一次开庭审理结束,当场未能作出判决,审判长宣布择日开庭再申。需要再次开庭也说明了这个案件有一定复杂性,可见我之前说的没错,这是一个有趣的案子。

Scala 之父 Martin Odersky 访谈录

Scala 之父 Martin Odersky 访谈录

2016年3月,笔者有幸和诸多对Scala感兴趣的人一起,跟Scala的创始人Martin Odersky做了一次面对面的交流。下面是这次交流中的一些问题的整理,采用问答的形式,根据问答内容做了简单的摘要。

开源软件易犯的5大错误,又该如何避免?

开源软件易犯的5大错误,又该如何避免?

本文所说的开源软件,指的是在开源生态系统下占据某个环节的公司,他们未必是需要将所有的产品都开放源代码,也未必一定是开发过开源的代码,他们只是以这样或那样的方式混迹于开源界。

软件质量控制技巧

软件质量控制技巧

然而,靠着程序员的良心和素质,对代码或软件质量的维系,对于上面说的软件质量会影响人生安全的情况,却又显得远远不够了。

大话设计模式

大话设计模式

很多人应该听说过设计模式(Design pattern),又或多或少的看过或用过设计模式,但是实际用在开发过程中总有点心有余而力不足的感觉。那肯定是对设计模式的理解有少许偏差或者不够深入。先不谈某种具体的模式,先来看看什么是设计模式?

CSS vs JS动画:谁更快?

CSS vs JS动画:谁更快?

Javascript 动画怎么可能总是和 CSS transition 一样快,甚至更快呢?到底是什么秘密呢?Adobe 和 Google 是怎么做到让他们的富媒体移动网站的速度和 native app 媲美的?

写给即将离开校园想成为一名程序员的童鞋们的几句忠告

写给即将离开校园想成为一名程序员的童鞋们的几句忠告

虽然我无法像众多前辈一样在博客中站在一个从业多年的技术经理或技术专家的角度来谈程序员的职业规划,但对于"程序员职场的起点"这个话题,你将要面对的一切都是我不久前所经历的,并且我深知此刻初入职场的你需要这些建议!

从Android到Swift iOS开发:语言与框架对比

从Android到Swift iOS开发:语言与框架对比

今天分享的主题是Java/Android开发人员如何快速上手Swift iOS开发。主要内容如下: Why From Java/Android to Swift Swift语言为什么值得学习? Java vs Swift语法比较 Android和iOS UI开发比较 Android vs Swift iOS框架比较 开发工具比较

创业者经验分享:项目外包时,我曾埋过的12个坑

创业者经验分享:项目外包时,我曾埋过的12个坑

满大街都是想要改变世界的创业者。从一个idea做到到一个真正的产品,是一条充满各种坑的道路。本文为接包方(互联网自由职业者、外包团队和兼职人员)与创业者发包方而写,仅适用于一般的创业外包项目,且通篇都是个人经验,仅供参考。

让技术更好地理解需求?产品经理先做好需求分析和评审吧

让技术更好地理解需求?产品经理先做好需求分析和评审吧

所有问题其实都可以归结为人的问题。规则是死人是活,不同人在不同情况,对事情往往会有不同的处理方法。但在此就不展开讨论了,遇到问题想办法解决就是。

敏捷软件测试常见的七个误区

敏捷软件测试常见的七个误区

测试策略关注的是目标和方法,即怎样在限定的时间内有效利用有限的资源达到提前制定的目标,一般制定测试策略时会首先明确测试目标,然后确定需要哪些测试类型,各种测试类型所占的大概比例,选择测试框架,最后规划一下软件发布前需要经历哪些测试阶段。

Linux文件查找工具之find “大宝剑”

Linux文件查找工具之find “大宝剑”

Linux文件查找工具之find “大宝剑”

算法分析的正确姿势

算法分析的正确姿势

本专题会对常见的数据结构及相应算法进行分析与总结,并会在每个系列的博文中提供几道相关的一线互联网企业面试/笔试题来巩固所学及帮助我们查漏补缺。项目地址:https://github.com/absfree/Algo。由于个人水平有限,叙述中难免存在不清晰准确的地方,希望大家可以指正,谢谢大家:)

代码不再重要,未来我们要像训狗一样训练计算机

代码不再重要,未来我们要像训狗一样训练计算机

过去,程序员就像是上帝,制定计算机系统运行的律法。随着机器学习的兴起,计算机正在脱离人们的控制。工程师们永远也无法确切搞清楚计算机是如何通过机器学习完成任务的。神经网络和人们的大脑一样,像个“黑箱”,难以捉摸,这些“黑箱”正在日益接管我们的数字生活。编程将变得不再重要,未来,我们将不再关注行为背后的底层代码,而是专注于行为本身,我们要学着像巴甫洛夫训练狗的条件反射一样训练计算机。

如何为你的开源项目选择正确的品牌架构

如何为你的开源项目选择正确的品牌架构

尽早地考虑品牌策略是没有什么坏处的,但是随着项目的成长过一段时间考虑也是可以的。我希望你已经读过了我的上一篇文章:如何为你的开源项目选择一个具有品牌效应的名称。这是你的项目迈向成功的第一步!