零基础,又要自学,如何选择一门适合自己的语言是所有踏上这条路的朋友都会遇到的第一个问题。之前,看了不少文章,说的或多或少都有道理,比如会从你将来学编程的目的入手,分析需要用什么然后学什么,有些从语言的难易入手,按照先易后难的渐进的学习路线选择语言。有些建议就比较局限了,根据作者自己的喜好和熟悉的角度推荐一门语言,这个可能不是很靠谱。说了这么多,我把我的学习之路先分享一下,希望能对初学者的选择有些帮助!

说起自己的自学编程学习经历,最早可以追溯到刚刚参加工作的那一段时间,因为工作需要,经常要分析数据,开始使用Excel,渐渐的接触到宏。后来自己买了一本Visual Basic,还配置了电脑和光盘,结果学习到了一半,遇到太多的问题无法解决,身边也没有可以问的人,因为自己是文科生,身边的同学和朋友都没有接触这一块的。那时候因特网刚刚开始,网络上的信息非常的有限,除了官方的资料介绍网MSDN,没有可以借鉴的。编程最重要的就是实践,Debug是每一个编程人员都需要经历的磨难,但是当你遇到一个问题长期无法解决又没有帮助的时候,放弃是唯一的选择。而这一放弃相隔了近10年的时间。

也许是和编程有缘,冥冥之中对编程难以放下。直到孩子出生,逐渐长大,也开始接触了电脑游戏。我记得是2015年吧,老婆对自己说,如果你能把孩子的兴趣爱好引入对编程学习的专注而不是只知道玩游戏就好了。 出于作为父亲的责任还有多年来对编程的隐隐的眷念,我决定重新拾起自学编程之路。于是开始寻找适合自己的语言,考虑过继续学习Visual Basic,后来在网上搜寻发现JAVA很流行,而且是可以跨平台,也就是“一次编写,到处执行”的口号很适合自己。而且自己也开始使用Macbook,调试各方面也方便,只需要一个JDK。后来证明这个决定是正确的。写到这里,我觉对每一种主要的语言需要分析的特点很多,为了不分叉,我会在一篇单独的文章中总结和归纳我学过的每一种语言的特点,以及和其他的语言的关联性。这篇文章还是先从我自己的学习经历简单介绍一下语言适合初学者的主要的特点。

于是乎,JAVA成了我重拾编程之路的第一个选择,首先JAVA对初学者的最受益的地方在于,它从一开始就以对象编程为出发点,一切皆为对象。这是一个很重要的抽象概念,因为主流的语言中,除了C(C其实也可以进行对象编程,只是使用的是结构)都是以对象编程为核心,因为对象能将数据和方法打包,能很好的进行封装,预留接口,即照顾了多样适应性,又考虑了持续开发和升级的可能性。还有JAVA的垃圾回收机制,让很多初学者无需考虑C和C++语言中很容易犯错的内存回收和内存泄露问题。

易上手,强大的语言

从短期看,对初学者,选择一门语言是为了不让自己容易放弃,但是又要有一定的深度,能够让你了解编程世界的丰富多彩。从长期看,只要你不放弃,初学者一定会经历小白,熟练者,精通者,大师的阶段,当然如果你天资聪慧,成为大神也不是不可能。而且一般程序员基本上不可能只了解一门语言的,因为语言之间是有相关联的特性。所以从长期看,选什么语言其实无所谓,因为最终你或多或少的都会接触到不知一种的语言,所以只是时间问题,先后的问题。在学习JAVA的过程中,不可避免的会发现它和C和C++之间的相似性和不同性,JAVA是在C基础上演变来的,解决了一些程序猿容易犯错的地方,提供了不少方便,但是也有自身的不足和从语言上无法根本解决的问题比如泛型和C++中的模版没法比。首先方便性看,所有皆对象,你可以很容易创造自己的对象,在继承或者直接使用其他对象的方法和属性后,很方便的生成具有复杂特性的对象。和其他语言最大的不一样的地方就是JAVA没有直接的函数调用(只是针对程序员使用而言,JAVA的main()就是一个函数,只是这个函数是系统程序调用的),其实所有的函数都是对象的方法,这个在接触其他语言的时候需要适应一下。因为函数调用很方便也很强大。对于初学者如果只需要知道一个对象,其他的都是从对象中索取的思路很容易上手,也不容易犯错。只需稍微注意一下静态方法和实例方法的区别就好。前者不用生成实例就可以直接调用,后者需要先生成实例再用实例调用方法。所以对于初学者来说,从JAVA入手相对比较容易掌握对象的抽象概念(一个很重要的概念,因为基本所有的主流语言都会涉及到对象编程)而且JAVA没有指针的概念,配合垃圾回收器,可是说从根本上解决了内存泄漏的问题(也不是完全解决,还是有坑的,不过对于初学者应该不用考虑)。因此我会比较推荐把JAVA作为初学者的第一门语言。在下一篇,我会结合自己的自学编程之路,分析Python,C,C++,PHP,Javascript对与初学者来说的适合度。

