问答 | 我适合做软件开发吗?

我在微信订阅号“程序视界”的发现菜单里设置了“程序员的职业规划”和“有问有答”两个子菜单后,不断有人加我微信,找我聊程序员职场那些事儿,现在我线下见面聊过5个人,微信和QQ上聊过的人超过10个了。

我把聊天记录都汇聚在一起,回顾了一下,发现在初入行这个阶段,有一些共性的问题,特此写这篇文章,希望对将要加入计算机软件行业从事开发工作的朋友和刚刚开始做软件开发的朋友有所帮助。

对于初入行的朋友来讲,有很多的忧虑和担心,我从整理的聊天记录里发现了下面七个问题:

  1. 我是否适合做软件开发
  2. 哪个方向好,有前途
  3. 学哪种语言
  4. 怎么学
  5. 第一份工作怎么找
  6. 怎样才能变牛X
  7. 怎么才能开始行动起来

这次我会着重说第一个问题,捎带着可能会提第七个问题,其它的问题我们留到后面去聊。

三位朋友的提问

2016年1月1日,“小眼睛”在微信上问:

您好,我是一名23岁的建筑生,对目前工作确实提不起兴趣,没有成就感,想尝试考研转到程序员行列,不知道自己是否合适,很迷茫,不知道您有什么好的建议吗?

2016年1月6日,“想飞的小鸟”在QQ上问:

你好,我大学学的专业是电子信息科学与技术,毕业快五年,但毕业之后转行去从事了建筑建模工作快五年,而后跳槽,接着公司破产,现在无业。现在又想转行干回IT方面,我马上29,外面有些iOS和安卓开发的培训,我在疑惑这些培训是否靠谱,我的年纪对于重新学习IT会不会有点迟……

2016年1月9日,“谁夺走了我的爱”在微信上问:

您好!我29岁,在北大青鸟培训Java、C#,初级课程学完,中级开始,但是学的并不是很好。总是处在迷茫中……

前面是几位想要从事软件开发工作的朋友问我的问题,昵称是我随便起的。还有一些朋友问到类似的问题,这些问题归纳起来,其实是一个问题:我是否适合做软件开发?

我是否适合做软件开发?

这其实是一个非常难以回答的问题,业界并没有一个标准,说哪种人适合做软件开发,哪种人做软件开发就一定能大有成就。

温伯格在《程序开发心理学》(微信订阅号“程序视界”的每周一书栏目推荐过)一书的第八章,专门讨论了性格因素对程序开发的影响。温伯格认为:

相比较为稳定的智力因素,性格特征对软件开发的影响更大,甚至远远超过人们通常的估计。

他提到了专业程序员需要的一些性格和能力,诸如“在高压力的环境中坚持一个多星期的能力”、“适应变化”、“爱好整洁”、“谦逊”、“幽默感”等。然而他后来又说,我们从正在从事软件开发工作的人身上来寻找适合这个职业的性格,可能错过了那些适合这份职业但还未进入这个行业的优秀人员身上表现出来的其它性格。

MBTI把人分为16种性格类型,每一种都有相对适合的工作。其中,INTJ和INTP这两种类型的典型职业里有提到程序员、计算机软件设计/开发人员。

也许我们做个MBTI测试就可以明确自己是否适合做软件开发?也不是的,我的MBTI类型是INFP,我都做了十来年软件开发了……

看起来似乎没有一种明确的方法可以判定一个人是否适合从事软件开发工作……这是一个令人沮丧的结论。

然而我们也不必因此而失落,实际上MBTI性格类型、还有霍兰德职业兴趣理论,都提供了一些手段帮助我们界定适合自己的职业范围。温伯格列出的一些性格特点也确实是程序员需要具备的。

所有这些都从群体特征上,帮助我们缩小了选择范围。但对一个个体而言,到底是否适合做软件开发工作,还存在很多的具体因素需要区别对待。

验证适合与否的实操方法

我知道一套具有很强可执行性的实操方法,能让一个个体在比较短的时间内判断出来自己是否适合从事软件开发工作。说白了非常简单,就是:先评估性格和兴趣特征,然后通过实践去尝试

性格特征评估可以用MBTI,兴趣特征可以用霍兰德,都有标准的量表,这些理论和量表,得出的结论仅供参考,而且它们通常也不会板上钉钉那般给你一个方向,说就这个了,去吧,信我者得永生。

量表测试只提供一个相对适合我们的参考职业范围,更重要的,是我们如何通过实践去验证某个职业真的适合我们

