初学者该如何选择一门编程语言?

用心分享,共同成长

没有什么比你每天进步一点点更实在了

本文已经收录至我的github,欢迎大家踊跃star 和 issues。

https://github.com/midou-tech/articles

点关注,不迷路!!!

为什么会出这样一篇文章?

?本来想写点最近学习的东西,但是最近好多粉丝再问我一个问题。

image-20200105164345384

于是我决定把我这个过来人的一些建议给到你们,希望大家少一些不必要的迷茫,多花点时间去学习该学习的东西,去做一些重要的事情。

刚开始学习编程的困惑

?在刚开始学习语言的时候我也很纠结学什么语言好?这个问题我相信很多人在最开始学习编程的时候都会纠结,到底选择一门什么样的语言才能使自己在千军万马的工作大军中出奇制胜呢?总害怕选错了语言导致自己未来竞争不占优势。

?我把各个语言的热度榜拉出来看了。

img

topn10走势

?其实看来看去都差不多,主流语言就那些。像极了股票市场的涨跌图,起起伏伏。不过编程语言的起伏波动没那么大。

?就这个问题,我还问了一些工作的学长学姐,看看他们这些过来人都有什么样的见解。还好我人缘好,他们都很耐心的给我讲了很多,以下是他们给我的建议。

过来人的一些建议

?一个在京东做云计算的学长语重心长的这样和我说,学习语言要看你以后准备做什么? 和你未来工作方向有关。简单列几个未来方向供你参考

  • 如果你想从事和你自己专业(我的专业是电子信息工程)相关的方向工作的话,你可以好好学习C语言,汇编语言。因为你的专业以后工作方向在嵌入式和硬件编程方面较多。嵌入式编程讲究的是嵌入,所以一定要小巧和轻量,C语言符合这个场景需要。
  • 如果未来工作做纯软件的行业的话,你不应该局限于选择怎样的语言,工作需要什么你就学习什么语言,或者说项目需要什么语言你就必须很快学习这个语言,不过在学校学习还是建议学好一门高级编程语言。学好指的是学到精通,精通就不用解释了。你要对语言有所见解,而不是简单会用。
  • 如果你未来想算法一类的工作,你就应该把精力放在算法钻研上,而不是语言本身。

?语言只是工具,就好比计算器一样的工具,用计算器算题和设计、制造计算器是完全不一样的。大多数都是计算器的使用者,而不是设计生产制造者。完成一件事情可以选择很多种工具,就好比学生喜欢科学计算器,仓库老板喜欢那种很大声的简单加减乘除计算器就OK了。

一个阿里的学长告诉我

  • 主流语言随便选
  • 学一门精一门,其他的都是触类旁通
  • 注重工具思想,同时也要注意工具出了问题该如何处理

?看了他们对我的话语,我得到的理解是,选择语言之前你要确定好你的未来工作方向(工作还是很宽泛的一个词语,人的一生大致可分为学习、生活和工作三件事,这三件事将伴随我们一生。学习和生活我们都能很好的理解,但是工作这件事大家可能会觉得有些不符合,有些人就是一生不工作,其实不然,"一个人的工作是他在社会中所扮演的角色。"),这样有目标的学习一门语言才能更好的帮助你未来工作,当然同时也不要局限于一门语言,毕竟技多不压身。 求点赞?? 求关注??

?还有一个问题,当我们不是很明确未来到底从事什么工作方向时,我们可以去找寻下自己的兴趣,其实大学很重要的一点就是找到自己的兴趣方向,尽量让自己的兴趣和自己工作方向相结合,能拿兴趣作为工作方向是再好不过的了。就像两个相爱的人在一起,每天都会是开开心的。如果是因为某些原因让两个没有感情基础的人在一起,那只能靠在一起之后才慢慢培养相爱的感觉。后者固然是不好的,但是为了生活很多人还是被迫选择了后者,趁年轻,趁还有机会,我希望你能选择前者。