javascript实例自学手册光盘源码_零基础,自学编程,如何选择语言?相关推荐

  1. 自学python数据需要多久_零基础自学Python要多久?需要怎样的基础和准备

    被誉为"胶水语言"的Python在计算机.互联网领域还有更为广阔的用途!而且Python与C.C++.C#.Java并称为目前世界上主流的5种编程语言:在数据分析.云计算系统管理. ...

  2. 零基础自学java的难处_零基础自学Java 在学习中要注意哪些问题

    如果是零基础自学Java编程,在学习过程中有很多要注意的问题,想要学好学精必然是件难事,并且可能会走弯路浪费很多时间,短时间内是不可能学成参加工作的,想要成为专业的Java程序员并不容易,技术过硬尤为 ...

  3. python语言有几种编程方式_零基础自学python语言,有哪几种方法?龟叔说:这套教程带你入门...

    第一我要说的是:你应该先了解python语言的起源,这句话对于自学python的小白来说,本身就是耍流氓. 我们从根源上分析这个问题,这个问题是(从零基础如何自学python编程)? 我的提取关键字: ...

  4. python多久能找到工作_零基础自学Python多久可以找工作?

    零基础自学Python多久可以找工作?零基础自学3个月很难找到工作.如果全职学习Python的话,学习6个的时间,不一定能达到找到工作的水平,掌握项目经验还需要更久,达到企业需要的岗位要求还需要多练习 ...

  5. 自学python需要多长时间-零基础自学python要多久?

    原标题:零基础自学python要多久? 如果是自学,从零基础开始学习Python的话,依照每个人理解能力的不同,大致上需要一年半左右的时间,至于能不能学好要看你自己的领悟了,至于找到工作那就不好说了. ...

  6. 第一门语言学python好_零基础学编程,哪一门语言比较适合入门?

    最近,有不少小伙伴问我,说零基础学编程,第一门语言学哪个好?有人推荐学Python,理由是Python简单,对新人友好,上手快,那Python到底适不合适新人学呢. 我今天就这个问题给大家稍微的展开一 ...

  7. python初学者编程指南源码_如何系统地自学 Python?

    是否非常想学好 Python,一方面被琐事纠缠,一直没能动手,另一方面,担心学习成本太高,心里默默敲着退堂鼓? 幸运的是,Python 是一门初学者友好的编程语言,想要完全掌握它,你不必花上太多的时间 ...

  8. 零基础学习python人工智能考试_零基础自学Python人工智能,看这些资料就够了

    教程说明: 本套教程属于人工智能.机器学习.深度学习.自然语言处理方向的教程,涵盖python基础.python高级教程.大数据.数据分析.数据挖掘.高等数学.概率论统计.算法结构.量化交易.Kagg ...

  9. 零基础python视频教程谁的好_零基础自学Python!自我提升视频教程,新手必看

    小编今天给大家分享一套高老师的python400集视频教程,里面包含入门进阶,源码,实战项目等等,,不管你是正在学习中,还是想要学习的,通通来吧 肯定不会让你失望. 目录大纲: 本套教程15天 学前环 ...

最新文章

  1. jquery引入标红叉
  2. GridView的Command命令集合
  3. 【Python初学者】准备
  4. Spring-Jpa : @MappedSuperclass的作用
  5. 从宏观的实现原理和设计本质入手,带你理解 AOP 框架的原理
  6. ubuntu18.04解锁apt
  7. mod libs 课堂
  8. 计算机中数据存储--ASCII码
  9. 【落谷1957】口算练习题题解
  10. Previous operation has not finished 并且一直报错cleanup failed to process的解决方法
  11. 使用Go语言开发生成阿里云ECS监控报表,定时自动发送邮件给指定人员
  12. 曲婉婷-----没有什么不同
  13. 今天520情人节,你确定不学一下「情话设计模式」?
  14. 集线器(Hub)、交换机(Switch)与路由器(Router)
  15. Linux(redhat)镜像
  16. php 格式化电话号码
  17. C# : 软件加密机制以及如何防止反编译
  18. 在此计算机运行应用程序灰色,手把手教你解决win10系统自带应用呈灰色无法打开的处理教程...
  19. 校招生向京东发起的“攻势”,做到他这样,你,也可以
  20. qt程序在Linux下字体乱了,QT5程序字体渲染的问题

热门文章

  1. 调用图像_本地图像的保存和调用
  2. c mysql 并发处理_mysql队列中实现并发读的实现方法解析
  3. P3919 【模板】可持久化数组(可持久化线段树/平衡树)(入门第一题)
  4. application实现网页计数_手把手教你利用爬虫爬网页(Python代码)
  5. java窗口三栏布局_移动端的flex三栏布局的相关知识介绍(代码示例)
  6. pdo query获取mysql单行结果_php代码连不上mysql的可能?看看这个也许能给你点启发...
  7. Java8 List<对象> 转 Set、Map(高级)、排序、分组、统计
  8. java精确除法运算-BigDecimal
  9. SpringBoot读取外部配置文件的方法
  10. Mysql8报You need either to explicitly disable SSL by setting useSSL=false