Project1

标题: 【4.17版聊】你的编程语言学习经历 [打印本页]

作者: gonglinyuan    时间: 2016-4-17 14:01
标题: 【4.17版聊】你的编程语言学习经历
本帖最后由 gonglinyuan 于 2016-4-17 14:03 编辑

2016年4月的TIOBE排行榜:许多同学“童年的回忆”——Visual Basic已渐渐淡出,Ruby上升势头迅猛,C系语言仍然占据主流。
http://www.tiobe.com/tiobe_index?page=index

投票:你学过哪些语言呢?

讨论:为我们讲述一下你的编程语言学习经历和学习方法吧,比如看了那个网站的教程,读了哪些书,参与了哪些项目。对于编程语言的褒贬也是允许的,但是要说明理由哦~
作者: Vortur    时间: 2016-4-17 14:11
c和j都没学过啊,想随便投一个然后水贴的,怎么投完了就跳出这么多语言...
作者: taroxd    时间: 2016-4-17 14:21
本帖最后由 taroxd 于 2016-4-17 18:40 编辑

看到主楼是「学过」而不是「学会」,于是厚颜无耻地投了很多项

方法:
  1. read_tutorial if your_first_language?
  2. take_part_in_project while read_doc and read_code and googling
复制代码

作者: 余烬之中    时间: 2016-4-17 14:33
不会编程,只是来看看大神
作者: 电子最终龙    时间: 2016-4-17 15:26
沒有HTML和C/AL不幸福【大霧
作者: RyanBern    时间: 2016-4-17 16:04
本帖最后由 RyanBern 于 2016-4-17 17:09 编辑

看到主楼是「学过」而不是「学会」,于是厚颜无耻地投了很多项,如果是学会,那么一个都没有。

不会编程,只是来看看大神。

学习经历:
C:跟着学校学
C++:花了一寒假自学
Java:无聊了选一门课跟老师学,现在已经基本忘光
C#:无聊了选一门课跟老师学,现在还记得一点点
Ruby:对着RGSS脑补,学了很多错误的东西
Matlab:填坑用,自学
R:填坑用,自学

希望加上FORTRAN选项,感觉以后要学了。

目前的状况:
填坑主力为C/C++,有时也用Matlab,因为不搞统计所以R今后感觉不会用。
不过现在使用C/C++混合代码是不是不太好?感觉要放弃一个,要不写出来的东西不伦不类的。
FORTRAN可能成为新欢。

学习的基本思路:
最好还是买一本书,动物书看起来不错。然后就开刷,边刷边实践。
原理弄懂了就看官方的文档,切记不要到百度知道啥的地方搜,否则学了错误的东西进来本人概不负责。
然后就是需要经常做项目(填坑),我学习Java和C#的经历几乎完全一样,但是C#比Java记得多一点,主要的原因是我上那门课的时候用C#做了个大项目。
至于Matlab/R这样的数学软件,先把语言的语法弄清,然后就面向Google编程吧,同学们都是这样会的。

个人偏好的话,还是喜欢C/C++,最重要的原因还是因为效率(你丫去学汇编好了)。
C 代码复制
  1. for(i = 0; i < n; i++){
  2.   a[i] += b[i];
  3. }

C 代码复制
  1. for(i = 0; i < n; i+=4){ // suppose that n % 4 == 0
  2.   a[i] += b[i];
  3.   a[i+1] += b[i+1];
  4.   a[i+2] += b[i+2];
  5.   a[i+3] += b[i+3];
  6. }

据说下面那种写法运算速度更快,显然,好像没人喜欢这种写法。(我没试验过,不要打我脸,疼)

喜欢C/C++仅仅是因为效率高而已,没有别的原因了。

恩,没了。

