我是一个小小的程序猿,有人说,程序员普遍情商低,在我看来是真的,程序员的圈子太小,而且往往以技术为傲,看不起不懂技术的人。程序员以为技术就是生活的大部,三句离不了老本行,身为一个初窥门径的猿猿,审视过去的自己,发现自己就是典型。所以,我想变一变,提升自己。
程序员总喜欢写代码,特别是刚入行或者是没有入行的小程序员,觉得代码世界就是天堂,殊不知在进入公司之后很多的代码都是在实现业务,你做的东西基本上都是在造轮子,不是在重复其他公司已经非常成熟的项目,要么就是在重复公司内其他人的事情,看一看现在的各种框架,几乎都长得一个样子,只要你学会了其中的一个框架,多写几个项目,其他的框架,无论是什么语言,几乎都能拿来直接用,没有啥问题,毕竟几乎所有的语言(除了函数式的语言之外),基本上都是C语言的儿子,java和C在实现业务上并没有什么不同。所以无论你刚开始用的是java、python、php,还是nodejs,其他的语言如果有需求,甚至都可以直接上,现学现卖。这就是编码能力。当然编码多了之后就会发现很多共同点,也会遇到各式各样的坑,为了想办法躲掉那些坑,让代码变的更鲁棒,就要涉及到架构能力,架构能力需要的基础有很多,首先是编码能力,其实是在数据结构上要有一定的能力,还要有各种的踩坑经历,见的多了,总结的多了才会有传说的独孤九剑-架构能力。我认为编码能力和架构架构能力是程序员的独特的能力,也是程序员的硬实力。
但是,当你真正入职并且经过1-2年后就会发现,程序员好像不是每时每刻都在写代码,都在改bug,并且随着时间的推移,写代码改bug的时间似乎越来越少。你就会怀疑人生,觉得每天都在浪费时间,都在一些无谓的事情上浪费精力。产品经理在群里大喊大叫,同事一会儿过来让你看看这个,一会儿又要叫开会,简直了!有时候还要催着让写设计文档,写总结,感觉一天8个小时完全不够用。这个时候,你就会想,这个世界到底是怎么了?
我觉得作为一个程序员,首先应该作为一个普通职场白领,其次才是一个程序员。那么作为白领首先要求要有什么能力?沟通的能力,与同事、老板、客户的沟通能力;组织能力,组织几个人一起把一件事情坐好的能力;写作表达的能力,要能够很清晰的表达自己的想法和思维,能够写出来别人能够看得懂、信服的内容;执行力,当老板给定一件事情,能够按时按量的做完,能够克服各种困难,将事情做好;等等。我觉得这些能力对于一个程序员来说可能更重要,也更能限制一个程序员的发展前景。
程序员修炼,我觉得硬实力和软实力两手都要抓,两手都要硬。诚然,这里并没有提及像英语、算法、经济学等等这些非常细节的内容,但是大方向一定把握的非常准确才能够走得远。我相信,一个好的程序员一定不只是一个程序员,也应该是一个好的测试、好的组长、好的总监、好的领导!