?当然还有很多其他的学长学姐给了我很多不一样的建议,但是总结下来就如下几点。

  • 找一门和未来工作相关的语言开始学,一定要学到精通。
  • 要有工具思想,语言只是工具,工具是用来解决问题的。我们要做的灵活运用工具,了解工具的特性,顺便如果工具除了出了问题你会修理工具,那就再好不过了。
  • 不要在选择语言上浪费太多时间,而应该在选择工作方向上找到自己的兴趣。
  • 多花时间在工作方向上需要的其他技能上。

结合过来人建议之后我的选择

?听了过来人的建议之后,这几句经典涌上我的心头 "林尽水源,便得一山,山有小口,仿佛若有光。便舍船,从口入。初极狭,才通人。复行数十步,豁然开朗。"

?我的工作方向是后端开发,我也比较喜欢后端开发,加上大学本来就会开设C语言和C++语言。于是我很顺理成章的选择了C语言作为我的编程入门首选语言。

?现在作为过来人说说吧。

  • 从学术研究上看,编程语言语法都差不多。
  • 从原理上看,编程语言都类似,对一门编程语言掌握到透彻后,再学习其它编程语言可以触类旁通。
  • 针对的是学习能力较强的人。有一定基础之后,可以快速的学习另一门技术。

?选择语言没必要那么纠结,但是编程入门我首推C语言,既有低级语言的高效,又有高级语言的抽象。C语言有很多特性,比如小巧,对操作系统很友好特别是linux操作系统(不要害怕linux,你工作以后100%会接触linux,不管你从事互联网什么行业,你都会或多或少的接触到linux),运行速度快,支持汇编级别优化,可移植性好等等其他特性。当然也有缺点,比如开源框架少、不是很适合写业务系统,面向对象支持不是很好。C语言作为入门语言会有助于你去了解操作系统的运行原理,内存控制原理,对这些的了解有助于你学习其他任何高级编程语言。至于学完C语言之后,你不用纠结接下来学什么,接下来毫不犹豫用C语言把数据结构与算这本书学完并实现常用的数据结构与算法。

?说下为什么学完C语言一定要去学习数据结构与算法,有以下几点原因。

  • 趁热打铁,刚好巩固C语言的语法和一些特性。
  • 数据结构与算法是一门必修课,与未来从事什么方向无关(不要拿一些特殊职业出来钻牛角尖奥)。

?为什么我首推C语言作为编程入门的语言,而不是其他语言,并不是我觉得其他语言怎么的。除了以上说到的C语言的特性之外,还有一个很重要的原因,C语言几乎是所有计算机专业和相关专业都会开设的课程,作为入门语言,学习成本小,和同学、老师交流起来方便。这些因素会促使你很快学精C语言。

?学完这些之后,你需要学习和你未来方向相关的技能了,比如未来是做前端、后台、算法、AL等大领域里面的小领域。扯远了??,继续说选语言的事,作为一个过来人很正式的告诉你,你需要学好一门面向对象语言即可,其他的语言只需要在工作中用到的情况下花几天时间就可以搞定,或者现学现用。因为你只要把握了一门C语言+一门面向对象的高级语言,其他语言的学习会触类旁通,学习成本会非常小。学通了C语言,意味着你对变量类型、逻辑结构、函数栈、内存模型,程序编译原理、汇编级别优化都会掌握(看我的关键词"学通",不是简单的学个hello world)。学完一门面向对象的高级语言,意味着你对面向对象的三大特性(继承、封装、多态)、抽象、设计模式有了很好的把握,这个时候工具使用已经到了很熟练的状态了,可以试着用工具去创造内容了,比如去github找几个项目练练手,或者用编程解决日常生活中遇到的问题。 求点赞?? 求关注??

?只要你是方向上没错,选择语言很so easy。

img

