code craft_软件Craft.io指导

code craft

首先,一点背景和隐喻

在中世纪,学徒会在车间里工作,并由高级工匠(技工)或大师级工匠亲自指导。 学徒有责任学习,观察大师和其他所有人的工作,质疑一切并尽可能多地练习。 这不同于老师负责教学的师生关系。 这是学徒必须推动自己的发展。

在师傅的指导下,学徒将每天学习和完善他的技能。 随着时间的流逝,主人将达到他的极限,因为他可以教徒弟,而两者之间的知识和技能差距将不再那么大。 然后,船长将公开承认该学徒为专业人士,可以自己承担工作,并以与交付自己相同的质量交付该交付。 此时,该大师将以自己的声誉而行,因为他是训练学徒的人,现在正在证明自己的能力。

这将是毕业点。 现在,学徒已准备好作为一名熟练工开始自己的旅程。 作为一个旅行家,他将在各个城镇之间旅行,为不同的大师工作并向其学习,直至他被所有这些大师和其他工匠认可为大师。 然后,他将准备拥有自己的商店,并开始指导其他旅行者和学徒。

回到现在

从现在开始,我将使用导师/受训者,而不是硕士/学徒。 主要原因是您不需要成为高级工匠来指导某人。 您也无需成为学徒即可获得导师。 除此之外,每个开发人员都有不同的专业领域。 他们在某些领域可能非常资深,而在其他领域则完全无知。 众所周知,软件开发并不像中世纪的铁匠铺那样有限。

导师的角色

决定指导某人是一项重大责任。 指导者的角色不仅仅可以通过电话获得,还可以在这里和那里回答一些问题。 尽管这可能非常有帮助,但导师的作用远不止于此。 指导者有责任使受指导者成为一名优秀的专业人员,包括技术和个人方面。 指导者不仅会教受训者特定的框架或技术,还将教受训者如何成为专业的软件开发人员,包括道德和行为准则。 从技术角度讲,导师将尽最大努力教授他所知道的一切。 如果他们不能一起工作,则预期导师将保留正式时间与受训者一起工作。 从个人的角度来看,导师应在其职业生涯(旅程)中帮助受训者,提供一些指导,建议,开门或展示自己已经打开的门,将其介绍给自己的专业圈子以及其他由导师判断的事物对于受训者而言可能很重要。

受训者的角色

受训者应尽其所能向导师学习。 受训者必须心胸开阔,能够接受批评,能够倾听,并且在使知识永续方面非常积极。 练习是关键。 希望该受训者尽可能多地练习,使他或她自己每天都变得更好。 人们也期望月经会产生一些东西。 指导者可以衡量其进度并可能确定需要改进的地方。 除了给受训者带来直接好处之外,这也是让指导者兴奋地寻求帮助的最佳方法。 导师必须表现出热情和明确的学习欲望,否则导师可能会失去兴趣并浪费时间。

得失

导师有机会延续自己的知识,因为他们需要组织思想来教导某人。 导师还需要努力学习和练习,以不断养活他的受训者,这显然是一件好事。 他们将以良好的基础,道德和职业素养获得帮助开发人员发展职业的满意度。 他们将尽自己的一份力量提高我们行业的水平,培训下一代,这本身就是一个非常崇高的事业。 但是有牺牲,主要的是时间。 导师应将时间用于他们的受训者。 如果导师和受训者每天都在一起工作,那么他们不需要太多时间在外面工作。 但是,如果他们不这样做,则导师需要明确表示,他们需要找到并为其受训者预留时间,最好是定期进行。

学员有机会作为专业软件开发人员加快开发速度。 他们受益于多年来导师的经验,从而缩短了学习知识的时间,并避免犯同样的错误。 他们还有一个可以信任的人,可以对他们正在经历的事情(技术问题,经理的问题,过程,官僚作风,截止日期,估计等)提供不同的看法。 没有任何科学证据支持我,我敢说,两方面的态度正确,在一起的时间很长,受训者可以在两年内学到导师在十年中学到的知识。 这使受训者的职业生涯有了巨大的开端。 从受训者的角度来看,时间永远不应被称为牺牲。 至少可以说,当某人免费获得大量知识和帮助,可能会节省他们的职业生涯时,抱怨时间(或缺乏时间)将是非常短视的。

