分享

聊聊编程语言学习之路

yr123 发表于 2015-9-11 20:54:34 [显示全部楼层] 回帖奖励 阅读模式 关闭右栏 0 9892
问题导读
1、比较c -> c++ -> python -> java的各自优缺点?
2、大家说说你们学习语言的方法。




我先简单的介绍下自己学习的路线:
c -> c++ -> python -> java
我比较熟悉c和c++,python和java只能说能拿来用吧,说出这个是想让看的朋友带着审视的眼光,毕竟水平有限,比如你不熟悉c++你可以参考下我的学习过程,比如你很熟悉java,那么可以不参考我的,或者将你的好的方法或不同意见贴到评论区,一起学习,一起进步^_^。

  • 开头随便聊聊
  • 聊聊这些语言的特点
  • 聊聊这些语言看什么书
  • 聊聊用什么工具编写这些语言

开头随便聊聊
在我最初开始学习编程的时候,接触的是c语言,看的是《c 程序设计》是谭浩强老前辈的,起初觉得自己很笨啊,这种i++,++i,都不会哈哈~。
所以刚开始学习编程的时候速度也是很慢的,而且有时学到一般就学不下去了,直到我在网上看了一些文章,一些过来前辈的学习过程。
我知道了一本好书对你的学习来说是非常重要的
于是在网上买了本《c和指针》,看这本书的时候让我有了顿醒的感觉,以前觉得迷糊的知识有些清楚了,而且了解到了更多的知识。
后来学习c++的时候,就买了本《c++ primer》第四版,看了大概一个多月吧看的差不多了,当时对待课后习题的态度是大概扫一眼,看着觉得自己差不多会,就过了,这种自我感觉良好是不可取的,当然实战的时候自己尝到了恶果,一堆错误加还不熟悉这门语言。
我知道了书上的练习和课后题有多重要
自己尝到了恶果后,咋办,重学呗,这一次下定决心重学c++,无意中在小组看到了《c++ primer》第五版,学姐说是新出的,我晕,这么快都出第五版了,应该不会有什么大区别吧…,在我看了目录后发现,这这这…,差这么多,在内心纠结下,又整了本《c++ primer》第五版,开始学习!!,学习过程中由于对第四版知识还有印象,所以我发现了第四版和第五版的差距之大,c++11更新多么重大(前一阵看见一位学弟在看c++primer第三版,这也是我决定写这篇文章的一个原因吧)。
我知道了过时的知识点就让它过去吧,应该学习较新的且被大众认可(运用)的知识
也因为尝到了苦头,阅读第五版时速度很慢,敲了练习和课后题,将遇到的坑和重点知识都记了笔记并且记录到了博客上,因为c++是一门比较复杂的语言,在我忘记部分知识点的时候我能够迅速在自己的博客上找到并且想起来。
我知道了记笔记有多重要
当然记笔记是很花费时间的一件事,视自己情况吧~,c++学习时间比较长,看完了《c++ primer》后我还看了一些其他的c++书,会在后面说到,直到今年5月份我才开始学习python,大概2周左右看完了《python核心编程》并敲了大部分课后题,看的过程中非常顺,感激我之前看c++作出的努力,即使很慢。
我知道了付出的努力总是值得的
下面就是做项目的时候要用到java,此时我转换了学习语言的方式,推荐一篇孟岩老师的文章。
快速掌握一门语言最常用的50%
这篇文章非常好,但是适用于有类似语言基础的人,类似语言基础指的是比如说你会c++,这是一门面向对象的语言,那么你学习python或者java就可以按照上面的来。
学习java的时候,都说《thinking in java》 好,都说学c++后学java很轻松,开始看《thinking in java》还是比较容易的,直到看到了第14章 类型信息,我卡住了,有些真的很难理解,虽然说都是面向过程的语言,但是很多地方不一样,并且java这门语言有自己的特点,如果仅仅想使用它,很容易,二八定理,百分之百的东西我们最常用的也就百分之二十,想理解原理,比如说我看看java的容器怎么实现的?那必须要学习一些原理的东西了,此刻就没那么容易了。
我知道了,每门语言都有自己的特点,我们应该找到它的特点来攻破它,而不是以一门语言来看其它语言。
以上是我大概的学习路线,随便聊聊,希望看完后你会有一些想法和收获。
学习本身就是一个不断改进和不断进步的过程。

