澳门新葡萄京官网注册【本人秃顶程序员】程序员除了要会敲代码,还需要掌握哪些软技能?

我成为一名群体程序员已经将近四年了。如果可以选择的话,我不会采用其他工作方式。群体编程让我成为一名更好的开发人员、一名更好的测试人员、一名更好的领导者、一个更好的人。我不是很确定群体编程的哪个方面吸引了我这样一个内向的人,但我有个想法。外向的人将亲密的朋友关系看得很重,并且极度忠诚,我认为,就是那个把我引入了群体编程。

8、团队

当我在寻找一名可以合作的程序员时,我认为相比起专业技能来说,非专业方面的技能更能让他们成为优秀的合作者。

Chris
Holmes最近写了一篇有关群体编程试验的博文,在文中,他分享了自己在一个英国政府项目上使用群体编程方法的经验。他提到了一些改进方面,其中包括确保比较内向的团队成员不至于太不舒服以致不提出指导意见。

 

二、解决问题

在教人编程的时候,我发现很多人的困难在于解决问题,而非代码本身。能够将问题分解成小问题,然后解决这些小问题的能力需要许多的实践。善于解决问题可以帮助你成为一个更强大的程序员。

此外,大多数问题都有多个解决方案。作为软件程序员,我们工作的很大一部分是思考这些不同的解决方案并选择最佳解决方案。应该选择实现更快的那个?还是运行效率更好的那个?还是价格上更经济的那个?所有这些都是重要的问题,选择正确的解决方案是软件开发中充满挑战又非常重要的部分。

作为一个相当内向的人,频繁的交流比我以前在公司里的许多工作都更耗精力,虽然可能更有趣。一天工作下来,我经常发现自己渴望回家,用一本好书或者一个节目让自己恢复精力。

10、谦和

一、共情

为了打造一款出色的产品,你必须设身处地地为用户考虑。他们将如何使用你的产品?哪些功能对他们有帮助?你的程序怎样才能帮助他们改善生活?反过来,你的产品会如何伤害他们,或对他们的生活产生负面影响?你的应用程序的伦理意蕴是什么?

共情对于你的许多应用程序至关重要。如果保管不当,那么你的用户信息会被第三方滥用。

如果有人无法访问你的产品,那么会妨碍使用产品的人数。如果产品运行非常慢或需要大量宽带才能运行,那么用户就会离开,而且网速很慢的用户以及移动用户都无法使用产品。

每天有关一些公司实现了一些有害算法的文章层出不穷,比如 YouTube
的算法中激进的右派,亚马逊建立的带有性别歧视的招聘算法(最终他们并没有使用该算法),或是
AI 误判黑皮肤女性的性别。在你写代码的时候,仔细想想每个人!

此外,共情有助于成为团队成员和导师。设身处地的为经理或其他开发人员想想。为什么他们要做出这些决定?你怎样做才能帮到他们?拥有共情肯定能够提高你的能力,让你成为一名高效的队友。如果你是老板,那么你可以留住你的人才,如果你表现出共情,那么员工的工作效率会更高。

耐心地对待其他程序员,尤其是那些正在学习新技术的人。提醒你自己你当初学习的时候也非常难,你当时的感受如何。他们可能也很类似。粗鲁地对待他们,只能让他们的进步减慢,在他们面前装腔作势只能给他们带来伤害,让他们举步维艰。

你的言行都会带来一定的后果,你可以用自己的言行来引导积极的改变,也可以伤害他人。这不仅会发生在面对面的交流中,也会发生于在线沟通中。你可能认为自己很幽默,或者只是想放松一下,但是实际上对某人的生活造成了负面影响。你的行为由你自己决定,而在伤害到某人后也由你自己决定如何道歉。

作为一个内向的人,Aaron在一个群体编程团队中工作,他分享了自己对于克服这些挑战的观点:

 

←←←←←←←←←←←← 快,点关注!

我的建议是,一名内向群体程序员只需要做自己,并对提供和接收反馈持开放态度。如果你有什么担心,让人们知道。不是每个人都清楚内向的人与外向的人之间的细微差别。对于内向的人和外向的人如何互补,并在一个工作环境中共存,分享你的关切、文章和博客,这对团队中的每个人都有帮助。如果你是一个内向的人,并且是一名群体编程新人,那么你要做好准备,花一些时间习惯,就像你以前进到所有其他的新环境和情境中所做的那样。如果你是一名外向的人,并且是一名团队新成员,那么你要有豁达的心胸,那些你认为不太友好且冷淡的人,可能只是尚未敞开心扉的内向的人。

