学习一门语言难在什么地方?

摘要:

大二了,专业开了的编程语言我都接触过,学习过!到最后样样都知道,但是样样都不精,每天好像很努力的学,最后换来的是扯淡!从大一开始,我就一直在探索什么样的 学习方式才是适合自己的呢?这个暑假又看了一次PHP基础的视频,基础部分知识每个视频都差不多,但是发现视频里面有些编程经验非常值得学习,现在就学习编程语言谈一下自己的拙见!我要谈论的不是那种语言好,而是一种思维和学习方法。欢迎有不同见解,能让我们彼此都提高,让我们的学习方法有更好的提升!【写的比较冲忙,所以文章内有些举的例子有点暴力,有暴力倾向的人请自动频闭我举的如何成为一个杀手的例子】

问题1:什么是编程?

?编程=变量【各种变量类型】+运算【四则运算符、逻辑运算符、三目运算符和位运算符...】+控制【各种控制语句+实现语句...】==》其本质就是“说话”/描述问题
任何一个语言的编程,都离不开上面这三个要素!掌握这三个要素你就入门了,你就可以开始做东西了!【注意这里是掌握,不是熟练!熟练=基础+经验+练习】
?变量:4种基本类型【整型、浮点、字符、布尔】+2种复合类型【数组、对象】+2种特殊类型【资源、NULL】
?运算符
·  逻辑运算符 && || or and !
·  赋值运算符 +=  -= *= %= /= &= %=  ^= >>= <<=
·  位运算符  & | ^  << >>
·  三元运算符  ? :        (给个判断呗) ? (判断真了去这里)
?控制可以通过控制结构+函数/方法+控制的工具【文件、数据库...】
控制结构:
      顺序结构
      选择结构【单分支:if;双分支:if..else..; 多分支:if...elseif..else switch  case: break】
      循环结构【for while foreach】
学习“变量”+“运算”+“控制”,可以采取由大到小的模式来学习:【拿变量来举例】
     大:这个模块有哪几种类型?这个模块的作用是什么?这个模块我们需要关注哪些?
大:变量有8中类型,作用就是相当于一个盒子,用于存放数据,要注意不同数据类型的转换,各种数据类型的初始化,各种数据类型相互之间的运算【而运算又涉及到了第二模块运算的知识,所以运算这块东西最好放在第一模块最后来学习】....等等需要关注的东西!★【一些模块可能有它自己需要特别注意的模块】对于变量这个模块来说还要明白变量的一个作用域问题,控制模块关于函数要弄明白函数的调用前后程序的执行主权问题,这些就是各个模块所特有的一些需要关注的东西了,你分的模块不同,那么关注点自然也就不同
     小:这个模块中每个类型又是什么?这个类型是怎么定义/表示/声明的?什么时候用?如何使用?常用的一些操作是什么?【依然拿PHP变量这个模块来举例】
