最近读了一本好书,《码农翻身》,推荐没读过的小伙伴可以读一下。前面通过小故事介绍计算机世界中的方方面面,特别的有意思。
作者在最后一章根据自己成为架构师路上点点滴滴的经验,给广大程序员提供了一些建议。
让我受益匪浅。特此提炼一下,学习共勉:
1、凡事必先骑上虎背
在遇到机会,犹豫不决,缩手缩脚时,记住这句话:“凡事必先骑上虎背”,先让自己下不来台再说,但是真的尽自己最大努力以后就会发现,事情没那么难,最后还都把事情完成了。
2、一些技术“潜规则”
- 局部性原理
- 缓存
- 抛弃细节:抽象
- 分层(七层网络协议、MVC编程模型等)
- 异步调用
- 大事化小小事化了,分治思想
3、15年编程生涯,一名架构师的总结
①保持好奇心:
对于程序员来说也是如此,如果你看到新技术、新产品没有像小孩看到新玩具那样两眼放光,没有立刻在自己的电脑上试试的冲动,你就需要仔细考虑一下是否真的对软件开发有兴趣。如果根本没兴趣,那不要浪费时间,还是趁早转行,有更多适合你的职业在等着你,没有好奇心,就不愿意追本溯源,追求技术的本质没有好奇心,就难以静下心来,耐得住寂寞,远离浮躁,更难以跨过这个行业所带来的种种挑战,走到架构师这个位置;没有好奇心,就不愿意学习新技术。一名架构师,如果没高对技术的敏感度和前瞻性,一直抱着一套技术架悔不变,估计很快就会被淘汰。
②养成计算机的思维方式:
流畅地把人类语言的需求转换为计算机语言,这是程序员的基本功。
这个基本功的训练就是数据结构+算法,方法就是多刷题。
Leetcode刷起来!!!
③扎实基础,融会贯通
建议有时间的同学一定要去再学习一下计算机组成原理、操作系统、编译原理、计算机网络、数据库、汇编语言,把这些知识融会贯通,打通任督二脉,在我们的脑海里建立一幅计算机运
算的图景。
④要透彻地理解一门技术的本质
Ant -》Maven的例子。Maven 出现,使用“约定重于配置”的方式解决了 Ant 的问题。
理解了技术的本质以后就能够触类旁通,就能够快速学习,这在技术更新很快的软件行业尤为重要。
只是学会使用是不行的,不但要知道 How ,还要知道 Why
停下来,思考,才是进步的本质。
⑤能写漂亮的代码
写出漂亮代码并不容易,需要思路清晰,有良好的编程基础,有优秀的抽象能力,以及对一门语言的熟练掌握。
⑥抽象的能力
抽象思考的能力怎么强调都不为过。
抽象能力的训练没有捷径,就是经验的积累,勤于思考和学习 例如:
学习 Java Web 开发的可以思考一下为什么 Spring有Controller ViewResolver 这样的概念?学习 Android 的可以思考一下 Android 是怎么对未知的、纷繁复杂的应用程序进行抽象的?为什么有 Activity Service BroadcastReceiver ContentProvider 这四大组件?
⑦技术领导力
要用技术的影响力来领导人, 而不是威权和职位。
但影响力不是很快就建成的,这是一个漫长的过程:你解决了一道技术难题,你提出的方案被证明可行。
这样的事情会一点一滴地积累起你在别人心目中的形象,建立你的的个人品牌,最终大家会给你贴上一个标签:大牛。
4、写作
对自己狠一点,开始写作吧。
转教别人( Teach others )” 的办法属于主动学习,效率是最高的。但是在工作平日生活当中,你是很少有机会去给别人讲授的。既然没法给别人讲,那就退而求真;欠吧,把自己的理解写出来。
当然不是泛泛地记流水账,或者把几个孤立的点罗列在那里,而是要把思路理清楚,尤
真要写出为什么要有这门技术、这门技术解决了什么问题, 后才是这门技术是怎么使用的。
我以后在写文章介绍某个新技术的时候,也会着重按以下要点来写:
介绍某一门技术时,要进行深度思考,防止知识点都过于碎片化。
为什么要有这门技术(or这门技术出现前的解决方案)?这门技术解决了什么问题?然后再介绍技术。
网友评论