相互尊重

导师和受训者都应相互尊重。 为了建立健康和繁荣的关系,两方面都必须作出承诺。 这种承诺是相互尊重。 导师对与导师的定期互动和时间投入表示尊重。 这位受训者对自己的卓越表现和进步表示敬意。 那是受训者为牺牲与家人和朋友的时间以帮助他的人所能做的最低工作。

到目前为止,我已经给出了一些背景历史,并根据软件Craft.io原则描述了指导者和受指导者的角色和职责。 现在,我将讨论与关系本身有关的其他几个方面。 请记住,这里的重点是工作以外的指导。 让我们从头开始。

我们如何找到导师或受训者?

这可能是最难回答的问题。 我可以考虑三种可能性(无特定顺序):

  1. 尝试找到每天与您合作的人。 这将使方法更容易。
  2. 通过用户组和社区。 如果您是用户组或社区的活跃成员,则将有机会结识很多人,并可能找到所需的导师或受训者。
  3. 通过指示:朋友可以向某人推荐/介绍您。

选择导师

尽管不是规则,但通常在Software Craftsmanship中,由受指导者选择指导者,或者至少开始对话。 受训者需要对他要走的道路有一个想法。 例如,他可能想了解更多有关移动开发的知识,担任顾问,在高性能低延迟系统中工作,了解游戏开发,改进他的自动化测试技术,或者在最佳情况下,只是学习如何成为一名开发者。一个更好的开发者。 无论受训者的志向是什么,受训者都需要确保他的未来导师是能够提供他或她正在寻找的知识的人。

不幸的是,这说起来容易做起来难。 取决于受训者在其职业生涯中所处的位置,他可能不完全知道自己想要什么。 他甚至可能不知道自己有什么选择。 尽管优秀的开发人员是优秀的开发人员,并且软件开发的基础和原则始终适用,但我们都知道,在不同类型的系统中使用的技能集可能会有很大差异。 一个经验丰富的开发人员花了他的大部分职业时间进行网络开发,并成为用户体验方面的专家,可能需要一段时间才能在没有GUI的完全服务器端异步应用程序中获得良好的性能。 在高度依赖算法且不使用任何数据库的应用程序上工作可能与开发移动客户端应用程序完全不同。 在咨询公司工作与在银行或创业公司工作的方式可能完全不同。

这些是开发人员在其职业生涯的早期阶段可能甚至一无所知的事情。 如果您正处于职业生涯的现阶段,最好的建议是您纯粹专注于成为一名出色的开发人员并学习基础知识。 例如测试驱动开发,干净的代码,重构,面向对象的原理,不同的语言和范例。 一旦有了这些,您将更容易选择下一步。

选择一名导师并非易事。 也许一位导师将无法教授受训者想知道的一切。 受训者应该专注于下一步,而不是专注于整个职业生涯中想要学习的一切。 一旦有新的机会和选择出现,受训者可能会经常改变主意。 他们应该保持开放态度,并随着时间的流逝选择其他导师。

选择一名实习生

导师在接受受训者之前应该问自己:我能为这个人奉献时间吗? 我真的可以帮助他或她的职业吗? 如果答案是肯定的,那就太好了。

在受训者中寻找的第一件事是热情。 由于导师将分配时间帮助某人,因此他们应确保该人应得的帮助。 确保受训者致力于变得更好。

指导者需要决定的另一件事是他们未来的受训者应该具有什么样的资历水平。 一些导师更愿意选择应届毕业生,其他人则更喜欢具有一,两年经验的大三学生,而另一些人则更愿意获得长者或即将成为长者的受训者。

选择一名实习生是非常个人的事情,不同的辅导员会有完全不同的标准。 如果导师已经认识了受训者,则比这容易得多。 当导师不认识受训者时,我可以建议一些可以组合或独立使用的选项:

  • 介绍信:导师可以要求受训者提供到目前为止的职业概况(不是简历)。 在此摘要中,受指导者将描述他的工作,他认为自己的职业,所学的内容,提供(如果有的话)链接到他的公共资料的链接,例如github帐户,twitter,博客,Web /移动应用程序以及最重要的是,他对导师的期望。
  • 编码挑战:指导者可以在考虑说和接受受指导者之前进行挑战。 例如,受训者需要使用他的首选语言编写一个简单的博客或Wiki应用程序,并将其部署在某个地方(heroku,cloudbees,Google App Engine,Amazon Beanstalk等),并且代码应该是公开的(例如github)。 或者可能更简单一些,例如使用两种不同的语言或类似的方法来解决一些kata。
  • 博客:Mentee如果没有博客,则应创建一个博客,并发布一些与他自己正在学习的内容相关的帖子。

