共计 3255 个字符,预计需要花费 9 分钟才能阅读完成。
首先我想说的是,对于想学好的编程的人来说,无论从哪一门语言开始动手,语言的自身其实并不是咱们最应该的关怀的,至多不是作为一个初学者首先关怀的。
也能够说开始让你感觉艰难的中央不肯定是语言的自身(如语法 syntax 等),而是整个 编程的思维和编程的构造。事实上你所学习的 python 语言的语法和操作方面,比起 c /c++ 和 java 等语言来说呢,算是对于初学编程的人来说绝对比较简单的入门的了。
01
了解什么是编程
在学习编程之前,你得 了解什么是编程,为什么咱们须要编程?
理解好了咱们要学习的对象咱们能力晓得从哪个方面下手把它学好。至于我本人的了解呢,广义上编程其实就是对于不同语言写出不同的代码(什么是编程?),而编程的目标就是通过编程语言来和计算机交换并且操控它为咱们工作,实现咱们须要的货色(算法 algorithm 等)(为什么咱们须要编程?)。
然而具体依据咱们须要实现什么来抉择编程语言,比方对于安卓来说,就是 java,xml 等,对于 ios 来说,就是 object c 之类的。因而正如我之前所形容的那样,编程语言是为咱们与计算机交换所服务的,就像咱们学习世界上某个国家的语言是为了与某个国家的人交换,而不是为了学某种语言而学习某种语言的,语言不是咱们学习编程的最终目标,恰好是开始!
02
如何学好编程
在理解了咱们为什么要须要编程当前呢,咱们再来探讨下该如何把它学好。
其实编程的入门呢,应该是一个学习编程思维,深刻了解什么是编程的一个过程。
而至于抉择什么语言呢最开始其实并不是那么重要,甚至能够使用伪代码来学习,然而为了不便初学者学习,能理论实现的语言更加可能让初学者了解编程。
这也就是说为什么大多数学校(至多是大多数美国 computer science(计算机科学)本科)的第一门课叫做 intro to computer science with XXX language(用 XXX 语言实现的计算机科学入门)。
再次不厌其烦的申明,这里的 with 也是阐明了前面的 xxx 语言是为了辅助咱们学习计算机科学入门的工具,计算机科学入门才是咱们的重点,而不是叫 XXX 语言课。
这里也不得不吐槽,一些国内的计算机培训机构为了能迅速造就程序员而专门宣扬某某语言强,而只专一于造就学生编程语言学习的自身。这样造就进去的只能是仿照别人的程序调用者,而不是本人已经心愿的计算机科学工作者。
03
编程入门干货
好了,说了这么多大话,上面来一些干货,让你对计算机科学入门可能快一点。
计算机科学入门的第一课除了我之前说的那些为什么要学编程,什么是编程的一些实践话以外,第一个理论的货色就是所有程序员都晓得的 Hello World(至多对于大多数状况下来说)。
在 python 中就是:
"print"Hello, World!"
在 java 就是:
public class ClassName {public static void main(String [] args) {System.out.print("Hello, World!");
}
}
在c++ 就是:
#include<iostream>
int main{
std::cout << "Hello, World!";
return 0;
}
这三个呢其实示意的都是同一个意思,就是通过零碎输入 string(一串字符串)
有输入就有输出,比方 input() (python), cin(c++)等。输出与输入是简直每一个编程语言都具备的,也是人与计算机交换最根底的伎俩之一。
而后个别就会开始 介绍数据类型 (data type),比方 int,double,long,boolean 等(在 python 中绝对简略,因为在定义变量(variable) 的时候零碎可能自动识别对变量的初始化值或者赋值值的数据类型)。
这里要强调尽管数据类型看起来很简略,然而咱们晓得无论人与人交换还是人与计算机交换,信息的替换是最根底的目标,而在计算机科学中信息的替换基于数据的替换,所以数据对于计算机科学非常重要。而随着今后的学习,要逐步把握并纯熟使用各数据类型,明确什么时候使用什么数据类型等。甚至今后还会学到抽象数据类型(abstract data type)。
紧接着就是学习一些 判断语句(if/else 语句,switch 语句等)和循环语句(while 循环, for 循环, do while 循环等),这外面呢波及一个非常重要的数据类型(boolean 布尔值),简略地就是对和错(true 和 false)。尽管 boolean 的基本概念很好了解,然而 boolean 是布尔代数的根底。
根底的布尔代数在离散数学中有所波及,所以这里强调一点,对于计算机科学学生或者想学好计算机来说,数学非常重要,尤其是离散数学。
不像很多大学对数学的淡薄态度,相同他们应该器重数学思维在计算机学习中的造就。离散数学是计算机科学的根底,微积分线性代数等是离散数学的根底,所以大学中所安顿的数学课程不应该受到学生和老师的漠视。在今后无论是数据结构还是算法的学习中,数学的根底都能很好的帮忙你学习好计算机科学。
随后就是 学习函数(function)的概念。函数实质上就是将咱们与计算机交换和操作的过程形象造成不便咱们屡次应用的一种办法,所以函数在编程中也叫办法(method)。能够使咱们在做雷同类型的操作的时候,可能有一个相似的办法来解决,而不是每次都反复输出大量的相似内容。
在计算机科学中,化繁为简是一个很好的习惯,而函数正是帮忙咱们简化程序的一个根底。函数通常由返回类型或者函数的数据类型(咱们心愿通过函数取得的),参数(咱们给予函数所需的),和函数的主体(函数是如何运作的)。
函数也恰好体现了人与计算机交换的一种路径,人给予函数参数,函数给予咱们返回值(或者有时函数是 void 类型,也就是不返回任何值,然而 void 通常也是会实现咱们须要的特定操作),也恰好是信息替换的一种办法。
04
对于面向对象编程
在学习 c ++ 的时候还会波及到指针(pointer)这个概念,这是在 c ++ 中一个很重要的概念,也当前须要留神的货色,等你本人学到就会明确。
在学习完我之前所提及的那些(尽管我没有全副具体波及)比拟根底的计算机编程的概念后,你就会波及OOP(object-oriented programming 面向对象的编程)。在高级编程语言中大量波及甚至是根底,也是今后的编程趋势。
实际上只使用之前所讲的货色进行编程的话,能够广义的成为面向过程的编程。实际上 OOP 是在函数之后,又一个简化咱们编程的一种伎俩,咱们将事件更加形象但更加不便。通过定义咱们本人的数据类型,建设对象(object)来实现对数据的治理和操作。
通过对象来和计算机进行深刻和有目的性的交换。面向对象编程的三大外围 (重要但不仅限于): 封装(encapsulation),继承(inheritance),多态(polymorphism)。封装就是把咱们定义的数据类型组装成一个整体,从而造成一个个可用的对象(有点像工厂流水线上的模具),继承就是取得某个或某些父类的一些个性在新的子类中使用(就如同子女从父母身上遗传的一些个性),多态就是实现咱们所规定的一些形象的能够使用或者从新定义的办法(简而言之就是一个事物能够在不同对象身上出现的多种状态)。
面向对象编程不仅简化不便了咱们的编程,同时爱护了数据在替换过程中的隐衷。相似 private 的,只能是本人对象能力晓得和领有(就如同本人的钱包只能本人掌控一样),相似 public 的,能够展现在 main 函数(主函数)中为其余数据所用。由此清晰地界定了数据的应用界线,也是编程历史上具备划时代意义的一个提高。
说了这么多,只是简略的形容了计算机的入门脉络,在当前还会学到数据结构(如何治理咱们的数据),以及算法等等。心愿能对你有所帮忙。
至于技巧,我感觉最重要的就是你学习编程的办法,也就是我反复强调的,不仅仅专一于编程语言的自身,而是要随着深刻地学习,一直把握和了解编程的次要思维。
最初,十分感谢您浏览我的文章!有任何问题能够后盾私信我,我都很乐意解答。