SFFamily 板


LINE

※ [本文转录自 Soft_Job 看板 #1EPw1wG3 ] 作者: qrtt1 (null) 看板: Soft_Job 标题: Re: [请益] 新人的训练 时间: Thu Sep 8 00:48:56 2011 目前看起来,你还在能自由安排时间的状态。 即使现在觉得相当地悠闲,但事实上有许多准备工作在你踏出新手村之前能做的。 =============================== 观察情势与环境 =============================== 这里不讨论人际关系,而是观察一个 task 是由何处产生的,最後导向何处。 如果是做产品的,可能会是 QA 要求修 BUG,可能是进行 PM 规划的进度。 如果是新创的公司,可能会是一段 brainstroming 後的概念证明实作。 这些流程大概是你工作好一段时间会有的流程, 但初始可能只是分到别人 task 的一小块。 比较少会有全新的内容到你手上, 除非大家已经对你的 coding style 与程度有足够的理解。 在刚开始,你还没有足够的知识处理全新的局面时, 你可能会被指派到分析 Bug 的 root cause, 如果分析的出来就能试着解看看,如果分析不出来,你得练习你的回应方式。 『不知道』、『不懂』都是最简单,最轻松的回应。 但这对你的信任感与可靠度提昇没有帮助。 如果你想要能处理更多丰富且多变的问题, 你得在这理的回应练习一下。 在毫无头绪的时候,有几种方式获得帮助。 0. 一定要把有 bug 的程式执行起来。 1. 对流程毫无概念时: 一定要让程式跑起来,善用 debugger 配合单步追踪。 并试着写下你对流程的理且,配合程式命名惯例, 或注解上用到的 term 去相互解释。 2. 即使用了 debugger 也无法理解流程, 也许能试着回到再原始一点的 log message, 3. 若上招也起不了作用,只好麻烦同事给你一个清晰的轮廓。 (若有人愿意讲,你最好笔记下来。这是难得的机会) 但在这一步之前,你最好能描述一套你自已的理解, 并说明试着用这个理解的方式去解释、或分析 bug 成因似乎对不上。 请同事指出你的盲点。 注:也许有人不好意思问,但只要想着 『如果我会了,就是减轻大家的负担。』就会觉得这麽做是正确的。 注:对自己描述自己的思路是相当有益的。 对自己的理解再理解,有时能发现自己的盲点,或是新的选择。 4. 如果你已经拿到『版本控制系统』与『议题追踪系统』帐号, 试着找询相关专案的 bug,取出 bug 解决前的版本,试着分析问题看看。 有了自己的见解後,你再去比对修正版本的解法。 注:如果还没有跟同事混熟,这时的解法如果有不同,就不用硬着头皮去问了。 依个人成长背景的不同,偶尔会有想要抵抗陌生人的情绪出现。 =============================== 准备好你的工作环境 =============================== 在进行上一段修炼的同时,你应该会接触到同事使用的开发环境。 0. 如果打字太慢,请有空就练习。虽然开发软体不是打字而已, 但不要让打字的不流畅感阻碍了你开发的流畅度。 1. 准备你的 IDE。这里的 IDE 并不是单纯指 Visual Stuido 与 Eclipse 这类东西, 而是辅助你工作流程流畅的各种设置。 以我个人的情况来说,大部分时间在写 Android Library 与 NDK, 在 Java 部分是使用 Eclipse 为主要开发介面, 而 NDK 部分,我是使用 vim 写 c 配合 ndk-build。 要怎麽让这二组我所习惯的不同语言的开发环境紧密结合呢? 特别是它们二个产出的档案得复制到约定的位置才能正常运作(当然也包含相依的档案)。 这里我利用 Eclipse + Ant Builder Script 做一些自动复制的行为, 让 NDK 部分编译完成,只要 refresh project 就会自动将 Eclipse 管理外的档案连带做一些额外的动作。 利用这些用来将你各种开发环境『黏』起来的 script,才是完整的『IDE』。 因为我们不能只在别人预先提供好的 Eclipse 下流畅, 或是在 vim + c + make 的情况下,『个别』地流畅。 2. 善用 IDE 内图形化的除错介面 有些人知道 IDE 自动完成很好用,但却从来没用过 debugger。 对 debugger 的掌握最好要知道: *. 编译出来的程式是否含有 debugger 所需的资讯 (turn on/off) *. 如何跑一般模式与 debug 模式 *. 了解 breakpoint: 如何设定、如何列出已设的 breakpoint、如何删除、如何暂时停用。 *. debugger 执行到 breakpoint 时,停下了。如何查看 breakpoint 之前的变数内容。 *. step into, step over, return 或切换不同 thread 的功能 *. 使用 Watcher 3. 记录环境设定与备份档案 有些时候,我们会面临不得不重建环境的情况。 而这个动作,可能在刚进公司时,前辈会比较有耐心教你。 你得妥善记录,除了重灌 OS 的时间,你最好能在半小时内完成这个动作。 *. 环境变数设定(PATH, etc ...) *. 安装各种 SDK、下载需要的 library、建立开发用 server (httpd, db, memcached ...) *. 配置 IDE 与 glue script *. 安装版本控制系统 client,并确定能由版本控制系统取回你需要的程式 (只需确定能 checkout/clone 即可,因为加上下载时间,你可能来不及。 如果立刻取得程式码是重要的,那请在移机前备份,或放在重建时的第1步做) =============================== 熟悉那搭起高楼的砖头 =============================== 1. 熟悉函式库 观察公司使用那些 library 或 framework。 不管他们是不是 3rd-party 的产物,专案里总有些基础的材料。 熟悉他们总是会有好处的。 2. 熟悉例行公式的相关实作 以 Web App 为例,将有一部分实作是与资料库读写相关。 对你个人来说,这些例行公事的基础是否掌握住了? =============================== 保存你的成果 =============================== 在先前提到『版本控制系统』,虽然这不是每个公司都有。 但这会关系到你如何处理每日的工作成果,并且是否容易回溯到特定的状态。 我个人很重视版本控制系统的使用: http://qrtt1.blogspot.com/2011/02/1.html http://qrtt1.blogspot.com/2011/02/2.html 如果你的公司有版本控制系统,你能先熟悉它的所有操作方式。 而学习的重点很简单,你得学会版控的 CRUD。 以 Mercurial: The Definitive Guide 来说, 它除第一章的基本教学,还有提供: Chapter 5. Mercurial in daily use http://hgbook.red-bean.com/read/mercurial-in-daily-use.html 让学习的人能用较短的时间,先掌握一些基本指令来处理日常工作所需。 就算你使用的版本控制系统不是 Mercurial, 你也可以透过这样的段落安排抓出一些必学的要点。 如果你的公司没有版本控制系统,或是版本控制系统很难用! 通常与『分散式版本控制系统』合用会是一种快乐自处的方式。 如果你对版本控制系统没有概念,就想像成是电玩里的金手指吧。 想在任何时间点都备份,并且能回到备份的时间点重新来过。 简单地说,你得在新的环境照顾好你自己。 --



※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 61.231.52.27
1F:推 mocad:受用 tks 09/08 01:21
2F:推 leicheong:个人在未了解流程下debug时, 比较喜欢利用stack trace 09/08 07:38
3F:→ leicheong:视窗. 在要观察的地方下breakpoint後, 很快就可以回到 09/08 07:39
4F:→ leicheong:相关function的最外层. 这对破解extension method / 09/08 07:40
5F:→ leicheong:partial class地狱相当有帮助...... 09/08 07:40
6F:推 kimkao:个人认为新人最好不要把四不一没有太直接的挂在嘴上 09/08 08:07
7F:→ kimkao:不知道、不清楚、不懂、不要问我、没有意见..虽然是在不了 09/08 08:08
8F:→ kimkao:解环境或工作下的正常反应,但应避免直接的使用这类消极的 09/08 08:08
9F:→ kimkao:字眼或语气回复其他人的关心或提问,如果可以再辅以一些正 09/08 08:09
10F:→ kimkao:面的口吻,像是虽然不是很清楚但我想可以从哪个方向进行, 09/08 08:10
11F:→ kimkao:再与资深同事讨论看方向可不可行,我相信会皆大欢喜的! 09/08 08:10
12F:→ qrtt1:楼上让我想起,我曾带过一个新人。他什麽也没说,但用迷蒙 09/08 08:18
13F:→ qrtt1:且无辜的眼神望着你。。。 (默) 09/08 08:18
14F:推 kimkao:哈哈,是正妹吗XD 这真的是过与不及的示例,提问的方式挺关 09/08 08:20
15F:→ kimkao:键的,说话时不要一副让人感觉好像是我欠你的就可以了 09/08 08:21
16F:推 RouterHsieh:我倒觉得不懂装懂比说不会更糟糕吧...zzz 09/08 08:35
17F:推 fannys23:我认为 kimkao 的意思是:不懂要说出来哪边不懂 09/08 09:04
18F:→ fannys23:只是冷冷的说「我不懂」,对想帮忙的人实在是一种打击啊 09/08 09:05
19F:推 lwecloud:然後对方跟你说他「全部都不懂」...XDDDD 09/08 10:23
20F:推 kimkao:fannys23说的对一半,另一部分是提问者必须呈现出有想要解 09/08 12:20
21F:→ kimkao:问题的热忱以及有动脑去想并寻求意见,而不是丢出一个炸弹 09/08 12:20
22F:→ kimkao:後,就一副看戏的嘴脸,这样就很机车了XD 09/08 12:21
23F:推 littlebau:说得很棒阿! 09/08 12:45
24F:→ andymai:问问题以前先google一下罗~先让自己有点观念比较好... 09/08 13:09
25F:→ andymai:找不到也没关系~给人家一种"我试过"的感觉也比较好 09/08 13:10
--   「大哥!你....」   「你在以旁门左道的方法,逼自己的剑气踰越极限﹖」   「废话!」应雄反驳:   「什麽旁门左道﹖能够将最强的功力提昇至无法再上的强中之强, 才是必胜的最佳战略!」 --



※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 220.132.117.169







like.gif 您可能会有兴趣的文章
icon.png[问题/行为] 猫晚上进房间会不会有憋尿问题
icon.pngRe: [闲聊] 选了错误的女孩成为魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一张
icon.png[心得] EMS高领长版毛衣.墨小楼MC1002
icon.png[分享] 丹龙隔热纸GE55+33+22
icon.png[问题] 清洗洗衣机
icon.png[寻物] 窗台下的空间
icon.png[闲聊] 双极の女神1 木魔爵
icon.png[售车] 新竹 1997 march 1297cc 白色 四门
icon.png[讨论] 能从照片感受到摄影者心情吗
icon.png[狂贺] 贺贺贺贺 贺!岛村卯月!总选举NO.1
icon.png[难过] 羡慕白皮肤的女生
icon.png阅读文章
icon.png[黑特]
icon.png[问题] SBK S1安装於安全帽位置
icon.png[分享] 旧woo100绝版开箱!!
icon.pngRe: [无言] 关於小包卫生纸
icon.png[开箱] E5-2683V3 RX480Strix 快睿C1 简单测试
icon.png[心得] 苍の海贼龙 地狱 执行者16PT
icon.png[售车] 1999年Virage iO 1.8EXi
icon.png[心得] 挑战33 LV10 狮子座pt solo
icon.png[闲聊] 手把手教你不被桶之新手主购教学
icon.png[分享] Civic Type R 量产版官方照无预警流出
icon.png[售车] Golf 4 2.0 银色 自排
icon.png[出售] Graco提篮汽座(有底座)2000元诚可议
icon.png[问题] 请问补牙材质掉了还能再补吗?(台中半年内
icon.png[问题] 44th 单曲 生写竟然都给重复的啊啊!
icon.png[心得] 华南红卡/icash 核卡
icon.png[问题] 拔牙矫正这样正常吗
icon.png[赠送] 老莫高业 初业 102年版
icon.png[情报] 三大行动支付 本季掀战火
icon.png[宝宝] 博客来Amos水蜡笔5/1特价五折
icon.pngRe: [心得] 新鲜人一些面试分享
icon.png[心得] 苍の海贼龙 地狱 麒麟25PT
icon.pngRe: [闲聊] (君の名は。雷慎入) 君名二创漫画翻译
icon.pngRe: [闲聊] OGN中场影片:失踪人口局 (英文字幕)
icon.png[问题] 台湾大哥大4G讯号差
icon.png[出售] [全国]全新千寻侘草LED灯, 水草

请输入看板名称,例如:Tech_Job站内搜寻

TOP