程序员最重要的非编程技巧

zhaogezhuoyue 2018-10-17

程序员最重要的非编程技巧

同理心

要打造一款出色的产品,您必须把自己放在用户的脚下。他们将如何使用您的产品?哪些功能对他们有帮助?您的计划如何帮助他们或改善他们的生活?并且 - 相反 - 它如何伤害他们或对他们的生活产生负面影响?

移情对于您的许多程序至关重要 - 如果它们不安全,那么您的用户信息可能被第三方消极使用。如果无法访问它们,那么您将限制可以使用项目的人数。如果它们运行缓慢或需要大量带宽来运行,那么用户将离开,并且具有较慢互联网或移动用户的区域中的人将无法运行它们。似乎每天都有一篇文章公布了公司已经实施的一些有害算法,比如YouTube算法激进alt-right,亚马逊创建性别歧视招聘算法(他们最终没有使用),或AI误导黑人女性。在编写代码时想想每个人!

此外,同理心有助于成为团队成员和导师。把自己放在经理或其他开发人员的角度。他们为什么要做出决定?你能做些什么来帮助他们?拥有同理心肯定会提高你成为有效队友的能力。如果您是雇主,您可以保留您的员工更长时间,如果您表现出同情心(src),他们将是更有效的工作者。

对其他程序员有耐心,特别是那些正在学习新事物的程序员。提醒自己一些真正难以学习的东西以及感受到的东西。他们可能感觉相似。对他们粗鲁,减少他们的进步,或迂腐只会是有害的,并使他们更难对这个过程。

你的言行都有真正的后果 - 你可以用它来制定积极的变化或伤害某人。这不会以面对面的沟通结束 - 在线沟通也很重要。你可能认为自己很有趣或只是放松一下,但实际上你可能会对某人的生活造成非常不利的影响。由你来决定如何采取行动,以及如果你伤害某人以消除某些伤害,如何道歉。

解决问题

当我教人们编写代码时,我发现有很多人在解决问题时比代码本身更难。能够将问题分解为较小的问题然后解决所有这些较小的问题需要大量的练习。善于解决问题可以帮助你成为一个更强大的程序员。

此外,对于大多数问题,将有多个解决方案。我们作为软件开发人员的大部分工作是思考这些不同的解决方案并选择最好的解决方案。实施起来更快吗?或者它运行效率更高?还是会更便宜?所有这些都是重要的问题,选择正确的解决方案是软件开发中具有挑战性但重要的部分。

合作

您作为程序员与其他人合作的机会非常高。即使您是自由职业者或企业家,您也必须与其他开发人员,业务人员,经理,开源贡献者,利益相关者以及无数其他人合作。学习如何与不同的人和他们的个性很好地合作是至关重要的。

有很多东西可以促进良好的合作。首先是要知道一个人不能做所有事情,或者至少做好一切。不同的人拥有不同的技能,观点和生活经验,这些经验在组合上比孤立更强大。不要觉得你总是需要“把团队放在你的背上”或者成为每个人的一切。如果你允许其他人也做出贡献,你可以做得更好。

向其他人寻求帮助,并愿意帮助别人。你不需要成为一切的专家,不同的人将成为不同事物的专家。依靠其他人,如果你遇到困难,请务必寻求帮助,这样你就不会长时间陷入困境。有人请你帮忙时,愿意帮助他们。通过很好地解释,您可以学到很多东西,并且您将能够加强您对该主题的了解。如果您处于管理职位,请确保为人们提供指导和有效协作的时间!

同样,不要与人交谈或立即驳回他们的观点。如果他们的意见没有被重视或考虑在内,他们将来可能不太可能做出贡献。当人们分享他们的想法时积极倾听 - 而不是考虑你的回答或为什么你的想法在谈话时更好,试着想一想为什么他们的方法也很好或者如何实施。

然后,一旦你实施了他们很棒的想法,就要对这些想法给予赞扬。没有什么能让我作为一名员工的效率降低,因为我的团队中我的想法被我的团队中的其他人解雇,价值不足和没有记入。

沟通

当您与其他人合作时,无论这些人是同事,客户,使用您的项目的人员,经理还是您管理的人员,良好的沟通都至关重要。提供有关事情进展的正确最新信息,目前项目所处的位置,以及您对事情的诚实和善意的看法。如果你粗鲁或没有建设性,人们将不太愿意接受反馈。但是,如果你不诚实或涂上真相,那么你可能看不到积极的变化。这里肯定有一个很好的路线。

我生命中的一个现实生活中的例子:我有一个人读过我的一篇博文,写了一封很长的信,讲的是因为我的语气,我听起来有多愚蠢。我通常会使用很多惊叹号,并试着在我的帖子中发出令人兴奋的声音 - 这是非常有意的尝试制作可能令人生畏或无聊更有趣的主题。这个人在这封电子邮件中得到了相当性别歧视,并说了一些非常有害的事情。话虽这么说,我可能可以缩小感叹号,仍然让人们对编程感到兴奋。如果这个人更具建设性地构建批评,那么我会更容易接受这一点。

如果事情进展不顺利,请务必这样说。要诚实地说需要推迟截止日期,或者工作中的某些事情不顺利。如果你说出来,你将有更好的机会改变它并为自己创造更好的环境。

包容性

