当一个程序员写不出代码了,该怎么办?(转载)

翻译作者:码农网-小峰

转载地址:http://www.codeceo.com/article/what-to-do-programming-sucks.html

原文标题:What Do You Do When Programming Sucks ?

原文地址:https://blog.klimczyk.pl/2017/05/04/what-to-do-when-programming-sucks/

你已经对着电脑 N 个小时了。不知道该写什么代码,或者一种摔键盘的冲动正在你的胸中酝酿。

咖啡一杯接着一杯。不敢再喝了,因为搞不好要有副作用了,心跳加速,身体不由自主地颤抖,出冷汗,但还是无法产出任何代码。

所有重新发现编程趣味的努力都徒劳无功,因为你的最后一点能量都用来驱逐大脑中正在攻城略地的话:

“我写不出代码了!”

   1编程的本质是棘手

即使是最优秀的程序员也会遭遇无法解决的软件工程问题。碰到这样的问题,并不一定意味着你缺乏技能或知识。

编程不是一项容易的工作,我们可以通过采取非正统的方法来保持你想要的生产力水平,并确保提交高质量的代码。

如果我在一个问题上花了几个小时,却仍然找不到解决方案的话,最后我会觉得这是浪费了时间。我不是胡言乱语——我只是觉得“没有人能够百死不悔”。

没有愤怒和悲伤。因为我已经尝试过所有方向,只是都走不通而已。失去希望,于是开始想辞职不干。我觉得自己应该换工作,去做做调酒师或其他,至少研究和测试在啤酒中加点什么不会耗去我数个小时的时间。

这些都是我在不敲代码时的想法。我开始怀疑生活,怀疑编码,怀疑人生。

有成效不?好吧,我从来没听任何专家说过“辞职和萎靡不振”可以造就伟大的代码,所以可能并没有成效。

这就提出了一个问题:我们该如何避免这种没有成效的状态?

2重新发现问题,重新发现你的生产力

可能你已经行进在这条路上了。那么此时你只要继续就可以了,我可能没有什么新的东西可以告诉你的。

如果你是新手,那么可能你还不知道如何重新发现生产力。

下面我要分享的内容将有助于你在编程时以一种健康的方式保持生产力,不至于筋疲力竭。主要包括:

1、测试不同的解决方案,直到感觉重复

2、在线寻找开源解决方案

3、向更有经验的程序员询问

4、如果一切都失败,那就潇洒放手

 

  2.1测试不同的解决方案,直到感觉重复

在你研究或询问其他开发人员(=浪费他们的时间)之前,你应该尝试使用你现有的知识和思维来制定每一个可能的解决方案。

显而易见的是,太多的程序员是从询问他人开始的,自己甚至都不曾静下心来分析问题本身。不要成为这样的讨厌鬼,尽可能不要浪费别人的时间。

先投身于工作,然后再寻求帮助。

  2.2在线查找开源代码

当你投入于工作,却没有什么成果的时候,那么下一步你可以尝试开源代码。许多编程人员构建软件,是出于创造解决方案并在线发布以供大家使用的乐趣。有些人发布的代码曾被它们的程序员使用于商业项目。

GitHub是寻找开源代码的两个主要地方之一。另一个是StackOverflow。

这些网站的解决方案是采用可重用代码的形式,方便你在项目中实现。

谨记,使用其他人开发的代码总是有风险的。它可能会以你意想不到的方式改变程序的行为。备份原始代码,这是常识。

  2.3向更有经验的程序员询问

你有没有碰到过这样的情况,向其他人求助却发现你甚至不知道自己在问什么?

在询问任何人之前,你得准备好一些你无法通过网络信息搜索解答的问题。

明确的问题,才能有明确的解决方案。如果是你自己都描述得云里雾里的问题——那么你只会得到一个云里雾里的回答(并且可能会惹恼他人)。

如果你周围没有任何开发者可以询问,那么也可以在线查找。你可以在StackOverflow或MSDN社交论坛上询问,或查找特别针对于你所用技术的Slack频道。

  2.4如果一切都失败,那就潇洒放手