小:PHP中变量的8种类型,每一种类型就不详细列举了【其中数组这个类型非常重要,就拿数组来讲!】。数组这个类型是复合类型,它的定义是$arr = array() 这样就定义了一个数组;什么时候用呢?数组本身是:一类数据类型相同的数据集合体但是PHP是弱类型语言,所以我们可以把数组理解为:它里面的每一个元素就又可以当做是一个变量,而所谓的多维数组其本质就是一维数组的重复嵌套所以数组什么时候用呢?就是在需要存储集合类型的数据时候用来存放这些乱七八糟的东西的【只是美其名个他定义了一个类型叫数组而已】。数组又可以分为2小类,而这两类的使用又是相似的!常用的操作有哪些呢?其实无非就增、删、改、查【每个操作又可分为细小的操作--拿查这个操作来举例:有文化点的说法就是:数组的元素的访问,数组的遍历   --如果有人不懂访问、遍历是什么意思,可以理解为通过一种方式把所有东西都找出来,举个例子就是通过“族谱”我们可以找到你“爸”这种方式叫访问,   --我们还可以把你所有祖宗到现在你这一辈的人员名字按不同方式全部找出来,这种方式叫遍历!而这里“族谱”当然就是外部工具,当然这里的外部工具又要用到一些基本函数和控制结构同理建议放本小模块的最后面来学习】,而这些操作又是如何使用呢?通过函数+控制结构等等...
就这样先分大类,再分小类来学习!然后每一个小类又可以按照3WH的模式是来学习【3WH是我同学告诉给我的,我觉的总结的非常好,即:WHAT WHEN WHY HOW,而每一个HOW里面又可以细分为3WH模式】
★★★编程就是说话,万变不离其中,唯一不同就是你描述这个问题的方式可能有很多不同,而这个方式取决于你的:数学功底+逻辑思维+想象思维...等等思维!
      例如:输出100以内,是3的倍数的就用A代替,是5的倍数就用B代替,是3、5的倍数就用C代替!
      ??数学思维不好的人代码:
         if($i%3=0 && $i%5=0 ) {echo ‘C’;} elseif( $i%3 ){echo ‘A’;} elseif($i%5=0) {echo ‘B’}
      ??数学思维好的人的代码:
         if($i%15=0 ) {echo ‘C’;} elseif( $i%3 ){echo ‘A’;} elseif($i%5=0) {echo ‘B’}所以思维是非常重要的。也就是四个字:“活学活用”

问题2:怎么学习?--思考的学习

?看视频不能单纯看视频!不能单纯看变量、运算、控制,要学会思考着去看这些东西!【WHAT WHY WHEN HOW[再次感慨一下,这个东西总结的太好了,表达了我一直吧表达不出来的心声] 】
   例如看是视频学习变量时候,在视频中没讲之前,你要先自己想想,然后带着问题去看:
      什么是变量?      为什么要用变量?
      有哪些变量类型?
          那些变量类型是特别重要的呢?
      有什么不同?--WHAT
      使用条件?——WHY      如何使用--HOW
        怎么定义呢?--WHAT
        怎么使用【例如数组[key + value],使用数组关键是“键”】?
              ——HOW[关键字+变量名]--HOW里面又可以分【3W+H是你想东西和看待问题的一个思路和方式,不一定说严格遵守每一步】
当你思考了并理解了这些问题,其实你只需要配合你这门语言的帮助手册就可以写编程了【写程序无非就是调用别人写的东西来实现自己的一些逻辑!】
我要说一点的是:    如果你重复看一个视频来学习知识,但是每次重看都只是在复习旧知识的话,这不是在学习,而是在浪费时间!纯粹的浪费时间,因为知识点这种东西,只要不常用很快就会被遗忘,当你遗忘了这个知识点,你又回来看视频,那么就相当于你前面学习的那段时间是被你浪费掉了的!这样的学习不叫学习,叫“炒冷饭”,也叫瞎忙!    我觉得,世上最浪费时间的事不是无所事事,而是瞎忙!【无所事事至少还得到休息和玩了,瞎忙得不偿失】    只有将学东西的转化为一种思想、经验这些东西,在你写代码的时候时刻去思索注意这些经验,那么久而久之思想想多了就会变成你写代码的一种思路,别人的经验就会变成你的经验,这样当你每写一次代码的时候,你就是在学习一次,这样久而久之你会记得大部分东西!【当然我不排除有人是码农,一味只是敲代码而无思考】 

