截止到目前为止,编程开发语言已经有很多种,而每个程序员根据自己的学习能力不同,掌握一到几种不同的语言。
学习目的
每个人学习一门编程语言,都是有自己的目的.比如有人想写一个App,有人想写一个小程序,有人想写个人主页,有人想做一个大项目.也有人只是为了自己干某些事方便。
.
学习心态
学习心态其实和游戏心态差不多,但是游戏一局可能就个把小时,但是学习确实一个较长的过程.一旦学习心态崩了,一段时间都不想进行学习了。
学习过程中因为每个人学习能力不同,都或多或少,或快或慢会达到一个阶段的瓶颈,或者坎.良好的学习心态就是:不怕困难,不怕瓶颈,爱上不断自己寻找答案的过程。这是程序员必经的一环。
体会理解
正如上面所说,每个人学习编程语言的目的不同,有的人是兴趣,有的人就是想要高工资,每个人目的不同,所获得的动力也不同。
大多数心想高工资的人,只会停留在编程语言的使用上,而不会深究其原理,而拥有良好学习方法和兴趣的人,往往可以在编程语言的体会和理解上更上一层楼。
当然,也不乏那种确实只希望拿高工资的人,本来干着程序员,后来不研究技术,搞产品搞公司搞创业发家致富。这也是个例。
编程语言是一个工具没错,问题是看你是一个使用者,是改造者,还是创造者?看你理解和体会的程度咯。
练习
一门编程语言的学习,绝对离不开练习,一定要为自己定下目标,用所学的语言,做一个属于自己的东西。学以致用。
如何快速学习编程语言
因人而异
首先,每个人肯定是有差异的。
是否有基础
是否有学习过计算机基础 & C语言基础
现在大学一般都会预设这两门课程,如果你没有学过这两门课程的话,请先尝试自学这两门课,看自己是否抵触计算机,在我看来,兴趣大于学习能力。
如果你没有这两门基础的话,就不很好判断你是否适合做程序员,以及对编程开发语言的接受能力。所以先开始接触一下计算机基础和C语言基础吧。
是否有学习过其他语言?
如果你有系统的学习过一门编程语言的话,你应该对编程语言有一个笼统的概念,而学过和学会的区别就体现在你对该语言的掌握程度。
学过一门编程语言的话,便可以快速学会一门新语言,而可以提升多少速度根据掌握程度不同而有差异。
如果你压根就没有学过一门编程语言的话,能否学会一门编程语言,需要花多长时间就与你的天赋和努力程度挂钩。
你要做好心理准备,零基础学习一门编程语言虽然是一条比较艰辛的路,但绝不是不推荐你走。努力总会有收获,学习编程语言是绝对与投入时间成正本的事情。
是否有过其他语言的项目经验?
如果你有使用过其他语言在公司中开发过项目,那么恭喜你,如果你足够优秀,你可以很快的融入到新编程语言中,并且还会考虑到新的语言如何在工作中应用。
如果你只是在学校学过一门编程语言,或者自学,并没有项目经验,那么我推荐你先使用你学过的编程语言做一个项目,算是你对之前学过的编程语言的一个毕业设计。再进行别的编程语言的学习。
选择一门适合自己的语言
编程语言有很多种,你可以根据排行榜排名进行各个语言的了解,不要吝啬你的百度,查一下排名靠前的编程语言都可以做些什么开发。详细了解以后,选择一门自己要学习的编程语言,如果你是第一次进行编程语言的学习,一定要慎重选择.起点语言的难易度不同也会决定你的终点在哪里。因人而异。
了解一门编程语言,切记不要加相关语言的开发群,因为在你步入程序员行业之前,你并不能分辨高质量技术交流群和无质量水群以及培训机构建的群。
警惕程序员劝退师,每个交流群都会有,他们的目的只有一个,打消所有准备入行以及想要勉强苟活在程序员行列中的人。
谨记,除了高质量的技术交流群,所有的群都是消遣,水水群,换个心情而已。
在知乎上了解一门语言的行情也不是很推荐,但至少要比群好多了,我个人看法是,如果你的兴趣可以支撑你研究一门编程语言达到一个深度,那么工作的问题你是不需要担心的,我最担心的就是你还没有怎么学,就已经想要放弃了。
学习编程语言的特点
局限性
什么是局限性呢,尤其是你在进行第一门编程语言的学习时,因为你并未接触过这方面的知识,也没有人可以全天指导你。
你所学到的知识无非就是书本、视频提供给你的,犹如井底之蛙,只能学到现有的知识,而无法拓展和灵活使用。
举个例子,当你去旅游的时候,你是会只去一个地方,还是会先搜遍这个城市的所有景点,然后挑几个自己喜欢的进行游玩。
尽管你在学习一门编程语言时,可能已经达到个人的满负荷,但我还是想把自己在进行学习所思考的关键词告诉你。
工作当中如何应用、实战项目规范和架构、该如何灵活应用。
如果只是学习字面概念,那就好比纸上谈兵,动手做一个自己想做的项目,付出实践,就是学习语言的最好方式。
滞后性
什么是滞后性呢,比方说,可能你在进行一门编程语言的学习,书中第四章所有的内容都无法理解,在阅读到第七章时豁然开朗,突然明白了第四章所讲的东西。
当然,这也会有时间性的体现,你会发现,在你学习的过程中,三个月前对同一个概念的理解与三个月以后是不同的。
承上启下
虽然你在前期可能不懂某些概念,如果在进行大量学习后,还是无法理解,你完全可以跳过,在学习以后的知识,会有一种顿悟的感觉,这便是语言的承上启下性。
如何进行系统的编程语言学习
空口无凭,我就拿我自己学习编程语言的感受来分享给大家.下文分文两种情况进行叙述:一个是我进行第一门Objective-C语言学习的体会,一个是在有了几年经验以后再进行别的语言学习时的体会。
第一门语言Objective-C的学习感受
语法的学习,语法学习中,唯一困扰我三个月的东西就是,对象,到底是什么东西。
OC是一门面向对象的动态语言,但我前三个月虽然会创建对象,调用方法,但我根本对对象毫无概念,没有自己的理解.一个混沌的概念。而后,在学习OC的6个月以后,大致懂了我为什么要创建对象,因为我要完成我的业务逻辑,我需要对象帮助我.在学习OC的一年后,我懂了对象存在的意义。而在从事了两年iOS开发后,看了些进阶视频后,我终于明白了,对象其实就是个指针,而指针的本质就是内存地址..(滞后性)
界面搭建:学习界面搭建时,也是为了搭界面而搭界面。
数据的传递:学习数据传递时,最令我困扰的就是循环引用,代理,block。
网络请求:网络请求类倒还是比较容易理解,这时学习的使用第三方网络请求框架,不懂它的原理和运作方式,只是会简单使用。
项目搭建:当开始了一个完整的项目搭建时,便突然豁然开朗,原来之前学习的所有东西,都是为了完成业务逻辑,搭建项目,需要自己灵活运用组合。
自我规范:当熟悉了项目搭建,并经过一段时间的工作,开始拥有了自己代码规范,约束自己,不再是为了完成业务逻辑而完成业务逻辑。约束自己,提高自己,并提高代码质量。
项目架构:在进行大量的文章读阅以及大量第三方框架代码的学习,突然发现自己需要提升的还有很多。
首先想要优化的就是自己的项目框架,代码不够健壮,架构不够健壮,这哪里是不够健壮,这简直就是不能见人。
底层原理:在养成了个人架构和规范后,开始进行了iOS的底层学习,Runtime机制,指针等,发现了一个道理:随着学会的东西,理解的东西越来越多,发现自己要学的东西越来越多。根本学不完。
总结
我第一门编程语言学习的时候,也下了很多功夫,做梦都在敲代码,这个过程很苦,但是我很欣慰.我也会很笨,书里的东西我都看不懂,代码也会出错,出很多知名错误,但我一直努力学习。
第二门语言的学习感受
语言特异性:有了第一门语言的基础,再进行第二门语言的学习,我会首先考虑到语言特异性。语言特异性就是字面意思,不同的语言,会有不同的规则和差异性。
书籍的分类:学习一门编程语言的最好途径对于有基础的人就是书籍,如果你没有基础的话,最好的途径是视频没错,但是视频有些节奏过慢。
编程语言书籍大致分为5类(入门类,工具类,实战类,高级类,圣经类).
切记不要盲目的读书,要循序渐进,不然失去读书的兴趣,将会失去知识获取渠道。
语言特性:每个语言都有特性,例如 动态语言、静态语言.强语言、弱语言.要搞清所学语言的语言特性.更有利于后面的学习.
语言规范:每个语言都有自己特有的规范,和系统内置函数,方法,实例.是编程人员不能替换和修改的并严格遵守的。
大体结构:每门编程语言的大体结构大致是
基础篇1.基本语法2.变量3.常量4.数据类型5.运算符详解6.流程控制&逻辑运算符7.文件加载8.错误处理9.函数&编程思想10.正则表达式应用篇1.网络请求2.数据处理3.编程语言内置函数4.类定义&类别&对象定义高级篇1.第三方开源框架2.底层原理3.算法
自成体系:每本书,每个视频,每个文档,每篇文章,都是别人的见解,别人的看法。
在学习一门编程语言的过程中,大量阅读别人的资料没错,但是,一定要把别人的东西变成自己的。
将自己的理解,建造成属于自己理解和见解的一个体系,也方便与别人交流,及时改正自己看法的错误。
如何拓展自己
人脉资源
在学习一门编程语言,最需要的就是一个前辈的指导,如果只有自己,那就和游戏开荒没有任何区别.
那怎么获得这个人脉资源呢,要自己去寻找高质量的技术交流群,结识各种层次的编程语言开发者:记住,发展的人脉资源,不要经常缠着问问题.在没有稳定属于你的人脉资源时,不要问毫无营养的问题,要问一些有建设性的问题,值得交流学习的问题。
学习他人文章/学习方法/别人的理解.
怎么学习?如何学习?我可以这么跟你讲,如果你想学,你的时间根本不够用.你觉得我说这话闹着玩的话,那就是你还没有体会到我是怎么想的.
把别人的理解,别人的文章,不用复制粘贴,转为自己的理解
如果觉得《怎样才能学好一门编程语言?要怎样去学习才算成功?成为一名合格的程序员》对你有帮助,请点赞、收藏,并留下你的观点哦!