作者: 冷峻逸    时间: 2016-4-17 16:51
提示: 作者被禁止或删除 内容自动屏蔽
作者: gonglinyuan    时间: 2016-4-17 18:29
我的学习路线是这样的,走了很多弯路,因此印象很深:
1. 首先学的是VB,看的是国内的《XXX从入门到精通》《21天学会XXX》这种脑残教材,里面的概念十分老旧,代码也有不少错误,十分不建议学习语言的同学们看这种教材。因此我VB其实也只局限于会考水平。。这是绝对的反面例子。
2. 接下来接触C++,看的还是国内书店里畅销的脑残教程,前半本书勉强能够理解,后面那些OO、template这些抽象的概念就难以理解了,因为教材太死板。另外书上用的还是VC++6.0,也是过时的东西。到目前为止我也只会C++的基本语法,碰到类模板、多继承这些变态的东西还是犯迷糊。
3. 接下来是为了搞信息学竞赛学的Pascal,因为我们初中老师只教Pascal,有了C++的基础Pascal的语法也很快就学会了,但是也只局限于那些用来表示算法的语法。
4. 后来我又看了一本信息学竞赛的书,里面最先介绍的是C语言。有了C++的基础,学习C语言如同探囊取物。而且这本书写的还算不错,介绍了现代的gcc编译器和gdb调试器,让我知道编程序原来还能不用IDE。。。
5. 因为我对Ruby不太感兴趣,只对RPG Maker感兴趣,所以我只学了RGSS,看的是F1帮助,然后花大量时间通读了RMXP的自带脚本,研究了几个6R上面的脚本,也自己做了点不像样的东西。如果想快速做出东西来,最快的方法是阅读、模仿别人的代码,这是我学习Ruby(RGSS)得到的经验
6. 之后我一度迷上Renpy游戏引擎,然后就学了学python。看的是廖雪峰的python教程(因为他/她写的git教程很不错,所以我就看了她的python教程),一开始学得很快,但是到了那些我以前没有接触过的复杂抽象的东西(比如生成器yield,还有简单的函数式编程思想,比如map),这种简明型的教程就不够用了。需要更多的时间来理解;不过一种特性一旦学过了,就可以很快地在学习其它语言的时候举一反三。
7. 我个人感觉学得最成功最系统的是Java。看的是Oracle官方的Java Tutorial。Java太流行了,以至于一搜索Java全是培训班的广告,所谓的速成教程也有一大堆。但越是在这种情况下越要擦亮眼睛。官方的教程写得很仔细,例子非常多,原理讲得也很透彻。之前在RGSS3里自己觉得一直很迷惑的Fiber,当我读完Java Tutorial的concurrency这一整章之后就豁然开朗。Java可能看起来比较老旧,不够新颖、高大上,但是Java确实是最容易学习的。教程、文档都很多、很详细。虽然Java Tutoria乍一看是密密麻麻的英文,而且章节数目特别多,但是每天坚持学两个小时,两个月也能看完一半了,因为例子和解释特别详细,所以基本不会出现脑子拐不过来弯的情况。时间投入虽然很大,收获当然也是非常大的。
8. 接下来,我换了一台电脑,买电脑的时候研究电脑配置,因此就对底层产生了兴趣,于是就买了本(盗版的)CSAPP,里面介绍了x86-64上的汇编语言。虽然汇编语言实用价值低,但是掌握汇编语言对于编写高级语言也是有帮助的。汇编语言给我的感觉就是需要记忆的东西很多,尤其是CISC指令集的x86-64,需要记忆16个寄存器的名字和茫茫多的指令,同时有些指令的功能还很特殊。现在我仍然无法直接编写汇编语言,最多只能做一些简单的代码填空,或者照着书本阅读较短的汇编代码
9. 随着RMMV的流行,我去学了JS。看的是Mozilla官方MDN上面的简明教程。我个人觉得如果学过其它脚本语言,学习JS并花不了多少时间,因此看看这种简单的教程也就足够了。