程序员的技术能力是程序员生存下来的基础,而技能从某些方面来说是首要的。可以说,程序员就是技术的代名词。有了好的技能你就能更好的开展工作,有了好的技能你就有了和别人交流的内容,有了好的技能就可能让自己获得更高一层的技能。因此,程序员要重视自己的技能学习和提高,要在技术上体现自己的能力,要通过技术能力去影响或帮助自己的同伴。只有这样,程序员的最基本的价值才能真正体现出来。很多程序员到了一定阶段后放松了对技术的追求,技术平平,只能满足现有工作,这就愧对程序员这个称号了。

七、创造力

作为一名程序员,我最喜欢发挥我的创造力,建立对他人有益的事物。你可以创造性地建立非常酷的东西。

在提出新功能、接口和应用程序的时候,创意的想法非常重要。有人购买我为一家公司做的一款产品很大一部分原因是因为该产品拥有的创意界面,而我的作品展示网站备受瞩目也好是因为它富有创意。

除此之外,许多问题都需要创造力来解决。每个编程问题都有多个解决方案,提出一些具有创意的方法往往可以带来优化的解决方案。

在尝试了上面提到的一些技术后,Aaron分享了他为什么喜欢成为一名群体程序员:

7、技能
 

六、耐心

在编程的时候,第一个你需要有耐心的就是你自己。编程很难,有时你会遇到 Bug
或难以克服的问题。如果编程工作总是很容易,那么你就不会遇到挑战,也就不会成长为程序员。

坚韧不拔,坚持努力工作。但是,你也可以休息一下,过一段时间再来解决问题。也许休息一下有助于你解决问题。

另外,对待他人也要有耐心。学习需要花费时间,人无完人。犯错和失败是学习过程中最重要的经验,在不安全的环境中才能冒险或成长。你需要理解尺有所长寸有所短,还要知道学习需要投入时间。

他分享了如下建议:

 

总结

以上这些技能通常被称为“软技能”,但我觉得这样说还远不够。这些技能不仅有助于编程,也有助于成为一名优秀的同事。这些技能的重要性超过了对一门具体的语言、库或框架的了解,它们甚至超越了科技的范畴。对于程序员来说,以上这些技能真的非常重要。话虽如此,但是人无完人,每个人都有成长的空间。所以持续发展自我,并努力掌握这些非编程技巧!

Matt
Schartman在博文“我的群体编程经验”中分享了他作为一名内向的群体程序员所面临的挑战:

 

十一、参与社区

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

即使你是一个内向或不喜欢社交的人,那么也可以通过很多在线社区,从中学到很多东西。而且,即使在公司内部,拥有一支紧密联接的团队也可以帮助大家更好地共同工作。

内向的人和外向的人有许多不同的特质。这些特质与群体编程有不同程序的兼容性。我不认为,这些特性中的任何一项会让群体编程对于内向的人而言成为一个不可能,但他们要比其他人面临更多的挑战。

9、兴趣

八、谦逊

你可以从其他程序员那里学到很多东西,一个人不可能掌握编程世界里所有的东西。接受建设性的批评,而不是抵触。你可以根据反馈改进代码和自己,一味固执己见不利于个人的成长。你不可能不犯错,而且你应该接受别人的想法。

Aaron在分享中指出,内向的人更喜欢小一些的群组设置,更善于通过写来表达自己,喜欢有一个专用的工作空间。相比之下,群体程序员同整个团队在一起工作,进行口头对话,并且在一个开放的楼层中工作。因此,对于内向的人而言,成为一名群体程序员可能很困难。

 

四、沟通

当与其他人一起工作时,无论这些人是同事、客户、使用产品的人、经理、或是下属,良好的沟通至关重要。凡事都要抱着诚实的态度,诚实并且和蔼地汇报项目的进展,项目目前的状况,以及你的观点。如果你的态度粗鲁或没有建设性,那么别人就不太愿意接受反馈。但是,如果你不诚实,或不言明要害,那么就看不到积极的改变。我们要在这一点上做到泾渭分明。

我现实生活中遇到的一件真事:有人曾经在看了我的一篇博文后,写了一封长信针对我的语调形容我有多么傻。我常常会使用大量感叹号,而且会努力让我的博文听起来令人兴奋,而且我有意使用骇人听闻或有趣的标题。那个人在信中表现得非常性别歧视,还说了很多伤人的话。话虽如此,我可能会减少使用感叹号,仍然会让别人对编程感到兴奋。如果那个人可以用更加具有建设性的批评来说我,那么我会更加容易接受他的批评。

