本文转载自公众号“读芯术”(ID:AI_Discovery)
细节决定成败,态度决定一切。那些影响最终结果的,往往归根结底在于你不甚在意的事情。即使只是小小的想法,也有可能成为你的软件开发工作中很具破坏性的钉子。实际上,很多人都至少有过其中一种想法,想要规避其破坏性首先得认识到自己的问题,那么就开始吧。
1.“我只想在工作时编码”
如果只是为了赚大钱而花时间编程,那么你的日子将会很难过。当然,你可能会赚到一些钱,但很快就会精疲力竭的。只是浏览过多的新JavaScript库就已经使我很累了——尽管它在过去几年里它已经稳定下来了。
你不能将编程仅仅视为工作。
比起常规工作,编程更像是一种职业爱好,仅仅朝九晚五是不可取的。要想真正发展技能,你需要对编程充满热情。需要找到解决问题的乐趣,并热爱挑战——甚至需要连续数小时不间断的挥舞键盘。优秀的程序员都充满好奇心,并且求知若渴。
2.“我需要学习多种语言”
这种思想在《程序员修炼之道》一书中发扬光大。但在我看来,完全不需要,你不需要每年学习一种新语言。
学习一门编程语言在许多方面都类似于学习一种常规语言。要掌握一门语言,就需要了解其背景、文化和人。仅仅熟悉单词(关键字)和语法(编程中的语法)并不意味着了解一种语言。
曾经我也想学习很多不同的语言,并认为任何优秀的程序员都必须了解任意数量的语言。但是我发现我从来没有真正了解每种语言的“文化”。我可以用PHP,Java,C#.NET,JavaScript和Python编写Web应用程序,但是我始终对为什么以某些方式完成事情缺乏更深入的了解。
完全专注于一种后端、前端和数据库语言,这样做可以使你成为更好的程序员,真正学好一种语言通常可以使你轻松过渡到一种新语言。每种语言都有其足够的深度和适用的范围,无论如何,学习语言都会占用你相当长的时间。
3.“这不属于我的工作范畴”
从很多方面来看,正是这种想法会极大地限制你的成长。这种态度会让你陷入困境,甚至最终断送你的职业生涯。你会成为只希望完成某些任务的人,而这又会限制你接触新的领域。
如果发现自己反复说诸如此类的话,那么你将处于危险之中:
- “谁写的代码谁改”
- “这不是我写的——所以我没必要修复那个明显的bug”
- “我不做前端,去找某某吧,他没准儿会”
4.“有关于它的教程吗?”
我们都曾观看或阅读一个又一个教程,甚至可能看过10个关于同一主题的不同教程,只是为了获得不同的见解。
但在某个时候你需要停止观看教程,亲自尝试一下。仅仅通过别人的逐步指导并不能提升自己的分析和解决问题的能力,你得尝试从你想学习内容的项目中阅读文档和源代码。此外,也请参考他人对某事的意见。与按部就班的指南相比,它具有更大的价值。
5.“我想自己构建”
行,我知道你在一项编程工作中能构建出色的东西,不只是使用别人已经建立的东西了。但是,在进行客户项目并且临近最后期限时,你根本没有时间去构建自己的线性回归程序包,工作中需要考虑到所有的极端情况。
你只需从npm或NuGet导入令人无语的软件包并继续进行即可。如果你想拓展自己的技能,可以尝试下班后,在家中利用空闲时间来构建类似的软件包。在工作中,通常需要妥协并使用他人已经构建和测试的内容。
你认为软件开发中很糟糕的态度是什么呢?