问题3:如何理解:思想是关键,语言是一个工具和一个技能

   当我们按照上面的学习方式学习了,我们其实就入门了!入门只是说你有能力去做东西了,但是到底能不能干的下来?你能干什么,只是取决与你的想象力,取决于你的思维,取决于你的心态,取决于你的活学活用程度!
   语言只是一种语法,一种工具!   学一门语言,只要我们学会了这种工具的规则,那么我们就已经学会了一门语言了!而学会和运用时两回事,例如:我们把学语言这个技能,当成是“杀人”这个技能【一时想不到其他的比喻】那么PHPer就是相当于一个“杀手”!想要当一个杀手,首先得会使用一样趁手的工具吧,【工具有很多:什么刀、枪、棍、棒...】而杀手的这个“工具”就是众多编程语言【JAVA、PHP、ASP..】中的具体的一种语言!当我们把这个工具【“刀”】给玩熟了,我们就入门了【证明你已经有做杀手的资格了,但是你依然不是一个杀手,因为你只玩熟了这个工具就去杀人,如果碰到高手的话那么你可能会百分百被空手接白刃】,当我们掌握了规则,入了门,那么我们就需要去积累经验,不断的练习如何和其他的工具一起搭配使用,不断的去将基础打扎实并把它们活学活用出来,在这个过程里面才是最艰难的时刻!最艰难的是你入门以后到成为一门语言大神的这个过程【额,依然拿杀手话题来举例吧:现在你已经会玩到刀了,那么下一步该干什么呢?如果一开始就去杀人,被打了可能会打击到你的信心,所以接下来你不是该去杀人,而是该去练习杀猪,通过杀猪掌握“猪”和“人”的共同特点【--编程里边这个过程就是通过小项目来练手,掌握大项目的要领,当然这个过程有人带是最好了,因为你可能会遇到非常多的bug!】当然在你杀猪这个过程里面,你还不能忘记学习一些三脚猫功夫,学习一下步法,万一打不过可以逃嘛!而你懂得这些三脚猫功夫,懂得这些身法,会让你执行任务事半功倍【--这个过程在编程里面及时一些拔高工具的学习,例如数据库,让你可以利用PHP做出更多东西,学习一下一些必备的工具,学一个好的编辑器,形成一个好的编程风格...等】在你通过不断练习杀猪过程中,你会慢慢知道:哦,原来杀猪想要一刀致命有这些方法:一刀砍掉猪头,一刀KO猪心...,那么杀人应该也是类似的!等你下次真的开始去kill person的时候,你就知道:哦,我们要一刀K掉这个扑街的“猪头”,或者一刀K掉他的“猪心”,但是呢,K掉猪脑袋和猪心也是有技巧的,你需要不断杀猪,杀千千万万只猪,各种各样的猪,等你闭着眼都能达到“庖丁解牛”的程度来解猪了,那么杀人也是类似咯,而当你熟练掌握杀人技巧,你想怎么干掉你的“情敌”干掉你不爽的人,干掉....还不简单吗?【--而最后这个过程在编程中叫做:报错-改错-再报-再改....冤冤相报何时了!】,那么等你已经非常熟悉杀猪这个技能了,让你重新学习一下杀牛这个技能,你还会觉得难吗?你只需要知道牛的身体结构,那么你杀牛的境界依然能很快达到杀猪的境界--所以编程有句话:一门精,百门通!】
    所以,学一门语言:入门so easy,坚持每一天的“杀猪生活”就不易了!
最后,在这个开源的时代,我们的学习也要开源,要多和别人交流!产生思想的火花,这样你的兴趣,你的热情,你的学习效率....才不会逐渐降低!

问题4:什么是学会了?

我觉得如何检测你自己是不是把一个知识学会了呢?最简单也是最好的方法就是:你能把你学到的东西讲出来给别人听!这样做有两个几个好处:   1)首先,最明显的就是:我讲都会讲了,肯定是理解没什么大问题啦   2)其次,万一理解错了,听的那个人也许会发现问题,能帮你指正出来   3)再次,万一你们两擦出点火花了该多好!【当然这个是思想上的火花,思想的碰撞决定你的高度】   4)锻炼你的口才能力【如果你想一辈子做个静静的码农,可以选择自己会做了就可以了】

问题5:你该怎么问别人问题?

