如何快速定位自己热爱的工作

我前几天发了篇文章,“月薪3万的程序员都避开了哪些坑”,有很多朋友看了,反馈很多,我汇总了一下,有两方面的意见比较突出:

  • 文中说的都是大道理,妇幼皆知,知易行难
  • 不喜欢开发,怎么去找自己热爱的事业

感谢所有反馈的朋友,让我加深了对这些问题的认识,我决定再写几篇文章来谈相关的问题。这篇文章要谈的,是怎样判断你是否喜欢软件开发以及怎么去找自己热爱的事业

庄子与惠子游于濠梁之上。

庄子曰:“儵鱼出游从容,是鱼之乐也。”

惠子曰:“子非鱼,安知鱼之乐?”

庄子曰:“子非我,安知我不知鱼之乐?”

惠子曰:“我非子,固不知之矣;子固非鱼也,子之不知鱼之乐,全矣。”

庄子曰:“请循其本。子曰‘汝安知鱼之乐’云者,既已知吾知之而问我,我知之濠上也。”

庄子和惠子的这段话很多人都有印象,其中最广为人知的,可能是“子非鱼,安知鱼之乐”,大概意思是不要总是以自己的眼光看待他人。

其实我的理解和庄子类似,就软件开发而言,我认为可以从精神状态对应的外在表现看出一个人是否喜欢软件开发。但从另一方面来讲,我又支持惠子,我觉得我很难去揣测别人怎么判断他是否喜欢自己的工作。因为每个人的经历、学识、家庭背景等都是不同的,这决定了每个人看待问题的角度都不同,做事的方法也千差万别。我可以观察到一个人是否喜欢软件开发工作,但却不能臆测背后的原因,我能做的,只能是从我自己的经验出发来总结一些我认为可行的判断方法,抛砖引玉。

关注自己的感受

喜不喜欢是主观的,是感情、情绪方面的,是一种感受,要了解自己对一件事情的感受,可以通过各种问题问自己做这件事时的感觉,然后分析一下就能知道是否喜欢。下面是我总结的几个问题,通过问自己这些问题,我可以判断我是否真的喜欢软件开发工作。

  • 写代码让你觉得时光飞逝如箭还是一秒犹如一万年?
  • 看到代码是否有“似曾相识燕归来”的温暖?
  • 隔一段时间不写代码,是否会充满怀念,有想打开IDE写点什么的冲动?
  • 是否经常有这样的时刻:看着自己的代码,有种“相看两不厌,唯有敬亭山”的喜悦?
  • 有没有那么一些时候,你看着自己的代码,会不自觉地想:这里或那里改改是不是更好一些?
  • 当你看到令人眼前一亮的App或网站或其它软件,会不会发出“要是我来做该怎么做”之类的问题?
  • 你有没有想让别人阅读你代码的冲动?
  • 你有没有读别人代码的冲动(想看到更好的代码)?
  • 别人指出Bug、错误或设计瑕疵,你会生气、拒绝还是接纳感激?
  • 修复一个Bug,你是为这个Bug被解决掉高兴多一些还是为你的代码(软件)更完美而高兴多一些?
  • 听到新语言、新框架、新系统、开发者大会等相关的消息,你是很想了解还是懒得搭理?
  • 有技术大咖在你身边出现时,想去结交还是懒得理他?
  • 看见别人的烂代码,你是吐糟真TM烂然后绕过还是想怎么改好?
  • 看见别人的优秀代码,会不会羡慕,会不会“想要是我也能写出这么漂亮的代码就好了”?
  • 当你完成一个模块、功能、系统,解决一个问题时,是有“快感”、“成就感”还是有“终于交差了”的感觉?
  • 想到你开发的软件可以帮助别人解决问题带来好处你是否感到期待、兴奋?
  • 你是否想建立属于自己的软件资源(比如工具、类库)?
  • 你是不是像蜜蜂一样总是把看到的与软件相关的好东西收藏起来?

可能还有很多问题都能帮助我们发现自己是否喜欢编码,是否喜欢软件开发,不能一一列出,欢迎感兴趣的朋友补充。

也许有人觉得“我的每一行代码都是诗,哪怕它们不能Run”,觉得自己超喜欢真是好好喜欢啊,然而章鱼哥早已看透了一切:这厮不但是个自恋狂,还叶公好龙。

