在现代软件开发的世界中,经常面临着完成项目的挑战,这些项目可能是通往自由的门票,让摆脱朝九晚五的束缚,并有可能使成为百万富翁。然而,这些项目现在在哪里呢?也许已经开始努力,并完成了一些想法的功能,但是否完成了它?是否实现了想要实现的一切?
都有未完成的项目和想法的墓地。这是因为制作好的软件需要辛勤的工作。制作一个“Hello World”和完成101课程从来都不是问题,但在竞争激烈的市场上制作一个完整的、功能齐全的应用程序需要大量的工作、知识和规划。所有这些活动都需要动力。然而,这不是标准的“今天要跑半小时,然后再也不跑”的动力。对于这个项目,需要马拉松式的动力,那种可以持续很长时间的动力。
一般来说,这是在每一项努力中都需要有的动力。如果想在当前工作场所取得成功,成为一个优秀的团队领导,制作一个新的应用程序或开始公司,需要长期的动力来帮助度过艰难时期。需要达到那种坚韧的专业心态,然后保持在那个水平上,而不会筋疲力尽。发现这是一个完全不同的挑战,与需要学习和做的所有技术性的东西不同。这是试图用哲学来解决的任务。每天都在更新这种动力,使用过去智者的教训。
在过去,写了关于孙子、尼采和马库斯·奥勒留的文章。宫本武藏做了什么才能成为这个群体的一部分呢?嗯,他是日本最伟大的剑客之一。除此之外,他还是哲学家、作家、画家和浪人。他因从未输掉一场决斗而闻名,共有六十场,还发明了一种独特的双刃技术。当然,还有他关于战略哲学的书——《五轮书》。
宫本武藏出生在播磨省宫本村的一个武士家庭。他的全名是新门武藏之神藤原元信。后来,武藏以他的家乡——宫本村的名字命名。他的父亲对他非常严格,在他九岁或十岁时离开了他或去世了。他在十三岁时进行了他的第一场决斗。
从那以后,他又赢了六十多场决斗,成为赢得决斗次数最多的武士。为了让大家有所了解,排在第二位的是武士伊藤一太,他赢得了三十一场决斗。他还创造了一种叫做——双刀合一的技术,武士同时使用一把大剑和一把“伴剑”。通过应用更严格的训练方式,他能够控制每只手中的两把剑,这在今天的电影中很常见,但在那个时代是不寻常的。
在他的书《五轮书》中,他以哲学的方式探讨了剑术和战争。他暗示武士之道不仅仅是表面上的。他用“真正的战略家”这个词来指那些掌握了剑和战斗之外的许多艺术和领域的人,比如喝茶、写作、劳动和绘画。
最后,让探索一些武藏的名言,并看看如何将它们应用到日常工作中。
不要做无用的事情。
有多少次试图预测客户的需求,结果完全过度设计了解决方案?对来说,这种情况发生了数百次。为了给画一幅画,最终花了很长时间去移除预测客户会需要的“功能”,因为它们把整个解决方案搞得一团糟。有一个非常好的原则作为极限编程实践的一部分,叫做——YAGNI。这是一个缩写,意思是“不需要它”。这是一个很好的提醒。
另一个好的XP原则可以翻译成这个——“做最简单的事情,让它起作用”。在实践TDD、持续集成和重构时应用这个原则。对来说,这是一个很好的例子,说明一本哲学书的简单一行如何提醒不应该过度复杂化解决方案,应该测试它,应该小心集成。
轻视自己,深思世界。
不久前,Simple Programmer的John Sonmez指出了行业的问题。坦率地说,很多软件开发者都是混蛋。明白,收入不错的书呆子。聪明、有创造力的,中的许多人都很努力。然而,事实是,中的许多人都有过度膨胀的自,表现得很自以为是。尤其是当年轻的时候,倾向于傲慢,看不起同事和其他职业。指出那些犯下最微小错误或错误的人,并在做同样的事情时采取“比更圣洁”的态度。
必须记住这可以改变。很快,可能不再是顶尖的狗,随着年龄的增长,严重依赖的大脑细胞可能会背叛。记住迈克·泰森在赌博输掉他所有的成功和财富后说的话:“如果不谦卑,生活会让谦卑。”。记住,可能没有那么重要。
只能以练习的方式战斗。
正如之前提到的,宫本武藏发明了用两把剑战斗的技术。武士通常有两把剑,一把长剑——用于远距离战斗的较重、较长的剑,以及一把用于近距离决斗的伴剑。为了能够同时使用它们,武藏用两把长剑练习,每只手各拿一把。然后,如果他需要在真正的战斗中使用伴剑,他可以更容易地做到这一点。
《开发者的代码》一书中有一个很好的说法:“最终,不管在开发层次上的位置如何,继续编码。这是最有价值的地方。”如果在工作的公司中取得了进步,是团队领导,或者生意正在提升,永远不要忘记这是根植于何处的。不要忘记要准备好,如果时代变得艰难,不像现在那么光明。
今天是战胜昨天的自己;明天是战胜普通人的胜利。
这是前一句的续集。持续改进自己应该是生活中最重要的事情之一。总有一些新的东西需要学习;技术发展得很快。每一天,都需要平息自,意识到不知道一切,还有很多要学习。记住,不能学习认为已经知道的东西。
不应该对任何特定的武器或其他东西有特别的偏好。太多和太少是一样的。不要模仿任何人,应该有适合武器。
尽管包括之前提到的John Sonmez在内的许多软件大师都建议应该专业化,但有点反对。这句引言提醒,应该知道很多事情,意思不仅仅是技术上的。用罗伯特·A·海因莱因的另一句引言来说——“一个人应该能够换尿布,计划入侵,屠宰猪,指挥船只,设计建筑,写十四行诗,平衡账户,建墙,接骨,安慰垂死的人,接受命令,下达命令,合作,单独行动,解决方程,分析新问题,投掷粪便,编程电脑,高效战斗,勇敢地死去。专业化是昆虫的事”。
作为一个软件开发者,应该了解良好的工程原则,几种语言,架构模式等等。还应该能够将这些应用到客户的需求上。当谈论客户时,应该知道如何收费,以及经济是如何运作的。更不用说应该平衡所有这些与个人的生活和家庭。这很复杂吗?是的,它是。幸运的是,不是昆虫。
宫本武藏是一个伟大的武士。他的教导提醒保持脚踏实地,大量练习,做好准备。当然,真正的目标是让自己进入正确的心态,制作好的软件。可以使用喜欢的任何东西。这篇文章,技术书籍或非技术书籍。要有创造力,要有生产力,这就是梦想。