结合提问的朋友的情况,还有我自己的经历,我觉得要从个人具体情况来谈如何通过实践验证自己是否适合软件开发的话,大概有三类:

  1. 即将走向社会的学生
  2. 正在从事其他行业的职场人士
  3. 暂时无业者

当下的职场状态,会在很大程度上影响你的选择。上面的划分,正是从个人的职场状态来的。

有的人可能很不满意现下的工作但又忙得像高速旋转的陀螺,根本停不下来,更别说花时间去实践了。而对于学生,则会有比较充裕的时间在较轻的压力下来验证(没压力也可能难以有动力^_^)。对于无业者,如果没有积蓄,也没有父母或另一半的经济支持的话,生活压力会比较大,会大大地影响选择;而如果还能过得去,就可以相对从容地去验证自己是否适合从事软件开发。

不论哪种情况,都不要随随便便把自己像“行货”那样交出去,牢头、狱霸、政府、家人都不能为你负责,只有你自己才能为你的选择担起责任来。

注:王小波有篇杂文,《“行货感”与文化相对主义》,可以看看。

好啦,现在可以来聊实践验证的三个环节了:

  1. 职业信息收集
  2. 生涯人物访谈
  3. 职业情景体验

职业信息搜集

想必你考虑是否要成为一个程序员时,已经了解了很多信息了。比如计算机软件行业是怎样一个行业、软件是什么、开发人员怎么生产软件、行业就业前景、典型的业内公司的情况等等。

那这些信息够不够呢?要回答这个问题得从职业的定义说起。

通常我们所说的职业指职能,比如医生、教师、程序员,但实际上,职业包括两个维度,职能和行业,职业的定义应该是这样的:

职业 = 行业*职能

行业是指其按生产同类产品或具有相同工艺过程或提供同类劳动服务划分的企业或组织群体的集合。如饮食行业、服装行业、机械行业等。从这个角度看,构成行业的很重要的基础因素就是知识组合,一个行业就有一套知识系统。

职能则着眼于企业内的岗位的技能分工,比如会计、出纳、招聘专员、软件开发工程师,要求的技能都不一样。

基于这样的认识,我们在搜集职业信息时,要了解行业信息、行业内产品信息、知识范畴、行业内的企业构成、行业的前景、企业内的岗位信息、对应岗位的人具体干什么事情需要什么样的技能有什么样的社会地位。

所有这些信息都是相对客观的信息,可以从网络、传统媒体、图书等各种渠道获取到。要大量的,详实的收集相关信息,这将有助于帮助我们判断某个职业是否适合我们。

比如一个人对使用计算机完全不感兴趣,对编程语言完全不感兴趣,那基本上就可以排除做软件开发的可能了。

生涯人物访谈

我们搜集了客观的职业信息,还要了解从事某一职业的个体的感受。说白了就是从事某种职业的人的状态如何。

以快递行业为例。当我们想做快递员时,了解快递员的日常工作情况、正在做快递工作的人员的感受,对我们的选择影响非常之大。比如你很难接受在寒风和雾霾中开着电动三轮车走街串巷,那快递员就不适合你。

以软件开发工程师为例。很多人搜集了职业信息之后会对CBD、高薪、27吋大显示器、Mac Book、规律、专业、智慧等等感兴趣,觉得所以这些点都是自己想要的,就准备报名上培训班了。然而,如果你不实际接触一个从事软件开发工作的活生生的人,就很难了解真实情况:需求经常变更、加班是行业潜规则、技术更新快、多数领导只关心进度不真的关心人、压力大、Bug会让你抓掉所有头发、随时可能被炒鱿鱼或者被告知公司关门……

所以,找到从事目标职业的人聊一聊非常有必要。我大学毕业时找工作,眼前一片茫然,不知道哪个行业如何,也不知道找谁去问,可是我远在农村种地的父亲却深知了解具体工作情况的重要性,居然拐弯抹角托了一长溜人打听了四川成都一家航天研究所的情况。所以,有时我们找不到从事目标职业的人物,只是因为我们没把生涯人物访谈当一回事儿,没有意识到其重要性

有时我们也会找错人,比如我们想了解程序员的工作状况,如果你找到一个祥林嫂式的人物,他强大的负能量和裹脚布一样长的抱怨,很可能误导你得出错误的结论。所以,我们要找那些看待事物比较客观的人,有时为了避免受单一样本的失真影响,还要多找几个人。

