bat 的blog

终于,期待已久的 Java 9 正式发布了!

经过4次跳票,历经曲折的 Java 9 正式版终于发布了! 你可以通过这里下载 Java 9 正式版。JDK9 提供超过 150 项新功能特性,包括备受期待的模块化系统、可交互的 REPL 工具 jshell,以及安全增强、扩展提升、性能管理改善等。

同时发布的还有 Java EE 8

JDK 9 特性一览:

102: Process API 更新
110: HTTP 2 Client

每个程序员都该知道的五大定理

定律-或称法则,可以指导我们并让我们在同伴的错误中学习。这篇文章中,我将介绍我每次设计或实现软件时出现在我脑海的五大定律。其中有些和开发有关,有些和系统组织有关。它们可以帮助你成为合格的软件工程师。

墨菲定律

“凡事可能出错,就一定出错。”

这条定律来源于 Edward Murphy —— 一名航天工程师在 50 年代初对火箭测试失败的回应。这条定律给我们的启示是永远在系统关键地方使用防御性设计,因为系统某些地方总会出错!

这条定律很容易引入软件工程领域。当你将软件暴露给终端用户,他们会创造性地输入一些出人意料的内容,使系统宕机。所以你需要让你的软件足够健壮,能够检测并警告非预期行为。

当你在机器上运行软件时,任何地方都有可能发生问题 —— 从硬盘上的系统到数据中心的电力供应。所以你必须确保你设计的架构在每个层级都可以应对故障。

程序员的八重境界

看到一篇有趣的文章The Eight Levels of Programmers。以前似乎看过不少这种程序员的多少个级别、境界,但这篇语言很风趣,而且分类比较细化,让人觉得挺合情合理、无法反驳的。绝大部分人想成为一名优秀程序员的人,通过努力可以避免1,因为在编程上的追求避开了2,最终可能都停留在4或5。但努力追寻是没有错的,不然没有梦想和咸鱼有什么分别:)。注意一点,作者并没有无脑地批判谁,并没有说会编程、代码写得好就怎样,其他都是不求上进、不务正业。他全文一直都在客观强调一点:每个人的追求不同,想好自己想要活成什么样子,然后就去努力。

下面就简单翻译一下,说是翻译,没有逐字逐句。而且加了一些自己想说的话,主要是传达一下作者的主要想法。另外倒排了一下八个Level的顺序,这样读起来可能更有意思。希望大家阅读愉快。

如何入门Python与机器学习

编者按:本书节选自图书《Python与机器学习实战》,Python本身带有许多机器学习的第三方库,但本书在绝大多数情况下只会用到Numpy这个基础的科学计算库来进行算法代码的实现。这样做的目的是希望读者能够从实现的过程中更好地理解机器学习算法的细节,以及了解Numpy的各种应用。不过作为补充,本书会在适当的时候应用scikit-learn这个成熟的第三方库中的模型。

“机器学习”在最近虽可能不至于到人尽皆知的程度,却也是非常火热的词汇。机器学习是英文单词“Machine Learning”(简称ML)的直译,从字面上便说明了这门技术是让机器进行“学习”的技术。然而我们知道机器终究是死的,所谓的“学习”归根结底亦只是人类“赋予”机器的一系列运算。这个“赋予”的过程可以有很多种实现,而Python正是其中相对容易上手、同时性能又相当不错的一门语言。本文打算先谈谈机器学习相关的一些比较宽泛的知识,再介绍并说明为何要使用Python来作为机器学习的工具。最后,我们会提供一个简短易懂的、具有实际意义的例子来给大家提供一个直观的感受。

具体而言,本章主要涉及的知识点有:

• 机器学习的定义及重要性;
• Python在机器学习领域的优异性;
• 如何在电脑上配置Python机器学习的环境;
• 机器学习一般性的步骤。

普通程序员如何向人工智能方向转型?

眼下,人工智能已经成为越来越火的一个方向。普通程序员,如何转向人工智能方向,是知乎上的一个问题。本文是我对此问题的一个回答的归档版。相比原回答有所内容增加。

一. 目的

本文的目的是给出一个简单的,平滑的,易于实现的学习方法,帮助 “普通” 程序员踏入AI领域这个门。这里,我对普通程序员的定义是:拥有大学本科知识;平时工作较忙;自己能获取的数据有限。因此,本文更像是一篇 “from the scratch” 的AI入门教程。

二. AI领域简介

AI,也就是人工智能,并不仅仅包括机器学习。曾经,符号与逻辑被认为是人工智能实现的关键,而如今则是基于统计的机器学习占据了主导地位。最近火热的深度学习正是机器学习中的一个子项。目前可以说,学习AI主要的是学习机器学习。

但是,人工智能并不等同于机器学习,这点在进入这个领域时一定要认识清楚。关于AI领域的发展历史介绍推荐看周老师写的《机器学习简介》。下面一个问题是:AI的门好跨么?其实很不好跨。我们以机器学习为例。