我们的问题,是针对已经变身为程序员的兄弟姐妹们的。对于准备从事软件开发工作还没进场的朋友们并不适用。这就好比“你问一个从来没kiss过的人喜不喜欢kiss,问一个从来没XXOO过的人喜不喜欢XXOO”一样,有些事必须得亲身体验了才能知道是否喜欢,理性的分析是木有毛用的。

怎么快速找到找自己热爱的事业

前面我提供了一些问题,用来测验是否喜欢软件开发工作。假如你不喜欢,那么接着往下看,必有所获。

我在我的微信订阅号“程序视界”的每周一书栏目里推荐过一本书,书名是《A Life At Work(这辈子,我最想做的事)》(订阅号内回复10007可查看)。这本书非常棒,从soul出发,系统地介绍了找到终身事业的理论和方法,推荐一看。

除了书,我这里提供一个非常简单快捷又相当有效的方法,也可以让你思索怎么找到自己热爱的事业。

从“不想要什么”开始

很多人会说,“我不知道自己想要什么”,OK,是这样,这很正常,我自己也是不断实践不断思考才慢慢知道自己想要什么想干什么。

你不知道自己想要什么,这没什么关系,这是很正常的事情。但假如你想知道自己想要什么,非常想,真的想,那可以从一个问题开始:我最不能忍受的是什么

OK,这是一个很好的开始:当你越清楚自己“不想要什么”的时候,就越能快速接近“想要什么”

现在,找两张白纸,一支笔,让我们开始。

两张纸顶端对齐放在书桌上,给左边的纸写上标题“不想要清单”,给右边的纸上写上标题“想要清单”。然后,我们先来完成“不想要清单”。

比如你是一个程序员,你的“不想要清单”可能是这样的:

  • 我不想天天困在电脑前
  • 我不想老是加夜班上线新系统
  • 我不想周末和节假日接工作电话
  • 我不想老重复做一个东西
  • 我不想一成不变地老看着这么几个队友
  • 我不想月月拿死工资
  • 我不想月光
  • 我不想被女朋友说我一辈子就这样了
  • 我不想被人指使
  • 我不想有Bug时被批评
  • 我不想产品经理老TM改需求
  • 我不想老是延期交付老是被老板说无能
  • 我不想和一帮没水平的家伙共事
  • 我不想在Level太Low的领导下干活
  • ……

也许还有其它的,嗯,必然还有其它的。自行脑补吧,每个人都不一样。你可以不看我上面列的单子,列你自己的,对,说你呢,别往下看了,拿张纸来列一列。

如何得出想要什么

现在我们要来完成“想要清单”,方法也很简单,对着“不想要清单”,一条一条来找下面的内容:

  • 对立面是什么
  • 你之所以不想要的背后原因
  • 这一条对应的情感诉求是什么

按照这些东西,一一找找看,然后大多数人就能完成“想要清单”。比如我们上面的不想要清单对应的想要清单可能是这样的:

  • 我想要接触更多的人
  • 我想要作息规律的工作
  • 我想要不断挑战新东西,想要成就感
  • 我想要未来越来越有希望,比如职位不断晋升、收入规模上升之类
  • 我想要更高的收入
  • 我想要更被尊重
  • 我想要和牛人一起工作
  • 我想要和高水平的领导共事
  • ……

“想要清单”可能很长,一个不想要可能衍生出多个想要;也可能很短,因为多个“不想要的东西”可能会指向同一个“想要的东西”。没关系,只管做下去

一旦你分析出了“想要清单”,就可以进行下一步了。

成就事件

再找一张白纸来,写上“成就事件”作为标题,然后把纸放到“想要清单”右边。好啦,现在来回忆你的工作生涯中那些让充满热情、真诚投入、感到愉悦的时刻吧。

每个人都会有一些因为有成就感而开心的时刻,比如你帮助客户解决问题后很开心,比如你给同事讲解了一门技术课程反馈不错你很开心,比如你卖出去了一部手机很开心,比如你写了篇文章很开心,比如你做了一道菜很高兴,比如你画了一幅画很自豪,比如你自己完成了一个App很高兴……很多,用心回忆,一定可以找出来。

在寻找成就事件时,重点关注那些“即便没有物质回报也愿意投入去做的事”。这些事就是你感兴趣的,能给你带来成就感的,能让你有归属感的,很可能它们当中就有某件事会成为你终身热爱的事业。另外也请特别关注“做好了给你带来愉悦和成就感的事”。

一旦你列出了那些成就事件,就停下来,把即便没有物质回报也愿意投入去做的事特别标注出来。现在可以休息一下了,待会还有更耗神的事儿做。

寻找你想做的事