导师,如果走这条路,应该根据他期望受训者的资历水平来设定挑战。 一旦指导者对潜在的受指导者的最初努力感到满意,他就可以决定是否接受该受指导者。

指导常见的误解

导师并不比受训者好 。 通常,指导者将在被指导者选择指导的领域中拥有更多的知识和经验。 但是,与其他领域的导师相比,受训者可以轻松拥有更多的知识。 受训者不应期望导师能够解决所有问题,并且导师也不应天真地认为受训者一无所知。 导师和受训者都有技能和局限性,这两个部分都需要理解。

导师不应该再年轻几年 。 对于导师来说,这可能令人沮丧。 人们是不同的,导师如果不对准备加入的那种受训者更加开放,就会错过他们。 没有理由如此严格。 指导具有不同性格,可能略有不同的野心的人可以极大地丰富导师和受训者。 但是,重要的是,两者必须具有相同的价值观和原则。

受训者不应期望导师会改变他们的生活 。 指导者将在那里为受指导者提供指导和教导他们所知道的知识,但是由受指导者决定如何处理。 导师应该尽自己的力量去改善自己,而不认为导师会给他们以汤匙喂食。 受指导者要照顾自己的职业。

一起走(或至少走一部分路)

一旦建立了导师和受训者之间的关系,就可以公平地说他们将一起旅行。 每个软件工匠都在通向掌握的个人旅程。 他们都在走很长的路 。 导师和受训者都将在彼此共享旅程的同时学习。

在指导期间应该做什么导师?

好吧,这取决于指导类型。 通常,他们期望编写代码,大量代码。 理想情况下,他们应该一起构建一些东西,在编写代码方面,受训者应该是最活跃的。 指导者应尽可能与受训者配对编程,并检查其代码。

同意创建应用程序可能是最好的选择,因为这不仅涉及编写代码,而且还考虑需求,能够确定优先级,定义开发过程,部署策略,生产环境以及与软件相关的所有其他方面现实生活中的项目。

在katas上工作也是有效的。 对于受训者来说,这是一种简单快捷的方法来学习基本技能。 当受训者对TDD,命名,重构,编程语言范例等基础知识感兴趣时,可以使用此方法。但是,在学习了使用kata的一些基本技能后,他们应该着眼于做一些更大的事情来真正模仿他们将在其专业环境中工作的应用程序。

建立目标并跟踪进度

建立目标绝对是良师益友的好习惯。 它使导师和受训者专注于他们想要实现的目标。 努力实现目标始终是学习和学习某些东西的最佳方法。 目标应该是可以实现的,并且可以用来激励和指导人们提出的建议,而不应被视为一个艰巨的最后期限。 但是,它们应该尽可能地具体,例如,编写具有功能X,Yand Z的应用程序并将其部署到生产环境中,或者使用TDD编写许多kata文件,撰写博客文章,阅读书籍,提交补丁以打开源项目,或双方同意的任何内容。

跟踪进度很重要,以便导师和受训者都能看到他们的进展情况以及受训者的发展情况。 跟踪进度完全与反馈有关。 反馈回路越短越好。 它也是触发有关改进和改进的对话的好工具。

指导应该持续多长时间?

不幸的是,这是另一个没有确切答案的问题。 这将在很大程度上取决于指导的类型,受指导者想从指导者那里学到多少以及指导者必须提供多少。

有人说这应该是一生的承诺,有人说应该持续2至5年,有人说可能要短短几个月。 一些指导是从非常技术性和特定性的事物开始的,例如学习语言的基础知识或测试学科。 但是,它们可以演变到整个项目生命周期,甚至可以演变成长期的职业建议,人脉关系,书籍和会议的帮助等。

我个人绝不会尝试对此进行定义。 享受旅程,让时间告诉您指导何时终止。

它如何以及何时终止?

