招了个比较菜的开发,是继续培养还是放弃?

2015-05-24 17:33:11 +08:00
 banxi1988

招了个比较菜的开发,是继续培养还是放弃?

背景

由于公司位置原因(广西南宁),招了很久没有招到人,于是近来放松了要求,好了,招了个 iOS 开发进来.
由于他完全没有听过Git 这东西,于是第一天是培训下Git的使用.然后是Xcode使用,然后是AutoLayout,
UIScrollView,UITableView等等.

序曲一

首先是AutoLayout的使用测试, 写代码不会, 第一天勉强交差, 但是处理UILabel时,不知道contentHuggingPriority属性.于是我亲自写代码示范指导了一遍.
第4天时,布置了实现一个列表页加详细页的小Demo,没有增删.
做过开发都应该知道,这种一个列表页一个详情页,是最简单也是最常见的Demo了.
Xcode 生成的Master-Detail 项目模板都比这样复杂.
一开始我还是渐进的要求的, 要求实现一个列表页吧.
但是, 它居然开始是网上找了一个Demo 来交差 (不过刚好,那Demo我在Github见过,还提过PR)
于是要求让他自己写.
晚上交差,发现他所知道的MVC应该就是知道其缩写,这还在其次,更让我失望的是,居然类都不会用.
自然,我叫他好好理解下Model的意义和使用
晚上,一看代码,如果多了个Model类,但是是这样的:

class Model {
    var titleLabelArray = ["漓江晚霞迷人景色","尽游三江",  "阳朔夜景一角","阳朔夜景一角",]
    var bodyLabelArray = [ "漓江迷人风景,千姿百态的民族风情,让人流连忘返",  "强化漓东巡逻防控,预防和震慑\"两抢一罪\"犯罪",  "强化漓东巡逻防控,预防和震慑\"两抢一罪\"犯罪", "强化漓东巡逻防控,预防和震慑\"两抢一罪\"犯罪"]
    var imageArray = ["guilin0", "guilin1", "guilin2", "guilin3", "guilin4"]
    var timeArray = ["2015-05-01", "2015-06-02", "2015-07-03", "2015-08-04"]
    var scrollViewLabel = ["风景1","风景2", "风景3", "风景4"]
}

原来这就是他所谓的Model啊...
然后我想,接下来我会交给他实现详情页的任务,那时他应该会认识到他的错误了吧.

序曲二

然后第二天任务就是,在前一天的基础上,实现详情页

下午的时候,他去上厕所的时候遇到我,问我说,给详情页传数据用委托怎么样?
我心里想: 委托? 这里要用委托?
然后我说要不你先看看iOS 的 那个教程 马上着手开发 iOS 应用程序 (Start Developing iOS Apps Today)

下午下班前,问他看了没? 他说他已经实现得差不多了
晚上我办事完,回到家看到它的代码,还是老样子,整个人都不好了, 真是聪明的孩子啊! 估计用plist来传值

var ban = NSBundle.mainBundle()
        //读取plist文件路径
        let plistpath = ban.pathForResource("DetailModelList", ofType: "plist")!
        //读取plist内容放到NSMutableArray内
        data = NSMutableDictionary(contentsOfFile: plistpath)

        title1 = data?.valueForKey("title") as! [(String)]
        time = data?.valueForKey("time") as! [(String)]
        date = data?.valueForKey("date") as! [(String)]
        from = data?.valueForKey("from") as! [(String)]
        bodyImage = data?.valueForKey("bodyImage") as! [(String)]
        bodyText1 = data?.valueForKey("bodyText") as! [(String)]

他居然是使用在列表页将一个列表项的内容写入一个文件,然后再详情页中再读取.
但是在iOS 中这样应用中两个类之前传递值,只要简单的

detailViewController.item = selectedItem;

即可.

细节

  1. 他用 百度查 Model 的时,我说翻墙都给你配置好了,为什么不用Google啊?
    回: 之前从来没有翻过,用Google不习惯

  2. 上面让其看 Apple 的文档时,居然开启了Google的自动翻译,然后也是不看英文文档的,
    估计基本也就告别了StackOverflow了,太可惜了. (英文不好,还不思进取,在我心里减分不少)

再给一次机会

早上,我出去办事之前,给他Tower上留言说:

继续修改,希望晚上能看到让我满意的结果

晚上回来,一看,处理详情页的代码更难看了
增加了一个DetailModel.swift文件
全部内容如下:

import Foundation
import UIKit

var ban = NSBundle.mainBundle()
//读取plist文件路径
let plistpath = ban.pathForResource("DetailModelList", ofType: "plist")!
//读取plist内容放到NSMutableArray内
var data = NSMutableDictionary(contentsOfFile: plistpath)


var title = data!.valueForKey("title") as! [(String)]
var time = data!.valueForKey("time") as! [(String)]
var date = data!.valueForKey("date") as! [(String)]
var from = data!.valueForKey("from") as! [(String)]
var bodyImage = data!.valueForKey("bodyImage") as! [(String)]
var bodyText = data!.valueForKey("bodyText") as! [(String)]

func detailModelOfNum(num: Int) -> (title: String, time: String, date: String, from: String, bodyImage: String, bodyText: String) {
    return (title: title[num], time: time[num], date:date[num],from: "来源: " + from[num], bodyImage: bodyImage[num], bodyText: bodyText[num] )

}


