欢迎光临散文网 会员登陆 & 注册

【深夜闲谈】我对程序设计的理解

2023-04-12 00:10 作者:MRSlouu  | 我要投稿

(依依依旧是不计入更新范围,写完感觉自己说的其实都是废话awa)

本专栏观点仅代表个人观点,如有异议欢迎提出

很多人对编程有刻板印象,认为这是一门非常高深,晦涩的学科,其实不然。编程很累似于写作文,作文简单来说就是依照一定的句式,加上逻辑关系拼凑出来的。代码也是由一个个关键字和变量套用逻辑结构所组成的一种文本,两者有很多相似的地方。 也有不少人认为学编程需要好的英语水平。其实我觉得并没有必然关系,英语好可以让你学习编程的时候更轻松一点,更容易记住一些代码,但是不会英语也并不会让你学习写代码,记不住只是你的努力不够罢了。 程序设计是什么

从结构上讲程序设计可以拆分成两大块:语言实现+结构和算法。 语言实现

语言实现也即我们常说的编程语言,即可以通过编译器转换成机器码执行的代码。现在主流的编程语言有C,C++,C#,JAVA,Python,JavaScript,HTML,PHP等,除此之外还有很多编程语言,这里不再一一列举。当然这是比较狭义的编程。 想学习一门语言首先我们需要知道学的目的是什么。每门语言都有自己的特色,用途和优缺点,网上资料很多,这里就不赘述如何选择了,并且懂得如何选择自己所需要的语言也是一门学问。 除了语言的用途外,现实方面的目的也需要考虑。比如如果你是因为兴趣而学习的编程,那么所有语言都欢迎你,可以随便去学习自己喜欢的语言。如果是为了将来的就业或者赚钱,那么尽量选择前景好,热门一点的语言,比如Python(深度学习,大数据,后端,爬虫),Go(网络应用),C++(大型应用开发,游戏开发,套件开发等),C(嵌入式)等等。不过首要原则还是根据自己的实力量力而行。 关于JAVA web:是一个很火爆的就业方向,但我个人不太建议,因为比较看学历,并且非常的卷。 每一门编程语言的难度与学习曲线也是有很大不同,要懂得灵活变通,根据自己的学习能力规划学习方法。简单的语言如Python,难一点的如C++,两者学习方法不可一概而论。 另外就我个人建议来说,应该先学POP再学OOP语言。POP有助于理解编程的逻辑过程,而OOP更方便开发。(*POP:面向过程编程,OOP:面向对象编程) 最后一点,上面所说的都是狭义的编程语言,广义一点的话诸如SQL(*数据库操作语句),SHELL(*命令行脚本)一类的代码也是算做编程语言的 结构和算法

也即常说的数据结构与算法,简单来说是组织程序的方式,好的程序应该具有体积小,运行快的优点,而结构和算法即为此而生。 也许有人会说:我也没学过数据结构啊,照样能写出代码。不可否认的是,即使没有学过数据结构也能写出不错的代码,但是很多人并没有想过为什么。造成这种现象主要有两个原因:①现在的很多开发都是基于已有的轮子进行的(*轮子:编程领域指已经由其他人编写好的功能代码,可以直接使用),尤其是有大量第三方库和带OOP特性的语言,比如JAVA和Python,其实你追溯这些语言的源代码,都使用了大量数据结构和算法的知识(比如Python的list类型的sort,JAVA的hashmap)。②项目体积小/对程序效率要求不大/现代CPU性能远超程序需求。其实像我学习算法就是为了程序“好看”,即简单明了,可以简化很多代码。而程序效率差异只要不是太大的项目与CPU密集型运算,不同算法的差异人类一般都分辨不出。 那到底有没有必要学习呢?因人而异。如果你只是按照兴趣去学学编程,那就看自己需求来决定。如果是职业化,强烈建议学习,因为无论是考研亦或是招聘基本都是必需的。另外学好这个也能很大的提升你的编程思维。 程序设计的类型

为目的的我按照自己的理解把程序设计分成了以下几类(不是很专业,请见谅) ①网络开发:基于互联网进行的程序开发,范围很广。比如web开发(前后端),爬虫与数据分析,大数据计算,服务器运维等 ②硬件开发:将硬件交互作为目的的程序开发,比如嵌入式。 ③桌面应用开发:以与PC机交互为目的的程序开发。比如QT应用开发,游戏开发,WPA开发等等 ④移动式应用开发:以与移动式终端进行交互的应用开发。比如Android开发,iOS开发等。 ⑤工具类开发:用于方便人类进行某种活动的开发。如matlab,shell等。 ⑥依赖性开发:以某个成熟软件为依托的开发。如idea插件开发,模组开发等 ⑦智能开发:为避免重复性劳动或人力资源不足而出现替代人类的开发。比如深度学习,机器学习,人工智能,机器人等。 学程序设计有什么好处

直接点的目的就是可以多一项技能,以后多一个就业/赚钱的机会。除此以外还有加强逻辑思维,为日常生活提供便利等目的。 如何学习程序设计?

首先一点要求就是要有恒心和良好的心态。有恒心是为了一学到底,而不是学了一点就不学了中途废弃。良好的心态是程序出错时能静下心来寻找错误原因,而不是到处抱怨。 其次建议先学入门快的语言,比如C(PS:不是很推荐Python,因为它的语法比较特立独行,先学的话会难以适应其他语言语法) 还需要具有自我学习和探究的能力,多去网上搜搜资料,不会的地方先去自己查资料,然后再去问会的人。

最后祝大家能在自己擅长的领域取得成绩! (吐槽:这个文章改来改去,写了三个晚上,终于结束了)

【深夜闲谈】我对程序设计的理解的评论 (共 条)

分享到微博请遵守国家法律