聊聊这些语言的特点
printf("C语言\n");
个人觉得c语言作为入门的语言是非常合适的
1.语法很简单,没有那么多语法糖。
如果第一次接触编程的话,我觉得不要接触封装太“严实”的语言,比如python,python是抽象层次比较高的语言了,而且语法糖也不少,会让我们迷失到一些语言中比较“炫酷”的东西,而忘记了一些本质,而且作为入门写python这种写习惯了写c/c++会很难受的,毕竟什么都要自己来实现,变量还要定义?- -,我不是说python不好,写着方便也是解放人类嘛,不适合入门而已
2.c语言能让我们了解到一些底层的知识,语言只是计算机体系中的一部分,不是说你学了语言就够了,还有操作系统,网络等等一些知识,但是c这个除了汇编外最接近底层的语言在写过程中能让我们学习一些系统的偏底层的知识,对未来学习发展是非常好的。建议在linux下学习。

std::cout << "C++" << std::endl;
c++是一门很复杂的语言,学好不容易,用好也不容易,对于c++而言我是不推荐快速入门的,快速入门只能坑自己和队友,学习c++建议静下心来,整体过一遍,再在实战中锻炼自己。
特点
1.c++是一门面向对象的语言,但是因为要兼容c语言,所以它不是一门纯粹的面向对象的语言,如果想学习面向对象编程的思想,建议学习java。
2.c++效率和性能相对来说是比较高的,怎么说,python这种解释型的语言就排除了,c++开发效率比c高(STL能省你不少事),性能比java好(但是开发效率是低于java的,具体选择还是看我们追求性能还是节省时间)。
3.c++适合偏底层的人员学习,比如后台开发等,用c语言开发效率是略底的,java又都封装好了,所以个人觉得选择c++还是不错的。
4.c++近年来也不断再进步,c++11/14更新了很多内容,极大提高了我们的开发效率,c++17标准也在拟定中,还是蛮期待的。

System.out.println("Java");
接触了Java后,不得不承认Java开发起来的效率是非常高的,而且Java从事的面非常广,学习java Web的也非常多,还有安卓等,成熟的框架和开发工具也多,jdk更新到1.8。
1.java是一门纯面向对象的编程语言。学习的时候一定要切记,会明白为什么这么设计这么写。
2.java的框架和库以及ide非常多,善用成熟的库和框架。
3.感兴趣可以看看一些框架的源码,比如netty,能学习到许多东西,很多设计模式等都运用在其中,个人感觉比较值得学习。
4.java由于基于虚拟机JVM,所以跨平台支持的非常好。
5.java健壮性非常好,异常体制非常完善
6.天生支持多线程,写起多线程程序效率比较高

print 'python'1
python是一门脚本语言,功能强大,也是库非常多,写起来非常简便,开发效率高,近几年用的人也越来越多。
1.语法简洁,使用起来非常方便,比如用切片等处理字符串非常方便,不过因为是解释型语言,速度比较慢。
2.库非常多,应用很广泛,网络爬虫,系统编程,web编程,数学图形学,文本处理等等
3.被称为胶水语言,能把许多语言模块结合到一起
4.对多线程支持不好,由于GIL存在多线程只能单核运行,不过支持进程和协程
水平有限,上面仅仅说自己了解的一部分,不过个人认为自己需要熟悉一门面向对象的语言,根据自己所学习的方向感兴趣的方向。

聊聊这些语言看什么书
要学会自己能分辨什么书好,看一本好书真的是节约自己时间啊~
我一般是上豆瓣看评分评论,网上搜索看下评价等,再看看目录,觉得不错才入手。
printf("C语言\n");

没找到任何评论,期待你打破沉寂

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

推荐上一条 /2 下一条