我曾经在夏令营担任攀岩教练和辅导员,我和大多数人一起工作的年龄组是中学女生。他们是我曾经和我一起工作过的最喜欢的人,但是,据说,中学生通常不是最接受差异的人,也不是那种集体不利的人。我们曾经在一个大圈子里开始游戏,然后一个顾问告诉人们他们“不在圈子里”,他们将不得不根据他们没有被告知的一些特征离开游戏。并且无法控制。仍然在圈内的人会玩游戏,圈外的人被排除在外,只需从远处观看。

这项活动非常有效地向这些女孩展示了由于你无法控制的原因被遗弃的感觉,我仍然回想它。作为成年人,我们仍然将人们排除在外,并根据他们无法控制的某些特征将他们排除在外,但如果我们让他们回到圈子并让他们做出贡献,那么我们的产品会吸收更多样化的体验并且更好。有很多关于更多不同团队表现更好的研究,但从个人的角度来看,想一想被遗弃在圈子里并试图让你的圈子更大而不是更小的感觉。很可能,你的很多用户可能是传统上被排除在技术圈子之外的人。我可以从我自己的经验告诉你,作为一个团队中唯一一个与另一个女人在一起的团队,在我的编程生涯中约占5%的人,真的很难成为像你这样的人。

这也与同理心联系在一起 - 确保您为各种各样的用户制作程序。不只是健全的人或具有尖端互联网或技术的人。您将能够吸引更多人。

忍耐

在编程时,你需要耐心等待的第一个人就是你自己。编程很难,有时你会遇到错误或难以克服的问题。如果它总是很容易,那么你就不会挑战自己,而且你并没有成长为程序员。有韧性继续解决问题而不是在困难时放弃。但是,也知道你可以休息一下,然后在一段时间内回到这个问题。也许休息可以帮助您更有效地解决问题,或者在您回到它时以不同的方式看待问题。

另外,请耐心等待其他人。事情可能需要一段时间才能学习,人们并不完美。犯错误和失败可能是学习过程中最重要的一些经历,所以要考虑到这一点,而不是创造一个风险或成长不安全的环境。了解不同的东西可以更轻松地为不同的人点击,并且知道学习可能需要一段时间。

创造力

作为一名程序员,我最喜欢的是我可以利用自己的创造力来构建其他人可以从中受益的东西。你可以在盒子外面思考,创造出非常酷的东西。

拥有创意对于提出新功能,界面和应用程序非常重要。我有人因为创意界面而购买我为公司建造的产品的许可证,而且我的投资组合网站因其创造力而备受关注。

除此之外,许多问题需要创造力来解决。几乎每个编程问题都有不止一个解决方案,并且提出解决这些问题的创新方法通常可以带来优化的解决方案。

谦逊

你可以从其他程序员那里学到很多东西 - 一个人在代码世界中无法知道一切或接近它的任何东西。接受建设性的批评而不是防御性的批评。您可以从反馈中改进代码和自己,并且陷入困境并不会导致增长。你并不总是对的,你应该接受别人的想法。

自信

另一方面,也有信心。我承认这对我来说可能是最困难的一个有很多冒名顶替综合症的人,而且在我职业生涯中每次表现评估都是我的第一件事。我可以(也可能会)单独撰写关于这个主题的完整博客文章,但相信自己并对自己的能力充满信心是非常重要的。

首先,请相信您可以参与项目。当你被分配困难时,不要把自己放在更容易的项目上或怀疑自己。尝试尽可能多地解决它,然后寻求帮助来解决最困难的部分。

此外,不要觉得有必要研究一切作为第一手段。在谷歌搜索答案之前,请相信自己尝试一些事情。或谷歌部分问题而不是整个事情。通过在开发过程中尝试一些事情并查看它们是否有效,您无所畏惧。您可能会对您知道多少感到惊讶。

我做的另一件事是跟踪我的胜利。我的计算机上有一个文件,里面有我做过的很酷的东西,以及人们对我说的非常好的事情。当我度过艰难的一天或怀疑自己的时候,我会回到它并且通常对我正在做的事情感到更自信。

适应性

编程仍然是一个新世界,它正在以超快的速度发展。能够在事情发生变化时适应变得至关重要。当一个新的框架,图书馆或语言接管时,重要的是能够学习它(理所当然)。如果我们仍然在Fortran中编写代码,我们的行业将会有很大的不同; 当事情发生变化时,我们需要能够进化和适应。

此外,项目的目标职位和功能通常会发生变化,尤其是客户工作时。当发生这种情况时,我们必须调整并合并这些请求(再次,在合理范围内)。

社区

社区对于编程非常重要 - 会议,博客文章,社交媒体和聚会对于学习和成长非常重要。此外,开源软件及其周围的社区是该行业的命脉。能够与人们建立联系并建立联系对于教育,关联您的经历和寻找新的机会非常重要。

即使你是一个内向或不喜欢亲自社交的人,也有很多令人敬畏的在线社区,你可以从中学到很多东西。而且,即使在公司内部,拥有一支有强大纽带的团队也会帮助人们更好地共同工作。

结论

这些技能通常被称为“软技能”,但我觉得这是简化的。这些技能对于编写代码和成为一名优秀的同事非常有帮助。它们比了解特定的语言,图书馆或框架要重要得多,甚至远远超出了技术。

所有这些技能对于作为程序员和人员来说非常重要。话虽如此 - 没有人是完美的,每个人都有成长的空间。所以继续增长,并尝试采取小步骤,以更好地利用这些非编程技能,我也会这样做!

相关推荐

jcwang / 0评论 2010-02-24