前言:
本篇文章适用于所有在这个行业已经有了几年时间后想要在职业生涯中取得突破的开发人员,编程人员和程序员(或者你可能刚刚开始,但希望你能看到你的路径)。本文适合那些有着简单愿望的人:你想成为一名高级开发人员,并希望在你的领域中脱颖而出。在阅读完这篇文章后,您将获得一组具有最佳资源列表的路径,供您升级并成为高级开发人员。
免责声明:与生活中的所有事物一样,您可以随时设定自己的路径。尽管这不是唯一的方法,但是这是我在自己的职业生涯中发现的一种方法,并且通过我在过去一年中与我认为是社区中资深和受人尊敬的程序员的人进行了许多对话和访谈。我已经积累了这篇文章的所有共同点。所有这些不仅仅是一篇关于如何成为更好的开发人员的文章。这是一个如何指导您如何使用高效实用的工具来优化您的时间,从而让您从生活中获得最大收益。将来你可以在任何地方进行这种学习
作为一个开发者,有一个学习的氛围跟一个交流圈子特别重要,这是一个我的iOS交流群:638302184,不管你是小白还是大牛欢迎入驻 ,分享BAT,阿里面试题、面试经验,讨论技术, 大家一起交流学习成长!希望帮助开发者少走弯路。
我们想要什么?
1,我们都努力做好工作。该声明的具体内容可能取决于个人。但是,大多数人可以同意一些常见的事情:
2,我们不希望经历被视为“无能”的生活,
3,我们希望得到我们同事的尊重
4,我们希望感觉自己聪明,并且做到了
5,我们想感受赞赏
为了实现上述目标,我们不能仅仅停留在我们的能力上,并期望事情会发生。特别是在编程领域,技术在不断变化,我们掌握的信息量非常之大,我们希望将注意力集中在成长和学习上,而不是消耗殆尽。随着越来越多的开发者走出大学和训练营,我们需要保持技能的锐利,而让自己与众不同的方法是在学习时保持智能和高效。谈得很多,让我们一起潜入。我们将一如既往地尝试并采取最好的方法。
什么是高级开发人员?
作为一个可以使用十种不同编程语言编写代码并构建了自己版本的多语言编程人员,并不会让您成为高级开发人员(尽管您非常有才华)。这是因为高级开发人员是为公司带来增量利益的人员。它是一个能够让周围的人变得更好,并且能够长期愿景,实现并持续创造商业价值的人。您可以了解全球所有功能强大的编程技术,但如果您无法与团队沟通,或者无法专注于为客户提供实际价值,则您不是高级开发人员。这是重要的一点:你为贵公司/创业/企业带来了什么价值,如果你是为数不多的能为您的公司或企业带来数量级(有些人喜欢10倍的想法)价值的人之一,那么你是一位高级开发人员。高级开发人员不仅仅是另一个职位,而是能够利用您的经验为利益相关方提供真正的利益。
我如何成为一个高级程序员?得到它。
这是你们所有人一直在等待的部分(或者我想象的是......也许没人读这个......在这种情况下,我会一直跟自己说话)。让我们深入了解一下,看看我们是否能够完成所有事情。按照以下资源,花一些时间了解每个主题。如果你能够积极研究下面的技能,你将远远领先于其他任何人。我把这称为开发者边缘:在一个领域总会有比你更有经验的人,但是你可以更聪明地工作,并以更有效的方式积累不同的技能组合,让你分开。这不仅使你成为一个更好的开发者,它还增加了你的整体幸福感,因为你正在为人们提供真正的价值。
学习中经常被忽视的一个方面是,你需要专注于一件事而专注于一件事。然而,这不是生活的方式。生活中非常罕见,你只需要一种技能。特别是在像技术领域发生变化的领域(谁知道机器学习工程师将在5年内完成什么?),您需要拥有多种可转换技能,这将转化为适应性。
这些是您需要被视为高级开发人员的6项核心技能:
1.技术技能
这通常是大多数人想到的第一个技巧。希望通过这一点你相信它是一个更大的馅饼的一小部分。不要误解我的意思,你确实需要这个技能,而且你不能伪造它。然而,你可以聪明地关注你关注的内容。高级开发人员花时间了解Why的技术。为什么这个问题存在?为什么这个框架存在?这个图书馆解决什么问题?作为一名开发人员,您需要对所有有利于开发生命周期的工具和想法有所了解,并选择在项目中获得最大利益的工具。他们没有专注于这个超级奇特的测试框架的每一个新版本功能,而是试图为公司解决实际问题时专注于每个测试框架的优缺点。他们会问“我们的持续过程中可以改进哪些方面以提供更好的产品?”
他们也明白事情是如何连接的。为了开始这样思考,思维导图是一个很好的熟悉工具。它本质上是一种工具,可以用来将学习推向更高层次。思维导图帮助你的大脑在不同的想法和技术之间建立联系。
举个例子:如果我是一个iOS开发,一旦掌握了行业中的工具和技术,就需要制定产品在扩展时面临哪些问题的思路图,以及何时过早优化是一件坏事。通过在上述所有方面掌握这种关系,您可以通过广泛的视角而不是狭隘的焦点,将公司的资源集中在最重要的事情上。
如果你是从训练营走出来的,或者你没有计算机科学学位,那么你需要开始学习数据结构,算法和其他计算机科学主题。为什么?因为尽管框架和技术发生了变化,但计算机科学的主要原则(大部分)保持不变。通过理解这些更高层次的主题,您可以再次看到,大多数软件问题和良好实践在不同的语言和时间中通常是不变的。这本书(Rob Conery)和这本书(Gayle Laakmann McDowell)可能是我发现提升你的技能的最好工具。虽然它们只是表面上的,但它将为今后的学习奠定基础。
开始收听软件工程日报等播客,这样您就可以了解整个行业的当前问题和未来前景。
最后,阅读这篇文章从纯粹技术角度来看部分技巧。
2.团队技能
这是一个经常被忽视的技巧。你如何与团队成员合作?你是否对PR评论感到愤怒和意见,并对有其做出贡献?或者你是否体贴,合作和鼓励你的团队成员?高级开发人员没有大的自负。他们知道他们很好,不需要向他人证明自己。他们编写干净简单的代码,而不是编写代码来炫耀其他团队成员无法读懂的技能。他们愿意帮助别人,当他们不知道某事时,他们愿意提问。
这就是情商出现的地方。社会心理学是提高这种技能的重要工具,没有什么比“ 如何赢得朋友和影响力的人”更好。记住:你如何能让你身边的人变得更好?如果你的团队中有5人,那么1 + 1 + 1 + 1 + 1应该大于5,因为你可以让你身边的人变得更好(现在我从数学纯粹主义者那里得到邪恶的眼睛......)。
如果你是任何一个项目的参与者,或者你参与的任何一个团队,那么你就能够与你的队友相处并让其他人一起工作,你已经远远领先于大多数人。您还可以让经理,主管,Scrum大师和CTO的生活更轻松。那些是得到晋升的人,更重要的是那些是为公司提供最大价值的人。
3.客户/用户技能
您是否能够与客户或用户交谈,并清楚地了解他们的需求?当他们向你提出一些建议时,你是否了解他们面临的问题?高级开发人员是一个可以独立与客户并可以成为优秀听众的人,然后就最佳步骤向前迈进提供建议。他们在组建关系方面非常出色,他们不会将意见推给客户。他们明白,目标是一个非零和游戏,客户和开发者都可以从互动中获益。
最后,您需要能够向非技术人员解释复杂的编程概念。通过观看大神分解复杂的话题开始开发这项技能。虽然他们正在教练困难的话题,但你可以观察他们之间的一些共同点。
4.成长技巧
高级开发人员每天都在学习新的东西。这并不意味着他们每天花14小时坐在电脑前阅读文章。他们比这更有效率。他们一直在寻找与其他开发人员交谈,提出问题或探索新主题。他们不专注于一个技能组合。在做一件事情时,你可以成为世界上最好的人,但是如果你不知道整个范围或者对你解决什么问题有一个大概的了解,那么你就不再是最好的了。
他们有一个成长的思维模式(相信智力是可塑的),他们相信有意识的练习。他们明白,学习一切都是不可能的,他们选择把时间花在他们喜欢的事情和最重要的事情上。
他们不只是说“哦,我讨厌这个!”大多数时候,说这些东西的人会因为不完全理解而憎恨某些东西。例如,不要只说“我讨厌Switf。只有部分的开发人员使用Switf“并且声名显赫。高级开发人员说,“Switf在iOS开发方面发挥了重要作用”。他们的观点可以改变,因为他们喜欢从别人那里学习,并且在他们决定“憎恨”某些事物之前尝试新的概念。
5.销售/面试技巧
高级开发人员能够让自己担任高级职位,因为他们能够与做出这些决策的人进行交流和销售。你能够看到你的雇主或企业的需求,并且你可以向他们灌输你是解决问题的人的信心。你有信心,但谦虚。高级开发人员也有足够的信心承担这些角色,并能够承受压力。他们也知道,如果你永远不会问答案总是否定的,那么他们会要求晋升或挑战他们的角色,因为他们认为他们是适合工作的人选。虽然销售和谈判对某些人来说可能会很不起眼,但这是您需要掌握的宝贵技能。有一篇很棒的文章。虽然它谈到薪酬谈判,但其中一些原则可以应用于其他情况。
6.社区技能
高级开发人员为开发者社区做出贡献 ,无论是做技术讲座,在聚会上发言,为开源贡献,甚至写文章。他们是与行业共享信息的人。他们并不是只关在工作空间的封闭盒子里,而是和其他社区的人交流,让他们拓宽视野。这有点像旅行:你遇到并且交谈的文化越多,你越了解人与人之间的相似和不同之处,并且越是开始欣赏它。
最后一件事
如果你能够积极工作上述技巧,你会立即充满激情。
我已经从这个列表中留下了最重要的主题:你喜欢你在做什么。
如果你不喜欢每天学习有关计算机科学和软件开发的知识,那么你永远不会成为高级开发人员,因为从长远来看,你不会有更好的动力。如果你是这么好,他们不能忽略你,你明白激情已被过度炒作。真正的激情来自你掌握了一项技能。你已经努力成为精通领域的领导者。你已经掌握了这些技能,现在你提供给他人的尊重和好处促使你变得越来越好,从而获得更多这样的好感受。你就是这样开发的 你对工作的热情。
结论
如果你已经学会了编码,并且正在寻找职业生涯的下一步,那么你需要以不同的方式思考。你怎么能够脱颖而出?你怎样才能成长?你如何能够帮助人们解决实际问题并提供价值?你不做简单的事情就会成为高级开发人员。你做的事情,推动和挑战你的头脑和舒适水平。你要学习,并且要一天一天地做出适应,就像你第一次写了第一段代码一样。每一步都很小,但是在一生中,一小步就会变成几公里。
永远不要停止阅读,永远不要停止学习,但也要知道什么是你宝贵的时间,什么不宝贵。
作为一个开发者,有一个学习的氛围跟一个交流圈子特别重要这是一个我的iOS交流群:638302184,不管你是小白还是大牛欢迎入驻 ,分享BAT,阿里面试题、面试经验,讨论技术, 大家一起交流学习成长!
原文地址:http://blog.51cto.com/13594541/2145060