每一个人谈论的,其实都是自己。看起来他在说公司,说产品,说团队的氛围,说加班的感觉,说需求的变更……其实都是在说自己的感受,而同一件事对人的影响,在不同的人身上差别很大,有人觉得无伤大雅,有人可能就痛不欲生。所以,我们在做生涯人物访谈时,也要有区别的对待、批判性的思考,不能学过河的小马。

了解、接触软件开发到底是怎么回事儿非常必要,可能你找个行内人聊上一个小时,就能得出自己不适合干软件开发这样的结论。当然也可能你聊着聊着会眼睛越来越亮,越聊越发现自己适合干这个,那就可以进入职业情景体验环节了。

职业情景体验

现在已经有了很多儿童职业体验馆,可以让孩子们在不同职业体验主题店中扮演各行业成人职业角色,在玩乐中培养职业理想,规划自己的未来。

对想要进入某个行业从事某种职业的成年人来说,职业情景体验非常重要。如果你能在实际工作环境中待上一天,就可能改变你对某份职业的看法。

我个人认为,职业情景体验分两个层次:

  1. 近距离观察
  2. 实作体验

近距离观察

近距离观察,可以在你无法立刻从事相关工作的情况下采用。比如你已离开学校,进了其他行业,就像前面提出问题的“小眼睛”那种情况,就可以先采取这种方式来观察。具体展开,又有很多不同的方式

  • 到软件园附近,观察过往的人的精神状态;
  • 中午混在去吃饭的人群中,留意大家在聊什么,吐糟需求又改了,还是Bug找不着,还是领导又强制加班了,这些信息都能得到,到软件园附近的小饭馆,也可以听到很多有趣的谈话
  • 找一个从事软件开发的朋友,到他的公司待一天,看看大家的工作状况,多观察几个人,看他们的精神状态
  • 到车库、必帮或者3w等咖啡馆喝杯咖啡,支楞起耳朵听听周围的人是不是为创业疯魔了
  • ……

只要有心,有很多途径可以让你较为深入的从活生生的人的角度来了解一种职业。

有时你看看从事某种职业的人的表现,就能笃定自己是否适合做这个。同一个行业的人会有很多共同表现,你看到的那些人可能就是你将来的样子,你可以选择是否成为那个样子。To be, or not to be,往往就在一瞬间。

刘邦见到秦始皇出游,说了一句话——“大丈夫当如是也”,后来建立汉朝。

克林顿原本在读音乐系,吹萨克斯管,十七岁的时候遇到肯尼迪总统,后来决定从政当总统,真当了。

这些例子可能离我们较远,但他们确实说明了榜样的力量。你要成为什么样的人,就和什么样的人在一起!所以,你近距离地观察程序员的生活,留意上两天,就可能会做出正确的决定。

实作体验

你观察了某个职业人群,觉得我就是要成为那样的人,那就可以再往前走一步,看看是否真能做起来。

去做做看,这就是验证是否适合软件开发的终极武器。

有正在上班的人可能会说工作挺忙的我没时间去做做看,其实时间总是有的,就看你是否真的渴望去做这件事。白天上班,晚上呢,早上呢,周末呢?如果你真的重视一件事,就可以为它挤出时间来。说没时间,都是扯淡,当一个人不想做一件事时,总会找到理由的。

对于软件开发来讲,试试看的成本很低——因为自己一个人就可以开发点东西出来。

所以,我给那些想转做软件开发的朋友的建议,基本上都是这样子的:

先找本教授编程语言的书(视频等)来自学,看自己能否学进去,能否自己把环境搞起来做点小实验,坚持上一段时间,看看自己是否还有兴趣,如果还有兴趣,那就把它学完。如果想快,也可以去报一个软件开发培训班,培训可以带你快速熟悉一个技术方向。但不能只依赖培训,更重要的是坚持自我学习和自主练习。

一旦你能通过自我学习掌握一门编程语言,就可以继续往下走,做更深入的体验。比如自己去做一个解决实际问题的小软件(像图书管理系统、记账、博客系统、待办事项等),或者寻找免费兼职的机会,这样你可以锻炼自己掌握的技能,也可以进一步积累经验,判断自己是否适合继续往前走。

如果有机会,能免费进入一个公司去实习或兼职也是非常好的,在开始的开始,重要的是锻炼的机会。为将来正确的方向,花上一点时间和代价,非常值得。

四句话总结