好,现在把你的成就事件清单和“想要清单”来比对,看哪个成就事情与你的想要清单中的事项能联系起来。

如果没有能联系起来的,那好奇怪啊——那些曾让你感到有成就感的事、开心的事,居然和你“想要的什么”都没什么关系。如果是这种结果,那可能你分析得还不够,回头再分析一下不想要清单、想要清单、成就事件清单。

反复来,直到能建立联系。

噢天,如果你真的真的没办法建立联系,好了,改天再来试吧。

你到了这里,说明已经找到了你想要的什么与让你开心的事之间的联系了。太好了,把你找到的那些事件、那些时刻单独挑出来,仔细分析,看看哪些事可以作为你的事业来做。假如你找到的不是一个可以当做事业(职业、工作)来做的事情,那就进一步分析这个时刻:

  • 为什么那时我会喜悦?
  • 这样的时刻是或然的还是必然的?
  • 这样的时刻可能出现在哪些工作、职业、事业中?
  • 这样的时刻怎样才能重复?

通过不断的发问、分析,你可以找到一个热爱的、乐意做的事情、工作。假如找不到,你的工作也不会白费——找不到可能是由于你没有使用正确的方法、不了解其它职业或自我意识能力稍差,而不是没有适合你的事业。这个时候,你有两种选择:

  • 改天再重复这个过程,死磕自己
  • 找职业规划师聊聊

我的建议是等一段时间再重复,如果重复几次都不能找到自己想做什么,那就找职业规划师聊聊。职业规划师有很多方法论和分析工具,可以帮助你梳理自己,找到你想做的事。

去做你想做的事

然而,无论你自己找到方向,还是职业规划师帮你找到方向,这都仅仅是第一步:定位。接下来的事情更为重要:假如你的方向与你现在的工作不符,你能不能真的放弃现在的工作,去做你想做的事。因为离开现在的工作,很可能就会失去收入来源,生活质量会下降;并且你找到的事,真的去做了,可能也会遇到各种各样的不美好,可能最终又发现不是你想要的。然而,只有亲身去体验了,你才能验证你的分析,才能真的找到你想要的。

如果你犹疑不定,无法成行,还有一个测试可以帮助你思考,下结论。

诺,先看人们在考虑工作时会考虑的9种基本因素:

  • 工资高,福利好
  • 工作环境(物质方面)舒适
  • 人际关系良好
  • 工作稳定有保障
  • 能提供较好的受教育机会
  • 有较高的社会地位
  • 工作不太紧张、外部压力少
  • 能充分发挥自己的能力特长
  • 社会需要与社会贡献大

然后,从上面的九种因素里,分别挑出对你来讲最重要的、次重要的、最不重要、次不重要的。一定要挑出来,挑不出来你就使劲死磕自己,死磕死了还挑不出来就算了。

其实这样的测试是帮助你分析你最看重的东西。如果你说你真的挑不出来,那还是慢慢干你的软件开发吧,因为,很多时候产品经理也挑不出来哪个需求优先级最高,都重要,都紧急,对吧,是不是看起来和你很般配,你们再相互折磨折磨,也许到一定时候就能分析出你最看重的因素了。

言归正传再绕回来吧,离开现有工作做你想做的事,其实是相当难的,需要勇气,也需要家人和朋友的支持,祝你早日迈出这一步。

注:本文写于10月22日,文中的“成就事件”这种说法,原本我用的是“开心时刻”,周末参加了一个职业生涯的培训,10月26日早起做了一些修订,修改为更专业的说法。

接下来我还想写一篇设定目标的文章和一篇执行的文章,不定什么时候,也许明天,也许后天,也许没个准信儿,但,大约在冬季,就会完成这两篇文章。



更多精彩文章,参看“漫谈程序员”专栏。

困惑、发展、加薪、升职、找工作、增值,尽在微信订阅号“程序视界”:

版权声明:本文为foruok原创文章,未经博主允许不得转载。

时间: 2024-10-09 23:26:18

如何快速定位自己热爱的工作的相关文章

通过gdb快速定位“段错误”的位置

有些时候我们在一段 C/C++ 代码的时候,由于对一个非法内存进行了操作,在程序运行的过程中,出现了"Segmentation fault (core dumped)"--段错误. 呵呵,这种问题我想很多人会经常遇到.遇到这种问题是非常无语的,只是提示了"段错误",接着什么都没有,如果我们一味的去看代码找太疼苦了,因为我们都相信自己写的代码没问题,现实就是现实.接着,我们可能通过打印来定位到段错误的位置,这样会有个问题,如果代码量大,我们需要打印很多信息才能找到&q