我是一个不喜欢问人问题的人,遇到问题,喜欢钻牛角,所以很多时候,一个很简单的问题总被我纠结老半天,最后还成功把自己给绕晕了!这真不是一个好习惯,我也在改正这个习惯!但是遇到问题,不要自己什么想法都没有就跑去问别人,这是一种对自己学习极度不负责的行为,也是间接浪费着别人时间的行为!我觉得:至少你问问题,你总要清楚   1)遇到的这个问题是什么意思?      2)这个问题你是哪里不懂?【不要问别人的时候,别人跟你说这个设计到HTTP协议的知识,哦,你不懂的HTTP协议是个什么东西?这个是数据库方面的问题,哦,什么是数据库?.....问问题也要问个痛快:我这个问题是...,我觉得。。【自己百度谷歌之后,你自己的看法是什么】,我现在还有这个部分不懂。那么别人就知道:哦,你前面这几个部分哪里对了,哪里错了,哪里理解的还是非常到位,还有那些部分是需要详细点跟你解释的】--问问题也是帮助别人复习一遍知识,这个是必然的!但是不要总拿自己毫无见解的问题去问人,这种月经题【几乎是每个月问一次,类型相同,知识点相同...几乎跟来月经一样了,都快成习惯了!】,要学会自己思考,总结。事不过三,过了三次,当你再问,你不觉得不好意思,别人也会感到烦的!   3)·当然有的人可能是百度、谷歌了还是依然一点也不知道,那么我们问别人的时候应该注意,把你的问题理顺思路。--我是弄完哪一步就报这个BUG了,我该从什么角度去思考这个问题呢?或者应该查哪方面的知识点?【不要问别人怎么解决,直接问别人怎么解决这样的问问题就类似:你病了不能吃饭,你说“麻烦你把饭嚼烂吐我嘴里,谢谢!”,你应该说:“麻烦你帮我想个办法,我要怎么才能吃到饭?”--后一个问的是思路,前一个问的是答案!遇到问题,往往自己解决才是记忆最深刻的,直接告诉你答案的不是好人,往往是嫌你烦或者是不想让你超越他/她的人!问到了思路,再自己去尝试按照这个思路去解决一次!这样你才是真的懂了这个问题是什么,你问别人的时候别人才会愿意帮助你,才会愿意跟你组队一起学习,毕竟组队求得是共赢,没人愿意一味付出得不到回报!共同学习能大大的提高你自己的学习效率】
时间: 2024-10-10 02:59:20

学习一门语言难在什么地方?的相关文章

学习一门语言

最近在公司的一个论文实现要用torch,torch是用lua写的,所以就要学习lua语言.虽然我之前没学过lua,但看着源代码并不是那么费劲,这其实就是因为语言之间还是相通的.回到如何学习一门语言,我在byr论坛上也发帖求教lua语言学习,好几个回答都说去用菜鸟教程快速入门,其他不懂的再google或百度.我觉得这几个回复很正确,我自己也这样觉得,对于现在的我已经有一定其他语言基础,能够通过菜鸟教程很快入门,然后再去在实践中不断学习语言,即遇到问题取搜索答案,这样的方法高效可用. 在我入门深度学

学习一门语言的小经验,信心,坚持,才是成功的捷径

刚刚加入到博客园这个大家庭中,学习计算机已经快要六年了,但是还是一个菜鸟级---小白,但是,还是没有放弃这条不归路,现在想要说说自己,在学习计算机语言的时候遇到的问题和如何坚持到现在的. 首先,说一下我们为什么学习了很久(你上大学或者同等的学习,培训),却依然只是一个菜鸟而没有提高呢?看了很多资料, 很多说学习语言需要数学基础好,英语基础好,逻辑思维能力好,等等的说法,虽然这些说法直接见见的会影响到你的学习进度,但是,我觉得最根本的原因在于,你在这件事上付出的时间和经历,其他的都不是重点,举个例

如何学习一门语言

如何学习一门编程语言 语法和基础 数据类型 表达式,语句,代码块 面向对象:封装,继承和多态 线程和异常处理 标准类库(以java为例子): 类库:jar包:类库是以jar包的形式发布的.jar包是Java中组织多个class文件的方式期本质是一个zip压缩包.后缀名是jar 类库是以jar包发布的.可以完成某个功能的一个或多个jar包 工具(以java为例子) maven: 构建和打包,丰富插件可以组成复杂的构建过程 git: 源代码控制 IDE jenkins: 自动化集成 底层和进阶 底层