总之,如果是第一次学习编程,一定要找一套好一点的教材,中文还是英文无所谓,但是一定要讲得足够详细;强烈推荐从Java开始,从Java Tutorial开始(如果是C++建议C++ Primer Plus);十分不建议一上来就看速成教程。
其次,碰到一种没有接触过的语言特性(比如函数式编程、泛型编程、Ruby元编程、多线程),一定要放慢脚步仔细研究;如果实在不能理解,多去社区搜索搜索有价值的文章,其中不乏很生动形象的解释。
在其它情况下,如果原理都已经完全理解,学习新语言无非就是学习一套新语法而已,去W3Cschool、MDN、廖雪峰这种网站快速浏览一下即可,然后就可以直接开始写代码了——碰到问题再回去查文档也不迟
作者: 熊的选民    时间: 2016-4-17 19:35
有了github和stackoverflow之类的网站,学什么语言都容易了。
学了C++,再学其他什么语言都容易了。
可惜现在的工作一般都要求Java。不过也没办法,RM还只能用Ruby呢。
作者: yang1zhi    时间: 2016-4-17 20:07
都没学过。
没上过大学。以前高中有VB,不过也没怎么讲。
重点是怎么应用一直没讲。
你只告诉我什么是变量,什么是IF
可你没告诉我这些用在哪里。
还是RM好,很直观,能直接使用
话说以前搜索过很多次想看看代码怎么应用起来,可是没找到答案
想尝试着学下各种语言的,可是翻开后就是讲变量,IF,循环这些。没有找到怎么实用起来的方法,就弃了。
作者: 刺夜之枪    时间: 2016-4-17 22:48
在学校正规学习了
Java
Computer Science
c++

ruby 和 js 自学

作者: 日月星辰    时间: 2016-4-17 23:02
本帖最后由 日月星辰 于 2016-4-17 09:10 编辑

java cpp r 投了这三个

讲真 是越学越觉得 离『学会』越来越远了。

java 学了挺久【两年也算久?】,javase 比较熟练大概?orz。。。oop思想 什么都是通过 java 学的。  平时想撸小 project 默默打开 intellij {离散数学课教授一并上了好多算法,我顺便拿 java 码一遍 }。然后没走 javaweb,还是选了比较火的安卓。

cpp 用来学数据结构,填坑,学stl

r 目前对我的理解就是一个高精度的,统计专用语言,基本就是输入数据->选个test method,例如 pnorm,prop.test 之类->输出->作图等    而且只是完成统计科作业 orz 但见你们都不选很可怜 hhh

=====
ruby【rgss 和 ror】,html+css+js 只是码过,没系统学习过。

swift 是一个夜黑风高的夜晚,apple 大学联系部工程师来我校开了 ios 开发教程,学了一晚orz到凌晨啊 orz【第二天还有 课+ hackathon

python 什么在 见过+codecademy($\approx$ hello world) 级别 哈哈哈

=====
assembly,swift 准备填坑 ing
作者: 无脑之人    时间: 2016-4-18 11:39
兰触:连Haskell都没有,差评【大雾

最开始玩RM的时候学了Ruby,后来接触了C++,并一直在C++的路上越走越远(,掉进了TMP大坑出不来了)。中间因为LuaSTG的缘故学习了Lua,因为好玩于是看了一点点Scheme(,但什么也没学会)。上学期由于课程安排学了Python(的语法),现在(根本没有)在接触Haskell。

作者: 化螺耕    时间: 2016-4-18 11:47
忘记选Matlab目前最熟悉的一门语言
作者: 洛克人SZ    时间: 2016-4-18 11:55
最初学过一段时间的VB6,后来放弃了……
之后开始学C/C++,虽然一直在用,但是水平不怎么样……
然后玩RM的时候学了学Ruby,到现在基本忘光了……
Lua也学过一会儿,同样忘光了……
脚本语言现在主要用Python了
作者: 迷糊的安安    时间: 2016-4-20 15:10
20年前会一点QBASIC……




欢迎光临 Project1 (https://rpg.blue/) Powered by Discuz! X3.1