洋洋洒洒好几千字,其实总结一下,核心意思就四句话:

  1. 从性格和兴趣角度判断是否适合做软件开发
  2. 搜集客观的职业信息,从知识、技能、工作内容上帮助判断
  3. 通过生涯人物访谈了解别人对某标职业的感受和看法
  4. 通过近距离观察和实作这两种方式的职业情景体验进一步验证软件开发是否适合自己

如果我们能按照上面的方法走完整个过程,我们的决定就会靠谱很多。

BTW: 本文一开始罗列了7个问题,现在应该回答了1、7两个问题,2~6那五个问题,留着下次说了。至于时间,现在还说不准,但可以确定的是,顶的人多了回复的人多了,会加快我的速度,鸡血,快来些!

又及:有问题想交流的朋友,可以关注我的微信订阅号“程序视界”,进入公众号后文字回复即可。


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

困惑、成长、发展、增值、新知,尽在微信订阅号“程序视界”:

程序视界

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/24416.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

CASE WHEN的用法

1.case when语法 在SQL中,“Case When”语句用于选择判断,在执行时先对条件进行判断,然后根据判断结果做出相应的操作;格式 CASE SCORE WHEN A THEN 优 ELSE 不及格 END 2.适用场景 2.1 表结构和数据 SET NAMES utf8mb4; SET FO…

芒果Tv服务器维护,芒果tv怎么看直播?芒果tv直播看不了怎么办?

芒果tv怎么看直播 芒果TV是湖南卫视新媒体金鹰网旗下的网络电视播放器,为用户提供包括电视剧、电影、电视节目、新闻纪实、音乐等多种类型的点播服务。那么芒果tv怎么看直播? 1.打开【芒果TV】,往左划动上方的导航栏。 2.点击【直播】,这里就…

我脸上被软件开发刻了几个字

4 月 13 号,在路上,听着别人的微课,忽然想起这个话题:从事软件开发工作在哪些方面影响了我的生活。 稍一回想,不由感慨万千,赶紧记录下来。根据我个人的经验,软件开发这种工作会在下面三个方面…

user电影的详细信息和播放vue

代码 movieInfo.vue 显示图片不一样大 <template><div class"movie-container"><div class"header"><div class"header-inner clearfix"><div class"movie-info-left"><div class"avatar-s…

安装php redis扩展

查询自己使用的PHP版本 用phpinfp()函数或者在自己安装的server软件上查看自己使用的php版本 确定php版本为7.2.18&#xff0c;ts,vc15&#xff0c;服务器环境为64位. 安装php redis扩展文件 下载扩展文件 下载php redis扩展文件. 下载最新稳定的对应php版本的phpredis扩…

qa职业规划_INTP职业规划模型及个案详细解析

ISFJISTJESFJESTJISFPISTPESFPESTPINTJINTPENTJENTPINFJINFPENFJENFP 欢迎各位掌管逻辑这一社会职能的各位逻辑学家们前来&#xff0c;我会在此跟你们一起先从盘点INTP性格天赋、短板以及其具体的运用、提升途径和修炼方法&#xff0c;再延伸到INTP在现实中的专业选择、职业规划…

[MBTI]16种风格 – 第三篇

相关历史文章&#xff08;阅读本文之前&#xff0c;您可能需要先看下之前的系列&#x1f447;&#xff09; 如何做到有效的学习:学习金字塔 艾宾浩斯记忆法遗忘曲线 如何学会思考&#xff0c;来自一位粉丝的灵魂拷问 减肥追班花/我要学英语/SMART原则&#xff0c;让你做事更…

WWDC20 10041 - What's new in SwiftUI

本文知识目录 知识点问题梳理 这里罗列了四个问题用来考察你是否已经掌握了这篇文章&#xff0c;如果没有建议你加入 收藏 再次阅读&#xff1a; 都有哪些协议遵循 Scene&#xff0c;它们都有哪些功能和使用场景 &#xff1f;说说 toolbar 有哪些构造方法 &#xff1f;本文提到…

“脱离”现实+极致拟真?声网凤鸣AI引擎来袭

3月23日&#xff0c;实时互动云服务商声网在北京举办“凤鸣AI引擎”发布会&#xff0c;正式发布了囊括 AI降噪、AI回声消除、空间音频、最佳音效在内的声网新一代音频技术智能引擎。开发者与企业可以如搭积木般灵活调用对应组件&#xff0c;并广泛应用在语聊社交、在线K歌、线上…

英特尔发布酷睿系列 | 历史上的今天

