架构师



架构师是一个充满挑战的职业,知识面的宽窄每每决定着一个架构师的架构能力,因此在这一点上我比较同意你的学习方式,就是要阅读大量的技术书籍,但我但愿你不要仅限于软件相关的书籍,常常泡技术论坛,一方面能够结交朋友,一方面能够增长本身的知识面。 公司的大小每每决定了所作的项目规模,通常的大项目不太可能直接总包给小公司去作,但这并不妨碍小公司能够分包到大项目的一部分。在作小项目的同时也能够积累丰富的经验,我本身就是一个这样的例子。 我在小公司混迹了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都至少作过两年以上的开发,这些使用和开发的经历会大大加强一我的在作架构师这个职业时的技术素养。 总之,想要成为架构师,须要有耐心,不断学习,拓宽本身的视野,不单单局限于本身眼前的项目,关注开源技术,关注热门技术社区的新动向。