如果事情进展不顺利,我们也需要据实相告。诚实地说需要推迟截止日期,或者在工作中哪些事情进展不顺利。只有坦诚相告才更有可能改变状况,让一切都好起来。

Aaron Griffith是一名来自Hunter
Industries的程序员分析师。近日,他在博文“群体编程之于内向的人”中分享了他作为群体编程团队成员的经验。根据高级顾问Woody
Zuill的定义,“群体编程”是一种软件开发方法,整个团队在同一台电脑、同一个地方、同一个时间从事同一项工作。对于外向的人而言,这个概念行之有效,但对于内向的人而言,同一大群人在一起工作并不简单。Aaron指出,这是一项令人愉快且有益的锻炼,但对于内向的人而言,有一些挑战,不过很容易克服。

 
 

九、自信

反过来说,我们要有自信。我承认这对我来说可能是最困难的事情,而有些人可能会过度自信。在我的职业生涯中,每次业绩考核时我需要改善的头等大事就是自信。我还单独撰写过有关这个主题的一篇文章,对自己充满信心、相信自己的能力非常重要。

首先,请相信你可以参与项目。不要觉得自己只能承担简单的工作,或在分配到较难的工作时质疑自己。尽自己所能解决问题,然后寻求帮助克服最困难的部分。

此外,不要觉得需要调查一切。相信你自己,在 Google
上搜索答案之前,请尝试自己作答。只在 Google
上搜索部分问题,而不是全部。如果你做的每一件事情都是正确的,那么在开发中尝试别的方法,看看它们是否可行,这也没有什么坏处。有时候你可能会惊讶自己知道的如此之多。

还有一个办法是记录胜利时刻。我的计算机上有一个文件记载了所有我做过的很酷的事情,还有别人给我的赞誉。当遇到困难或质疑自己的时候,打开这个文件就会让我更加自信。

程序员可以一个人编程序,但是,一个人只能编写一些小程序或小规模的程序。有些程序员一个人完成了整个系统开发,其技术水平固然值得称贺,但是,如果他认为软件可以一个人摆平,这就会影响到其向更高水平发展。随着软件业发展,软件的规模也在变大,软件制作的专业化程度变得越来越高,一个人即使有能力开发一个完整的系统,最好也不要一个人去完成,只有通过团队的分工协作,软件制作才能走向正道。如果程序员一开始就能注重团队意识,一开始就认为自己仅仅是团队的一分子,一开始就注重与其他团队成员的沟通和协作,这样程序员一定能融入团队中,而团队的巨大作用是每个程序员个人作用所不可比拟的。程序员不要只是享受自己编程的快乐,而是要享受整个团队编程的快乐。
 

十、适应性

编程仍然是一个新世界,它正在以超快的速度发展。在情况发生变化时,能够快速适应至关重要。当遇到一个新的框架、库或语言的时候,学习这些东西非常重要(当然是在合理的范围内)。如果我们仍然在
Fortran
中编写代码,那么这个行业将是完全不同的局面。当情况发生改变时,我们需要改变和适应。

此外,项目的目标和功能通常也会发生变化,特别是在面向客户的工作方面。当情况发生变化时,我们必须调整并适应这些需求(再次重申,在合理的范围内)。

欢迎大家加入粉丝群:963944895,群内免费分享Spring框架、Mybatis框架SpringBoot框架、SpringMVC框架、SpringCloud微服务、Dubbo框架、Redis缓存、RabbitMq消息、JVM调优、Tomcat容器、MySQL数据库教学视频及架构学习思维导图

程序员的工作内容看起来似乎只是一行行代码。代码的编写来自于程序员头脑的指令,而程序员头脑中的指令并不是来源于程序设计语言,而是来源于各种需求、各种问题的分析方法和处理方法。因此,程序员要编好程序,不仅要对程序语言感兴趣,而且要对所有和编程相关的事物感兴趣,甚至对看上去与编程无关的东西也要感兴趣。我们成长后才知道各种事物都是相通的,有些东西会潜移默化地影响到你的分析方法和处理方法。所以,程序员不要只是关心编程,这样只会成为“书呆子”。我们日常生活中的看电视、听新闻、上网聊天、社交活动等都应放在兴趣之中,只有广泛的兴趣才能体会到你最爱的兴趣。