不要一心钻在死胡同里,实在不行,那就去干点别的事——睡觉,吃东西,等等。

你觉得这是在逃避工作?那就错了。

我要告诉你的是,当你最轻松的时候,往往正是解决办法灵机一现的时候,这不是我胡编乱造的,而是有科学的证明。此时你的大脑工作在“发散思维”的模式下,而不是在“集中注意力”的模式下——你可以在这篇文章中了解之间的差异。

总的来说,这个理念就是要你忘记手头的问题,让你的意识心灵沉浸到其他的事情中。此时,你的潜意识则开始连接要点,朝着顿悟的方向前行。

我们可以做些什么以便于帮助大脑在发散思维的模式下工作呢?放轻松就好了:

散步(古代哲学家非常习惯于在走路时演讲,因为他们意识到走路有助于思考)

清理办公室或住所(完成后给自己一个奖励)

与朋友约会,和杯咖啡,聊聊八卦(如果你过于关注问题的话,那么建议和不能提供帮助的非编码人员交谈)

3总结

我在编程和生活两者之间保持了一种健康的平衡。

无论你是为了兴趣爱好、钱还是改变世界的宏图伟业而选择编程——编程都不应该是你唯一痴迷的东西,否则你会走火入魔。

最后再说一句,如果你绞尽脑汁,却仍然无法解决问题,那么不妨先放一放。通过潜意识的运作,搞不好突破性的想法就会灵光乍现。

时间: 2024-10-19 13:52:44

当一个程序员写不出代码了,该怎么办?(转载)的相关文章

说实话当一个程序员不容易

我曾经说过,程序员不是一般的人,是具有某种超能里的人.但问题是,程序员往往意识不到自己的这种特异功能,在他们的眼里,会认为自己很普通,跟常人一样,所以,程序员能做到的事情,其他人--比如他们的客户/软件用户--也应该很容易做到.但事实上,由于大部分人--绝大部分人(包括软件开发公司的客户/购买软件的用户)--都是电脑小白(对电脑知识/计算机知识/软件知识知之甚少的人).一个对于程序员来说很显而易见的软件操作,换成让用户来操作,就会出现各种各样奇怪的事情.这让程序员非常痛苦. 记得有一次,一个客户

看见一个程序员敲键盘的速度不快

看见一个程序员朋友在敲代码的时候打字速度并不快.于是想不应该啊,朋友经常用电脑敲代码,理论上应该打字速度不至于像我看到的那样慢啊. 因为好奇便问了一下.朋友解释到:这个是键盘的是新买的,包括字母位置布局.键盘凸起等和之前用的键盘不太一样,现在还没用习惯,所以打字速度受点影响. 我看了一下键盘,确实和朋友之前用的键盘不太一样. 总结:没有经过思考,没有查找为什么打字慢的原因,除了自身的技能之外,使用习惯和硬件等也占一部分原因.而且只是看到的那几分钟才看到朋友打字比较慢,没看到的时间朋友可能打字比较

幸福村站——成都传智播客程序员写出你的烧烤代码

又是一个阳光明媚,风和日丽之天,如果作为程序员的你还在键盘上苦苦的想着下一串代码该怎么写的话,那你就弱爆了.俗语说得好,学习要劳逸结合,写代码更是需要清晰的思维,在传智播客Java基础班开班一个月后,班主任决定带着这群"猿猴们"去传说中的"幸福村"放松放松,我们也跟着一起去感受程序员们的烧烤代码的幸福吧! 带着好奇的心理走进了"幸福梅林站",一个又一个的农家乐园开始浮现在我们眼前,那里朴素的民风和美丽的风景让我们暂时忘却了学习上的烦恼和城市里的喧

从前有一个程序员,成天写代码,后来,他屎了。。。

