原文地址:What makes someone a good front-end developer?
原文作者:Chris Ferdinandi
本文永久链接:https://segmentfault.com/a/1190000021491905
译者:Fw恶龙
校对者:无
上一周,我的一位学生问我一名优秀的前端开发者需要有哪些技能。
这是一个非常主观的问题,但我很高兴在此分享我对此的看法。
对前端开发者来说最重要的一个技能
对前端开发者来说最重要的就是技术。
JavaScript的微妙之处,如何使用特定的库、框架或构建工具,CSS中的级联如何工作,语义化的HTML……
在有了其他技能的坚实基础下,技术性的东西成为实施细节。
在工作过程中可以不断学习技术。随着技术熟练度的提高,你可以更快速的学习。当然,如果有人了解你的堆栈或你所使用的工具,那对你来说是很有帮助的,但这并不是必要的。
对前端开发者来说关键性的技能
除了技术性的技能,还有哪些?
解决问题
对我来说这是优秀开发者必备的技能。
所有的技术细节都是你选择解决特定问题的方式。知道如何处理问题并找到正确的方法和工具组合,是帮助你实现目标的技能。
解决问题是一种跨学科通用的技能。
善于解决非开发人员问题通常意味着你也善于解决代码问题。最好的解决问题的方式就是将一个大问题划分成小问题,并一次解决一个问题。
Google搜索
举个真实的栗子。
我是一名资深开发人员,管理着几十个开源项目,其中至少有一个C-list很受欢迎。我的代码已被哈佛商学院和Apple等组织使用。
我每天都在使用Google搜索着一些非常基础的东西。
如你所知,我在这些文章中分享了大量的代码片段和帮助函数,我甚至不得不反复查找自己的代码。
我创建了一个完整的代码片段和帮助函数的网站,这样我就不必一遍又一遍地使用Google搜索相同的东西。
能够在网上通过一些关键字去搜索到你真正想找的东西并找到有价值的内容,这是个货真价实的技能。
批判性思维
当你Google如何解决某些问题,并找到一些结论、一些博客文章、一些Stack Overflow回答时。
你该如何决定采用哪一个方案?
我们的行业以突破性的步伐推动新的工具和技术。新框架、新库、新方法。昨天的最佳实践或许是今天的反模式(指用来解决问题的不良方法),反之亦然。
你该如何确定实际使用的方法、工具和技术?
能够对有用的信息进行筛选并做出更明智的决策非常重要。这也是一项技能,你最初会不断地吮吸,随着时间的推移变得更好,因为你获得了更多的经验。
同理心
这是我们行业做的最差的一方面。
我们经常把注意力集中在如何做事上,而不是停下来问自己是否应该这样做。(改诉自侏罗纪公园的伊恩马尔科姆博士)
我们很少从用户的角度思考我们的设计和实施方法。
并非所有用户都拥有最新的浏览器(甚至可能使用其他浏览器);并非所有用户都拥有快速,强大的机器;并非所有用户都拥有最新的智能手机(或智能手机);并非所有用户都拥有可靠的互联网连接;并非所有用户手头都拥有鼠标、准确的屏幕显示或显示准确的颜色;并非所有用户的认知能力都与你相同……
但我们却在为我们的同行建立网站而不是用户。
移情意味着能够理解和分享别人的观点和经验。富有同理心的网络开发意味着能够理解用户并为其构建许多不同的体验和功能。
沟通
在团队中最有效工作的开发人员往往不是最好的编码员而是善于沟通的人。
他们清楚地记录着他们的工作。他们可以向拥有不同技术或背景的人解释他们在做什么以及为什么这么做。他们分享自己所知道的东西并试图提升整个团队。
善于沟通的开发人员可以使整个团队更好地完成他们的工作。
想想看你有多少次试图使用其他人的代码,或想对其进行更改,却不知道该做什么或从哪里开始?你为此浪费过多少时间?
如果有人明确地告诉你做什么事情对你有效,你难道不会更有效率地工作吗?
可见,沟通是一项非常关键的技能。
如果发现译文存在错误或其他需要改进的地方,欢迎留言。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。