事实上,本文中谈到的所有技能都能帮助技术项目编写好的代码。其中大多数的技能也有助于促进编程以外的职业发展,但我想专心讨论一下为什么这些技能对于程序员尤其有益。

   

三、合作

作为程序员,你与他人合作的机会非常多。如果你是自由职业者或是企业家,那么你必须与其他开发员、业务员、经理、开源贡献者、利益相关者以及其他不计其数的人合作。学习如何与不同的人和不同性格的人一起工作至关重要。

有很多东西可以促进良好的合作。首先必须清楚孤掌难鸣,一个人无法做好所有的事情。不同的人拥有不同的技能、观点和生活经验,所谓三个臭皮匠顶一个诸葛亮。不要总觉得你需要背负一切,是所有人的救世主。如果让别人也贡献力量,你可以做得更好。

向他人寻求帮助,同时也要愿意帮助别人。你不需要在所有事情上都成为专家,而不同的人可以在不同的领域成为专家。依赖其他人,如果遇到困难,请务必寻求帮助,这样做你就不会长时间陷入困境。

有人请你帮忙时,你要愿意帮助他们。在帮助他人的过程中你自己也可以学习很多东西,而且还能加强自己对某个主题的了解。如果你是管理层,那么请务必留出时间指导和有效合作!

同样,不要试图说服别人或立即驳回他们的观点。如果他们的意见不被重视或体谅,那么将来他们就不大可能会作出贡献。

在别人分享他们的想法时积极地倾听,而不是在他们说话的时候思考你要怎么回应或为什么你的想法更好,而是应该多想想为什么他们的方法也很好,或是怎样才能实现。

最后,如果你实现了别人精彩的想法,那么要将这些想法归功于他们。在团队中,成员的想法被忽视、被低估、或是功劳被别人抢走是抹杀员工效率的最大因素。

 

五、包容

我曾经在夏令营担任攀岩教练和辅导员,与我一起的大多数人是中学女生。她们是我最喜欢的一批人。但是,话虽如此,通常中学生不是很能接受不同的意见或很容易集体反抗。

有一次我们一起做游戏,我们画了一个大圈,然后如果一个辅导员说某某“出圈”,那么他们就必须离开游戏,而背后的决定因素并没有告知他们,而且他们也无法掌控。依旧在圈里的人可以玩游戏,而圈外的人将被排除在外,只能远远看着。

通过这个游戏让这些女孩明白:因为一些在你掌控之外的因素而被排除在外时,你的心理感受。而我也在思考这个问题。作为成年人,我们还会将别人排除在圈外,因为一些他们无法控制的因素将他们排除在外。但是,如果我们让他们回到圈中,让他们贡献自己的力量,那么我们的产品可以赢得更多不同的体验,可以更好。

关于多样化团队表现更好的研究有很多。但是从个人的角度来看,想想如果自己被排除在圈外时的感受,我们应该让这个圈更大,而不是更小。

有可能你的很多用户都是传统意义上被排除在科技圈之外的人。我可以根据自己的亲身经验告诉你,成为团队中与众不同的一份子滋味并不好受,因为在我的编程职业生涯中,只有
5% 的时间里团队中会有另一位女性。

这也与共情相关,确保你做的程序可以服务于各种各样的用户。不只是四肢健全的人,或是拥有尖端互联网或技术的人。你可以吸引更多人。

  

 

 
 

未完待续。。。

6、外向

  

 
 

我们常常看到一些得意于自己的程序、自己的项目、自己的收入、自己的职位而忘形的程序员,他们无视别人的意见和建议,有的甚至自傲,看不起其他程序员。但是,要知道艺无止境,假定软件领域拥有顶峰,更需要我们的谦和来表明自己不拘泥于现有的成就,我们还有更高远的理想。

程序员的性格对成长有很大影响,无论原来是外向还是内向性格,只要从事这个职业,只要和计算机打交道,其性格都会有点向内向方面转变的趋势。我们看到不少程序员不善于和别人交谈,怕见人,甚至从内心里不愿意和别人交谈。这样的自我封闭其实对自己并无益处。程序员的性格还是要尽量外向一些,要乐于和别人交谈,要主动和别人交流。和别人交流并不一定要限于技术,用户的需求、公司成长情况甚至对方个人生活等方方面面都可以进行交流。这种外向的性格可以让程序员见识更多的人,见识更多领导,见识更多的高手,见识过去不敢见识的人,也可以积累更多的社会关系。

发表评论

电子邮件地址不会被公开。 必填项已用*标注