杂谈学习一门语言

最近在学习Java语言,差不多接触了两个月了,个人感觉比c/c++能好学点,它能很快上手,对一个刚开始学习它的人来说我个人的经历告诉我最重要的是: 1.时刻保持学习新东西的态度,保持谦虚请教的心态,保持一颗宁静以致远的心态. 2.时刻保持思考的状态,让自己大脑永远保持活跃,善于冷静思考,别受外界环境影响. 3.时刻保持一种怀疑的心态,千万不要先入为主,软件行业本无绝对的错与对,时刻保持怀疑的态度. 4.一定要多动手敲,多思考,保持自己的思路清晰. 5.对于新鲜的事物,要多接触,别排斥,逐渐创建自

怎样才算会一门编程语言(如果你已经会了一门语言, 并且想一直会这门语言, 请在工作持续使用。如果没有机会使用, 自己给自己创造机会)

今天, 同事问我会不会Python, 我犹豫了一下:不会. 实际上我曾经学习过这个语言,当时还用它写了些小工具, 可现在我对这个语言的印象只剩下它那特殊的缩进格式了. 由此思考怎样才算会一门语言?我想每个程序员都接触过多门语言 , 那么究竟怎样才算会这门语言了呢? 会一门语言, 当需要它时, 应该能很快用该语言解决某个问题, 这个是最基本的. 如果深入一点, 真正会一门语言, 我觉得需要满足以下几点: a. 有超过一年的实践经验 b. 理解语言背后的机制, 最好阅读过该语言标准库的部分源码 c.

如何学一门语言

从大一开始,老师就说精通一门语言,就可以很快地学习入门其他的语言,这句话一点也不假.其深沉的含义是,思想区别不大,主要的区别在于语法.经过学习,觉得很多语言其实也是相同的,比如顺序,循环,结构体,类,抽象,封装,继承...基本所有的语言都离不开.在学校,从c.c++.sql server.data structure.java..net.android:自己学的ruby.ruby on rails.Ext.css. html .javascript,其实学这些语言,不是它有多难,往往不是思想束缚

快速掌握一门语言的50%(强转)

文章出处,不让转,强转吧.方便看. 正要快速学习python.想试试看如何把学习一门语言规划为一个适合自己的套路.方便以后学习新语言.慢慢修正. 现在的开发工作要求我们能够快速掌握一门语言.一般来说应对这种挑战有两种态度:其一,粗粗看看语法,就撸起袖子开干,边查Google边学习:其二是花很多时间完整地把整个语言学习一遍,做到胸有成竹,然后再开始做实际工作.然而这两种方法都有弊病.第二种方法的问题当然很明显,不仅浪费了时间,偏离了目标,而且学习效率不高.因为没有实际问题驱动的语言学习通常是不牢固

怎样学习新语言

作为一个C++出身的程序员,好多语言看起来都很陌生,但是又十分有吸引力 Python Perl Ruby Lisp Lua Haskell Ocaml 其实学习一门语言的过程并不简单,需要花费很多的时间来与它建立亲密的关系,浅尝辄止基本上是不能领会其中的奥秘的. 但是无论如何,学习的脚本不能停止. 对于零碎时间的合理利用,以及良好的规划,可以让这个进程更加有效. 其次是对于各种语言的第一印象,以及事先考虑可以从这门语言中汲取什么方面的营养,可以让这个进程更加有目的性. Lua以小而快见称,因此学

CoffeeScript不是一门值得学习的语言

译注:看到这篇文章时发现不论在国内还是国外的网站上都有很多人在争论,很有意思.不过令人汗颜的是有些国人似乎只看了标题就开始吵了起来,如果有兴趣,请耐心看完. ======= 一门不能改变你编程的思维方式的语言是不值得学习的--艾伦·佩利(Alan Perlis) CoffeeScript是一种能够将你用特殊规则书写出的文本转换成一些其他文本的语言,而转换后的文本碰巧就是JavaScript源代码.它经常被描述为将一种编程语言"编译"成JavaScript,就像将其它语言编译成汇编或者J