招聘程序员,永远没有万能的方法。在这里,我只希望分享一些多年来的我个人的招聘经验。
首先, 进行一系列简单的“Hello World” 类型的在线测试
对此,你是不是很惊讶呀?但确实有一些自称为程序员的人几乎不会编程。直到今天,仍会有一些招聘者告诉我,他们总会遇到一些应聘者无法通过最基本的编程测试。
所以,任何合理的招聘过程应把极简单的程序开发测试放在第一步。并且这个测试需要在线上进行,目的不是为了证明应聘者有多牛,而是看看他到底是怎样的开发者。这一过程很有必要,如果不进行这一部的筛选,你将来可能会后悔。
现在有一些服务可以帮助你解决在线测试应聘者的问题,比如Interview Zen和codility。
看开发者在互联网上的个人资料
任何名副其实的开发者应该有一份关于他们工作经历的简历。它不必十全十美,我只关注应聘者在互联网上因帮助他人而留下来的点点痕迹。向我展示你在Stack Overflow上的相关资料,凭此我可以了解你专注于哪些方面的技术信息,同时解决了哪些技术问题;给我一个你曾参与的开源代码库的链接;给我你的专业博客地址?Tumblr?Twitte ...
背景一个高效的软件开发过程对软件开发人员来说是至关重要的,决定着开发是痛苦的挣扎,还是不断进步的喜悦。国人对软件蓝领的不屑,对繁琐冗长的传统开发过程的不耐,使大多数开发人员无所适从。最近兴起的一些软件开发过程相关的技术,提供一些比较高效、实用的软件过程开发方法。其中比较基础、关键的一个技术就是测试驱动开发(Test-Driven Development)。虽然TDD光大于极限编程,但测试驱动开发完全可以单独应用。下面就从开发人员使用的角度进行介绍,使开发人员用最少的代价尽快理解、掌握、应用这种技术。下面分优势,原理,过程,原则,测试技术,Tips等方面进行讨论。
1. 优势TDD的基本思路就是通过测试来推动整个开发的进行。而测试驱动开发技术并不只是单纯的测试工作。
需求向来就是软件开发过程中感觉最不好明确描述、易变的东西。这里说的需求不只是指用户的需求,还包括对代码的使用需求。很多开发人员最害怕的就是后期还要修改某个类或者函数的接口进行修改或者扩展,为什么会发生这样的事情就是因为这部分代码的使用需求没有很好的描述。测试驱动开发就是通过编写测试用例,先考虑代码的使用需求(包括功能、过程、 ...
老陈从学习编程到现在已经经历了12年的时间,正儿八经以程序猿的身份就业是从2004年开始的,算起来也有八年了!但是我的经历较为特殊,第一次以程序猿的身份就业并不是替人打工,而是自己创业。2006年底来到北京在A公司干了一年,2007年底跳槽至B公司,而在B公司从2008年开始我又失去了打工者的身份,进入了第二次创业,一直到2012年春节过后。期间的酸甜苦辣这里不提,要说的是在创业团队解散之后,我的几次求职面试经历。
学 历
有很多人非常惊奇老陈为何年龄并不算大却做了这么多年的程序。实际上,我没有上过大学,甚至高中也是没有毕业的,也就是说,我没有文凭、没有好的学历。
很多人都对我说(实际上我自己也这么认为):学历不是那么重要,现在的企业主要看你的能力!
可是,事不关己高高挂起,你不是老陈,你如何能够体会到老陈的痛楚?大多数企业更加关注一个人的能力,大企业也是如此,这个我不反驳。然而,我们的简历在第一时间并不是送到技术官手上的, ...
Sonar 概述Sonar 是一个用于代码质量管理的开放平台。通过插件机制,Sonar 可以集成不同的测试工具,代码分析工具,以及持续集成工具。
与持续集成工具(例如 Hudson/Jenkins 等)不同,Sonar 并不是简单地把不同的代码检查工具结果(例如 FindBugs,PMD 等)直接显示在 Web 页面上,而是通过不同的插件对这些结果进行再加工处理,通过量化的方式度量代码质量的变化,从而可以方便地对不同规模和种类的工程进行代码质量管理。
在对其他工具的支持方面,Sonar 不仅提供了对 IDE 的支持,可以在 Eclipse 和 IntelliJ IDEA 这些工具里联机查看结果;同时 Sonar 还对大量的持续集成工具提供了接口支持,可以很方便地在持续集成中使用 Sonar。
此外,Sonar 的插件还可以对 Java 以外的其他编程语言提供支持,对国际化以及报告文档化也有良好的支持。
Sonar 的安装Sonar 是 Codehaus 上面的一个开源项目,使用的是 LGPL V3 软件许可。我们可以在其官方网站上下载其源代码及安装包。
其源代码需要使用分布式 ...
以提交的一次开源代码为例,教会你步入开源的世界。
1,首先登陆到https://github.com平台上注册一个自己的账号,这个过程就不演示了
2,然后在左上部分输入一个开源项目的名字,选择的是jvalidator,回车搜索。
3,在搜索结果页面找到如下如图所示的项目,单击项目名称。
4,此时,你已经进入到了rinh/jvalidator的项目主页了,单击右上角的fork按钮,就把这个项目拉到你的账户下了,你就可以加入到这个项目中了
5,此时,页面已经跳转到你的账户下的jvalidator项目里了,单击右下方的复制按钮,将这个地址就复制下来了,稍后有用
6,此时,你需要安装一个git的客户端工具,当然这就很多了,我们演示就用它了http://msysgit.github.io,到这个页面下载此工具,选择一个最新的版本吧,下载到你的电脑里,然后安装它。
7,接着,你在你的磁盘里的一个合适位置建立一个目录,专门用来存放开源代码,比如我在我的D盘下建立了一个git文件夹,进入git文件夹
8,单击你的鼠标右键,会出现一个Git Bash 命令选 ...
最过三个星期的面试,人生的第一次转折终于尘埃落定,虽然过程很平坦,但还是颇有感慨。
有喜就有悲,其中拒了四个公司的offer, 其中有一家实在是不情愿,而且自己还有些失落,不过为了自己的目标,选择去杭州淘宝。人生就是这样,很多东西是缘分注定了的。
先说下我自己的情况,本人毕业于三流二本大学,非计算机专业,因个人兴趣而走向java这条路,其中也经历过培训机构,但个人感觉培训机构教的太浅,而且更多教会大家忽悠,导致了很多人心浮气躁。学习还是靠自己,如果不去多写和多想,肯定在技术这条路上会出现瓶颈,当然不是全针对技术这条路,这个社会本来就是浮躁的,当然一批浮躁的人也成功了。在这两年学习路上,我给自己定无数个小目标,然后一一去实现,去研究,再加上兴趣和激情,感觉这两年对互联网及java及OO有一积累了不少知识,感觉此时时机已经成熟,所以开始了为期三周的漫长而又煎熬的面试旅程。
面试从一个创业公司开始的,刚开始就是想积累下面试经验,毕竟本人属于内敛型,心里虽有千言,而有时也无从娓娓向面试官道来。所以就先锤炼一番,然后再向心中的理想公司淘宝进军。第一个创业的公司面试我的人是个博士, ...
“生死六重门”
无论你是在职,非在职,高级工程师,工程师,架构师,如果你正在面试阶段,请看完此文!
相信这篇文章对你的职业生涯和阶值观会造成重大的改变!
如果你是一名PM或者是管理者正在物色合适的开发人选,那么我相信这篇文章同样会在在你考虑如何挑选技术型人材上给你带来重大的帮助。
本系列不适合想去应聘PM,管理路线的人士!!!
作为一名技术型人材由其是程序员,用什么可以恒量自己是否合格或者我们怎么去恒量一个程序员是否质深、是否合格?
比如说:他可以适合一般的软件工程师岗位,还是适合高级工程师岗位,还是架构师、系统分析员这样的岗位呢?
作为一名JAVA开发人员来说,JAVA涉及到的面太广了,我们就拿企业级开发人员即J2EE开发人员的基本功来说事吧!
在面试前先问自己5个问题:1. 我想要什么
2. 我会什么
3. 目前的市场需要什么
4. 目前我还缺什么
5. 如何去补缺
一个J2EE高级开发人员需要具备些什么技能?
或许你会说:我会SSH,我会工作流,我会JQuery, ExtJS,我参加过数个大型项目,我带过5,6个人的队,我有SCJP, SCEA证书,我工作经验达5年。
我会告诉你 ...
gzdd
未读1.学习一门新的编程语言(Learn a new programming language)
学习一门新的编程语言将有助于你开拓新的思维方式,特别是当你使用不熟悉的语言时,你将学习到很多种思维方法应用到语言中。而所学习到的新思维方式,你可以运用在你所熟知的语言中。甚至有时你会使用新学的语言进行你的重要项目。
提供学习经验包含: Lisp (Scheme is good), Forth, PostScript or Factor (stack-oriented programming languages), J (wonderful array programming language), Haskell (strongly typed purely functional programming language), Prolog (logic programming) and Erlang (concurrent programming goodness).
2.阅读好的且具有挑战性的编程书籍(Read a good, challenging programming book)**** ...
人才是咱这个星球上永恒的话题,关于人才的管理更是一门高深的艺术。对于管理,我也一直在不断求索。

就像一个馒头引发的血案一样,所有事情都有个起因。这段思考的起因又是什么呢?
事情的发展是这样的。。。
2010年,我在任职某公司开发部经理期间,带着数十个人。我的原则是:制定准则、给予空间;能力服之、诚以待之。我认为工作应该是生活的一部分,应该是快乐的,谁也不愿意一早上上班,就看到领导的脸色,弄得自己一天心情不好;如果一直是这种状况,是我,也迟早得换工作。我认为,和员工之前,平时可以开一些不伤大雅的玩笑,但每个人都应该在平凡的表面之后,认真的去面对自己的每一项工作,这是态度问题。你认真了,也就对自己的人生在负责。
这期间发生了很多事情,比如小李辞职,小张要求加薪啊。每当这个时候,我也很受折磨,心里不平衡。问自己:“我这样对他,为啥他还要辞职,就不能踏踏实实的一起好好做个事业呢。工资低是暂时的,时间长了,自然水涨船高。”
有很长一段时间,真的怕员工离 ...
一、引言在当今数字化时代,网络服务器架构的优化对于提升服务性能和用户体验至关重要。本文将深入探讨几种经典的网络服务器架构模型,从传统的阻塞型接口到多线程模型,再到基于事件驱动的模型,分析它们的原理、优缺点以及适用场景,帮助读者理解不同架构模型的特点,从而在实际网络编程中做出合理选择。
1.1 网络编程中的挑战在网络编程领域,构建高效稳定的服务器程序一直是程序员面临的重要任务。传统的网络编程方式在处理多客户机、高并发请求时,往往面临资源占用高、响应效率低等问题。如何优化服务器架构,提高服务接待能力和网络传输效率,成为了亟待解决的关键问题。
1.2 本文重点本文将重点介绍阻塞型、多线程、基于select()接口的事件驱动以及使用libev事件驱动库这几种服务器架构模型。通过对比分析,揭示事件驱动模型在应对高连接数、高吞吐量场景下的优势,为网络编程提供有价值的参考。
1.3 技术路线
详细阐述每种架构模型的工作原理,包括接口使用、线程操作、事件探测与响应机制等。
结合实际案例和代码示例,深入分析各模型的优缺点。
对比不同模型在资源占用、响应能力、可扩展性等方面的表现,总结出适用场景。
二、 ...
