大家好,我是橘长,此前部门有一刚毕业没多久的新同事入职,我作为他的导师引导并见证了新人的成长,再加上近期看到不少朋友发出的技术类提问,分享一些提问的看法给大家。
一、新人提的几个问题
1、工具类问题
新同事加入想要获取部门代码先上手熟悉,想法是好的,当开通相关工具权限之后同样也会遇到各种问题。
比方说:执行 git clone 下载远程服务器代码的时候,git bash 提示 permission denied。
很显然是一个没有获取权限的问题,新同事发消息给我,截图说:橘长,我 clone 代码报错,怎么办?
作为后端开发其实所用工具不会很多,像橘长所在团队,采用 Git 做代码管理,Jenkins 做自动化部署流程,其他就是一些常规的数据库账号、Linux 跳板机账号等。
这个问题如何提比较合理呢?
比方说:橘长,我想拉取 xxx 的代码熟悉一下,执行 git clone 拷贝的时候提示没有权限,你那边能帮忙开通一下权限吗?
这个提问最显然的特点那就是一目了然,因为平时橘长工作也可能很忙,当提问者直接说出为什么的时候,我会更主动去帮忙,因为觉得这个提问是经过大脑思考的。
2、代码内部问题
新同事在使用 maven 点击 package 的时候报错了,提示如下:
此时咋咋呼呼的截个图和我说:打包不了?
橘长内心其实算是崩溃的,首先并没看新人代码,其次我也是懵的,毕竟不知道做了什么操作。
橘长认为的比较合适的提问是:橘长,刚代码编译通过之后,我通过执行 maven 的 package 插件提示打包错误,显示没有 spring-boot-maven-plugin 插件,你之前有遇到过吗?
这时候橘长心里面一看就明白了,原先是你做了 xxx 操作导致了 xxx 结果,根据日志反馈去反查 maven plugins 即可。
还存在很多这类问题,记住:先思考后提问,描述完备。
二、尽量不要提没有主动思考的问题
1、会让别人觉得你是在索取,而不是请教
首先回到别人的角度来思考一个问题:为什么要回答你的问题?
做事基本上都是带有目的性的,因为每个人的时间都很宝贵,帮人解决问题是一个耗时操作,需要得到别人的帮忙,态度非常重要。
比方说:直接说橘长,我最近想学习 Java 的集合,你有什么资料推荐吗?
橘长内心会有点不太明白你的真实想法,毕竟作为一个开发同事,懂集合是非常常见的操作,那为啥会突然这样问呢?
换种问法:橘长,最近我发现自己在写业务代码的时候集合用的特别不好,尤其是 Map,我截取了某些此前的代码,想看一下你有没时间,帮忙看一下,有什么好的建议和资料推荐给我一下?感谢感谢
这时候被提问者的心中会知道提问者想做这件事的目的就是为了在工作中用好集合,又贴了代码说明是经过思考和踩坑实践的,自然而然会主动帮助你了。
2、会显得自身水平不高
提问是有套路的,尤其是对新人而言,贸然问很 low 的问题会给人一种很不专业的认识,对开发来说,代码就是赤裸裸的脸。
有句话说的非常在理:同行最怕见同行。
存在对比才存在伤害。 对新人的容忍度可能会稍高一点,也只限于提问某些很简单的问题而已,当问多了,会开始怀疑你的专业水准能力,极有可能试用期都过不了就拜拜走人了。
三、技术人如何提问
1、先自行思考,优先寻求互联网
遇到问题首先冷静下来,用关键字去 Google、StackOverflow 等技术社区找一下是否有人遇到过同样的问题。
当下时代是一个数据时代,很多问题都已经有人遇到过并且较好解决了。
善于搜索也是一项能力,但请记住,搜索完解决之后记得复盘,而不是关闭浏览器窗口就完事了。
2、要有 deadline,不要闷头搞太久
时间概念,可以先行思考一个问题:你的时薪多少钱?
橘长之前所在团队老大很讨厌闷头搞技术的同事,因为现在的互联网公司效率是第一的,有产出才会有外部收入来源,才能养得活团队。
再加上现在的互联网环境,极少数的公司才会存在攻坚的操作,技术社区活跃,大牛一大把,不要为了一个问题解决好几天,可能你觉得很自豪,还会心想“解决了一个这么牛掰的问题,团队应该奖励我才对”。
可现实并非如此,当投入远小于产出的时候,这就不是解决问题了,而是水平问题了。
切忌抱怨:花了心思干了活,不给奖金还被骂。认清在职场中的地位和所能承担的角色以及提供的能力。
3、带着过程去提问
换个通俗一点的话来理解那就是:带着你的犯罪现场记录去提问,也就是细节。
开发中有一句橘长很欣赏的话:代码里面全是细节,细节里面都是魔鬼。
细节能把你扒的一干二净,当然了,看代码是有好处的,能看出你的设计、代码编写能力、对业务的变现落地能力等。
当你带着过程去找人提问的时候,帮助你的人能尽量快速的复现和定位到问题点,正如一句老话说的话:当你找到问题点的时候,意味着这个问题解决了一大半了。
原文地址,有更多惊喜等着你https://mp.weixin.qq.com/s/FDwpwcJ_qiQZA8Tgrl9Sng