对于大多数关系而言,导师和受训者都需要以不同的方式继续他们的旅程。 这并不意味着他们再也不会彼此交谈或不喜欢彼此。 这只是意味着他们需要继续前进,向他人学习或向他人学习。 此外,我们都会改变下一步的思路,我们需要对此做出React。

重要的一点是,无论谁愿意终止关系,终止都应该是明确的。 这两部分都应该清楚地知道指导已经结束。

专业,声誉和公众认可

软件Craft.io完全是关于专业性的 ,几乎不谈论声誉就不可能谈论专业性。

在整个指导期间,重要的是,指导者应宣传其受训者的进度。 指导者应该公开承认受训者掌握的所有技能,这将有助于受训者建立自己的声誉。 但是,导师还需要意识到,每当他们为某人提供担保时,他们也会将自己的声誉传给别人。 人们也希望导师能够对他们所学习的所有事物的导师予以表彰。 这种相互认可是可能有助于双方建立声誉的事情之一。

提高标准

指导是软件Craft.io的核心,对于开发人员来说,这可能是我们提高行业门槛的最有效方法之一。 彼此分享我们的知识和经验将帮助我们从错误和成功中学习。

我们可能只花了很少的时间就可以向某人教很多东西。 通过这种方式,受训者可以在更短的时间内吸收大量知识,从而使他们比自己在职业生涯中所拥有的任何一名导师都能够加班,从而拥有更加完善的专业知识。

无论我们的资历水平如何,或者是否有其他人为我们提供指导,如果我们都承担着指导某人的责任,那么我们所有人都将帮助提高我们的行业标准。

参考:我们的JCG合作伙伴提供的 软件技巧指导-第1部分软件技巧指导-第2部分软件技巧指导-第3部分   制作软件博客上的Sandro Mancuso。


翻译自: https://www.javacodegeeks.com/2012/03/mentorship-in-software-craftsmanship.html

code craft

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
SELECT bs.report_no, bs.sample_id, bs.test_id, bs.service_type, bs.sample_name, bs.total_fee, bs.receivable_fee, bs.sample_no, bs.ranges, bs.grade, bs.sample_remark AS remark, bs.factory, bs.item_name, bs.apply_dept, bs.specification, bs.factory_number, bs.calibrat_point, bs.mandatory_flag, bs.inspection_type, bs.report_org_name, bs.plan_complete_date, bs.standard_instrument_name, bs.bleeding_site_name, bs.arrive_date, DATEDIFF( bs.plan_complete_date, NOW()) AS surplus_days, bs.order_no, bs.order_type, bs.customer_name, bs.order_id, bs.business_type, bs.group_id, bs.group_name, bs.item_id, bs.is_merge, bs.pass_time, bs.audit_time, bs.report_id, bs.compile_time, bs.generate_time, bs.pass_user_name, bs.audit_user_name, bs.compile_user_name, bs.report_state, bs.is_just_certificate, bs.label_price, bs.labor_cost, bs.product_type, bs.batch_number, bs.original_number, bs.type_no, bs.template_id, bs.template_version, bs.standard_instrument_id, bs.standard_instrument_name, bs.report_query_code, bs.test_user_id, bs.test_user_name, bs.test_time, bs.review_user_id, bs.review_user_name, bs.review_time, bs.or_number, bs.test_result, bs.test_result_text, bs.test_date, bs.test_address, bs.result_value, bs.unit, bs.test_dept_id, bs.test_dept_name, bs.sample_mass, bs.form, bs.color, bs.clarity, bs.amplification_detection, bs.precious_metal, bs.remarks, bs.photo, bs.identifying_code, bs.diamond_quality, bs.hand_ring, bs.craft, bs.instrument_photo, bs.customer_item_basis, bs.quality_photo, bs.check_point, bs.check_code, bs.mass_unit, bs.manufacturer_name, bs.manufacturer_addr, bs.result_sample_describe AS sampleDescribe, bs.test_rule AS metalRuleIdsStr, bsa.attach_id FROM view_sample_info bs JOIN bus_sample_report bsr ON bs.report_id = bsr.id JOIN bus_sample sa ON bsr.sample_id = sa.id JOIN bus_sample_attr bsa ON sa.id = bsa.id 需要按照bs.report_no 的整数来从小到大进行排序
最新发布
07-15

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值