整理 | 王启隆 透过「历史上的今天」&#xff0c;从过去看未来&#xff0c;从现在亦可以改变未来。 今天是 2023 年 1 月 5 日&#xff0c;在 2003 年的今天&#xff0c;“神舟”四号飞船在完成预定空间科学和技术试验任务后&#xff0c;在内蒙古中部地区准确着陆。至此&#x…

【English】《trancy,一个用chatgpt翻译视频的神器,强烈推荐!》- 知识点目录

《trancy&#xff0c;一个用chatgpt翻译视频的神器&#xff0c;强烈推荐&#xff01;》 应用名称&#xff1a; Trancy1. 支持网站 YouTube和Netflix 2. 安装步骤 Note: 如果安装之后&#xff0c;发现无法点击【知道了】的情况&#xff0c;将网页缩放之后&#xff0c;就可以…

chatgpt赋能python:如何下载Python以前的版本

如何下载Python以前的版本 Python被广泛使用&#xff0c;包括网页开发、机器学习、科学计算等各种领域。然而&#xff0c;最新版本的Python可能与你的应用程序或软件包不兼容&#xff0c;因此你可能需要下载以前的版本来满足你的需求。 本文将介绍如何下载Python以前的版本&a…

chatgpt赋能python:如何下载Python的旧版本

如何下载Python的旧版本 Python是一种流行的编程语言&#xff0c;具有强大的功能和良好的可读性。然而&#xff0c;当需要在旧的或特定的环境中使用Python时&#xff0c;新版本并不总是可行的。在这种情况下&#xff0c;下载旧版本的Python是唯一的选择。本文将介绍如何下载Py…

最新版PC微信(3.9.2.23)逆向——收消息hook

处女作&#xff0c;有写错的地方&#xff0c;请各路大佬明确指出。 逆向分析方法&#xff1a; WeChatWin模块基址&#xff1a;0x5CD60000 a、不停的向测试号发送消息&#xff0c;不要点开&#xff0c;让未读消息总数不断增加&#xff08;此方法比搜特征码、字符串更通用&#…

pytorch下载与安装(离线包版本)

笔者因为实验需要&#xff0c;不同的模型需要不同版本版本的pytorch&#xff0c;于是安装pytorch就总是出现一个问题&#xff0c;那就是断。比如需要安装torch1.4版本&#xff0c;使用Anaconda Prompt尝试了几次&#xff1a; pip install torch1.4.0 torchvision0.5.0 -f http…

离线安装PostgreSQL数据库(v13.4版本)

记录&#xff1a;328 场景&#xff1a;在CentOS 7.9操作系统上&#xff0c;离线安装PostgreSQL数据库&#xff0c;版本&#xff1a;v13.4。主要是PostgreSQL的编译、安装、启动、登录、设置远程可登录、创建数据库、创建数据库用户等。 版本&#xff1a; 操作系统&#xff1…

regex101 离线版本

regex101.com是一个在线测试正则表达式的网站&#xff0c;比较赞的地方是右边会显示对应正则各个部分的意思&#xff0c;用来调试和学习都是非常好的。还部分支持中文。 但是因为网络不稳定&#xff0c;为了方便研究和学习&#xff0c;我把这个网页的大部分代码拷贝下来&…

飞秋软件--局域网内离线传输文件及聊天工具

下载地址&#xff1a; 链接&#xff1a;https://pan.baidu.com/s/1ADDsXHA4DXtT9zNsF5Eyqw 提取码&#xff1a;o84g 双击安装&#xff0c;按要求&#xff0c;选择安装目录及数据存储目录。一步步安装就行&#xff0c;这里很简单&#xff0c;安装后会在桌面生成…

纪念QT可直接安装的离线版最后版本5.14.2

为什么说纪念呢&#xff1f;因为&#xff0c;这个版本之后再也没有可下载下来安装的版本了&#xff0c;因为我们以后再也没有这么方便了。为是很么说纪念呢&#xff1f;因为我们从QT还很柔弱的时候开始就是使用的离线版。 以前用c#来做组态&#xff0c;自定义控件开发起来也还…

Ubuntu 20.04.5离线安装

1、下载ubantu镜像 Get Ubuntu Server | Download | Ubuntu 2、运行ubantu镜像 通过Vmware运行镜像&#xff0c;这里就不说了。 3、离线安装java服务需要的依赖gcc 以及make 下载gcc以及make的离线安装包 gcc 链接: https://pan.baidu.com/s/1SvMqbz_zfvglUB4ZScW5_Q 提取…