9月 032012
 

固定链接:http://www.gamtin.info/archives/366

今天被某人彻底的弄崩溃了。

让他写一段代码,从画面上的一个日期控件上取出当前输入的日期,去和1900/01/01比较,如果小于它,则弹出一个Message提示用户这个年份太小了。

很简单吧,而且是用C#哦。结果,我看到了如下的代码。

string constDate = "19000101";
string inputDate = dateControl.Value.ToShortDateString().Replace("/", "");
if (Convert.ToInt32(constDate) > Convert.ToInt32(inputDate))
{
    MessageBox.Show("XXXXXXXX");
}

控件里可怜的这个值,被从DateTime转成了String,然后还被Replace了一下,最后变成了个int。

而用来比较的19000101也没好到哪里去,出生时候还是String,后来也被变成int了。

知道看完后我的感觉吗?对方可是5年经验的程序员啊。

又想起来曾经见到的一个程序员。让他用Java计算某个日期 + 7天。然后,他花了整整一下午自己写了一个算法:把月分成30天的,31天的,还算了闰年……当然,也有错误,每400年减一天他不清楚。

接下来再面试,一定要加入处理时间类型的题目!!!!

6月 202012
 

固定链接:http://www.gamtin.info/archives/272

最近,面试了不少求职者,简单梳理下我喜欢问的题目。

