程序员需要掌握哪些软技能?
1.程序员应该掌握哪些必备技能?
现在做程序员的,不熟悉10种以上的编程语言的都不好意思称之为程序员。我认为目前需要掌握的编程语言至少有8种,包括:汇编、C、C++、C#、Java、Javascript、Python、SQL。此外对于自己领域内的知识和技能要做到精通,比如做Web开发的,要精通Web前端(html、css、javascript、jquery和react、angular、vue等至少一个web框架)及至少一门Web后端语言(比如PHP或Node.js等),还要掌握主流的数据库技术(比如Oracle、SQL Server、MySQL等)和操作系统(Linux)。此外还要熟悉其它领域的知识,帮你打开技术视野,不局限在一门技术上面(比如做Web开发的可以了解了解游戏软件是怎么开发的,嵌入式开发怎么做)。当然对于一些通用技术和工具,比如Web服务器(tomcat、Nginx等)、CVS(Git等)、Office、PowerDesigner、等等,都是要掌握的。此外还要熟悉你做的领域知识和业务,比如做财务软件的要熟悉财务的基础知识(考个会计从业资格快速熟悉)。
除了这些技能,还要熟练掌握至少下面这些理论课程知识,比如:数据结构和算法(ACM)、操作系统、计算机组成原理、编译原理、数据库原理、计算机网络等计算机专业核心课程。所以要成为一名专业的程序员,我认为至少需要10年的各种项目和产品的锤炼。
2.程序员应该掌握哪些软技能?
1)沟通和表达能力,与他人协作的能力。
2)编写技术文档和PPT的能力(完美展现)。
3)自我推销的能力。
4)带领团队开发的能力(项目管理)。
5)...
3.你认为哪个软技能是最重要的?
没有哪个软技能是最重要的,如果一定要指出一个,我认为应该是沟通和表达能力。在中国这个关系型社会,良好的人际关系是非常重要的。好的职场沟通,能够让你在职场游刃有余。但与人沟通的能力,恰恰是程序员的短板。所以我认为有时间可以多参加一些技术交流会,跟同行交流技术经验。平时多关注生活,跟外行交流生活体验(说不定能发现什么创业的痛点),了解不同的人的思维方式。
平时多关注人,多关注这个社会,慢慢的思路就打开了。
4.35岁还没有成为CTO的程序员,出路在哪里?
有人说程序员是吃青春饭的,其实大部分职业都是吃青春饭的,关键在于你自己的选择。如果你真正的热爱技术,相信40、50岁你还会去研究技术。对于大龄程序员,我认为出路无非是两种:转型或转行。转型比如转为项目管理,转行比如转做技术型销售,当然这些都要根据自己的实际情况做出选择。但无论做什么职业,打工都不可能打一辈子,所以一定要提前做好职业生涯的规划,理财和金融投资是程序员必须要掌握的。还有一种出路是创业,但我必须要说的是,创业并不适合每个人,只有极少数人适合创业,而且创业成功是小概率事件,需要天时地利人和。
本文最初发表于异步社区:https://www.epubit.com/selfpublish/article/1076