分享总监级架构师总结的7条经验_惠州计算机Java培训
作者:邓华发布时间:2021-03-14分类:惠州计算机学校浏览:705
我和很多人交流过一个有趣的现象,那就是刚毕业到30岁这段时间,会觉得时间过得很慢,总觉得自己还很年轻,但是一旦过了30岁,时间就如白驹过隙,一年又一年飞逝而过。那么今天惠州北大青鸟老师给大家分享总监级架构师总结的7条经验,希望对大家有帮助。
我自己也是,眼瞅着毕业快15年了,15年间从一个刚毕业的菜鸟,成长为技术骨干,做到架构师的职位,回头看看,当年听取亲戚的一句话,误入计算机行业,看来并没有走错,编程虽然枯燥辛苦,但是如果真的感兴趣,你就能体会到其中的乐趣,并且获得可观的回报。
1、养成计算机的思维方式
之前在“码农翻身”公共号发过一篇文章,叫《学会编程,而不是学会Java》说的就是要能够以计算机的方式去思考。
现在的计算机还很“弱智”,你不能这么说:『电脑,我要创建一个像Java的ArrayList类似的类,有个get、add、remove方法,还有这个ArrayList的容量不是固定的,能够自增长,快点给我写出来!』
现在的电脑当然写不出来。
相反你只能用计算机能理解的方式,用非常非常低级的计算机语言去告诉它做事情:创建一个类,分配一个固定大小的数组用来存放数据,用一个数(size)来记录数组里存了多少数据。如果数组满了,就需要增大数组,并且把数据从老数组复制到新数组。
这里边有很多很多的烦人的细节需要你去处理,一不留神就会出错---计算机编程就是这样。
养成计算机的思维方式,流畅的把人类语言的需求转化成计算机语言,这是程序员的基本功。
很多人会语法,也懂框架,但是在基本功上却不过关,只能在初级程序员上踏步。
这个基本功的训练就是数据结构和算法,我的经验是多做习题(大学时我把数据结构后面的习题都做了一遍),让这个思维在脑子里固化,以后的编程就可以信手拈来了。
2、好奇心
刘慈欣在《朝闻道》中描绘过这么一个情节:在古老的非洲大陆上,有个原始人无意中抬头仰望星空,凝视的时间稍微长了一些,超过了外星人设置的阈值,立刻拉响了人类即将产生文明的警报。因为外星人认为,人类已经产生了对宇宙的好奇心,文明的产生,科技的发展不过是一瞬间的事情。
确实是这样,好奇心驱动人类不断向前,在短短的几千年(相对于长达几十万年的原始时代)里就登上了月球,并且努力向其他行星拓展。
对于程序员来说也是类似,如果你看到新技术,新产品没有像小孩看到新玩具那样两眼放光,没有想赶紧在自己电脑上玩玩的冲动,你就需要仔细考虑下是否真的对软件开发有兴趣?如果根本没兴趣,不要浪费时间,还是趁早转行,有更多有前(钱)途的职业在等着你。
没有好奇心,就不愿意追本溯源,追求技术的本质。
没有好奇心,就难于静下心来,耐得住寂寞,远离浮躁和代码奋斗,更难于跨过这个苦逼行业带来的种种挑战,走到架构师这个位置了。
没有好奇心,就不愿意学习新技术,一个架构师,如果没有对技术的敏感度和前瞻性,一直抱着一套技术架构不变,估计很快会被淘汰。
当然自制力强大的人除外,但话说回来,靠着自制力让自己做自己不喜欢的事情,岂不非常痛苦?
我在上公司的一个关于Leader的培训课的时候,老师一直在说Passion(激情),Passion,Passion,但我一直觉得没有好奇心,没有兴趣,怎么会产生Passion呢?
所以,对技术的好奇心/兴趣,是一切的基础。
3、要透彻地理解一个技术的本质
先举个Ant中的例子,大部分人学习Ant只是学会怎么使用,认识到Ant提供了很多内置的task来帮助我们方便的完成自动化的构建,例如命令。
很少人会思考为什么Ant的task是以XML来描述的?为什么Ant不提供一套Java类库/API来让程序员用,那样不是更自然吗?
这其中的一个重要原因就是XML可以自定义标签,所以表达力无与伦比;如果用java,它的语法不允许自定义一个像copy、fileset这样的关键字,只能定义一些类来模拟这些Copy、Fileset,就没有这么简单明了,不信你尝试一下。
Ant给我们的重要启示就是,用XML来描述任务,能极大的扩展语言的能力。但是Ant的问题就是需要程序员处理太多的细节,指定源代码路径,指定编译文件的路径,指定资源文件的路径,指定需要的jar包及其位置,很烦心。
于是Maven出来使用“约定优于配置”的方式解决了Ant的问题。
理解了技术的本质以后就能够触类旁通,就能够快速学习,这在技术更新很快的软件行业尤为重要。
只是学会使用是不行的,不但要知道how,还要知道why。
停下来,思考,才是进步的本质。
4、扎实基础,融会贯通
我很久之前参与过一点开源软件的开发,有幸看到了一个老程序员的简历,让我震惊的是他竟然在Altair这个最早的电脑上编过程序。
没错,Altair就是那个连显示器和键盘都没有,靠拨动开关来输入,靠指示灯来输出的所谓“个人电脑”,比尔盖茨和保罗艾伦在上面写了一个Baisc的解释器,从此开始微软之路。
如果有了在这样的机器上编程的经历,我相信这些老程序员对硬件,驱动,操作系统,应用软件的理解要远远超过我们现在这些人。
我之前要写文章遇到了一个问题:一个进程要读取文件,在底层用的是DMA的方式,DMA完成文件读取以后要通过中断让CPU去处理,但是CPU和中断处理程序根本不知道进程的ID,它怎么去和进行关联,如何去唤醒那个等待的进程?这个问题让我意识到其实我对计算机的基础也并没有融汇贯通。
我们大学里都学过计算机组成原理、操作系统、编译原理、计算机网络、数据库、汇编语言,能不能把这些知识融会贯通,打通任督二脉,在我们的脑海里建立一个计算机运算的图景?
把这些知识融为一体,我相信能超越绝大多数程序员。
现在的软件开发封装的层次已经非常高了,只要学会Java就能做一个编程工作了,随着你做的越来越深,越来越专,这些基础的问题就会浮现出来。
更重要的是,计算机软硬件的基本思想在这几十年里其实变化不大,例如缓存,增加抽象层等,有了这么基本的思想的武装,去学习新的东西不但学的快,理解的会更透彻。
5、抽象的能力
抽象思考的能力怎么强调都不为过。
现实的需求纷繁复杂,如果架构师不能够把这些乱无头绪的需求抽象成一些“概念”,在概念的层次进行思考,系统根本就无法设计。
但是抽象出概念以后还不够,还要看看这个概念是不是正交的,能不能独立变化,如果不能,考虑下新的概念抽象。
“正交”讲的是线性无关,非常重要,就像一个点(x,y),在x轴的变化不会影响y,y轴的变化不会影响x,这就是正交。
“正交”威力巨大,(x,y)可以表达二维平面的所有的点,如果增加一个z轴,不但能表达三维空间中所有的点,并且每个轴都可以独立变化。
如果能做出正交的设计,这个系统的开发和维护会非常舒服,以为可以放心大胆的修改其中一个方面儿不会影响其他。
设计模式一直强调的『发现变化并且封装变化』其实就是这个意思。
抽象能力的训练没有捷径,就是经验的积累,勤于思考和学习。例如:学习Android的程序员可以思考下Android是怎么对未知的,纷繁复杂的应用程序进行抽象的?为什么有Activity、Service、BroadcastReceiver、ContentProvider这四大组件?
6、要能写漂亮的代码
架构师不是高高在上,脱离代码只说不做的人。架构师首先是一个优秀的程序员,要能够编写项目或产品中的核心功能,随时能够卷起袖子去解决项目中的问题。
代码写的不漂亮怎么能拿得出手?怎么能够服人?
所谓漂亮代码不仅仅是清晰、易懂、优雅,更要实现功能,没有Bug或者极少Bug。
其实如果代码简单优雅,一般没什么问题。
写出漂亮代码并不容易,需要思路清晰,有良好的编程基础,有优秀的抽象能力,以及对一门语言的熟练掌握。
7、技术领导力
我在IBM学到的重要一课就是:要用技术的影响力来领导人,而不是威权和职位。
换句大白话来说,就是要能让技术人员服你。有了技术影响力,你在团队发出的声音才会被倾听,被尊重。
但是影响力不是很快就建成的,这是个漫长的过程:你解决了一个技术难题,你提出的方案被证明可行....
这样的事情会一点一滴的积累起你在别人心目中的形象,建立你的个人品牌,最终大家会给你贴上一个标签:大牛。
想学Java的同学们,可以来惠州北大青鸟新方舟校区详细了解。
Java
标签:惠州计算机JAVA软件开发惠州计算机Java软件开发惠州计算机JAVA培训惠州计算机JAVA软件开发学校惠州计算机Java软件开发培训JAVAJava软件开发北大青鸟IT计算机学校北大青鸟IT软件学校北大青鸟IT学校
- 惠州计算机学校排行
- 标签列表
-
- Java (3694)
- 北大青鸟 (3713)
- 软件开发 (3613)
- JAVA (3413)
- UI设计入门 (2093)
- 惠州北大青鸟 (4375)
- 惠州IT培训 (2558)
- UI设计培训 (2090)
- 惠州UI设计培训 (2095)
- 惠州UI设计培训学校 (2090)
- 惠州计算机软件培训 (6260)
- 惠州计算件软件开发 (6260)
- 惠州计算机软件基础 (6261)
- 惠州计算机JAVA培训 (3574)
- 惠州计算机Java软件开发 (3620)
- 惠州计算机JAVA软件开发 (4645)
- 惠州计算机JAVA软件开发学校 (3338)
- 惠州计算机Java软件开发培训 (3338)
- 北大青鸟IT计算机学校 (5048)
- 北大青鸟IT软件学校 (5062)
- 北大青鸟IT学校 (5059)
- 惠州计算机UI设计软件开发 (2088)
- UI设计基础教程 (2088)
- UI设计是什么 (2088)
- UI设计教程 (2088)
- 网站分类
-
- 计算机教程
- 计算机入门
- 职业学校
- 新闻动态
- 专业课程
- 热门技术
- SEO
- 培训教程
- windows
- linux教程
- 系统集成
- 网站开发
- Html5
- 办公软件
- 师资力量
- 热点问答
- 联系我们
- 计算机学校
- 惠州计算机学校
- 河源计算机学校
- 广州计算机学校
- 深圳计算机学校
- 湛江计算机学校
- 佛山计算机学校
- IT计算机培训信息
- 设计专业
- UI
- 影视特效
- 游戏动漫设计
- Photoshop
- AI设计
- 软件教程
- Java技术
- C语言/C++语言培训
- C#
- Python技术
- PHP
- 数据库
- SQL Server
- 网络教程
- 网络安全
- 网络营销
- 软件专业
- 大数据专业
- 前端开发专业
- 软件测试专业
- Python专业
- 软件实施
- 珠海计算机学校
- 初中生学什么好
- 计算机认证
- 文章归档
-
- 2024年11月 (14)
- 2024年10月 (32)
- 2024年9月 (29)
- 2024年8月 (68)
- 2024年7月 (59)
- 2024年6月 (43)
- 2024年5月 (48)
- 2024年4月 (80)
- 2024年3月 (65)
- 2024年2月 (54)
- 2024年1月 (25)
- 2023年12月 (12)
- 2023年11月 (73)
- 2023年10月 (134)
- 2023年9月 (34)
- 2023年8月 (3)
- 2023年7月 (3)
- 2023年6月 (12)
- 2023年5月 (30)
- 2023年4月 (72)
- 2023年3月 (11)
- 2023年2月 (34)
- 2023年1月 (37)
- 2022年12月 (78)
- 2022年11月 (359)
- 2022年6月 (1193)
- 2022年5月 (570)
- 2022年4月 (1567)
- 2022年3月 (982)
- 2022年2月 (54)
- 2022年1月 (182)
- 2021年9月 (308)
- 2021年8月 (1704)
- 2021年7月 (2423)
- 2021年6月 (1806)
- 2021年5月 (1569)
- 2021年4月 (1380)
- 2021年3月 (1255)
- 2021年2月 (709)
- 2021年1月 (1521)
- 2020年12月 (3626)
- 2020年11月 (1646)
- 2020年10月 (1046)
- 2020年9月 (592)
- 最近发表
-
- 清远信息:2024年广清杯清远南粤家政技能大赛举行决赛|||计算机培训机构
- 汕尾信息:陈良川带队到汕尾技师学院调研|||计算机职业技能培训班
- 东莞信息:凤岗凤岗镇组织召开社保参保缴费及劳动用工政策宣讲会|||计算机软件培训学校
- 阳江信息:2024年度注册城乡规划师职业资格考试的合格标准是怎样的?|||计算机软件培训学校
- 阳江信息:职业技能提升补贴对象有哪些?|||大学生计算机培训学校
- 清远信息:清远市首家社保服务合作网点在清城区举办启动仪式|||计算机职业技能培训班
- 汕头信息:招聘658名中高端人才!2024年汕头市引进中高端人才专场招聘会举行|||北大青鸟计算机培训中心
- 东莞信息:广东省社保智能经办现场会在东莞召开|||大学生计算机培训学校
- 东莞信息:东坑镇举办2024年重点群体系列招聘活动|||计算机职业技能培训班
- 东莞信息:万江万江街道成功举办第四届粤菜师傅烹饪技能竞赛|||广州计算机编程培训