?我总结了一份C语言的知识点思维导图,后期的文章会写一写关于C语言中的难点内容,比如程序的编译运行原理、函数栈调用过程、指针、内存管理等。github上有我的写作大纲,喜欢的可以star 和 issues。github:https://github.com/midou-tech/articles。大家在看的过程中遇到任何问题都可以给我发mail:[email protected] 或者 [email protected] 或者 [email protected] 我会每周三和周六的时候回复大家的邮件问题(工作繁忙,自己也需要沉淀,多理解下)。

C语言知识点思维导图

我喜欢那些闪光的东西,比如冬日的雪花,天上的星星,还有你的眼睛。

都看到这里了,奋斗中的你还不为同行点个赞, 求点赞?? 求关注??

求点赞?? 求关注??

龙跃十二更多精彩文章:

学习linux命令,看这篇2w多字的命令详解就够了

HTTP就是这么简单

Redis基础

顶级程序员工具集

二十多个免费高清图片素材网站送给你

如果有人想发文章,我这里有偿征稿(具体细则请微信联系),欢迎投稿或推荐你的项目。提供以下几种方式投稿

  • 去我的github提交 issue: https://github.com/midou-tech/articles
  • 发送到邮箱: [email protected] 或者 [email protected] 或者 [email protected]
  • 微信发送: 扫描下面二维码,公众号里面有作者微信号。

精选文章都同步在公众号里面,公众号看起会更方便,随时随地想看就看。微信搜索 龙跃十二 或者扫码即可订阅。

image-20191230233730073

原文地址:https://www.cnblogs.com/zhonglongbo/p/12153107.html

时间: 2024-11-10 15:31:20

初学者该如何选择一门编程语言?的相关文章

如何学习一门编程语言?给编程初学者的几个建议

如何学习一门编程语言?给PHP初学者的几个建议: 编程和任何新的技术一样,很难知道从何处开始.这里有些步骤适合初学编程语言的人:从“拖拽”编程开始.Python作为入门的语言.JavaScript是非常有用的语言之一.试试Ruby和Ruby on Rails.熟悉HTML. 在美国,计算机科学是一个蓬勃发展的行业,并且它的薪资待遇是极好的.对于顶尖的.有才华的工程师需求从没间断过,这就是为什么学习代码看起来是一个有吸引力的选择. 但是和任何新的技术一样,很难知道从何处开始.这里有一些你应该在早期

怎样学习一门编程语言

选择一门语言 1.确定你感兴趣的领域 你可以开始学习任何编程语言(尽管其中一些被描述地比其他的更加"易学"),你得去问自己自己想用通过学习这门语言完成什么样的工作.这将会帮助你确定你应该追求的编程方式并且提供一个良好的开始. 如果你想进入Web开发行业,那你将会有一堆语言需要去学习,这和开发计算机程序相反.移动App的开发需要比PC等的开发更多的技巧.所有的这些决定将会影响着你的发展方向. 2.考虑从一个"易学"的语言开始 无论你做了什么样的决定,你可能只会希望从一

12种方式让程序员快速掌握一门编程语言

[IT168 评论]你决定学习一门新的编程语言了吗?怎么开始呢?本文列举了12项关于快速掌握一门编程语言的方法,如果你有其他更好的建议,欢迎分享! 1.比较与之类似的编程语言 这点对于程序员而言,应该很容易吧!你可以通过观看该语言的教程或读取示例代码,来尝试猜测该语言的特点,并将其记录下来,比如: ·该语言与哪些编程语言相似,相似点是什么? ·该语言的不同之处在哪,哪些特点超乎了你的想象. ·该语言主要用来干什么呢? 如果条件允许,你可以寻找身边同在学习该门编程语言的朋友,互相交流,或许会有更清

如何学好一门编程语言?

