我之所以对函数式代码感兴趣是因为函数式代码富有表现力,可以使用简短、紧凑的代码完成工作,同时能对特定的问题给出优雅的解决方案。现代的编程语言不约而同的朝着面向对象、函数式、动态、解释执行的方向发展,例如Ruby,Swift。而另一些语言则更加强调函数式编程,如F#,Scala,这种语言有着强大的类型推断系统,编写的代码洁程度则令人叹为观止。
总有人质问:“我现在学编程晚吗?”,“我 30 岁之后还能继续写程序吗?”,“学编程难吗?”看完这篇文章后,我相信你不会再问了,因为如果你真的是热爱编程,你就应该像我父亲那样,无论现实如何逼迫,初心永远不忘。
十一回来,第一天上班,领导找我说,你的人都划入各个事业部,管理权也都放在各事业部,于是我就成了一个光杆司令,后续未知。小组是个技术团队,现有10人左右,承接着公司各个事业部的技术开发任务。公司业务人员已经分成了事业部,由于技术的平台性和共享性,技术一直是以研发中心存在的单独部门,没有分开。
从 2014 年双十二结束开始接手淘宝首页,到如今差不多 1 年半时间了,不久前完成了首页相关工作的交接。经历了两次改版和一次从 PHP 到 Node 的迁移,还是颇有感受,下面给大家分享下。
《神秘的程序员们》漫画47:这些年你读过的书 /*皮*/
如果做搜索引擎的人在自己家人生病时不用自己做的搜索引擎寻医问药,如果做视频网站的人不会让自己的女儿看自己做的视频网站上的内容,如果做社交网络的人劝告自己的父母不要相信自己做的社交网络上传播的信息,那就说明这些人知道自己是在作恶。
掌握了十门语言的双胞胎Matthew和Michael Youlden在他们的居住地柏林接受了“一周内学会一门语言”的挑战。我们能从他们的学习方式中学到些什么呢?一起来看这7条经验。
程序员的人生看起来五花八门,可以是Windows系、Android系、iPhone系等,这代码如人生的的IT行业,码农们也具有珍贵的工匠精神。泰山不让土壤,故能成其大;河海不择细流,故能就其深。优秀程序员的价值,不在于其所掌握的几招屠龙之术,而是在细节中见真著。来读一读网友 Hesey小纯纯的描述。
工作这么多年,一直在思考工程师这三个字的意义,终于有一天恍然大悟,原来就是:用技术手段改进世界。
用 10 分钟,20 分钟甚至 30 分钟的时间来想想你需要什么,想想什么样的设计模式(如果有的话)适合你将要编码的东西。真的要好好想想,你会很庆幸“浪费”了那几分钟,当你不得不更改或添加东西到代码中,而这只花费了你 30 分钟的时间而不是 5 小时。
“换一个灯泡需要多少个______?” 类似的笑话有无数个版本。
在 IT 行业里,有这样一个美丽的传说。据故老相传,每年的农历七月初七,程序员们可以回家,和老婆孩子见上一面……
多年以来,软件行业一直在使用一种类比,即以建筑行业来做参考和比喻。这种比较在软件语言里随处可见,比如架构(architecture)、地基(foundation)、建造者(constructor)、项目(project)、施工规范(building code)等。这些说法是如此之流行,以至于影响到了我们对软件开发的理解。不幸的是,这种比喻从根本上来说是不恰当的,它的缺陷已经把我们引向了一些错误的道路。
“吃饭、睡觉、写代码、周而复始”这句口号在会议期间随处可见。我之前也读到过,只是这一次尤其触动我,或许原因是如此重要的技术大会不遗余力的大势宣传。毫不夸张地说,我的确确在见到标语时发出了一声感叹。
在『编程的智慧』 一文中,我分析和肯定了 Swift 语言的 optional type 设计,但这并不等于 Swift 语言的整体设计是完美没有问题的。其实 Swift 1.0 刚出来的时候,我就发现它的 array 可变性设计存在严重的错误。Swift 2.0 修正了这个问题,然而他们的修正方法却没有击中要害,所以导致了其它的问题。这个错误一直延续到今天。
Rick Webb 写了一篇关于阅读的好文,提到了他一年要读 60 本书,而他却是一个手头事情很多、忙忙碌碌的专业人士,那么他的阅读习惯是什么呢?我这里借鉴了他的观点,也加入了一些我自己的想法。
美化代码(对齐和缩进)时用 Tab 还是空格,这个话题和浏览器和操作系统之战,都是老生常谈的话题,都能让程序员争辩很久的。2015 年程序员 Uku Pattak 分析了 GitHub 上多种语言的热门项目(star 数量高)中使用 Tab 和空格的对比情况。今天这篇文章出自前端大牛 Lea Verou。
如果你想要开启作为 web 开发人员的职业生涯,那么你需要涉及的不仅仅是知道如何写代码。有一些通用的软技能几乎可用于每个领域——包括技术行业。成为软件开发人员涉及的不仅仅是编写代码。自从我开始我的第一份作为软件开发人员的工作之后,我很快就知道了这一点。如果你想要在这个领域茁壮成长的话,那么你需要学习“特定的技能系列”
本文尝试阐述Js中原型(prototype)、原型链(prototype chain)等概念及其作用机制。上一篇文章(图解Javascript上下文与作用域)介绍了Js中变量作用域的相关概念,实际上关注的一个核心问题是:“在执行当前这行代码时Js解释器可以获取哪些变量”,而原型与原型链实际上还是关于这一问题。
学会本文内容可以帮助你写出天书一样的bash脚本,并且顺便解决以下问题: 输入输出重定向是什么原理? exec 3<> /tmp/filename是什么鬼? 你玩过bash的关联数组吗? 如何不用if判断变量是否被定义? 脚本中字符串替换和删除操作不用sed怎么做? ” “和’ ‘有什么不同? 正则表达式和bash通配符是一回事么?
这个问题没有轻松的答案,如果你是新用户,之前没有用过任何Linux桌面选项,更是这样。围绕这个话题而写的文章大多数也没有多大帮助,因为它们主要阐述什么最适合新用户使用,而不是帮助新用户自行确定。本文给出对立的设计选择,让用户根据自己的偏好和工作习惯来选择。
一直以来,人们对男性程序员的印象是不善交际的、刻板的。虽然,“技术多样性”是一个 非常热门的话题,但这一印象仍没有得到任何改善。相反,许多IT业内外人士都认为这是理所 当然的,这种刻板的印象是一种自然常态,而这种感觉正式这个行业更包容,更令人为之心动 的一个方面。那么,这种印象是从何而来呢?
有同学曾经问我:开复老师,我是一个即将大学毕业的理工科学生,面临着自己创业与进入企业的两难选择,如果我最终选择自己创业,您是否能够提供一些经验之谈?
我最近写了很多 Sass 代码,但是最近发现并不是每一个人都知道 Sass 具体是什么。下面是一个简短的说明:当我们说起 Sass ,我们经常指的是两种事物:一种 css 预处理器和一种语言。我们经常这样说,“我们正在使用 Sass”,或者 “这是一个 Sass mixin”。同时,Sass (预处理器)有两种不同的语法:
,最早的background 只能使用纯色填充,现在却可以使用各种渐变效果。现在所用的模型来自于CSS Backgrounds and Borders Module Level 3所定义的规范,主要分成了8个子属性。
为什么 2025/05/28 和 2025-05-28 在 JavaScript 中是不同的日子?
为什么原始的Macintosh屏幕分辨率是512×342,而不是人们可能预期的512×384
我的编程技术退步了
台积电押注非正统光学技术
Python 打包工具 Setuptools 最近的颠覆性变化
Linux 打包工具 Flatpak 的未来
ChatGPT 是一种噱头
为什么 Debian 会变成这样?
在 Rust 中写入未初始化的缓冲区
英伟达技术的曙光