① 怎么样才能成为一个软件工程师开发高手
信息技术的发展时间虽然不长,但其爆炸式的发展速度使信息技术迅速覆盖社会和人类生活的各个角落。程序员们是这场信息化浪潮的见证者之一,更是其中的主要参与者,这是时代赋予每个程序员的机会和责任。
信息技术的更新速度是惊人的,程序员的职业生涯则是一个要求不断学习的过程,永远不能固步自封。本人在工作期间曾看见过很多程序员只要有闲暇时间就浏览一些没有太大作用的网页,在网上聊天,打游戏,浪费了大量的时间,十分不可取。而另外一种情况是,IT技术的日新月异使很多程序员眼花缭乱,什么都想学,却又不知从何学起,今天看看这个,明天学学那个,贪多不熟。
虽然IT技术发展迅速,但很多技术都是有规律可循,一些基本的概念、原理和方法还很通用,可以举一反三。本人根据自己的体会和经验,向那些刚刚踏入IT行业的新程序员们或正在迷茫的程序员们推荐程序员必须掌握的七种武器,有了这七种武器,虽不敢说笑傲江湖,但将自己立于不败之地还是可以的。
第一种武器:开发工具
至少熟练掌握两到三种开发工具的使用,这是程序员的立身之本,其中C/C++和JAVA是我重点推荐的开发工具,C/C++以其高效率和高度的灵活性成为开发工具中的利器,很多系统级的软件还是用C/C++编写。而JAVA的跨平台和与WEB很好的结合是JAVA的优势所在,而本人对SUN公司的“网络即计算机”的概念相当欣赏,并相信JAVA即其相关的技术集JAVA One会成为未来的主流开发工具之一。其次,如果能掌握一种简便的可视化开发工具,如VB,PowerBuilder,Delphi,C++ Builder,则更好,这些开发工具减小了开发难度,并能够强化程序员对象模型的概念。另外,需要掌握基本的脚本语言,如shell,perl等,至少能读懂这些脚本代码。
第二种武器:数据库
为什么数据库是如此重要?很多应用程序都是以数据库的数据为中心,而数据库的产品也有不少,其中关系型数据库仍是主流形式,所以程序员至少熟练掌握一两种数据库,对关系型数据库的关键元素要非常清楚,要熟练掌握SQL的基本语法。虽然很多数据库产品提供了可视化的数据库管理工具,但SQL是基础,是通用的数据库操作方法。如果没有机会接触商业数据库系统,可以使用免费的数据库产品是一个不错的选择,如mySQL, Postgres等。
第三种武器:操作系统
当前主流的操作系统是Windows,Linux/Unix,熟练地使用这些操作系统是必须的,但只有这些还远远不够。要想成为一个真正的编程高手,需要深入了解操作系统,了解它的内存管理机制、进程/线程调度、信号、内核对象、系统调用、协议栈实现等。Linux作为开发源码的操作系统,是一个很好的学习平台,Linux几乎具备了所有现代操作系统的特征。虽然Windows系统的内核实现机制的资料较少,但通过互联网还是能获取不少资料。只有对操作系统有一定的了解后,你会发现自己上了一个新的台阶。
第四种武器:网络协议TCP/IP
在互联网如此普及的今天,如果您还没有对互联网的支撑协议TCP/IP协议栈有很好的掌握,就需要迅速补上这一课,网络技术已改变了软件运行的模式,从最早的客户/服务器结构,到今天的WEB Services,再到未来的网格计算,这一切都离不开以TCP/IP协议栈为基础的网络协议支持,所以,深入掌握TCP/IP协议是非常必要的。至少,你需要了解ISO七层协议模型,IP/UDP/TCP/HTTP等常用协议的原理和三次握手机制。
第五种武器:DCOM/CORBA/XML/WEB Services
随着技术的发展,软件与网络的无缝结合是必然趋势,软件系统的位置无关性是未来计算模式的重要特征之一,DCOM/CORBA是当前两大主流的分布计算的中间件平台,DCOM是微软COM(组件对象模型)的扩展,而CORBA是OMG支持的规范。程序员需要做的不仅仅是利用商业的开发平台来开发软件,而是要理解这些技术的初衷,即为什么需要这项技术,如果你能理解了这一点,再回头看这些技术的具体实现,就如庖丁解牛,迎刃而解。XML/WebServices重要性不言而喻,XML以其结构化的表示方法和超强的表达能力被喻为互联网上的“世界语”,是分布计算的基石之一。
第六种武器:软件工程与CMM
现代大型软件系统的开发中,工程化的开发控制取代个人英雄主义,成为软件系统成功的保证,一个编程高手并不一定是一个优秀的程序员,一个优秀的程序员是将出色的编程能力和开发技巧同严格的软件工程思想有机结合,编程只是软件生命周期中的其中一环,优秀的程序员应该掌握软件开发各个阶段的基本技能,如市场分析,可行性分析,需求分析,结构设计,详细设计,软件测试等。一句话可以概括我的看法:“创意无限,流程保证”。
第七种武器:强烈的好奇心
什么才是一个程序员的终极武器呢,那就是强烈的好奇心和学习精神。没有比强烈的好奇心和学习精神更好的武器了,它是程序员们永攀高峰的源泉和动力所在
② 我想从事软件行业,不知道该学什么
如果你想从事软件行业的话,以下我建议你可以学一下。
b/s架构
web前端 extjs+javascript+css+jquery
web后台 c#(asp.net、asp.net mvc、nhibernate、spring.net、linq这迟哪侍方面可能比较难一些,相对java较难,代码多,面向对象的)
java(spring、structs、hibernate,也是面向对象的)、j2EE,android(手机软件开发)
ruby(ruby on rails开源的东西,一般用linux开发)
数据库 SQL(存缓橘储过程,触发器、建表,数据优化很重要)、Oracle(大型项目用穿上)、mysql(如php、java,这些用mysql比较多)
我个人搞的是 C#这条道,因为它难。你自己觉的那些都挺好的,不过我觉得管用的主要是你学的C,因为在硬件方面很有用。具体的数据结构与算法、C++,这些主要是程序设计,以后估计如果从事软件开发的话,都不大会用到的。码吵MFC还可以,不过大多软件用B/S做比较多,C/S做比较少,待遇也可能低一点。
如果你想搞研究的话,silverlight、WPF和directX可以搞,如果是大学生的话,不建议搞这个。毕竟没有团队的话,个人搞这个很是吃力,代码承受能力也要相当高(silverlight我之前搞过,觉得它适合研究,不适合像你经常搞程序设计的人初探)。
③ 怎么样进入软件开发的行业
想必提到这样的问题,会有很多计算机专业的大学生不以为然.觉得自己在大学里所选的课程认真的学习,以后就业肯定是没有任何问题的,但是学生们往往忽略了实际的动手能力,在学校里总是一味的学习理论知识,但当真正的让他去自己做项目的时候,自己却“老虎吃天无从下口”,那么问题又出在什么地方呢?原因很简单,我个人认为,第一在大学里没有足够的时轿塌间去练习;第二知识的不系统化学习!这是现代大学生普遍的问题。那么等到大三,大四的时候才恍闭改圆然大悟的感觉自己好像还没有真正的入门。。。。。这个不以为怪,以下我把学习的一般流程整理如下,希望能对初入门的朋友有所帮助.1.最开始,当然是windows基本操作,办公自动化等软件。当然一般人都会,只是提一下.2.接下来学习一下网页三剑客这三款软件,对了,还有photoshop试着自己做一些简单的个人网页,FLASH
MTV等。这时的制作纯属爱好。3.等有上面的基础了呢,学习一下C语言,HTML等,了解一下编程到底是怎么回事,看自己有没有兴趣进入网站开发的这个行来中来。4.到这步时,刚正式进入到网站开发的行业中来了,可学习一下javavscript,asp,PHP,ASP.NET,JSP等动态网站开发语言。即可从事这个行业的工作了。5.如还想深入学习,即可研究一下,歼禅div+css布局,ajax,web2.0等技术,网站运营理念,seo等。6.接下来,还想深入的话,就只能在大型项目中实践了,如大型网站的架构,分析等。
那么简单的知识可以在课堂上学到,也很好理解,但像c#,
最后希望所有的学生能通过自己的实力找到好的工作!
西安通瀛软件实训机构助您成功!
④ 高中生如何才能学好软件开发
随着我国软件产业的中稿崛起,目前越来越多的软件公司拔地而起,造就了数十万计的软件人才缺碧迅口,因此学好软件开发,进入软件行业闯天地!成为众多电脑爱好者以及虽然没有基础但仍想进入IT行业的有志青年们的共同想法,那么如何学习软件开发?昌平镇IT培训学校选哪里呢?相信这也是很多人迫切想知道的一个问题。大家不要急,就让昌平镇北大青鸟老师为大家简单的介绍下。
要想进入IT行业,就必须拥有熟练的专业技术,要想有熟练的专业技术,首先得有扎实的基础打好基石,其次,在一边学习一边练习的过程中,还要经常了解专业方面的最新信息,学习最新的技术,最后,也是最重要的一点,就是实践经验必不可少。
想要入门软件行业其实并不难,难的是怎样把一门技术学好学精学实用,为了以后就业着想,在学习软件技术之前,应该事先了解清楚软件行业有哪些职位?以及这些职位需要什么技术?然后有针对性地学习以做好就业准备。
前面已经说过,软件行业入门容易学精难,因此选择一所好学校进行软件技能的学习是非常重要的事!如今大学计算机专业毕业生就业难的主要因素就在于悔培此高校教育重理论而轻实践,导致毕业生实践能力不过关,因此即使在IT行业如此缺人的情况下,高校计算机毕业生的就业率还是在一路下降,可见,IT行业就是个靠技能说话的地方。
⑤ 如何从零开始进入软件开发行业
零基础进入软件开发行业,首先你得学会一门编程语言,作为行业的敲门砖。目前的市场来看推荐学习Java或者Python。
在语言的学习上其实方法不少,但总体来说得结合你自身的状况来选择:
首先是报班,这也是最常见的选择了。报班之前应该多做功课,找到靠谱的培训机构,在老师的带领下可以比较系统的进行学习。
其次是进入公司进行培训,当然一般而言这对基础有一定的要求。不管什么时候,对于软件开发来说实战总是必不可少的,公司培训可以给你大量的实战机会,从而快速提升能力。
最后就是自学了,于初学者而言Python与Java的入门并不难。网上也有大量的书籍、教程提供学习,如果你是一个学习能力不错的人的话,这也不失为一个不错的选择。
⑥ 软件开发如何开始学习
想学软件开发怎么入手
企服网络·昨天
关注
学软件开发的入手途径有:1、开始自学软件编程课程;2、熟悉算法和数据结构;3、附加技能的学习;4、动手能力的培养。(1)开始自学软件编程课程:编程语言种类繁多,各有千秋,在学习之前需要明确自己要学习哪一门编程语言。确定之后需要制订一个合理的学习计划,并且持之以恒地执行学习计划。在学习过程中要养成良好的学习习惯。
想学软件开发怎么入手
企服解答
学软件开发的入手途径有:1、开始自学软件编程课程;2、熟悉算法和数据结构;3、附加技能的学习;4、动手能力的培养。
1、开始自学软件编程课程
编程语言种类繁多,各有千秋,在学习之前需要明确自己要学习哪一门编程语言。确定之后需要制订一个合理的学习计划,并且持之以恒地执行学习计划。在学习过程中要养成良好的学习习惯。
不爱研究、坐不住,但凡三天打鱼两天晒网,或者对计算机不喜欢等一类人不适合学习编程,哪怕一时努力,最后也不是结不了业,就是功败垂成,难以在这条路上走远。编程入门点是兴趣。兴趣是学习的最大动力源。需要有恒心有耐心,进入这个行业并不难,就算你没有基础和经验,也是可以学好的。那些创造编程语言的人,创造计算机的人也都是从零开始的。他们也是在不断揣摩、不断学习和实践之火才获得成果。没有一个技术大牛是从一开始就什么都会的,都是从什么也不会开始的。只需你有兴趣而且肯努力,可能慢慢就会发现学习软件开发也没有想象中的那么难。
2、熟悉算法和数据结构
如果你上传统院校学习并想获得计算机科学学位的话,那么这是一个很大的考点。算法是解决各种计算机科学/编程问题的常用方法。例如,有若干常见的在程序上用于排序的算法。每一种排序算法都有一系列关于速度,内存大小要求,以及数据理想类型的不同属性。计算机科学领域有很多这样的算法,并且理解如何变化这些算法来解决你可能遇到的棘手问题也很重要,当你解决现实编程问题的时候。通常情况下,擅长这些算法可以让一个开发人员在1个小时之内就能解决可能需要另一个开发人员几天时间才能搞清楚的问题。
3、附加技能的学习
前面说了软件开发涉及到一种逻辑思维,那么必定要学习一些数学知识,学会数学公式的运算。软件开发行业是特别注重效率的,假如你编写的某个功能的逻辑不是很清楚,可能整个项目都会绕一个很大的圈子,这样的代码存在许多冗余成分,浪费很多时间,所以要懂得培养自己必定的逻辑思维。其次就是英语的学习了,虽然学软件开发不需要有很强的英语能力,但有必定的英语才能的话,更加有利于自己往更深邃的技术发展。
4、动手能力的培养
作为一个程序员动手能力是非常重要的,你学习的各个知识点和思维都自己去开发操练才能稳固,作为老师最怕的学生就是他们只停留在书本或许课堂上的了解,而自己不去实实在在的把它完成出来,着手做的过程中你会不断发现问题,然后自己去解决问题,这样你才能成为一个真正的高手。也要学会找到有效的学习办法,这样学起来会如鱼得水的。可以先看视频学习,学起来就比曾经看书快许多,并且也更简略,觉得自己掌握了一定的知识后,可以尝试做项目,从小项目开始练手到商业项目实战,懂得实操的软件开发工程师才是企业真正喜欢的。
⑦ 零基础怎么进入IT行业
先回答你的问题。
第一,零基础入行IT的方式有两个:自学or培训机构
第二,不是只有计算机专业相关的才能当程序员,每年有无数非科班的同学进入了IT这个行业
第三,不靠谱的培训机构确实有,但是也有靠谱的认真做培训的机构,需要你自己去分辨
第四,难不难看你的学习能力以及选择入行的岗位。如果你选开发的话,那肯定是相对比较难的。如果你选软件测试的话,会比开发好上手。入行IT选岗,摊开说的话是一个非常大的问题。
跟你细聊这几个个问题
IT行业都有哪些岗位可以选择,难度怎么样?
软件测试行业的前景怎么样?
自学or找培训机构?
如何筛选培训机构?
IT行业都有哪些岗位可以选择,难度怎么样?
一个产品从想法到上线,大概经过这些流程
自学or找培训机构?
自学还是找培训机构?在做一个选择之前,要确保自己对每个选择的优劣和结果分析透彻。霸哥在这里分析一下二者的优劣
自学
优势
省钱
好像没了..?
劣势
学习周期与自控力和学习能力挂钩(时间成本)
学习质量待定(技能质量)
资料来源是否最新
无法获取真实的项目经验
结果
完全ok,正常入职
资料太陈旧,所学技能不是企业需要的,无法入职
零基础自学体系掌握不够,有可能入职但工作非常吃力
企业所需技能没有学到,无法入职
自学没有项目经验,拿不到名企offer
培训机构
优势
培训机构有成熟的教学体系,课程以企业需求为导向设计
与企业有项目合作可以直接上手
有资深老师随时为你解答疑难
有志同道合的同伴一起加油鼓气
有合理的课程安排
有就业老师为你辅导面试
你可能会觉得我干这行的,所以夸这行。并不是的,我们培训机构就是吃这碗饭的,如果教的东西企业用不上,那么学生就找不到好工作,就业率低培训机构的口碑就差,那就没人再来学了,那我们就开不下去了。
教学质量是一个培训机构最基本的竞争力。
当然有部分同行愿意把钱和精力放在广告推广上,也能收获一大波学生,结果教出来不行,搞得现在很多人对培训机构非常反感。所以就需要你去好好筛选一些机构。
劣势
花费高,基本都是1.7w-2w
选错机构会造成钱和时间的双重损失
线下需要你去脱产学习,三四个月没有收入
怎么说呢,零基础我是建议你去线下培训,不要去听什么录播课的,本身就是从零开始的,就学扎实点,霸哥这边目前的时间安排是,早上九点到下午六点上课 ,六点半到八点晚自习。除了吃饭时间都在学习,持续三个半月,最后半个月辅导简历、模拟面试、找工作。中间有事情要请假,不能迟到早退,基本上氛围就跟高考一样。
花费高,这点确实是培训机构一个很大的劣势,有很多同学也是被高昂的费用劝退的。选错机构造成的影响更大,浪费时间浪费经济,这个你也懂。
综上,霸哥有一些建议
211,985的同学 建议先自学,根据情况考虑要不要培训
专科,双非,跨行,脱离学习很久的同学 建议直接找培训机构,就不要浪费时间学习了
那么,如何筛选培训机构?
1、选小班 20人以下的小班,学习消化吸收、答疑能由授课讲师关注解决,而不是更多交给技术辅导、助教人员。
2、慎选老牌机构,品牌大不一定课程就是最好的,越老的机构也有意味着课程内容更新慢,里面的大部分讲师脱离一线企业太久,和现在测试岗位的技能需求相差也会较大。
3、看课程中实战项目授课的方法模式,以及有哪些项目,主流软件产品、互联网产品项目都需要有所覆盖,提高就业时的公司选择面。
4、一定要上门试听,一般机构都是可以免费试听7天的。试听目的是感受一下机构授课模式、讲师授课风格,同时也可以向班级里其他学员打听一下反馈。
5、最后比较价格,软件测试培训超过2万的就不要去了,不值得。
全文手打,霸哥写了一早上,点个赞鼓励一下,希望可以帮到你。有什么问题你还可以评论或者私信我。
⑧ 想从事IT行业,怎么开始呢
IT行业总体来说分为三个方面
1.网络
2.软件
3.集成电路
如果您希望进入IT行业,那么您先要确定进入这三个方面中的一个。
三咐掘个方面的就业方向:
1.集成电路方向,这是一个非常专业的方向,需要求职者有很强的专业知识,这些专业知识很能通过培训来补充,需要很好的类似于大学教育的培养;这类人才就业面很窄,但如果就业了,其薪水很高(当然要看企业的情况)
2.软件方向,这个方面比集成电路设计在专业上相对宽一些,一个好的软件工程师,也需要有扎实的数学基础。常规的培训可以使一个没有软件基础的人成为一个软件蓝领,但要成为软件设计人员,还是需要相当的工作与学习时间;这类人才大多就业于软件企业;
3.网络方向,这个方面涉及的面就比前两者宽得多,通过培训可能从一个对网络技术不了解的人逐步成为网络的工程师,因为网络技术是一种更偏向于操作的技术。在就业面也宽得多,因为信息化是一个全社会的工程,政府、企业都在进行信息化,都需要在网络方面寻找合适的人才进行其网络系统的运行、管理、维护。
而不同网络工程师却是各行各业所需要的。
什么是网络工程师,我们可以从企业信息化的岗位体系中作一些了解。企业(或政府)信息化过程中需要以下四种人:
1.企业信息化主管:负责信息化建设中的目标与方案决策,信息化建设中的方向研究;
2.工程技术人员:负责信息化系统的设计、建设,包括设备、系统、数据库、应用系统的建设;
3.运行维护人员:负责信息化系统的运行、维护、管理以及基本的开发;
4.操作应用人员:主要应用信息化系悄纤统进行本职工作。
在企业信息化建设运行的过程来看,一个企业会把建设过程以外包方式交给专业的IT公司来完成,于是一般一个企业不会有IT系统的工程技术人员,可以说IT系统的工程技术人员都集中于专业的IT公司;而当信息化系统建成后,企业一般会有一个人,或一个组来负责信息化系统的运行、维护、管理,这部份人是企业必配的,而且从成本角度来看,企业会衡运核招聘一个对网络设备、网络系统、数据库、网络管理、网络安全以及基本网络开发都有所了解的人来负责其信息化系统,这类人一般叫网管。这类人的知识是水平性的,多方面的,但不是特别专业的。如果当企业真正遇到非常专业的技术问题,一般会让这个网管带着问题咨询专业的IT公司。
因此从这个角度来看,网络工程师的就业面会远大于其它两类工程师。
那现在社会中有很多称呼为网络工程师的认证培训或培训认证,我们如何来选择呢,我们可以网络技术的系统来分析与了解:
1.网络设备技术,这主要涉及网络的硬件建设,包括路由器、交换机、组局网、广网,这方面有代表性的是CISCO、NORTEL;
2.网络操作系统,这主要涉及操作系统的系统管理与网络管理,这方向有代表性的是WINDOWS 2000、UNIX、LINUX等;
3.网络数据库,这主要涉及应用于网络的数据库,这方面有代表性的是SQL和ORACLE等;
4.网络安全,大家不应把网络安全片面的想成对操作系统、应用系统的安全,其实安全问题在网络的各方面都存在,在这方面国内还没有出现比较好、比较全面的认证;
5.网络管理,这涉及一个局网、广网的综合管理、优化、计费等等,也没有一个综合性的认证;
6.网络应用开发,企业的网站的基本开发、互动性开发,技术有ASP等等。
这六个方面都是企业信息化必备的因素,所以大家如果要补充自己的知识,可以从这六个方面去补充,自己还要作一个定位,是成为一个全面性的人员,还是专业性的人员。
⑨ 零基础如何通过学习进入软件测试行业
小编看到很多人问“零基础、没有接触过IT行业、想进入软件测试行业工作、要如何通过学习进入这一行业呢肢携?了解了一些培训机构,该如何选择合适的培训机构,是否有必要?通过自学的途径可以吗?”这一类的问题。
首先呢,学习一门课程不用在乎你得背景,背景也许决定了起跑线在哪儿,但是决定不了你跑得多快。
其次培训机构不能一棒子打死,很多朋友都喜欢骂培训机构,而且还满大网络到处骂,我估计是被伤的很深很深,我觉得骂的挺好的,如果机构欺骗了你,乱给你承诺了又不能给你兑现承诺,那就应该骂,理解这种心情。但是好的培训机构是存在的。深圳很多机构都有学完没有就业的去海枫拿饥数继续实训,但是从来没有听说过有海枫的学完不能就业,除非个别人生病或学完不配合处于失联当中,所以有时候我觉得机构还是有存在的价值的。收获和你得付出是会成正比的。
个人觉得自学得途径基本上在当初得年代管用,但是现在得时代已经没有用了。现在得竞争已经白热化了,越来越程激烈了。
以下是我得建议:1.首先想清楚你为什么要学习软件测试,或者说为什么要做软件测试?因为有很多人做了一段时间之后依然决定要转行做别得,与其之后转头,不如现在想清楚。2.当然你也许会说,我就因为不了解才到这里来问,我就是因为不了解我怎么想清楚呢?那么我建议就是你尽快去找一份测试相关得实习也好,工作也罢。不管公司大小,先做了再说,同时自己多和一些专业人士交流交流,看看软件测试得书,比如微软,google等测试之道啥得3.如果你要做测试。对于软件工程和编程能力得要求现在也消首越来越高,不能忘记学习这些4.测试需要合理得安排自己得时间。所以成功人士得7个习惯你也要看
其他其实还有很多,我就不一一说了。总结来讲,先做再想。具体问题具体分析。但是不管如何,要尽快得想清楚自己选择软件测试得原因,否则将来最大得敌人就是你自己。
⑩ 高中生想成为JAVA软件编程高手要怎样做
高中生如何成为JAVA软件编程高手?做为一名高亮派中生,以前从未接触过计算机JAVA软件编程的内容,以前在学校时除了铺天盖地的试卷,就还是试卷,几乎很少接触到计算机软件编程的内铅键行容。高中毕业后落榜了,孩子们都想拥有一个好的出路,想学习一门专业的技术,那么高中生怎么样才能学好软件开发技术呢?其实成为编程高手没有捷径,多么简单的一句话啊,但是有多少人能够了解它呢。关键是你知道怎样才能成为真正的编程高手吗?
北大青鸟java课程软件工程师课程,专门针对高中生开设,零基础学习,把高中生培养成高薪的软件工程师人才。学校以企业真实项目实训的方式培养学员软件开发技术,提升学员学习兴趣,增强学员项目开发经验,引领学员轻松踏入IT行业。入学即签订就业协议,让中等及以上学历者经过一年的努力实现软件工程师梦想!
北大青鸟针对学员如何成为JAVA软件编程高手,总结了一些经验,供学员参考。
1.一门语言的语法,SDK的常用API,算法与数据结构有了上面的知识,再加上一点实践,再从网上找一些笔试题做几套,基本可以过笔试这一关。
2.编码规范、高性能编码经验技巧。要成为一个职业化的、专业化的程序员,首先要养成良好的习惯,良好的习惯从规范化的点滴日常工作开始。
3.熟练掌握IDE、常用工具的使用工具可以提高生产力,用一把小刀去砍树很困难,用电锯立刻变得很简单。
4.面向对象的原则。这里重点掌握面向对象的原则,比如:单一职责原则SRP、开放-封闭原则、替换原则LSP、依赖倒置原则DIP等,明白了这些原则,对后面内容理解的深入会有很大的帮助。其实这才是根本,不了解这些原则去学设计模式有种空中楼阁、头重脚轻的感觉。根基不牢上层建筑就好像浮云一样。
5.重构。重构就是在不改变软件功能的前提下改善代码的设计以提高可维护性。修改别人的代码或者优化自己的代码都需要用到重构技术。
6.设计模式。基于一些常用的模式来学习如何使用设计槐哗模式。设计模式对于做框架开发的程序员比较有帮助。我们会选择一些常用的来讲解。
7.最重要、最难,看上去却最简单的功夫:修改代码的艺术。对公司来讲,一个没经验的人修改了一个bug,可能会引出几个问题,然后再去修改,如此恶性循环。对于员工来讲,赶鸭子上架,不了解代码的逻辑、针对表象简单粗暴的修改,有时我看了真的很是心痛。对程序员本身的能力提高也是缓慢的。其实修改别人的代码开始是功夫,之后就是艺术。就好像你要给一个人治病,你要成为医生,先要掌握人体基本结构、各个脏器的特点、各种药物的功能、常用的诊治方法等等,医院不会让一个医学院毕业的学生去给病人看病,总要有段实习,由经验丰富的医生带一段时间。然后从难度较低的做起。
8.架构设计。架构设计在程序设计中是相当关键的一步,需不断摸索和研究,总结出自己的方法。
9.软件工程。开发软件的过程,我经历过公司从CMM到敏捷的转变,我个人是比较推崇敏捷开发的,这里想与大家站在工程的角度聊一聊软件开发。
10.质量管理。越往后其实越偏向管理了,开始是个人修炼,后面是站在组织、站在公司的角度来看软件。质量是说得多、做得少,尤其在软件领域,我一直觉得很邪门的事情是不懂软件开发的人甚至被淘汰出去的人去从事软件行业的质量管理,真是令人担忧。质量管理中有很多很好的理论和工具,是值得我们学习的,不只可以应用到软件开发上,生活中也很有用的。