返回 登录
0

一周极客热文:从分析8000条软件工程师招聘信息所学到的

  http://img.my.csdn.net/uploads/201409/01/1409562905_7185.jpg

Aline Lerner 过去以编程谋生,现在从事招聘工程师的工作。去年,她通过参考全年的有效招聘数据编写了一篇文章,总结如下:

  • 如果可以的话,尽可能让招聘信息更个性化。谈论你从事什么工作,候选人已经做的事情与招聘内容有什么样的关系,你为他们在做一些事情的原因。攀亲带顾,人造的个性化不算在内。
  • 即使是创始人的亲自招聘也并没有从本质上增加价值,除非他们是个性化的和有针对性的。
  • 写好招聘信息是很难的,并且当工程师和创始人作为招聘人员,他们不一定比专职招聘人员做的更好。在另一方面优秀的招聘人员是更有价值的。专业的人与非专业的人相比,能够做出更多有吸引力的信息。
  • 试图克扣优秀人才工资是不会让你有任何朋友。而且一开始就让薪资透明化,假设这些薪酬是有竞争力的,可能是一个更好的策略。

下面是小编为大家盘点的一周极客热文。(如果你对有极客头条有什么建议或遇到了什么问题欢迎来邮qianshg@csdn.net,主题请加“极客头条”字样。)

一、 JAVA 9 新特性

Oracle已将JAVA 9的开发提上日程。OpenJDK上已经出现了关于下一个主版本JAVA 9的改进建议。下一个release版本将推出三个全新的API:

  1. 轻量级的JSON API(JEP 198):用于读写JSON文档和数据流。
  2. HTTP 2客户端(JEP 110):支持HTTP2.0和websocket,用以替代原有的HttpURLConnection。
  3. 进程API更新(JEP 102):改进对操作系统进程的控制与管理(以往开发者只能用现有API提供的编写native代码的方式)

还有一些其他的小特性诸如在JEP中提及的数十个建议。此外,Oracle还承诺了另外三件有关性能的特性:

  1. 改进竞争锁(JEP 143):此项旨在于改进当线程竞争访问对象时的性能。
  2. 分段代码缓存(JEP 197):更好的性能,更短的扫描时间,更少的碎片,以及其他扩展能力。
  3. 智能的JAVA编译器sjavac(JEP 199):默认使用sjavac来构建更为大型的项目。

二、 那些必读的数据库领域论文

基础与算法

  • The Five-Minute Rule Ten Years Later, and Other Computer Storage Rules of Thumb (1997): 此文与十年前的原始论文解释了一个量化公式,用来计算数据页是否应该缓存在内存中。能读到Jim Gray处理一系列相关问题(比如数据页应该多大)的方法,幸何如之。
  • Paxos Made Simple (2001): Paxos构成了许多分布式系统的基础。想法很简单,但理解起来却出名的难(可能是因为原始论文的写法太……)。

关系数据库

经典的系统设计

列式数据库

列式存储和面向列的查询引擎对于分析型负荷即OLAP至关重要,已有15年历史(最早的MonetDB论文发表于1999年),到现在几乎所有商业数据仓库都有列式引擎了。

数据并行计算

  • MapReduce: Simplified Data Processing on Large Clusters (2004): MapReduce既是一种编程模型(借鉴自函数式编程中的古老概念),也是Google用于分布式数据密集计算的系统。这个编程模型如此简单而又功能强大,能够满足广泛的编程需求。系统加上模型,是容错而且可扩展的。

趋势(云计算,仓库规模计算和新硬件)

  • A View of Cloud Computing (2010): 关于云计算的权威论文。从技术角度讨论了云计算(主要指资源的弹性而不是面向消费者的“云”)的经济意义和阻碍因素。这些阻碍因素将影响云中系统的设计决策。

扩展阅读——许多学校都有针对研究生的数据库阅读列表

  • Berkeley: http://www.eecs.berkeley.edu/GradAffairs/CS/Prelims/db.html
  • Brown: http://www.cs.brown.edu/courses/cs227/papers.html
  • Stanford: http://infolab.stanford.edu/db_pages/infoqual.html
  • Wisconsin: http://www.cs.wisc.edu/sites/default/files/db.reading.pdf
  • Joseph Hellerstein的Berkeley数据库研究生课程阅读列表,比本列表更全面

三、 学习Linux/UNIX的在线免费书籍和课程

书籍《鸟哥的 Linux 私房菜 — 基础学习篇》(繁体中文)《鸟哥的 Linux 私房菜 — 服务器架设》(繁体中文)《UNIX入门指南(英文)》《Linux命令行(英文)》《搭建Linux开发环境(英文)》

课程《Linux达人养成计划》《在Ubuntu Server下搭建LAMP环境》《Linux系列教程(Youtube英文)》《UNIX实践(英文)》

工具Shortcutfoo - 熟悉命令行功能的在线小工具。这个在线的小工具把Linux命令划分成多个分类,集中熟悉相关命令的功能,并且通过测试让你不加深记忆。

distrowatch – 汇集了数百个Linux发行版本更新信息的网站。

四、 JAVA多线程和并发基础面试问答

  • 进程和线程之间有什么不同?

一个进程是一个独立(self contained)的运行环境,它可以被看作一个程序或者一个应用。而线程是在进程中执行的一个任务。Java运行环境是一个包含了不同的类和程序的单一进程。线程可以被称为轻量级进程。线程需要较少的资源来创建和驻留在进程中,并且可以共享进程中的资源。

-可以直接调用Thread类的run()方法么?

当然可以,但是如果我们调用了Thread的run()方法,它的行为就会和普通的方法一样,为了在新的线程中执行我们的代码,必须使用Thread.start()方法。

  • 在多线程中,什么是上下文切换(context-switching)?

上下文切换是存储和恢复CPU状态的过程,它使得线程执行能够从中断点恢复执行。上下文切换是多任务操作系统和多线程环境的基本特征。

五、 我们为什么仍然要雇用效率低下的程序员?

之所以光凭能力、效率、专业性不能决定一个程序员去留,主要有以下3个原因。

  • 任何公司都需要采用营销和技术手段,来生产和推广产品,代码质量并非成功的唯一因素。
  • 外行人看不出代码质量。一个漂亮的用户界面,哪怕后面的代码乱七八糟也没关系,Who knows?
  • 是否专业化要经过10多年的维护之后才看得出来,大浪淘沙,历时弥久。

六、 什么原因成就了一位优秀的程序员?

  1. 他们做调查研究(或者叫“三思而后行”,或者叫“谷歌一下”)
  2. 他们阅读错误信息(并按照它们行事)
  3. 他们去看源代码
  4. They just do it
  5. 他们避免危机
  6. 他们善于沟通交流
  7. 他们激情四射

此外,还值得关注的有:我的多年编程经验总结偷懒是程序员的一种至高境界【调查】程序员需要知道的97件事,你知道几件?揭秘 GitHub 的 CSS 技术细节一网打尽!200+值得收藏的设计师资源站SysAdmim 必备:系统性能大牛 Brendan Gregg 分享的 Linux 性能工具

更多精彩内容,请点击一周极客热文查看。

上期回顾:

一周极客热文:2014最受欢迎的10种编程语言

关于我们:

极客头条是CSDN推出的精品内容发掘平台,在这里可以发现、分享值得你关注的极客新闻。

如果你看到优秀的文章想分享,请点这里:【分享到极客头条】,或者直接在新浪微博@极客头条

您在使用极客头条的过程中遇到了问题或相应的一些建议,请随时来邮与我们取得联系。(qianshg@csdn.net,主题请加“极客头条”字样)

评论