专栏首页非著名程序员程序员进阶宝典

程序员进阶宝典

心净则明,心诚则灵

如果你想要一个月速成程序员,那么这篇文章不适合,如果你仅想要在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》

技术管理类的书籍

《门后的秘密》 《人月神话》 《人件》

本文分享自微信公众号 - 非著名程序员(non-famous-coder),作者:loonggg

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2016-03-23

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 腾讯发布 2017 年度代码报告

    ? 昨天腾讯发布了 2017 年度代码报告。整份报告对腾讯去年整个 2017 年度的研发数据进行了统计,涵盖代码、开发者、语言等基础数据。根据报告显示: 腾讯...

    非著名程序员
  • 优秀程序员眼中的整洁代码

    有多少程序员,就有多少定义。所以我只询问了一些非常知名且经验丰富的程序员。 ? Bjarne Stroustrup,C++ 语言发明者,C++ Programm...

    非著名程序员
  • 代码质量差,bug多?我们都是被逼的

    导语:有心写码,无力高效。bug其多,痛哉痛哉!有时候我们的写码的环境是和谭嗣同的心情一样一样的,为什么呢?因为谭嗣同的绝笔是这样写的:“有心杀贼,无力回天。死...

    非著名程序员
  • 零代码时代即将到来?没那么简单!

    “零代码”意味着,无需专业的软件知识,你也能轻松规划一个商业逻辑或者开发一个应用程序。

    CDA数据分析师
  • 低代码和无代码工具将迎来“公民开发者”时代

    从多方面来看,支持以技术为导向的非技术人员的工具市场正准备出现爆炸性增长。Gartner预测,到2024年,四分之三的大型企业将至少使用四个低代码开发工具,并且...

    APICloud
  • 零代码时代即将到来?没那么简单!

    “零代码”意味着,无需专业的软件知识,你也能轻松规划一个商业逻辑或者开发一个应用程序。

    大数据文摘
  • 年薪30w+的软件开发工程师需要掌握的技能

    现在,有这样一种主流观念,压垮了很多新手软件开发者,那就是你需要学习很多东西才能成为软件开发人员,并且很多人不知道从哪里开始起步。如今新手进入软件开发的程序员月...

    一墨编程学习
  • 究竟怎样写代码才算是好代码

    今天让我们来谈谈代码吧。代码重要吗?当然,代码就是设计(Jack W.Reeves, 1992);代码是最有价值的交付物。我们需要好代码吗?在给“好代码”下个定...

    小程故事多
  • 如何跳过古董代码的坑

    这是一个黑暗的暴风雨之夜。闪电每隔几分钟就会划破天空。在远处,你可以看到一大堆几年前写的代码。这些代码大部分都被作者遗忘了,甚至找不到作者。你小心翼翼地接近它,...

    老齐
  • 天天写代码,觉得自己特别苦逼?嗯,还有20年AI就来解放你

    Root 编译整理 量子位 出品 | 公众号 QbitAI “年轻人呐,别想着写代码写到老啊喂。时代在变啦!” 美国能源部橡树岭国家实验室研究委员会苦口婆心地劝...

    量子位

扫码关注云+社区

领取腾讯云代金券