从前有一个程序员,成天写代码,后来,他屎了 1.一门可以靠手艺混饭的专业 你好,非常荣幸能够步入改变世界的软件开发行业,接下来我们聊点正经的.回首近7-8年来的时光,发现自己可能将要走向程序员这条道路的时候最早可以追溯到2008年高考完填写志愿,那时候分数所迫,二本学校的好专业都上不了,我就想有什么专业是可以不靠学校名声而靠自己努力成就一番霸业的?思来想去选择了–计算机,作为第二志愿...显然那时候会计这个专业更火一些. 入学一年以后我有了自己第一台笔记本电脑,然而第一个装上的应用程序居然就是魔

从阅读Discuz的核心代码并给出注释的经历分析程序员该如何阅读代码?

本文标签:   程序员 php Discuz的核心代码 框架 深度学习框架 阅读优秀的代码,是技术水平成长的最佳途径.记得每个进来的新人,我都做过阅读优秀代码的要求,但几乎都只能坚持很少一段时间而已. 前晚大家还在开玩笑的讨论,都是因为看了前人的一些写法,才学会了一些乱七八糟的花招. 晚上我又开始重新阅读Discuz的核心代码,花了1h多的时间,才完成一个core文件的注释. 注释后的代码: <?php /** * [Discuz!] (C)2001-2099 Comsenz Inc. * Th

汇道科技:如果以后程序员写不动代码了怎么办?

最近汇道科技办公室关于"程序员写不动代码了怎么办?"引发了很多人的讨论,一开始讨论的对象只是"当事人"程序员们,后面到各行各业,同时大家讨论的几个点也引人深思: 1.35岁写不动代码了怎么办?  你不得不承认,对于新事物的兴趣在下降,就如同不再有见漂亮姑娘时的小兔乱撞,就如同不再有见到梦想时的热血跌宕.就是如此尴尬的一个年龄,偏偏又生在互联网,这个到处都是常青藤生产线的艺术品,不比资历只比朝气的行业. 首先小编认为35岁并不是一个很可怕的年纪,三十而立,三十五岁正当

出错的方法有可能是JDK,也可能是程序员写的程序,无论谁写的,抛出一定用throw

应对未检查异常就是养成良好的检查习惯. 已检查异常是不可避免的,对于已检查异常必须实现定义好应对的方法. 已检查异常肯定跨越出了虚拟机的范围.(比如"未找到文件") 如何处理已检查异常(对于所有的已检查异常都要进行处理): 首先了解异常形成的机制: 当一个方法中有一条语句出现了异常,它就会throw(抛出)一个例外对象,然后后面的语句不会执行返回上一级方法,其上一级方法接受到了例外对象之后,有可能对这个异常进行处理,也可能将这个异常转到它的上一级. 对于接收到的已检查异常有两种处理方式

一个优秀的程序员所具备的14个品质【转载】

慎于说Yes 在没有搞清楚开发需求.任务工作量.团队期望值之前,有前途的程序员不会轻易答应.特别是对于新人来说,比较急于表现自己,对于同事或者老板的工作安排来者不拒,精神可嘉,方法不可取.承诺太多,会出现自己无法按时完成的情况,即使按时完成,也可能没有达到别人的期望值,长期以往别人对你的失望会越来越多. 敢于说No 看起来和第一条雷同,其实细究起来不一样.第二条执行起来比第一条难得多.当遇到明显不合理的要求时,可以考虑拒绝,前提是准备好了全面充分的理由.不要经常说No,但是一旦说了,就要切中要害

如果你喜欢上了一个程序员小伙

程序员向来是善于幽默自嘲的群体,但从某种程度上影响了咱程序员在广大女同胞心中的印象啊-- 于是写下此篇(有从别处看到的3句加进来的), 就算是为咱程序员做个广告--要是觉得有点过的程序员们,就把此文当作一个美好的目标吧---) ---------------------------------------------- 如果你喜欢上了一个程序员小伙,就不用再害怕电脑中病毒QQ被盗,因为他至少尝试过10款以上杀毒软件,他知道用那款占资源最少防毒效果最好的保护你的电脑. 如果你喜欢上了一个程序员小伙