分享

作为一个程序员,怎样突破只会复制粘贴?

 昵称25832105 2017-11-24

首先我不知道我对你说的复制粘贴理解是不是正确的,我的理解是你每次遇到编程需求,主要是是靠找现有的程序代码进行一个改进,而不是自己独立进行代码的书写和调试优化。

在这种理解上,你对你使用的编程语言应该是有一定的基础了,至少是能看懂别人的代码,但离自己独立编写程序还有一定距离。我并不是计算机专业出生,但作为一个通信类的科研狗,接触过MATLAB,Python,C++,OC等方面的编程。算不上一个合格的码农,但对于基本的程序需求是可以应对逻辑关系而不参照别人的代码进行独立的编程实现的。根据我自己的经验给出一些建议,当然也希望专业人士批评指正。

1需求分析:在编程之前,你肯定已经知道自己到底要通过程序实现什么样的功能。各个功能之间存在什么样的逻辑关系,对于简单的编程,通常心里打个草稿就行了,而逻辑关系比较复杂的程序,比如你要用Xcode开发一个应用,APP通常存在一个功能之间的逻辑流转关系,我建议你把逻辑流程画成一个草稿。这时候你基本可以搭好程序的逻辑框架,接下来你只需要对各个逻辑模块具体的功能进行分析即可,也就是将功能细化成数学对应关系,比如功能是实现对输入与某一系列数据(比如字符串)的匹配,那此时可能需要遍历需要匹配的数据列表。这时候你就可以将遍历这一数学含义转化为一个循环函数段来实现,依次类推,基本可以将所有的要实现的功能转化为函数段,而且各个函数段的跳转关系则由你的逻辑关系草图连接,他们之间可能包含着更大的输入输出数学对应关系,也既一个函数的返回值可能用于另外的函数,他们之间可能存在着一对一或一对多的关系,此时可以通过一系列条件语句来实现。这样,你基本可以通过最基础的一些逻辑语句实现整个程序了,我的建议是一般最开始用你最先能想到的语句,也即简单的语句来实现,后期在调试通过后,可以通过不断用更高效的程序段来代替原有的代码来提高运行效率。此外,在这一阶段,最好能把每个函数段需要用到的数据类型,输入输出函数的数学表达形式弄清楚。

2代码书写:分析完功能,基本上对你所开发的程序有了个基本的设计,那么你现在可以开始着手写代码了,首先我比较偏爱使用终端和命令行还有快捷键来操作终端,我觉得这样比较高效,基本可以告别鼠标了。如下图,使用一些简单的命令可以选择你需要建立打开文件的路径,创建文件,打开文件等。图中是mac系统上的操作,Windows命令行和mac有一定区别,但这些基本都能在网上查到。

接下来你可以根据你设计的逻辑功能开始书写代码了,这里你有几个需要注意的事项,第一是代码的工整,作为一个编程渣,我习惯于把程序尽量写的美观好看,至少在各个功能段进行一个注释以便后期优化代码用。此外,对于缩进,建议用tab键(如果你看过《硅谷》这个美剧的话,应该记得很经典的一段,男主就因为程序员女朋友每次缩进都不听敲空格而和女票分手,当然他是完美主义强迫症,我仅仅是觉得用tab很好对齐,不用再去想你要空多少格)。各个逻辑函数建议单独书写,最后用主函数调用即可。

3程序调试和优化:我通常采用的是对各个函数功能先进行调试,给出输入后,验证输出结果,如果正确那么则可以跳过了,如果出现问题,则根据问题提示进行代码更改和查验,此时可以对代码进行逐条的验证,也既选择代码运行终止的位置。将各个函数功能调通后,就可以进行整个程序的调试了。通过前面细致的工作,主函数只要不太复杂,基本是不会出现问题的,运行成功,你的程序基本就完成了。但此时你通常会发现,程序运行时间较长,占用计算资源太多,计算方式比较复杂,那么此时你需要对代码进行进一步优化,代码的优化需要一定的专业知识和经验,比如循环转换为矩阵或序列的变换等等,此时,上网查找同类型代码阅读和学习可以对你进行提高,此时你已经不是复制和粘贴别人的代码了,而是学习别人的一些功能实现方法,在这一过程中,你可以积累很多知识储备,在下一次写代码的过程中,很多地方你就可以直接应用了。

你的问题其实还是有很多可以讲的,但是各自用的语言和平台不一,要针对一个例子进行举例可能不那么容易,因此我主要宽泛的谈了一下我的编程经验,希望对你有所帮助,除了这些,最重要的,你需要不断练习,实践才是最好的老师,从复制粘贴到独立开发,并不难,如果你是计算机专业的学生,可以从基础的作业开始,不参考别人代码的情况下,进行简单的功能实现,再慢慢向复杂的程序迈进,不久就能得到很大的提高。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多