盘点2017年热度很高的编程语言

“世上语言千千万,我却独爱这一种!”这句话用来形容程序员和编程语言之间的爱恨情仇实在是再精准不过了。根据GitHub 2016年的开源报告,其上所有开源项目共包含了316种编程语言,这是一个什么概念呢?举个例子来说,世界上共有226个国家和地区,也就是说编程语言的数量比国家数量还多。

想要全部精通这些语言显然是个不可能事件,所以编程语言的选择就有了先后之分。编程语言的好坏之争娱乐性高于知识性,所以本文不以好坏论高下,而是以热度作为参考条件,盘点2017年哪些编程语言最受欢迎。

盘点2017年热度很高的编程语言
▲蓝色为Java,红色为Go,黄色为Swift,绿色为Python,紫色为Kotlin

每个程序员都应该记住的十大编程语言之父

C创始人,Dennis Ritchie ,丹尼斯•里奇被世人尊称为“无形之王的C语言之父”,是计算机及网络技术的奠定者,曾担任朗讯科技公司贝尔实验室下属的计算机科学研究中心系统软件研究部的主任一职。是为乔布斯等一众IT巨擘提供肩膀的巨人。2011年10月与乔布斯相继离世,却远未像乔布斯那样得到全球的追捧和悼念。

每个程序员都应该记住的十大编程语言之父

七大有效的编程习惯助你成为更好地程序员

原文:Seven useful programming habits
作者:Bartlomiej Karalus
翻译:雨言

译者注:编程能力和水平固然重要,但如果具备良好的编程习惯,往往也能帮助你事半功倍。本文作者通过切身经验,分享了七个有效的编程习惯,希望对大家有所帮助。

最近在读一些不错的关于习惯养成的书籍,读完之后,备受启迪,于是,我开始反省自己目前的各种习惯,其中有一些就是平时日常生活中的习惯,也有一些仅仅与工作有关,说到工作,就不得不说一下编程习惯了,我很乐意与大家分享我的编程习惯。

随时随地“Ctrl+S”

这是我多年来一直坚持的一个习惯,尽管现在很多新的IDE甚至不需要手动保存,可以自动保存,但我还是会在代码结束的最后一行不由自主地按下组合键“Ctrl+S”,如果我没记错的话,每次只要我敲键盘一停下来我就会“Ctrl+S”,但奇怪的是,这个“Ctrl+S”实际上比我同事脸上的笑容更能节省我一天的时间。

定期释放大脑内存

如何掌握所有的程序语言?

作者:王垠

对的,我这里要讲的不是如何掌握一种程序语言,而是所有的……

很多编程初学者至今还在给我写信请教,问我该学习什么程序语言,怎么学习。由于我知道如何掌握“所有”的程序语言,总是感觉这种该学“一种”什么语言的问题比较低级,所以一直没来得及回复他们 :P 可是逐渐的,我发现原来不只是小白们有这个问题,就连美国大公司的很多资深工程师,其实也没搞明白。

今天我有动力了,想来统一回答一下这个搁置已久的“初级问题”。类似的话题貌似曾经写过,然而现在我想把它重新写一遍。因为在跟很多人交流之后,我对自己头脑中的(未转化为语言的)想法,有了更精准的表达。

如果你存在以下的种种困惑,那么这篇文章也许会对你有所帮助:

1、你是编程初学者,不知道该选择什么程序语言来入门。
2、你是资深的程序员或者团队领导,对新出现的种种语言感到困惑,不知道该“投资”哪种语言。
3、你的团队为使用哪种程序语言争论不休,发生各种宗教斗争。
4、你追逐潮流采用了某种时髦的语言,结果两个月之后发现深陷泥潭,痛苦不堪……

项目难做,程序员难当,软件开发中的9大难题

(本文节选自【德】Christian Grobmeier作品《程序员之禅》)

是什么让项目变糟?何时起我们下班回家时开始盘算:“见鬼,我得离开”?下面是我们程序员不时要面对的一个问题清单,这些问题让我们筋疲力尽。而通常我们又躲不掉,不得不设法去应付。

01 错误的团队

如果你不幸处在一个错误的团队中,问题则免不了。大家也许都还不错,但是当其中某人因为钱的事情不高兴,或者对琐碎的任务感到厌烦时,他就可能破坏团队的气氛。其他人可能只顾着自己的事业,这使得他们变成了糟糕的团队伙伴。某人会认为自己是在帮助这些人实现他们自己的事业目标。如果一个团队成员的知识太少,也可能出现不友好的情况。如果你从事的工作与你的技能不配,或者没有人能够帮你迈出第一步的话,你也可能陷入麻烦。

团队需要和谐。如果你有幸身处“分享同一个梦想”的团队,一切都很美妙。如果你是由无聊或自负之人组成的团队的一员,你可能会经历一段非常艰难的时光。

同步内容
--电子创新网--
粤ICP备12070055号