func changeView(obj: DetailViewController, num: Int) {
    obj.titleLabel.text = detailModelOfNum(num).title
    obj.timeLabel.text = detailModelOfNum(num).time
    obj.dateLabel.text = detailModelOfNum(num).date
    obj.fromLabel.text = detailModelOfNum(num).from
    obj.bodyText.text = detailModelOfNum(num).bodyText
    obj.bodyImageView.image = UIImage(named: (detailModelOfNum(num).bodyImage))
}

这下我真是失望透了,于是直接在Tower回了:

刚看了,很不满意, 失望.

他回复的其中一句,真是让我苦笑不已啊:

model的概念我理解差不多了

矛盾

这种开发, 我内心是不肯花时间去培养的.
但是,在相对落后的地方招人又比较困难,而且说起来他还是有 iOS 开发经验的

个人倾向: 不想浪费时间了.

18524 次点击
所在节点    程序员
216 条回复
lxy
2015-05-25 10:47:58 +08:00
南宁居然有这么好的公司,可惜我只做桌面应用……
mgc
2015-05-25 10:54:00 +08:00
招的时候就应该想清楚,把好关,你找应届生来自己培训,花一年半载教会他,但到时候你的庙太小,人家留不住,骑驴找马,去别的地方“高就”了
Lonely
2015-05-25 10:54:20 +08:00
楼主面试的时候啥都没问就招进来了么。。。
libook
2015-05-25 11:07:59 +08:00
。。。开了吧,不用google不能忍,而且没有学习意识。
dogfeet
2015-05-25 11:27:38 +08:00
@zealic
@learnshare
我们公司以前用`P4`(我个人觉得P4比Git优秀多了),后来强制使用SVN,我不会用Git,因为还没用过,但是我觉着吧,“不会用 Git 的程序猿永远也成不了好程序猿”是不是太偏激了?
zengfx
2015-05-25 11:53:02 +08:00
建议开了,,,并好好羞辱一番,让他自己知道是个菜B
learnshare
2015-05-25 11:56:04 +08:00
@dogfeet 不偏激

大家都在用的东西,就应该去学一下,以后工作中用到的几率几乎是 100%。
我听说过连智能机都不用的实习生,你让他进互联网公司干嘛?
nani
2015-05-25 11:59:54 +08:00
@w99wen 强烈鄙视百度,Google一页就能查到的东西,百度查好几页都没见着。就算有,也是没用的,这和什么语言无关。不会用Google的程序员,果然灭了。再说LZ连翻墙都搭好了,给你用不用。
1etters
2015-05-25 12:09:04 +08:00
建议培养,但是要让他转变态度,需要好好谈谈
dogfeet
2015-05-25 12:11:27 +08:00
@learnshare 本来不想这么说的。
轮子哥喷git不是一次两次了。会用git既不是充分条件也不是必要条件。我也可以在你没跟进学习git的时间点说这句话。
kzzhr
2015-05-25 12:11:38 +08:00
我觉得真该卡个代码行之类的,比如几万行以内坚决不要的。这些人基本上属于语法不熟模式不懂
andy1987
2015-05-25 12:18:34 +08:00
如果能培养起那是最好的,这样员工反而是比较适合公司的,但是也要考虑到一些风险的存在,比如培养起来就跑路了啥的,这种现象在很多公司并不少见。

对于处于项目紧张期和公司资金不宽裕情况下,最好不要去培养新人。

顺带考虑一个新人,除了开始的技术,个人兴趣,热情,学习能力,适应能力都是应该加入是否可培养的考核标准中。
vob636
2015-05-25 12:30:04 +08:00
哎,最近带新人,也是遇到这个问题,提出看点什么技术问题,或者写好的demo让参照,稍后问看的怎么样了……也是一句话:恩恩,差不多了。
然后让写出来某种效果的时候,就磕磕绊绊总是不行,然后各种埋怨,说这个没有讲过,那个不知道怎么来的,也是翻墙给配好了的,也真是服了。
真不知道现在IT的泡沫还能撑多久,我蛮远头儿招人不把好关,头儿真不知道头是怎么放进来的,然后头儿也说现在这些90后刚毕业就要10k+,还什么都不会,关键还是特别难招……真想不管,让头亲自体验下这种痛苦。
simaben
2015-05-25 12:50:40 +08:00
好类似的情况,公司也是最近来个一个哥们儿,技术很普通,我们同事还要先教教他怎么写。感觉这样浪费大家的时间。知道学的晚上回去自己都能熬夜学,不知道的手把手也教不会,还搞得自己累。
pijingzhanji
2015-05-25 12:53:13 +08:00
@simaben 同遇到过这样的,教他啥他就干啥,不教啥也干不了,后来想想,什么都得教他一遍他才会干,不如自己干效率高了,教的时候还得各种讲解。
tuoxie007
2015-05-25 13:02:01 +08:00
我觉得LZ还是有收获的,至少以后招人会更有经验些
inmyfree
2015-05-25 13:06:32 +08:00
觉得主要是地理位置吧,如果在北上广肯定不会有这个问题,差点的珠海也不会有这个问题,因为人多,基本一面技术聊聊天感觉不好就没了
qw7692336
2015-05-25 13:09:59 +08:00
给他讲过一遍,下次就会用的那种还好。
如果是教他上Google,下次见到还用百度的,就不怎么靠谱了。
learnshare
2015-05-25 13:36:44 +08:00
@dogfeet 我不认识轮子哥,不清楚他的观点

我是找工作之前,自己摸索的 Git(目前依然是皮毛)。大家都在用的东西,应该好好用一下,不然怎么自己做一个更好的?
zonghua
2015-05-25 13:36:45 +08:00
@vob636 招我么?楼主说的这些都熟悉到不行。z

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/193373

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX