心净则明,心诚则灵
如果你想要一个月速成程序员,那么这篇文章不适合,如果你仅想要在IT圈“耍酷”,那你也不需要研读,如果你执着询问“退化”成为一名程序猿有啥捷径,那我只能告诉你,此路不通!
不可否认,这是个浮躁的社会,程序猿干的是个专注活,这是个多元化的社会,程序猿面对的却是枯燥、单一的界面。所以,当你踏进这个行业,就注定要“看破红尘”、“一心皈依”,一步一个脚印地走完。经过简单了解,群里大都是初级开发者,上周发布了一篇文章《「能写代码」是愚公移山,「会写代码」是女娲补天》的感悟,事后有很多读者询问,如何才能从「能写代码」进阶到「会写代码」的境界,今天我们就来讲讲如何从愚公「变性」到女娲,噢,不对是「进阶」到女娲。
开发者的几个成长阶段
在聊聊软件开发人员如何进阶之前,我们先看看作为软件开发人员的几个成长阶段,咱不分很细致的,就按常规的方法分,那就是初级软件开发工程师,中级软件开发工程师和高级软件开发工程师。对于它们各自的职责划分和定义,简单说下:
初级软件开发工程师,他们考虑的是“怎么做”
初级软件开发工程师大都是刚步入这个行业,对于编程来说,理论大于实际,由于缺乏实际操作经验,他们注重的是代码,而不是开发,也就是说他们心中没有任何架构和框架模式,只是单纯的考虑实现某项功能,用陶渊明先生的话说就是“好读书,不求甚解;每有会意,便欣然忘食”。初级程序员需要监管和督促,需要有长着地提醒和带领,再加上勤学善思,初级程序员会随着时间的推移成长,成长时间段因人而异,一旦打开思路,就会思如泉涌,进步神速。
中级软件开发工程师,他们考虑的是“为什么”
随着开发的项目越来越多,中级的软件开发工程师经验会越来越丰富,他们一般是项目开发的中坚力量,接手项目后,能对项目有一个大概的把握,能将整个项目“解剖”,迅速理清问题的关键点和难点。会用方法去构建,去解决问题。一个优秀的中级开发人员懂得使用代码来解决问题只是一种手段而不是目的,然而,他们仍然深爱着纯粹的设计,仍然渴望寻求所谓“正确的方式”来构建软件。他们有了一定的设计基础,但是对于整个项目的把握和推进 程度还不太成熟。随着时间的推移,中级开发者会陷入技术瓶颈,虽然项目不同,却感觉整天在做重复的事情。
高级软件开发工程师,他们考虑的是“是什么”
高级的软件开发人员,可谓是身经百战,浴火重生。他们在失败中总结,在成功中汲取涵养,所以他们成熟,高级开发人员已经跳出了中级开发人员深爱的复杂性,开始热衷于简单,他们制定标准,描绘出蓝图,用具体的数据告诉我们到底“是什么”。高级开发人员深知理论联系实际的重要。他们明白,世上没有所谓的构建软件的“正确方式”,建立良好软件的唯一途径是要将理论适应客户、代码库、团队、工具和组织的需求。高级开发人员理解并权衡领域涉及的一切,同时会思考如何去支持设计模式、库、框架和流程。他更像是一个领导。
进阶秘籍:学习+实践
关于如何进阶,这个问题说起来很简单,但是却很抽象,没发具体严明,需要时间的推进、需要项目的锤炼、更需要切身地感悟和交流。进阶学习的书籍很多,全部涉猎不现实,作为一个初级开发人员,那些基础课程是必知的,虽然随着开发软件升级,一些基础、底层的东西用不太上,但是这些是基础,底子搭不牢,容易出稀奇古怪的Bug,比如对于Android开发人员来说,对于像java、android相关的数据库书籍必须学深学透,比如一般的算法(算法一般情况下用处不多,一旦用到就能发挥大作用,大公司面试比较注重算法),数据结构,网络工程等这些也是基础课程,可能用不到,但是心中必须存在概念,如果忘了,拿出书来,翻翻。打牢基础后,再加上一些项目的经验,多研究和多学习一些开源项目,成长成一名中级的开发人员不难。作为一个中级的开发人员要想成长为一个高级的开发人员,要不仅仅会学习一些架构模式,还需要看 一些人文科技类和技术管理类的书籍来丰富自己的一些思想,提高自己的想象力和创造力(说的有点文艺哈),在实践中把复杂的架构模式变得简单,实用。
进阶到高级,那该怎么学习?我想大概就是用经验驾驭项目(小编不是高级,所以只能靠想了哈哈哈),在项目中丰富经验,并不断的思考技术,学习技术。到了高级阶段,你基本就不用敲代码了,中级程序员才是敲代码的中坚力量,你只需要把复杂的变简单,把简单的变具体就可以啦,说的是不是很神奇。
记住:活到老,学到老,你才不会被淘汰,谁说程序员过了35就不能干了(我想说这句话的人大概都是不爱学习的人),那是假的,因为有能力的开发者到了50也是宝贝。
那么该怎么行动起来?哪里入手?
最近也一直有粉丝私信我说,有没有Java方向的全面一点的实战笔记,最好是同时面试也能用到的。对此我也是一直心心念念着,前段时间就从阿里的一位朋友手上拿到一份其内部的Java成长笔记【+jcc4261获取】,大家看了之后就知道,真的香!
由于笔记有800多页,全部为大家展示出来也不现实,就只为大家展示部分内容,实实在在的面试经验分享﹐也有高频面试点分享如果认认真真读完面试相信你会有很大的收获
阿里面经
美团三面面经
Java知识点梳理
Java基础到进阶
内存结构和垃圾回收算法
工厂模式
HashMap红黑树实现原理
List接口
开发工具篇
分享如何更好地使用Lombok , IDEA的骚操作如何高效读取大文件,等等。让你的开发更快人一步!
Lombok
装机必备软件
Java并发
正确关闭线程池
AQS详解
框架篇(Spring和Spring的亲儿子)
Spring都玩不转的话恐怕不好意思说自己精通Spring Boot & Spring Cloud吧?
Spring循环依赖
SpringAOP
Spring入门
SpringBoot实战
Docker容器篇
在容器越来越火的今天,了解并掌握容器是最重要的一环。
灵魂五连问
Nginx正确打开方式
你真的了解日志吗?
技能精进篇
主要围绕算法、手把手教你搞定一个实用技能、线上问题分享、计算机基础知识。一点一点帮你打造一个精进的自己。
单点登录
负载均衡
红黑树
程序员软技能
最后
程序员是肯定不能停止学习的,这点想必大家也知道!只有不断地学习充实自己,才不会有所谓的“中年危机”!
作者:南白
链接:https://juejin.cn/post/7164574143575228424
来源:稀土掘金
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。