怎么学一门编程语言(学一门编程语言最好的方法)
怎么学编程
学习编程的方法:
1、选择一门编程语言。
虽然目前编程语言有600种左右,但是比较流行的编程语言只有几十种,所以尽量选择流行程度比较高的编程语言来入门编程。对于没有明确编程场景的初学者来说,尽量选择全场景编程语言,比如Java、Python、C#等就是不错的选择,不仅应用范围广泛,而且也有大量的开发案例可以参考学习。
2、建立基本的编程思想。
编程语言本身的难度并不高,只要掌握了相应的编程规则就能逐渐建立起自己的编程思想。建立编程思想的第一步是了解编程语言的基本语法规则,以Java语言为例,要掌握各种抽象概念,比如类、对象、属性、方法等;第二步是了解基本的编程过程,比如类的定义、对象的创建、方法的调用;第三步是学习经典的编程模式。
3、注重实验。
学习编程语言一定要重视实验,实验不仅能够帮助理解各种抽象概念,也能在一定程度上积累编程经验。
4、学习相关知识。
在学习编程语言的过程中,也需要同时学习计算机网络、数据库等相关知识,在当前的云计算和大数据时代背景下,还需要掌握如何通过云计算(PaaS)来辅助开发,以及如何利用大数据平台的各种资源。
学习编程的技巧?
1、寻求帮助
崭新的眼睛或对主题的新解释可以迅速缓解似乎无法解决的错误或主题。无论是在线的还是面对面的,都不要理会巨魔,也不要害怕寻求帮助,因为每个程序员都曾在这里工作。此外,大多数开发人员都喜欢编码,如果有个人热爱的事物,那就是与他人分享他们的知识。
2、寻找更多的在线资源
如果某个特定的概念没有意义,则可以在教科书中或在课堂上讲课时保持自信,并寻找其他在线资源来学习相同的内容。每个人的学习方式都不一样,仅仅因为一个来源没有道理,并不意味着您有什么问题。
这意味着您无需单击材料的交付,用于学习计算机编程的在线资源无穷无尽,并且总是有教程或博客说明,这些内容可以使手头的材料变得清晰。
编程怎样自学
要熟悉编程范式,尤其是面向过程及面向对象这两种;要广泛阅读,多用编译器及IDE(网上有许多免费的)练习编程。
选择一种编程语言。初学者一定要从主流语言开始学习,比如中级语言C和C++。这两种语言是任何一名合格、专业的程序员都必须掌握的,因为它们称得上是软件开发界的主流。
但是最好不要从高级语言开始学,如Java,因为这些语言对于初学者来说难度未免太高(高级语言可以以后再学,但是C语言和C++应该作为你的基础)。
然而对于完完全全的门外汉的来说,可能C和C++都有点困难,那么你也可以从Python开始学,这种语言被大家广泛认为是适合初学者的。
如何学好一门编程语言?
学好一门编程语言是十分不容易的,但是如果学会了,它的实用性是很强的,下面我为大家整理了学好一门编程语言的办法,大家可以参考借鉴。
如何学好一门编程语言?
一、多总结
多总结才能加深理解、增强记忆。举例,Go 中有 slice、map、channal 类型,它们都可以用 make 生成实例,但 slice 和 map 还可以用以下形式初始化,也是编程规范中建议的初始化方式:
colors := map[string]string{}
slice := []int{}
但注意了,channal 则没有这样的语法:msg := chan string{}
上面两句是生成实例,表示空集合,但下面两句则表示实例不存在,值为 nil
var colors map[string]string
var slice []int
另外,结构体指针 slice 还可以象下面这样初始化,结构体实例不用明确地指定类型(使用了类型推导)、不用明确地取地址运算()。
type Product struct {
name string
price float64
}
products := []*Product{{"Spanner", 3.99}, {"Wrench", 2.49}, {"Screwdriver", 1.99}}
看到没有,如果不经常总结,这一圈学下来会把你整的稀里糊涂的。
二、多比较
学一门新语言一定要与你之前已经熟悉的语言经常作比较,找出它们的相同与不同,这样才能加深记忆和理解,否则学完之后脑子里会一片混乱,搞不清谁是谁非了。
就拿数组来说吧,在 Java、Scala、Go 中定义、实例化、赋值是不一样的。
//Java
int[] arr;//定义数组,不可以指定数组长度
arr = new int[5];//创建数组对象(实例化),指定数组长度
arr[1] = 8;//赋值
//Scala
val arr = new Array[Int](5) //数组在Scala里用的是泛型类,构造函数参数指定数组大小
arr(1) = 8 //赋值,注意用的是括弧
//Go
arr := [5]int{} //创建数组,初始化5个元素都为0,注意如果不指定数组长度,则是另外一种类型Slice
arr[1] = 8 //赋值
再比如 Map 在 Scala 与 Go 语言里定义、初始化、访问也是不同的,作了以下比较后印象会非常深刻,把它们记下来,这样以后使用就不会搞混了。
//Scala
val capital = Map("France" - "Paris", "Japan" - "Tokyo")
println(capital.get("France"))
//Go
capital := map[string]string{"France": "Paris", "Japan": "Tokyo"}
fmt.Println(capital["France"])
Go 同时给多个变量赋值在 Scala 里可以用模式匹配做到,如下:
//Scala(使用样本类的模式匹配)
case class Tao(name: String, age: Int);
val Tao(myName, myAge) = Tao("taozs", 18);
println(myName)
println(myAge)
//Go
myName, myAge := "taozs", 18
fmt.Println(myName)
fmt.Println(myAge)
//Scala(使用元组的模式匹配)
val (myNumber, myString) = (123, "abe")
println(myNumber)
println(myString)
//Go
myNumber, myString := 123, "abe"
fmt.Println(myNumber)
fmt.Println(myString)
以下是 Scala 和 Go 定义和实现函数的区别:
//Scala
val increase: Int = Int = (x: Int) = x + 1
println(increase(8))
//Go
var increase func(int) int = func(x int) int { return x + 1 }
fmt.Println(increase(8))
除了在 Scala 和 Go 里都可以类型推导外,在 Scala 里还可以这样定义函数:
//Scala
val increase = (_: Int) + 1
为方便自己将来随时查阅,可以建立下面这样的对比表格,描述不一定要求规范,自己能看懂就行。
三、转变思维方式,
学会用这门语言去思考
学会用语言去思考是关键。如果你以前是学 C 的,转学 Java,你一定要改变以前面向过程的思维,学会用面向对象的思维去分析问题;以前学 Java 的,转学 Scala 则要学会用函数式的编程思维解决问题。
举一个函数式编程的例子,以下是 Java 语言常用的 for 循环,循环变量从 1 到 10 执行 10 次循环体:
// 命令式编程
for (int i = 1; i 10; i++) {
// 此处是循环体做10次
}
这被称为命令式编程 (Imperative Programming),但学了 Scala 的函数式编程 (Functional Programming) 后,解决同样的问题,我们可以换一种思维:构建 1 到 10 的列表序列,针对列表中的`每个元素分别执行函数,如下:
//函数式编程
val autoList = (1 to 10).map(i = /*此处是函数体,针对1到10的每一个分别调用 1次*/)
已经习惯了 Java 编程的,对 Scala 的函数式编程、样本类、模式匹配、不可变对象、隐式转换等需要一个逐步适应的过程,要渐渐学会用它们思考和解决问题。
再举个 Scala 与 Go 思维方式不同的例子,要实现对一个字符串里的每个字符加 1 的操作,Scala 里可以这样:
"abc".map(cc = cc + 1)
"abc"是一个字符串对象,调用它的方法 map,这是纯面向对象的思维,但在 Go 里就要转变为面向过程的思维:
name := "abc"
second := strings.Map(func(x rune) rune {
return x + 1
}, name)
注意,这里的 strings 是包 (package),调用它的公共函数 Map,被人操作的对象 name 字符串作为函数参数传入。Go 提供的函数 len、cap、append、 等其实都是面向过程的,虽然 Go 也提供有面向对象的支持,已经习惯了面向对象编程的,刚开始学 Go 语言需要特别留意这一点。
四、多看开源代码
学一门语言就是学一种思维方式,如今 GitHub 上可下载的开源代码海量级,通过看别人的代码,学习别人是如何解决问题的,养成用该语言思考的习惯,另外还能学习到一些非常有用的技巧,比如我在看一个 Go 语言性能测试框架代码时看到有以下写法:
func main() {
defer profile.Start().Stop()
...
}
这个意思是指刚进入程序时执行 Start( ) 函数,程序退出前调用 Stop( ) 函数,非常好的技巧啊!可以用于需要在程序执行前和程序完成后分别执行一段逻辑的场景。再看 Start( ) 函数是怎么实现的:
func Start(options ...func(*Profile)) interface {
Stop()
} {
...
return prof
}
该函数返回了一个实现了含有 Stop( ) 函数接口的对象,如此才能在调用 Start 调用后连调 Stop。
五、优先学会使用代码分析工具
代码分析的工具包括静态检查、测试、测试覆盖率分析、性能分析(内存、CPU)、调试工具等,工具的价值在于它可以有效帮我们发现代码问题,这在我们刚开始学一门编程语言时意义尤其重大。
例如,以下这句 Java 赋值语句估计没有哪本教科书会告诉你有性能问题:
String sb = new String(“Hello World”);
以下这段 Java 代码你也不一定能意识到有多线程问题:
synchronized public void send(authuserPacket pkt, Thread t, String flowNo) throws IOException
{
logger.info("start");
//连接不可用,直接抛出异常,等待接收线程连接服务器成功
if (!this.avaliable)
{
try
{
//如果连接不可用,则等待2S,然后重新检测
Thread.sleep(2000);
}
... ...
如果我们及时用 FindBugs 工具检查就会发现上面这些问题,进而你会去分析研究为什么,如此,你对这门语言的了解也会越来越多。
另外,Go 语言自带的 vet/test/cover/pprof/trace 都是非常有用的工具,一边学一边使用这些工具分析代码,能加深对语言的理解。
六、多练习、多实践
就象学自然语言一样,如果只知道语法不去练是没有任何效果的,只有反复地练习,慢慢才能变成自己的一项技能。书本上的例子代码最好能从头到尾亲自敲一遍,多运行、多尝试,另外再找一些题目来练习,如能有机会参与项目开发则更好啦,勤动手、勤实践是最好的学习方法。
其它的方法还有:
做好笔记,把学习中遇到的关键点和自己的思考记下来,便于后面复习和对比;
复习,学习一定要重复、重复、再重复;
学习贵在坚持,每天学一点(比如坚持每天学 1 小时),日积月累。
怎么自学编程
要熟悉编程范式,尤其是面向过程及面向对象这两种;要广泛阅读,多用编译器及IDE(网上有许多免费的)练习编程。
选择一种编程语言。初学者一定要从主流语言开始学习,比如中级语言C和C++。这两种语言是任何一名合格、专业的程序员都必须掌握的,因为它们称得上是软件开发界的主流。
但是最好不要从高级语言开始学,如Java,因为这些语言对于初学者来说难度未免太高(高级语言可以以后再学,但是C语言和C++应该作为你的基础)。
然而对于完完全全的门外汉的来说,可能C和C++都有点困难,那么你也可以从Python开始学,这种语言被大家广泛认为是适合初学者的。
怎么学习编程
这么学习编程:
学习编程可以从这几个方面入手:1、选择适合的编程语言环境;2、选择适合自己的学习方式;3、保持热情不要轻易放弃;4、在学习的道路上多和程序员交流,寻找良师益友。
1、选择适合的编程语言环境
对于新手进入编程学习来说,最关键的移步就是要选择自己想要学习的语言。例如编程语言有java、c、c++、vb等等,脚本语言有php,javascript,jsp,asp.net等等。
在选择语言的时候建议大家可以选择比较常用的,不要选择冷门,相对来说冷门的学习资源少,很难能够深入研究,最现实的一点就是不利于之后的找工作。
选择好语言之后,还需要选择一个以让我们方便直观地编辑、调试、优化代码的的集成开发环境(即 IDE),这也是非常关键的。例如C-free,VC++6.0等,这个根据自己的设备及使用习惯进行选择。
2、选择适合自己的学习方式
选好语言和环境之后我们就要进入正式的学习了,在这一阶段,恰当的学习方法能让我们的学习取得事半功倍的效果。
这里最不建议的方法就是直接看书,且看书的过程中也不展开练习,这样学习是脑子会了手不会,而且随着时间的增加,脑子也早忘了。
因此编程的学习最重要的就是实践+训练!
当前大家普遍的学习方法大致可以分为两种,一种就是自学+视频;一种就是系统地跟着培训机构的老师直播课学习。这两种都是非常建议的。第一种时间比较灵活,想怎么学什么时候学习都可以,直播课学习的话时间不太灵活,但是一旦自律学习起来,成长也是非常明显的。
3、保持热情不要轻易放弃
在学习的过程中有不少的同学会遇到这种情况:PHP从入门到放弃,C语言从入门到放弃,Java从入门到放弃,Python从入门到放弃……几乎永远在abandon。
也不怪这些同学有这样的心理,实在是编程学习并不是一件很容易的事情,尤其是对于零基础的同学来说,因此当你决定考试学习编程的时候一定要保持热情不要轻易放弃。
不要急功近利,要静下来学习,始终没有人能几个月从小白变成大神, 学习编程更是如此,需要你不断的练习,编写代码,积累知识,强化思维。我们要始终有一个清晰的目标并保持高度的热情去执行实现这个目标。
4、在学习的道路上多和程序员交流,寻找良师益友
在编程学习的道路上我们除了要不断更新自己的知识提升创造力外,还可以通过在专业性网站和社区学习交流,寻找学习路上的良师益友,就跟考研的研友一样一起相互扶持,一起进步。