编程 25 年后,现实将我打回菜鸟程序员的起点
在从事了 25 年的编程工作后,我却发现自己没有什么具体的东西可以展示给大家。我需要克服完美主义思想和对被批评的恐惧,向大家展示真实的自己。
作者 | DeChamp
译者 | 苏本如
责编 | 仲培艺
出品 | CSDN(ID:CSDNNews)
下面和大家分享下我的故事:
2019 年 1 月 13 日这一天,我满了 36 岁,这意味着我正式从事编程工作已有 25 年。
在这 25 年间,我尽心尽力地工作,却发现除了编程技能外,我没有什么可以展示给大家的成果。
这些年我所做的,要么是作为一个雇员为企业开发项目,要么兼职为客户开发一些网站,而这些网站/项目中的大部分都已经下线了。
在无数次的自我反省中,我问自己,为什么我没有什么成果可以展示给大家?根源在哪里?
完美主义怪圈
我的第一次反省源于一个好友要我帮他学习网站编程,某天晚上我接到他的电话,他兴奋地说:“嘿,快看看我的网站!我搞定了!”
他买了一个域名,一个 WordPress 模板和一些便宜的托管主机。他把这些设置好,并把准备好的内容放上去,然后就上线了。
他的网站看起来不错。因为我更喜欢使用 PHP 或 Node 来构建完整的 App,所以我不喜欢用 WordPress。但他不知道怎样编程,所以 WordPress 是他最好的选择。
在我教了他一些基础知识后,他在一个星期内就做出来一个看上去不错的网站,这让我有点嫉妒。
我不是嫉妒他的技能,因为我知道他掌握的是任何人在一两天的时间就能学到的基础知识。
然而,他只用了一周时间就完成了这个项目 90% 的工作。
在这么短的时间内,他做出来了一个看得见的产品!
他是怎么做到的?!他是如何克服在网站还未完善时就发布的恐惧的?他怎么想到为网站创建这些内容的?他是如何做到不过度设计,保持专注,进入编程这个奇异的世界的(对他来说)?
我必须承认这一点,我意识到我生活在自我技能怀疑以及对他人批评的恐惧中。当涉及到我的个人项目时,我会陷入完美主义的怪圈,所以一旦我开始一个项目,就会投入无穷多的时间,穷尽所能来让它成为我能做到的最完美的应用,但结果往往是半途而废。
我唯一一次 100% 完成的个人项目,是因为有一个老板会为我付报酬。其它的个人项目我都只完成了 50%~90%,或者是感到无聊放弃了,或者是干脆忘记继续做下去。
我深知我的本职工作做得很好——每天都在学习,承担并完成了大量的项目。我在这个领域干了 15 年多了,与一些最好的开发人员一起工作,甚至有能力挑战他们。
我开发过的软件和应用能带来数百万美元的收入,拥有数十万用户。我的存在让这些软件和应用变得非常安全可靠。
开始改变
那我为什么要纠结我的个人项目呢?听起来有点像人格分裂。
我意识到我需要回到我刚开始工作的时候。"K.I.S.S", Keep it Simple and Stupid!
我也开始更加关注开发社交圈。我加入了几个小组。其中之一是一个初学者小组,让我能够像一个菜鸟程序员一样重新思考。
我注意到有些菜鸟程序员只有几个月的开发经验,但他们都敢于提供一些建议,甚至一些全日制课程。我更震惊的是很多人不但感兴趣,而且还感谢他们。他们的追随者不断增多。
对我来说,这太令人震惊了。他们是如何做到这一点的?当人们几乎不知道他们过往经历的时候,怎么会重视他们的建议呢?
我猜我可能一直没有意识一点,好多人只是在寻找比他们多了解一点点的人。他们不在乎那个人是否比他们多学了 25 年或 25 分钟,他们只关心是否能从这个人身上学到一点点,并希望与其维系一条沟通渠道。
很快我就发现,我只发布了一些文章就已经有了很多“粉丝”。看来我要克服的阻碍来自我自身。
所以今年我要强迫自己做出改变,我决定采取下面的一些小步骤:
首先,我考虑了一下我的现状,由于我在外面接了一些私人项目,如果再去完成所有的个人项目,那会让我压力太大。(这些年我一直都有一份全职工作,但在大部分时间里,我会接一些私人项目来做。)
我作了个决定,如果我在一件事上赚的钱不足以让我的生活方式有大的提升,那就不值得我花时间。
我一直在想这个问题。如果我接的私人项目挣不到我全职工作收入的 50%,那我就不应该这样接私人项目。
所以我放弃了这些私人项目,由此而来的压力释放是惊人的——我不需要为更多的客户负责了。我只需要应付一份普通的工作、我的家庭和我的个人项目!
我做的第二件事,是强迫自己构建一个快速的个人项目,无论我对它感觉有多糟糕,都要马上发布它。
我也这么做了!你可以在 https://gidgitz.com 上查看。
我的下一个目标是继续向该站点添加功能。学习一些新的框架、包和设置,我会很快掌握,并在将来的项目中使用。
一开始很顺利,但是后来我在重构上被堵了 3 个月。3 个月过去后,每天我都兴奋地为新的 API 后端编程。
故态复萌
三个月前,我又重蹈覆辙,再次把每件事过度复杂化,且力求尽善尽美,做好的功能我又不想发布了,因为我的完美主义的强迫症又犯了。
当我意识到我又一次让自己陷入同样的困境时,我强迫自己改变,拿掉没有完成的功能,将已完成的部分发布出去。
我做到了!感觉很棒。虽然新功能不多,但都已经上线运行。这可能不是我最终想要的,今后还需要添加无数的改进。但至少这一次我做到了,毋庸置疑,上线这些新功能肯定比让它们静静躺在我的笔记本电脑里无人关注要好。
我必须努力克服我的旧习惯,直面对别人批评的恐惧,要认识到即使没有人喜欢它,至少它可以被人看到。我一开始要做的不是使它完美,而是要使其“可见”,然后得到反馈并加以改进。
我的下一步是完成后端 API 设置,每隔几周发布一次小的更新,直到我对这个项目感到满意。 到那时就是开始下一个个人项目的时候了。
除此之外,我还打算向人们展示我的新想法,把旧项目拿出来展示给别人看。
这是一个学习过程,在走过了 25 年的编程旅程后,我感觉现在才刚刚开始。
Ta 说
读完这个故事,不少评论慨叹同感良多,也同时发表了对作者某些观点的看法:
Tyler Smith:
对此我也深有体会。两年前我辞掉了工作,成为了一名网站开发人员,因为我有几个个人项目要构建。事实上,我应该足够胜任开发人员这个工作,因为我可以在成为开发人员后的 10 个月内做出一个可接受的版本,但有两件事总是让我停步不前:
1. 新奇事物综合征:我总是想用最好的平台来完成这个项目,所以我从 Wordpress 转到 Laravel,再转到 Django,然后开始学习 Serverless。这是一次很好的学习历程,但我什么也没做出来。
2. 我想要的功能远远超过我的个人能力。
我被困了一年没有上线任何东西。
拯救我的是一堆关于最小可行产品(也称为 MVP)的文章,同时也是厌倦了什么都做不出。我把我的抱负从 10 个功能降到 1 个功能,并在 14 天内在 WordPress 上建立了一个可运行的网站。这个站点在 WordPress 中并不出众,目前为止还没有人访问过该站点,不过可扩展性倒是也完全没问题了。
在过去的两周里,我一直在尝试推广我认为非常酷的东西,尽管代码库有点乱,但我对它非常满意,而且没有人关心代码。
祝你和你的项目好运!如果你多关注代码的发布,你会做得很好!
Eric Ochoa
我喜欢这部分:“…他们不在乎那个人是否比他们多学了 25 年或 25 分钟,他们只关心是否能从这个人身上学到一点点,并希望与维系一条和他沟通的渠道。”
我常常觉得在我对任何问题发表任何看法时,我必须先成为这个问题的专家。但事实是,通过分享你已经掌握的任何知识,都可以帮助很多人(包括你自己)。
原文:https://dev.to/dechamp/25-years-of-coding-and-im-just-beginning-442n
本文为 CSDN 翻译,如需转载,请注明来源出处。
热 文 推 荐
☞ 微信“再罚”今日头条;马云:没有女性就没有阿里;有赞强推 996 工作制 | 极客头条
print_r('点个好看吧!');
var_dump('点个好看吧!');
NSLog(@"点个好看吧!");
System.out.println("点个好看吧!");
console.log("点个好看吧!");
print("点个好看吧!");
printf("点个好看吧!\n");
cout << "点个好看吧!" << endl;
Console.WriteLine("点个好看吧!");
fmt.Println("点个好看吧!");
Response.Write("点个好看吧!");
alert("点个好看吧!")
echo "点个好看吧!"