首先说明,我是一个.NET(C#)程序员,我所面对的求职者的目标职位也仅仅是PG到SE,个别的是PL。下面的问题也主要是技术类问题。

1、.NET基础

  • 声明变量时 int?、double?的含义
  • using关键字的用法
  • DataTable中Row的RowState属性有哪几种

2、思维方式/实现方法

  • 怎么将一个DataTable的数据按照某列重新排序
  • 怎么去除一个DataTable中的重复数据

3、DB/SQL相关

  • 内连接和外连接的区别
  • union和union all的区别

其实都是非常简单的问题,不过能够准确的回答上来的求职者也不是很多。

大连的软件开发行业看似繁荣,实际上大家的能力非常弱。

12月 192011
 

固定链接:http://www.gamtin.info/archives/196

最近见到一些人,听到一些事。于是关于工作,有点看法。

事先声明:以下内容全部个人看法,而且自认为比较适合外企生存环境。如您就职国企、政府部门,最好一笑了之。

总有一些人,一谈到工作就是老板如何不好,而且经过多次换老板、跳槽后依旧如此说辞。但是不知道自己有没有问心想想,难道真是你运气如此之差,遇到了几乎所有的坏老板?还是自己本身就不是好员工呢?

巧合的是,抱怨内容一般都很相似:

老板安排的任务我都做了,要加的班也加了。为啥我年底评价这么差?加薪这么少呢?

或者

老板一点都不体恤员工,他应该这样这样做啊。

虽然细节各有不同,但是基本模式都差不多。

关于第一个抱怨。想一想老板的评价一般都是KPI吧,即和预期相比如何,如超出预期则K、达到则P、低于则I。那么,你只做到了老板的要求(完成安排的任务和加要求的班),为什么还想要一个K呢?

想要得到K?那就干更多的活(不是加更多的班)吧。当然,也是有技巧的,就是尝试站在老板的角度去想老板需要什么样的东西。这么想了,然后做了,老板会看见的。

第二个抱怨。也许你在想,老板的任务就是给员工服务、为员工谋福利的。很遗憾,这是错的。老板的任务是为他的老板服务!

11月 202011
 

固定链接:http://www.gamtin.info/archives/187

早在上次听到 侯伯薇 老兄谈到说敏捷之旅将要来到大连站开始就在期待。昨天(2011/11/19),随着大连的一次降温,如期开始了。

三个主题:

  1. 可视化管理和持续改进:ThoughtWorks的高级咨询师李剑(@凉粉小刀)
  2. 速度与质量的均衡之道:速评网的联合创始人王立杰(@王立杰_敏捷无敌)
  3. 使用google app engine建立个人信息中心:大连牛人程序员孙伟(@sagasw)

中间赞助商中荷人寿的两位美女还带领大家跳了个舞。最后是QClub的保留活动:Open Space。

对于敏捷开发,我完全是0经验:没参加过敏捷团队,更没组建过敏捷团队。对于所知道的敏捷的一切,还都只是通过书籍和同别人的聊天中。参加这次活动,我是带着问题来的:在公司中怎么样来组建一个敏捷团队?如何说服老板和团队成员开始向敏捷的转型?

前两个主题,李剑和王立杰分别讲述了在敏捷实施过程中团队、个人和工具的应用,及质量同项目管理铁三角(范围、资源、时间)之间的位置和协调。很多观点,尽管不是敏捷团队,也依然获益匪浅。而最后,孙伟兄更是身体力行的展示了“以编程为爱好”所能迸发出的力量。

最后的Open Space环节,首先参加了王立杰组的讨论,就我自己的问题咨询了一下。

实际上,这种团队的转型说难也难,说容易也容易。如果团队大家能够有共同的目标,那么就可以采用自下而上的推动的方式。相反,如果能第一个说服老板,则可以至上而下的推动。成功与否,还在于整体大家是否支持换一种工作方式。

当然,也提到了敏捷模式在中国的困难。就是几乎完整的敏捷团队对PM的“革命”性。因为敏捷团队良好的沟通和自我管理能力,一旦这个团队走向成熟,那么项目中的项目经理的存在将会变得毫无必要。这也是不少时候项目经理会成为推行敏捷阻力的原因。针对这个问题,王立杰先生也提供了一些变通的方案。

关于先让小团队转型测试效果的问题,也是会有问题的。就是一个小团队是没有充分的代表性的。说起来就是:无论你们转型成功与否,都有可能是一个特例。想要以此来判断效果如何,并且大范围的推广,还是会有不少阻力的。

之后又跑到孙伟组参加讨论,正好他们聊到了招聘和团队人员选择上。对于一个高速扩张的团队(可能是短期内要1变2,2变4的),如何招聘、选材来构建一个尽量稳定的团队。按照一位多年管理经验的非技术者的看法,这样的团队应该是这样的:30%的聪明优秀有一定野心的人 + 70%的普通人。当快速扩张时候,提拔人才可以在30%中选择,当然剩下的就要做好他们流动的准备,而其余的70%则是团队稳定的重要因素。理想的团队应该是聪明人领导普通人工作,聪明人领导聪明人、普通人领导聪明人都不是好的团队。此外呢,两种人是最不能要的:聪明而坏的人、又蠢又勤快的人。

最后。参加了大连的几次聚会/活动,依然感觉大连的这个圈子实在是太小了,几次下来看到的都是熟面孔。这次活动参加人数算是最多了,也仅仅只有50人左右来参加。大连的软件产业也算是国内有名了,但是因为级别的低端(外包为主),使得大家都完全不关心技术上的问题。活动前,我在公司内部发了邮件来推荐这次活动,结果是非常震惊的:没有人来参加。作为程序员,完全不关心技术,实在是一种悲哀。

相关链接:

2011/11/26 9:29 相关链接更新 @gamtin

6月 122011
 

本文固定链接:http://www.gamtin.info/archives/65

转眼间入行5年多了,也从事了对日开发5年多。于是胡扯一下我所理解的对日软件开发。

对日软件开发的特点

对日软件开发,杯具点儿的讲也可以是“对日外包”。在软件开发领域里面一般是个让人有点看不起的行业,依稀记得这样的故事:

金融危机时,公司裁员,某同事去一家做国内项目的公司面试。对面面试官当得知他是做对日的时候,一脸不屑,表示说这行业的程序员技术很烂,当场拒绝。

当然这是个别现象,但是也反映了一些大家的看法。

我所理解的一些特点:

  • 开发范围小
    一般来说,软件工程中的整个开发周期是从需求分析做起的。但是因为是外包类的工作,需求分析一般是绝对不会交给中国方面来做的,所以大部分公司的开发范围都是从详细设计开始到结合测试结束(近来似乎有所扩大)。这样也就造成了很多人永远都无法经历一个完整的软件开发周期。
  • 流程/文档规范
    也许是日本企业做的都非常规范,也许是日本人也天生喜欢规范。在对日开发中,所有的流程、文档都相当的规范。某些项目甚至可以达到教科书的级别。以至于如果几个有经验的程序员如果一起开发同一个机能,可能会发现他们写出来的代码基本是一样的。
  • 技术要求低
    这里特指普通的开发人员。因为很多情况下,做对日开发项目,使用的技术、语言、框架、共通部分都是日方已经提供好的,所以很多开发动作就是简单的将设计书的内容翻译成对应的计算机可以读懂的语言而已。经常开玩笑说,我们做的这件事,和工地上砌砖头的工人其实是差不多的,只是我们穿的能光鲜一点。
  • ……

技术?外语?

基于以上的特点(是优点/缺点大家可以见仁见智),使得相当多的人有了这样的想法:

不重视技术,甚至日语比技术重要

个人看法,本身外语和技术并不冲突,所以无所谓哪方更重要,应该两方同时进步。

单说到技术,很多人感觉做对日项目完全不需要技术,完全是误解。因为你技术不行,才会被分配一个不需要技术的任务。当你可以独当一面的时候,你会发现需要面对的技术问题是相当多的。而只重外语完全忽略技术,可能短期内会有些好处,但是时间久了,技术上的短板会越发突出,以致影响仕途。

最近做了好多面试。遇到不少技术很差的应聘者,尽管日语、素养等都非常好,我们也只能无奈的拒绝。因为我们需要的是技术者,而不是技术翻译。

还有个在初级程序员中比较普遍的现象,就是“混”。因为要求不是很高,想要在这行业里“混”下来也是非常容易的。于是大家没事上上网、打打游戏、炒个股,过的非常悠哉。这样的环境是很容易让人变得懒惰,但是越是这样越应该努力要求自己去接受新东西。当技术和语言都是短板的时候,后悔也晚了。

未来

说到未来,简单来看无外乎两个方向:技术和管理。我仍在摸索中……

写在最后

开始这个标题,到今天打出最后的一些内容,经历了整整3个星期,主要原因是实在太忙(加班很多,这似乎也是一个特点)。另外就是也确实修改了不少,入行5年多,似乎还不足以来评论整个行业。当然,说来也不算是在评论行业,只是个人的一点理解而已。

也同时欢迎各位多多批评指教。

5月 122011
 

2011 百度Web App应用开发者大会(大连站)于2011/05/12举行,在汶川地震三周年之际,来到了大连。特意请假参加,并记录如下。

2011百度Web App应用开发者大会的官方网站见 这里 ,主要信息摘录如下。

介绍:

为促成Web App应用生态,激励本土软件开发者,百度决定举办2011 Web App应用开发者大会。

Web App应用开发者大会面向App应用开发者和互联网技术人群,围绕”开放平台,由你做主”的主题,广邀行业专家和资深开发者,与大家一同分享百度应用开放平台“全开放”策略,以及Web App应用的设计思想、开发方法和市场前景。

会上,百度还将分享“2011 Web App应用创新大赛”的相关内容,大赛旨在激励开发者能够通过百度应用开放平台提交优质Web App应用,以“即搜即用”的方式积极响应网民日渐迫切的,通过搜索获得应用的需求。为更好地与软件开发者、互联网技术人群做面对面的沟通,百度在五月展 开Web App应用技术大会上海站、深圳站、大连站和成都站的交流巡展活动。

大连站议题:

议程 大连站(5月12日)
13:30-14:00 签到
14:00-14:30 框搜索世界,应用成就未来
田晓萌
百度网页搜索产品市场部产品架构师
14:30-15:15 深入浅出百度应用开放平台
朱建庭
百度高级工程师
15:15-15:25 短休
15:25-16:10 Web App的UI设计
侯伯薇
中荷人寿保险高级系统分析师
16:10-16:30 茶歇
16:30-17:40 百度技术沙龙:Open Space

然后,说说简单的感受。

第一,感觉百度对大连的软件开发者环境应该是非常不熟悉,准备的有点草率。在会后同某同学的交流过程中更验证了这点。当然,这和参加者中学生朋友的比例也有关系。在最后Open Space交流过程中可以看到,有超过半数的参加者都是在校大学生,相对于Web App开发,他们更关注的是有没有机会去到百度工作。不过,从相反方面也反映出在大连的开发者们都不太关心这种类型的活动。

第二,关于百度的开放平台本身。宣讲中,那边提示了一个名字:“BAE”,是不是像极了Google的GAE?从我的观点来说,这就是一个GAE的墙内山寨版(很多参数都是简单的将前缀改为“bd”)。当然,依托在百度框搜索的理念下,其表现形式是趋向在百度的搜索结果页面(内嵌了一个iFrame)。

第三,关于这个平台,宣讲者提到了很多好的地方,给开发者看到了一个很明媚的“钱”景。不过因为其表现形式主要还是在搜索结果页面上,不得不让我想到那万恶的“竞价排名”。当同类应用产生竞争的时候,也许就是百度开始捞钱的时候了。于是过程中,我发了这样两推:

拜某墙所赐,百度就算多成功,也很难被人尊敬。也许,他们也发现了这点,所以索性流氓到底了。

我严重怀疑百度会把其竞价排名应用到所谓的BAE上,来绑架所有开发者。

以很恶的方向去考虑百度,不是我的本意,只是不得不这么去想。

三个演讲中,前两个基本就是在为BAE做广告,号召大家多多参与。最后的宣讲有点不伦不类,期间用了Google做了几次例子,带动大家高潮了一下,实际也没有什么太实际的东西。整体来说,一下午的活动更多的是宣传而已。

最后,尽管如此,个人还是希望有更多的公司来到大连搞一些活动。

百度方面已经放出演讲的ppt,请参考: http://www.allongoing.com/edm/20110608/index.html

@gamtin Update 2011/06/17 09:26