程序员进阶宝典

作者: 非著名程序员 | 来源:发表于2016-03-24 07:58 被阅读7275次

    心净则明,心诚则灵
    如果你想要一个月速成程序员,那么这篇文章不适合,如果你仅想要在IT圈“耍酷”,那你也不需要研读,如果你执着询问“退化”成为一名程序猿有啥捷径,那我只能告诉你,此路不通!

    不可否认,这是个浮躁的社会,程序猿干的是个专注活,这是个多元化的社会,程序猿面对的却是枯燥、单一的界面。所以,当你踏进这个行业,就注定要“看破红尘”、“一心皈依”,一步一个脚印地走完。经过简单了解,群里大都是初级开发者,上周发布了一篇文章《「能写代码」是愚公移山,「会写代码」是女娲补天》的感悟,事后有很多读者询问,如何才能从「能写代码」进阶到「会写代码」的境界,今天我们就来讲讲如何从愚公「变性」到女娲,噢,不对是「进阶」到女娲。


    开发者的几个成长阶段
    在聊聊软件开发人员如何进阶之前,我们先看看作为软件开发人员的几个成长阶段,咱不分很细致的,就按常规的方法分,那就是初级软件开发工程师,中级软件开发工程师和高级软件开发工程师。对于它们各自的职责划分和定义,简单说下:


    初级软件开发工程师,他们考虑的是“怎么做”
    初级软件开发工程师大都是刚步入这个行业,对于编程来说,理论大于实际,由于缺乏实际操作经验,他们注重的是代码,而不是开发,也就是说他们心中没有任何架构和框架模式,只是单纯的考虑实现某项功能,用陶渊明先生的话说就是“好读书,不求甚解;每有会意,便欣然忘食”。初级程序员需要监管和督促,需要有长着地提醒和带领,再加上勤学善思,初级程序员会随着时间的推移成长,成长时间段因人而异,一旦打开思路,就会思如泉涌,进步神速。


    中级软件开发工程师,他们考虑的是“为什么”
    随着开发的项目越来越多,中级的软件开发工程师经验会越来越丰富,他们一般是项目开发的中坚力量,接手项目后,能对项目有一个大概的把握,能将整个项目“解剖”,迅速理清问题的关键点和难点。会用方法去构建,去解决问题。一个优秀的中级开发人员懂得使用代码来解决问题只是一种手段而不是目的,然而,他们仍然深爱着纯粹的设计,仍然渴望寻求所谓“正确的方式”来构建软件。他们有了一定的设计基础,但是对于整个项目的把握和推进 程度还不太成熟。随着时间的推移,中级开发者会陷入技术瓶颈,虽然项目不同,却感觉整天在做重复的事情。


    高级软件开发工程师,他们考虑的是“是什么”
    高级的软件开发人员,可谓是身经百战,浴火重生。他们在失败中总结,在成功中汲取涵养,所以他们成熟,高级开发人员已经跳出了中级开发人员深爱的复杂性,开始热衷于简单,他们制定标准,描绘出蓝图,用具体的数据告诉我们到底“是什么”。高级开发人员深知理论联系实际的重要。他们明白,世上没有所谓的构建软件的“正确方式”,建立良好软件的唯一途径是要将理论适应客户、代码库、团队、工具和组织的需求。高级开发人员理解并权衡领域涉及的一切,同时会思考如何去支持设计模式、库、框架和流程。他更像是一个领导。


    进阶秘籍:学习+实践
    关于如何进阶,这个问题说起来很简单,但是却很抽象,没发具体严明,需要时间的推进、需要项目的锤炼、更需要切身地感悟和交流。进阶学习的书籍很多,全部涉猎不现实,作为一个初级开发人员,那些基础课程是必知的,虽然随着开发软件升级,一些基础、底层的东西用不太上,但是这些是基础,底子搭不牢,容易出稀奇古怪的Bug,比如对于Android开发人员来说,对于像java、android相关的数据库书籍必须学深学透,比如一般的算法(算法一般情况下用处不多,一旦用到就能发挥大作用,大公司面试比较注重算法),数据结构,网络工程等这些也是基础课程,可能用不到,但是心中必须存在概念,如果忘了,拿出书来,翻翻。打牢基础后,再加上一些项目的经验,多研究和多学习一些开源项目,成长成一名中级的开发人员不难。作为一个中级的开发人员要想成长为一个高级的开发人员,要不仅仅会学习一些架构模式,还需要看 一些人文科技类和技术管理类的书籍来丰富自己的一些思想,提高自己的想象力和创造力(说的有点文艺哈),在实践中把复杂的架构模式变得简单,实用。

    进阶到高级,那该怎么学习?我想大概就是用经验驾驭项目(小编不是高级,所以只能靠想了哈哈哈),在项目中丰富经验,并不断的思考技术,学习技术。到了高级阶段,你基本就不用敲代码了,中级程序员才是敲代码的中坚力量,你只需要把复杂的变简单,把简单的变具体就可以啦,说的是不是很神奇。

    记住:活到老,学到老,你才不会被淘汰,谁说程序员过了35就不能干了(我想说这句话的人大概都是不爱学习的人),那是假的,因为有能力的开发者到了50也是宝贝。


    “进阶宝典”目录


    通用书籍
    《程序是怎样跑起来的》
    《深入理解计算机系统》
    《算法(第四版)》
    《编程珠玑》
    《设计模式之禅》
    《大话设计模式》,《大话数据结构》
    《Head first 设计模式》
    《构建之法》
    《代码大全》
    《代码整洁之道》
    《图解http》
    《单元测试的艺术》
    《修改代码的艺术》

    Android开发书籍:
    《第一行代码》
    《App研发录》
    《Embedded Android》
    《Java并发编程实战》
    《Android.C++.with.the.NDK》
    《Android开发艺术与探索》
    《深入了解JVM虚拟机》
    《Java编程思想》

    人文科技类的书籍:
    《黑客与画家》
    《程序员的职业素养》
    《重新定义公司 How Google Works》
    《Rework》
    《Getting Real》
    《代码的未来》
    《GEB》

    技术管理类的书籍
    《门后的秘密》
    《人月神话》
    《人件》

    特别声明:未经作者授权允许,禁止任何形式的转载。

    相关文章

      网友评论

      • 答案在风中飘:写的很好 确实很好 但感觉没什么用啊 靠时间考项目靠知识这些还用你说?
      • LulPerer:好东西,必须收藏,谢谢楼主
      • 崔文露:谢谢你:heart:
      • 芝了那个麻:后面那堆书灰常灰常有用!
      • 广锅锅:看到后面那堆书,先收藏起来。
      • 丶叫我官人:think in java
      • Oculas:收藏了,细细品味
      • 七两醋:一个脑力体力情商综合考验的工种:frowning::smiley:
      • 花开花落花非花:需要时间@
      • 华之曦:好多人都有 推荐 <代码大全>,有必要买本看下/
      • 209b9038b951:码农必备案头书,颈椎病康复指南呢
      • 村东头元旦家:好 高级 的说哦,,,,看完要多久。。。
      • 红发_SHANKS:===心净则明,心诚则灵===这一篇文章有这一句就够了。。嘻嘻(●'◡'●)当真正的做事的时候,就不会浮躁,不会迷茫,不会沉沦。这或许也是楼上的问题的答案。博主写的很好,但是如果能够加强细节展开,或许更受我们这种在初中级边缘徘徊的 人的喜欢。。加油,米娜!
      • ab69de33a62c:做前端的,你列的书单合用不?
      • yan_志超:虽然知道,作为初学者 需要思考,可经常被错误代码搞得一团糟,思考能力也被影响,在不断的试错后才能发现错误的地方,太影响心境,想问 ,学习之初如何开启有效的思考模式。
      • 鸢尾嵌宇:很好的文章对刚刚进入这个圈子的我很有用。
      • Mmzer:我们叫自己工程师~~~
        Mmzer:@世家 :joy::joy::joy:竟然又演变成了另一个神奇物种。。。
        ab69de33a62c:@Mmzer 是地精工程师吧
      • 4009cefb660f:框架的理解
      • b9a860a4d173:只是码字的菜鸟码农!路过!
      • 兰岚岚:高级B
      • ShannonChenCHN:不仅仅是成为一个码农
      • d5593d2099c6:我想成为一名程序员。
      • 栀夏暖阳:非常不错,说对了。
      • 唯老:写的太好了
      • 满天丿星:不错,看来你也是过来人啊
      • 接地气的二呆:好文~受教了

      本文标题:程序员进阶宝典

      本文链接:https://www.haomeiwen.com/subject/fmkrlttx.html