如何成为一名合格的程序员( 二 )


当你解决一个问题时 , 你需要的是多巴胺的释放 。这类似于在电子游戏中完成了一个关卡 , 或者解决了一个像纵横字谜或数独这样的挑战 。我们都知道 , 坚持通过一项挑战 , 然后最终赢得比赛 , 一般都会有成就感和兴奋感 。但是如果你失去了感受这些快乐的能力 , 或者从一开始就没有真正有过这些感受 , 你将无法体验到编程带来的快乐 。如果你把编程看作是一种磨砺 , 你只想尽可能容易地得到结果 , 那么你永远不会真正成为一个成功的程序员 。
无论何时 , 当你解决了一个一直在努力解决的问题时 , 无论多么微小 , 你总是为你的成就感到骄傲 。你需要休息一下 , 祝贺你自己完成了一项出色的工作 , 让成功的感觉渗透进你的心里 , 为你即将面临的下一个问题注入活力 。
5、无法独立思考
如果你期望别人为你着想 , 并且主动看到你自己所在的处境的细节 , 你将永远不会成为一个真正成功的程序员 。
当你在学习新的东西时 , 很容易感到缺乏知识和经验 , 并没有自己的观点 。主动做事或者说错话似乎是有风险的 。对于错误 , 我们的内心都有一种恐惧感 。当对错误的恐惧抑制了你的探索和好奇心时 , 你会扼杀开发真正知识、从经验中获得的知识和「失败」的能力 。当你需要依靠「权威」的观点、一个受欢迎的博客、一个最佳实践或「教科书」的答案时 , 那么你就没有真正地整合编程的知识 。你需要对什么有效 , 什么无效形成自己的观点 。你需要理解为什么你认为你的解决方案有效 , 以及使用这个方案有什么好处 。你需要建立一个微妙的视角 , 超越那些显而易见的东西 。你需要能够「证实」你的立场 。
为自己着想 。通过你的经验和批判性思维技巧 , 发展出你自己的思想体系 。做出合理的猜测 , 坚定立场 , 并愿意随着新信息的出现而改变立场 。
6、僵化、狭隘、混乱的思维
如果你的思维僵化 , 并且难以保持代码的条理化 , 那么你将永远无法成为一名真正成功的程序员 。
我有时在学生中看到两个极端 。第一种是僵化和狭隘的思维方式 。拥有这种态度的人拒绝帮助 , 尽管会有反馈 , 但不会有改变 。他们看事情只从一个角度看 , 别人给的建议被忽略 。
我看到的第二个极端是思维混乱 。学生们似乎使事情变得更加复杂 , 他们的代码杂乱无章 , 难以理解 。他们过度思考问题 , 写 100 行代码 , 而其中只有 10 行 是有用的 。
当这两种心态结合在一起时 , 结果就是一种用蛮力的方法去设计程序 。我们需要的是回顾解决方案 , 重新评估它 , 放弃最初的方法 , 并重新组织方法 。
无法看到其他可能性或无法反思反馈会抑制成长的能力 。思维杂乱无章会减慢你的成长速度 , 阻止你看到那些原本显而易见的模式 。你的工作质量也会下降 。
自我反省 。你需要退后一步 , 看看你是接触的事物的大局是什么样子的 。你要怎样才能做得更好?你能做些什么让你的生活更轻松吗?你需要什么来帮助你?
7、需要「正确」的答案 , 而不是识别一系列「好」和「坏」的答案的方法
如果你认为编程的最终目标是找到正确的解决方案 , 而不是一系列解决方案 , 那么作为一个程序员 , 你将永远不会真正成功 。
当开始学习技能或编程时 , 学生往往想知道他们所做的是否「正确」 , 而答案总是「视情况而定」 。
计算机科学是一门评估权衡的科学 。在不同的环境下 , 哪条路更好 , 这完全取决于所处的环境和目标 。当你把编程看作是一个有正确答案或错误答案的测试时 , 你就失去了对全局的认识 , 放弃了你的创造力 。任何答案都可以是「正确的」 , 前提是你能根据具体情况证明这一点 。现实情况是 , 编程更像是写诗或写短篇小说(如果程序很大 , 则可能是小说) 。在你的代码中可以看到一种美学和美丽 , 这些东西有时只有你和其他程序员能够识别出来 。你决定解决方案的原因 , 以及你对答案的设想 , 比「正确的方式」或「错误的方式」更重要 。拥有一个艺术家的头脑可以让你编的程序具有选择和可能性 , 而不是认为只有一种处理方式 。这就是编程的美——有很多方法可以解决问题 , 考虑不同的可能性 , 然后决定哪种方法最适合当前的情况 。