如何确定自己是否适合做程序员?

avatar
技术支持 @LeanCloud

LeanCloud 公司里面 80% 的人都是工程师,在这个经常和各路工程师沟通的岗位上,我发现大家有以下共性,可以作为「如何确定自己是否适合做程序员?」的一些参考:

1. 热爱

单纯地讲「热爱」这个词很难想象什么是热爱,所以这里举一些工程师日常生活的一些言谈举止,通过这些 🌰能感受到他们真的喜欢折腾,喜欢写代码:

  • 喜欢阅读各种技术类的书,每一个工程师读过的书都能拉出来一个单子。
  • 日常聊天喜欢讨论技术问题,唠嗑时三句话就拐到技术上了。例如有一段时间我们吃晚饭的时候,大家非常热衷于讨论面试时向候选人提问的算法题 (big grin),还兴致勃勃的举一反三,找出更多变种的算法来讨论。
  • 喜欢用代码写点东西或解决自己的问题。例如批量处理某种格式的数据时,我会先权衡到底是用 excel 还是写代码,但资深工程师的眼里没有 excel 这个选项,分分钟写出来一个处理脚本。
  • 喜欢用代码写点东西或解决重复的问题。例如批量处理某种格式的数据时,我可能用 excel 更快一些,但每次都要重复劳动处理,而换成资深工程师就是分分钟写出来一个处理脚本,以后全部自动化起来。
  • 写代码是业余爱好之一。今天心情不好了,写个代码开心一下;今晚没事干了,写写代码吧;今天太累了,写个代码放松一下。
  • 喜欢亲自动手组装东西。例如台式机、乐高、键盘(没错,除了机械键盘外还自己 DIY)等。

2. 学习能力强悍,自我驱动力强悍

愿意深入地挖掘技术,能很快地意识到自己技术上欠缺的地方,并能准确的找到如何补足缺陷的方法或资料,同时能快速学习补上自己不懂的知识点。例如在开发的时候,我们经常会用到一些第三方库,优秀的工程师会想办法弄清楚这些第三方库的实现原理,并对比自己是否有不懂的知识,如果有就马上找来学习材料补上相关知识点。

3. 具备独立思考的能力

当遇到一个技术难题时,需要自己想方设法把这个大问题拆解成多个小问题,再逐一化解,而不是每遇到一个问题自己不加思考就去问别人。一开始这样做或许很难,但每次遇到问题时坚持先自己思考一段时间,这个能力逐步就会得到提升。如果实在没有办法了,那么就要有效的向别人提问。

4. 会提问,会沟通

沟通能力是每一个岗位都需要的一个共性特质,不再赘述。这里提供一个专门提问技术问题的链接:如何有效地提问?

5. 聪明、智商高

这一点写出来可能会被喷,但事实却是是这样的,例如很快能理解到一个英文文档的意思,很快能理解一个算法题怎么做,很快能了解到这个系统的整体设计是怎样的,很快能学会某项新的技能。如果别人一眼就能了解并学到的东西,你要花很长时间才能理解,那么每一个问题的时间差距累积起来,几年之后你将会远远落后于他人。

Photo by James Pond on Unsplash