月入3万的程序员,都掌握了这10项基本能力

月入3万的程序员,都掌握了这10项基本能力

关注 走一走 工资涨9999

基础篇

基础最重要

对于任何行业的任何工作而言,掌握基础知识是成功的第一步。要成为一名优秀的工程师,必须有一个坚实稳固的基础。对核心概念的理解将帮助您以最佳方式设计和实施完美的解决方案。如果你觉得你无法掌握核心计算机科学或编程语言知识,现在开始夯实基础还为时不晚。

打好基础不是说一遍又一遍地写很多代码,而是要对 Java 本身理解透彻。

《Java 编程思想》《深入理解 Java 虚拟机》这样的书需要多刷几遍,结合工作中的真实感悟,好好理解一下 Java 语言是什么、能做什么、为什么是这样。

比如面试常问的 ConcurrentHashMap 的实现原理,绝不能是看看网上的资料然后背下来,这需要你真真正正地理解它的实现原理,才算是打好了基础。

多刷题反复练习

为什么面试总是问基础题目,因为做不好这些题目就说明不具备基本的编码能力。物质基础决定上层建筑,编码基础决定能力范围。现在有很多好的刷题网站,比如 LeetCode、北京大学Online Judge、浙江大学Online Judge 等。

学好数据结构与算法

数据结构和算法其实也是编程的基础,但这里单列出来,是为了提醒大家它的重要性。

掌握好数据结构才能设计出合理的软件实现方案,理解了算法才能设计出高效稳定的技术实现。最基本的算法,比如树遍历、二分搜索、快速排序等,都是工作中经常用到的算法。

进阶篇

善于总结乐于分享

许多牛逼的程序员都有自己的博客。他们将在博客中记录自己的学习过程,写下自己的思考、见解和总结,日积月累也是一笔财富。向全世界(和未来的雇主)呈现您正在学习的知识,以及您的学习意愿,将使您领先于95%的行业开发人员。

你也可以反复练习以掌握写作技巧。这个过程还可以让你提高很多职场需要的软实力:如何处理问题、如何分解和解决问题。你还需要理清你常见的思维方式,如何学习和成长,以及如何取得进步。

建立自己的知识体系

总结一下已经掌握的知识点,尝试着进行汇总,并分享给他人。你会逐渐地建立自己的知识体系,并在分享中实现升华。建立个人的知识体系,需要进行大规模的整理、分类、分层、查缺补漏,才能最终建立起立体完善的知识体系。

建立知识体系有很多好处,工作和学习中接触的往往是点状知识点,用的久了领域内的多种知识能够连成线,而真正的顿悟往往发生在知识进入知识体系的那一瞬间。你突然就明白了,知识体系帮助你理解和吸收新知识,同时新知识也在完善已有的知识体系。

参加开源项目用实力证明自己

参与到开源项目中去,多琢磨琢磨 Spring、MyBatis、dubbo、ZooKeeper 等开源项目的源码,研究明白这些框架的运行原理,最好能贡献一些代码。开源项目的另一个特点是一般情况下都需要在工作之外的业务时间开发,需要占用一些休息时间。参与开源项目需要主动性和积极性,这种主动性会级大地提高个人进步的空间。开源项目多人维护,代码质量一般比较高,也可以通过参与提高个人的编码水平。

高阶篇

多想想抽象有点架构思维

架构是一个软件项目的灵魂,好的架构如同天然的美玉,是一个艺术品。也许今天你在写着规模只有几千行的代码,总有一天会有几十万甚至千百万规模的项目需要你去维护,没有好的架构就会陷入疲于奔命的境况,难道你要放弃机会选择转身而去吗?

据不完全统计,中国大约有 100 万 java 程序员,但是架构师只有不到 10 万人。平时开发中多进行抽象,借鉴好的架构模型,充分考虑扩展性,进行合理的分层和模块划分,并有计划地进行重构,争取早日成为架构师。

扎根一个项目实现阶段的上升

普遍流行的观点是程序员要靠跳槽来涨薪,总觉得按部就班普调工资速度太慢。但是实际上,频繁地跳槽对职业生涯有百害而无一利。工作遇到瓶颈了可以换工作寻找突破,要换城市了可以跳槽挪挪窝,其他情况最好能够扎根多做几年。

跳槽的确能够涨薪,但跳槽后一切都要重来。如果你只是一个开发,下次跳槽还是一个开发,看起来工资涨得很快,但永远是一个开发,因为你永远是一个新人。扎根一个项目,努力奋斗三五年,对项目有了深刻的理解,技术实力有了很大的提升,下一步就可以考虑转做架构师或者技术管理了,这比频繁跳槽永远做开发收益大多了。

月入3万的程序员,都掌握了这10项基本能力

软实力

提升沟通表达能力

沟通是取得职业成功时最难掌握和最重要的事情之一。任何有专业沟通经验的人都会嗅到这个想法,会惊奇地发现误解的突然出现、工作流程的复杂性以及项目进度的延迟。要真正掌握有效的沟通方式,需要对实际工作中需要做什么有基本的了解并互相交流。写博客并与社区进行交流有助于有效提高沟通技巧。

如果您可以掌握简洁,实用,易于理解的沟通方法,并将复杂的问题和解决方案分解为可理解的小部分,那么您可以在软件开发领域混得风生水起。

主动表达的能力和意愿

主动表达的能力是高级程序员非常重要的软实力。知乎大V覃超分享了自己的一段经历,很好地说明了这个问题。他刚进项目组时只知道低头写代码,觉得用实力和勤奋就足以拥有一席之地,甚至连同事聚餐都没有参加。而他的印度同事和 leader 们保持了很好的沟通,有效地保证了两个核心项目的进度,在项目结束前夕还挺身而出挡掉了 PM 的不合理需求,最终取得的结果明显好于别的同事。

主动表达,与上级和其他同事保持良好的沟通,站在更高的层面看问题,而不是埋头做事对其他事情充耳不闻,才能真正地提升自己。努力没有错,但要有方向。

月入3万的程序员,都掌握了这10项基本能力


分享到:


相關文章: