`
H小阿飞
  • 浏览: 281210 次
  • 性别: Icon_minigender_1
  • 来自: 南通
社区版块
存档分类
最新评论

技术初学者如何快速成长

 
阅读更多

 作为一个软件设计与开发人员,首先只有懂得去与别人分享,才能提高自己

 最近在熟悉新公司的核心框架,在熟悉的过程中有了如下感想

熟悉框架感想:

   当去看别人写的一个框架代码时,如果没有相关的框架设计开发文档和交接人员讲解时

第一步:

要能根据开发出来的框架产品(可运行看得出的产品),找出框架中每个功能模块对应的实现代码大概位置。

第二步:

找出对应的功能实现模块代码后,要能看懂代码意思,知道实现逻辑,理解开发人员对该模块的实现思路。在看代码的时候,要去揣摩框架开发人员的想法,心里要一直带着为什么他要这么去设计,这么去写代码。我想框架开发人员写的每一行代码,都有他自己的用意与代码本身的含义,所以你想真正掌握该模块的实现方式,你就要能完全掌握框架开发人员实现该模块的具体思路与每行代码的真正意思(即这行代码起到什么作用)。

第三步:

在掌握了每个模块的实现思路与具体实现功能后,我们要具备“反编译”的能力,即根据代码能了解它的业务。

 

在看别人的代码的时候,要注意的:

首先要仔细看每行代码,每一个定义的变量参数和引用的方法,它们的存在与引用,都应该有框架设计开发人员认为存在的意义。我们要能去掌握了解,不要只停留在实现方法表面,要能深入到每个方法的具体实现。有时,可能框架设计开发人员的代码有所冗余,或者说不是很完善,我们要能看得出来,要能去修改。

 

一个框架正如一栋房子的框架,每个功能模块,正如每个不同的房间

 

看别人框架的初步结果:

这个时候是要能进入这栋房子,了解每个房间的细节,身处在房子内

要通篇掌握整个框架的功能模块的工作流程与机制,掌握其功能的具体实现细节与步骤流程,当让你去修改某个功能细节时,要能去修改。

 

看别人框架的最终结果:

此时你是能做到随便出入该栋房子,身出其外,就能了解其架构

能通过看了这栋房子,了解了房子内的每个框架横梁,主架的走向,掌握了该设计者的思想。如果让你去重新设计一个类似它的框架,你要能有他的思路,取之优点,去之缺点,加以完善。

 

做软件开发个人觉得想要发展得快而好,技术要加强,这是前提也是最基本的,这个大家都能意识到,但是还有一点其实是比较重要的,就是要学会总结。技术是永远都学不完的,要学会去总结自己掌握的技术,需要有灵活的思想。

同时做开发还要有很强的举一反三的能力,看别人代码时,首先要能看懂,看懂之后,就是要能修改(要有自己的想法,如果我改成那样呢?能不能实现,如果你能修改实现了,那你才能真正掌握了别人的技术)

总之就是,在看别人代码时,要带着疑问去看,看的时候要思考,要想着我是否能把他的代码修改成我自己想要的那样,并着手去修改,变成自己的,这样一个开发人员才能迅速的成长起来。写文档、总结,其实也是一个开发人员对自己所掌握的技术与知识的一个总结和回顾,对于自身的发展和提高是有很多益处的。

最后补充一点,一个软件开发初学者,在学习过程中,肯定会遇到很多问题,当遇到不理解的问题的时候,不要立马急于就去向经验丰富的员工请教,要学会自己去上网查阅找答案,在查找的过程中,你会不经意的学到更多技术知识。我记得我当初刚学软件开发技术的时候,一个经验丰富的老员工就跟我讲过一句话,他讲一个开发人员的技术能力就是其google搜索的能力,其实这个也是有一定道理的。总之,做软件开发,遇到难题时,要学会有独立的思考并解决问题的能力。

 

分享到:
评论

相关推荐

    js技术文档,适合js初学者快速入门

    本技术文档专为JavaScript初学者设计,旨在帮助快速入门并深入理解JS的核心概念。 一、基础语法 JavaScript的基础语法包括变量声明(var、let、const)、数据类型(如字符串、数字、布尔值、null、undefined、对象...

    个人初学者网站

    总之,"个人初学者网站"是一个针对VS2005的初学者教程平台,涵盖了Web开发的基本概念、技术以及实践应用,旨在帮助初学者快速入门并掌握Web应用程序的开发。通过深入学习和实践,初学者可以逐步成长为熟练的Web...

    初学者很好的安卓源码

    通过这个"初学者很好的安卓源码"项目,初学者不仅可以掌握基础的安卓编程技术,还能对安卓系统的传感器使用有深入的理解。在实践中不断学习和积累,将有助于你逐步成长为一名优秀的安卓开发者。

    从51初学者到电子工程师.pdf

    在电子工程领域,从一名初学者成长为一位专业工程师的道路充满挑战与机遇。本篇旨在深入解析“从51初学者到电子工程师”这一主题,提炼关键知识点,帮助读者理解电子工程师的核心技能与职业发展路径。 ### 核心知识...

    VC资源合集,适合初学者

    《VC资源合集》是一个专为初学者设计的宝贵学习资料包,涵盖了多个关于Visual C++ 6.0及其相关技术的重要主题。这个合集旨在帮助新手快速掌握C++编程,特别是利用Microsoft Foundation Classes (MFC) 库进行开发。 ...

    GIS初学者第一期

    综上所述,《GIS初学者》不仅仅是一本普通的杂志,它为GIS领域的学习者提供了一个全方位的支持平台,涵盖了从理论基础到实践应用的各个方面,旨在帮助GIS新手快速成长,同时也促进了GIS社区的整体发展。

    为初学者练习一些C语言C-Primer-plus练习,从初学者到初学者.zip

    此外,学习者还可以参加一些编程论坛和社区,与其他学习者交流经验和问题,这有助于学习者快速成长。 为了更深入地掌握C语言,学习者应该尝试解决一些实际问题,比如数据处理、算法实现等。通过实际项目来应用所学...

    单片机初学者必读 值得一看

    ### 单片机初学者必读知识点详析 #### 一、选择合适的单片机系列 对于初学者来说,选择适合自己的单片机系列是非常重要的一步。...希望每位初学者都能找到适合自己的学习方法,逐步成长为优秀的单片机工程师。

    初学者必备资源:城市环境要素分割.zip

    城市环境要素分割是城市规划、地理信息系统(GIS)...本资源包旨在为城市环境要素分割领域的初学者提供全方位的学习资源,帮助他们建立起扎实的理论基础和实践能力,从而快速成长为能够独立进行城市环境研究的专家。

    C#与Halcon联合开发:易学易用的通用视觉框架,C#联合halcon开发的通用视觉框架,可供初学者使用 ,C#联合Halcon; 通用视觉框架; 初学者使用; 核心关键词 ,"C#与Halcon结

    在当今科技迅猛发展的大背景下,软件开发尤其是图像处理领域正变得越来越复杂。然而,对于初学者来说,掌握这些高深技术并非易...它能够帮助初学者快速成长为熟练的机器视觉开发者,进而推动整个行业的技术进步与创新。

    Java后端知识图谱,帮助Java初学者成长

    对于Java初学者来说,构建一个全面的知识图谱是非常有必要的,可以帮助他们系统地理解和掌握这一领域的核心概念及技能。下面将根据提供的标题、描述以及文件名,详细阐述Java后端开发中的关键知识点。 首先,Java...

    DONET学习资料适合初学者

    描述中的“讲解的比较浅显易懂”意味着这些资料可能采用了易于理解的方式,避免了过于复杂的技术术语,有助于初学者快速上手。 【标签】:“DONET ASP 学习资料” ASP.NET是.NET框架的一部分,专门用于构建动态...

    java初学者教程(ppt)

    通过这样的方式,初学者可以快速地了解Java的基本结构和运行机制,为进一步学习Java的各种高级特性和框架奠定坚实的基础。随着学习的深入,读者将接触到类、对象、继承、接口、异常处理、集合框架、IO流、多线程等...

    Java初学者网盘资源

    根据提供的文件信息,我们可以归纳出一系列与“Java初学者网盘资源”相关的知识点。...通过合理利用这些资源,并结合自身的努力,相信每位初学者都能顺利踏入Java编程的大门,并逐步成长为一名合格的程序员。

    简单逆向程序分析,永于初学者分析

    这种实战演练对于提升逆向工程技能具有极高的价值,因为它让初学者能够在模拟的真实环境中学习和成长。 《简单逆向程序分析,永于初学者分析》及配套文章和练习文件,共同构建了一个初学者逆向工程的学习平台,旨在...

    从单片机初学者迈向单片机工程师

    它简单易懂,可以帮助初学者快速理解单片机如何控制硬件。LED的点亮与熄灭,实际上就是单片机I/O口电平的高低变化。在51内核的单片机中,我们通常使用C语言进行编程,因为C语言具有高效、结构清晰和代码复用率高等...

    oracle9i初学者入门教程下载

    本教程旨在为初学者提供一个全面的Oracle 9i学习指南,帮助他们理解数据库的基本概念,掌握数据库管理系统的使用,并逐步成长为熟练的Oracle DBA(数据库管理员)。 首先,我们需要了解Oracle数据库的基础知识。...

    基于Matlab的车型识别程序:小波与盒维数算法实践,带GUI界面与图片资源,助力初学者成长,基于Matlab的车型识别:本程序是基于小波和盒维数的车型识别程序,可以选择不同车型,有GUI界面,有图片

    本车型识别程序是针对初学者设计的,它通过结合小波变换和盒维数算法,并提供GUI界面和丰富的图片资源,不仅能够帮助初学者快速入门,还能够让他们在实际操作中深化对理论知识的理解,从而在学习过程中取得实质性的...

Global site tag (gtag.js) - Google Analytics