其实现在市面上的编程语言多如牛毛,常见的有CPP.Java.C.Python.PHP.R.Matlab.GO等一系列的编程语言,当然还有我们工作中天天要用到的Linux操作系统,那么,问题来了,面对这么多的编程语言,我们先学哪个呢?从何处入手?如何学?报班学还是自学? 在我看来,无论是学哪个,报班学还是自学,首先要清楚明白一点,数量级要达到,如果达不到数量级,学什么都是白学的.为什么人家是个牛人,自己却还是个小白?差距就在于数量级的冠军级训练. 何为冠军级的数量级训练?就是正常人学习一门课程是1

若问今年最火的一门编程语言是什么?答案一定是Python。

这把火已经烧到了程序员的圈子外,从小学生到职场老司机,都开始学习这一门新的语言,门槛低.零基础.操作骚...再也没有什么能阻挡Python晋升网红. 有人用Python从各大视频网站下视频,有人成功用Python跳一跳跳到4999,有人用Python撩妹子,还有人设计了一套代码自动抢红包... 俗话说外行看热闹,内行看门道,我们已经知道了python的火热情况,但是学一门编程语言是需要花大量精力的,所以我们最关心的还是 我有必要去学吗? 这门编程语言适合我吗? 我应该怎么学? 对于看到这篇文章的

初学者学习Linux选择哪个发行版本合适?

Linux是免费开源的操作系统,具有非常重要的作用,现在想要学习Linux的人越来越多了.不过很多人学习Linux的目的是不同,有的人可能想要从事相关的工作,有的人可能就是想要多掌握一门技术,那么针对不同情况的初学者,Linux选择哪个发行版本好?接下来为大家介绍一下吧. 1.运维和分布式开发可以选择红帽版本:红帽版本主要分为了RHEL和centos,新手学习的时候如果不想太过于折腾,可以直接使用conetos,和RHEL在操作使用层面上完全没有区别的,只是来源有所区分,分为了开源免费和企业收费

如何创造一门编程语言?

编程语言,作为人与计算机沟通的桥梁,有着重要和深远的意义.有过计算机编程经验的人,多少学习或掌握过一到多种编程语言.计算机专业领域的编程语言成百上千种,主流的编程语言也有数十种之多.每种编程语言面向的领域和特性都不尽相同,不过归根结底是为了解决人与计算机之间沟通的效率问题,提高计算机的生产力.想必有不少人对那些主流编程语言的创造者十分倾佩,也相信有不少人会好奇一门编程语言是如何诞生的.那么如何创造一门编程语言呢? 总的来看,创造一门编程语言需要有以下几个过程: (1)设计语言的特性. (2)定义

如何学好一门编程语言或技术?

相信大家都知道,在看一本书的时候,通过该书的目录和索引能够很快的了解本书内容和找到我们需要的页数,因为一本专业的书本往往记录的知识都非常全面,举个例子假如我们初学Hadoop,所以呢就购买了一本<Hadoop编程指南>,打算系统的学习一下这个东东来提高一下自己的逼格和工资水平,那么问题来了,如何才能学好一门语言或技术? 以前也有很多朋友或群友,问散仙如何学好一门编程语言或XXX技术,当然首先我得从非技术的角度来回答你: 1,最重要的就是坚持下来,不要半途而废 2,空杯心态,戒骄戒躁,多向比你强

20180812选择一门比较新的编程语言长时间的学习

记录一下可以有 Istio,或者Rust了 另一点,在目前中国的几家大公司中batj中,我最喜欢的其实就是ali了. 为什么呢? 因为感觉ali在干一些小生意,说白了,在一直做一些基础性的工作,然后,我们是知道,这些基础性的工作是很难的,很有难度的进行的 因为这些基础性的工作可能需要自己创建一个系统级别的生态系统,那这个是比较耗时耗精力的. 所以,很佩服阿里这个公司. 很佩服阿里的技术. 多多关注吧.很厉害很厉害. 原文地址:https://www.cnblogs.com/badofboy/p/