快速定位异常

net程序调试一:快速定位异常 作为一个程序员,解BUG是我们工作中常做的工作,甚至可以说解决问题能力是一个人工作能力的重要体现.因为这体现了一个程序员的技术水平.技术深度.经验等等. 那么在我们解决BUG的过程中,定位问题是非常重要的.有句话叫"发现问题是解决问题的一半. 本文讲述就快速定位异常(专指.NET程序异常)的方法.包括在本机定位异常,在客户环境定位.net程序异常,在客户环境定位SilverLight异常. 一:定位本机异常 在我们本机定位异常很容易.假设我们都是使用的的Visua

Android中利用icodetools工具快速定位App破解中关键点方法

icodetools工具地址:https://github.com/fourbrother/icodetools 一.前言 在前面已经介绍了icodetools工具的实现原理和具体使用规则,关于这部分的知识点还不了解的同学可以去下面两篇文章详细查看:Android中注入代码工具icodetools原理篇,Android中注入代码工具icodetools完善篇.同时这个工具已经放到github上了,感兴趣的同学可以下载尝试各种app的代码注入功能. 那么有了这两篇文章之后,现在我得实际操作了,要动

企业IT管理员IE11升级指南【16】—— 使用Compat Inspector快速定位IE兼容性问题

企业IT管理员IE11升级指南 系列: [1]—— Internet Explorer 11增强保护模式 (EPM) 介绍 [2]—— Internet Explorer 11 对Adobe Flash的支持 [3]—— IE11 新的GPO设置 [4]—— IE企业模式介绍 [5]—— 不跟踪(DNT)例外 [6]—— Internet Explorer 11面向IT专业人员的常见问题 [7]—— Win7和Win8.1上的IE11功能对比 [8]—— Win7 IE8和Win7 IE11对比

分析Mysql慢日志脚本及快速定位慢Sql

分析Mysql慢日志是运维工作中,不可少的.要快速定位慢Sql,以及发现后优化Sql及修改业务,保证数据库稳定高效地工作.下面是我工作中解决的思路... 1.先查看本地数据库慢日志文件 2.编写分析慢日志脚本 #!/usr/bin/python #coding=utf-8  #字符编码 import re  #导入正则匹配模块 import time #导入时间模块 import sys  #导入sys模块 import MySQLdb #导入连接mysql模块 canshu=len(sys.a

UNRECOGNIZED SELECTOR SENT TO INSTANCE 问题快速定位的方法

开发中常见的一类崩溃错误是遇到:unrecognized selector sent to instance 0xaxxxx…而backtrace又无法明确说明错误在哪行代码,如何快速定位BUG呢? 有时读代码一下很难找到是哪个instance出的问题,这时定制有效的DEBUG断点是最好的办法,方法如下: 在Debug菜单中选择 Breakpoints -> Create Symbolic Breakpoint… 在Symbol中填写如下方法签名: 1 -[NSObject(NSObject)

android 代码混淆导致问题,快速定位

代码混淆导致问题,快速定位 在代码混淆打包时,屏蔽了用到的第三方库,以及常规的android混淆屏蔽,但生成的apk,运行还是会崩溃.事出必有因,后来分析找到原因是使用greendao自动生成的java-gen下package中的内容没有屏蔽代码混淆,导致存储数据库时,报*a(SourceFile:) NullPointerException * 混淆打包apk,运行崩溃 总结如下: 我们在打包时,debug版本没问题,但混淆后release版本有时会出现异常崩溃, 比如:a(SourceFil

使用grep快速定位代码位置

有时候临时修改代码时,我们不需要或者没有条件使用复杂的代码编辑器. 此时使用普通的文本编辑器如nano或vim,加上grep命令即可快速定位并修改代码. 例如,在kernel目录下搜索 CONFIG_BOARD_S3C4410_XXX 内容: grep -nrE 'CONFIG_BOARD_S3C4410_XXX' kernel 参数说明: n - 输出行号 r - 遍历 E - 使用正则表达式 如此就会将你要找的内容遍历出来,并列出文件名和行号. 配合vim命令: vim xxx +n 其中:

java 用Arrays.binarySearch解读 快速定位数字范围

在一些时候,需要用给一个数字找到适合的区间,Arrays.binarySearch可达到这个目的. static int binarySearch(int[] a, int key)           Searches the specified array of ints for the specified value using the binary search algorithm. import java.util.Arrays; public class Test { public