查看原文
其他

如何成为一名出色的架构师?

作者 : deviJi

来源 : zhihu.com/question/19841397/answer/13707213

图片来自网络

前言

想成为一个出色的架构师,但是学得知识不是很系统。
目前属于自学,设计模式,算法导论,编译原理,UML2.0等都在看。
自学可想而知,肯定不够系统,不够全面,也不科学。
身边也没什么人可以在这方面教导我,工作已经3年了,每次换工作都是呆在小公司,技术这块的基本自己来抗,很多东西都自己摸索的。去年开始到现在完成了算是从头到尾自己全权负责的项目(PHP-MYSQL-PYTHON,PHP的MVC框架自己写的),做下来发现自己有很多的不足。
除了看书,自学,看看MIT的公开课,还有什么办法可以让自己有很大的提升空间?

内容

架构师是一个充满挑战的职业,知识面的宽窄往往决定着一个架构师的架构能力,所以在这一点上我比较赞成你的学习方式,就是要阅读大量的技术书籍,但我希望你不要仅限于软件相关的书籍,经常泡技术论坛,一方面可以结交朋友,一方面可以增加自己的知识面。
公司的大小往往决定了所做的项目规模,一般的大项目不太可能直接总包给小公司去做,但这并不妨碍小公司可以分包到大项目的一部分。在做小项目的同时也可以积累丰富的经验,我自己就是一个这样的例子。
我在小公司混迹了5年多,其中也偶尔有1两个大公司,比如大唐电信,但是基本上都是小公司,从基层的程序要到公司的开发总监都做过,甚至自己还设计过包括LED显示屏,密码键盘在内的收费系统,自己联系厂家OEM,当然这些今天已经广泛应用了,当时我们的客户用上之后还是非常震撼的。
知识面的宽广对于一名出色的架构师来说是必不可少的技能,也许很多人对架构的理解还停留在设计模式,重构,SOA等等的软件层面,然而这仅仅是非常基本的东西,架构师的脑子里不光需要知道让软件如何高效的运行,还需要知道如何去结合网络,存储,甚至一些文件系统的特性,比如GFS,NFS,XFS,NTFS等等,而且架构师还需要知道一些编程语言的特性,C,C++,Java,PHP,Python,Lisp,JS等等,现在是一个混合编程的时代,只了解一种语言,即使再精通也会使你在架构系统的时候受到很大的局限性。
再有一点,架构师需要对数据库技术有深刻的认识,因为现今是一个信息时代,大量的信息都是需要存储并检索的,数据库设计的不好,将会严重影响系统的性能,而这一点往往会被我们的设计人员忽略,他们只知道遵守那些范式而不会结合数据的特性去设计数据库。
看你的编程情况,你好像做PHP开发比较多,PHP比较适合B/S结构的应用开发,这会限制一个架构师的思路,我建议你再学习一门适合做C/S开发的语言,拓宽自己的视野。
从一个程序员到架构师是一个很大的变化,架构师需要从大的方面考虑,而不只是考虑这个模块该用哪种设计模式去开发。不能急于求成,也许是我自己变化的比较慢,我用了10年的时间,这10年里,我使用超过一年的编程语言包括了delphi,C++,Java,python,使用的数据库包括了oracle,infomix,sybase,sqlserver,mysql,javadb,sqlite等等,使用过大型机,小型机,服务器。unix,linux,windows都至少做过两年以上的开发,这些使用和开发的经历会大大增强一个人在做架构师这个职业时的技术素养。

总结

总之,想要成为架构师,需要有耐心,不断学习,拓宽自己的视野,不仅仅局限于自己眼前的项目,关注开源技术,关注热门技术社区的新动向。






猜你喜欢

1、GitHub 标星 3.2w!史上最全技术人员面试手册!FackBoo发起和总结

2、如何才能成为优秀的架构师?

3、从零开始搭建创业公司后台技术栈

4、程序员一般可以从什么平台接私活?

5、37岁程序员被裁,120天没找到工作,无奈去小公司,结果懵了...

6、滴滴业务中台构建实践,首次曝光

7、不认命,从10年流水线工人,到谷歌上班的程序媛,一位湖南妹子的励志故事

8、15张图看懂瞎忙和高效的区别


    您可能也对以下帖子感兴趣

    文章有问题?点此查看未经处理的缓存