如何选择编程入门语言?一个让很多人纠结的问题

用心分享,共同成长

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

本文已经收录至我的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语言。

?再陈述一段事实给大家。

linux操作系统是C语言写的;流行的PHP、python只是C语言的一个扩展库;Java和Go起初也是用C/C++编写;以后会用到的mysql、redis、nginx都是yongC语言实现的。

网上看到一段有意思的评论,分享下。

?语言只是工具,更重要的是在于使用工具的人。C语言在大牛手里可以写出来一个操作系统,在小白手里只能写Hello World。

?学完这些之后,你需要学习和你未来方向相关的技能了,比如未来是做前端、后台、算法、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]
  • 微信发送: 扫描下面二维码,公众号里面有作者微信号。

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

龙跃十二

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

时间: 2024-10-03 13:40:11

如何选择编程入门语言?一个让很多人纠结的问题的相关文章

都说python是最佳编程入门语言,为什么你学习却是如此坎坷?

为什么都说python是最佳编程入门语言? 引用Elliott Hauser 的说法,好的编程语言学生在入门时需要获得五样东西. 非常棒的首次体验,就像一本书的第一页,首先需要"入迷",学习新知识不可避免的会遇到挫折,但要有持续的热情和好奇心,这对于那些从未接触过编码的年轻人来说是至关重要的: Web编程的能力,对于职业发展和程序工艺来说,Web编程越来越重要,学生有机会就应当掌握一定的Web架构基础: 桌面编程能力,尽管将来趋势将更多的转移到Web应用上,但没什么能比开发和运行一个本

编程入门教程

编程入门教程 编程入门教程由QKXue.NET梳理的面向程序开发入门初学者的编程入门教程,是一个涵盖了游戏.PLC.VB.数控.JAVA.APP.Matlab.C语言.Shell.IOS.Android安卓等手机和PC编程的入门教程. 1. 编程入门教程 1.1. 游戏编程入门 游戏编程入门适用于任何对C++语言有基本了解的读者阅读,适宜作为读者进入游戏开发领域的技术入门学习用书. 游戏编程入门介绍如何设计和构建自己的电脑游戏.游戏编程入门不是泛泛地介绍编程理论,而是引导读者开发一个“即插即用”

寻找有缘人之编程入门

编程入门随笔 print('-----------寻找有缘人-----------') age_of_girl=input('你的年龄 :') age_of_girl=int(age_of_girl) height=input('你的身高 :') height=int(height) sex=input('请输入你的性别(中文) :') sex=str(sex) if age_of_girl>=18and age_of_girl<=22and height>170and sex==('女

很多人,被这句话害了一辈子

点击上方蓝字关注我们,夜读与你一起砥砺前行! 21君:小时候,你可听过“这孩子特聪明,就是学习不用心,他要是认真起来,学习成绩肯定好.”这句话么?是对你说的,还是对你身边的人说的?很多人都觉得这是一个夸奖,但其实给孩子这样的一个想法,其实是害了孩子.自作聪明的人,往往还没有学会正视自己与他人的努力和付出,就已经喜欢了那种轻盈获胜的姿态.为了姿态好看,他们宁可输,也不想通过努力制胜.来源:衷曲无闻(zhongquwuwen) 8:48 很多人,被这句话害了一辈子 来自21世纪经济报道   特别鸣谢

Mysql C语言API编程入门讲解

原文:Mysql C语言API编程入门讲解 软件开发中我们经常要访问数据库,存取数据,之前已经有网友提出让鸡啄米讲讲数据库编程的知识,本文就详细讲解如何使用Mysql的C语言API进行数据库编程.  API,全称Application Programming Interfaces,即应用程序编程接口,我们可以调用这些接口,执行API函数提供的功能.  Mysql C语言API就是用C语言编写的Mysql编程接口,使用这些接口函数可以实现对Mysql数据库的查询等操作.  Mysql的安装  要进

2018适合编程入门的语言选什么好?Java语言好

互联网+时代,给我们呈现的完全是一个新景象,在新的景象当中,人们也会有新的追求,不少朋友的新追求就是进入互联网行业,怎么样入门互联网行业,他们的选择就是选择从一门编程语言开始,编程语言种类繁多,2018适合编程入门的语言选什么好?Java语言好.跟长沙尚学堂小编一起来看看具体原因. 很多朋友刚开始没有接触过编程语言,然后搜索了下编程语言,结果发现这是个庞大的家族,不可能所有的编程语言都学习一遍,同时开展好几门编程语言的学习,也不太靠谱,所以必须选择一门编程语言入门,很多朋友面临众多的编程语言不知

编程入门:C语言基础知识全网超全不用到处找了!(文末附清单)

你背或者不背,干货就在那里,不悲不喜 你学或者不学,编程就在那里,不来不去 听到这话的你是否略感扎心? 编程入门:C语言基础知识全网超全不用到处找了!(文末附清单)01基础知识 计算机系统的主要技术指标与系统配置. 计算机系统.硬件.软件及其相互关系. 微机硬件系统的基本组成. 包括:中央处理器(运算器与控制器),内存储器(RAM与ROM),外存储器(硬盘.软盘与光盘),输入设备(键盘与鼠标)输出设备(显示器与打印机).如果大家如果在自学遇到困难,想找一个C++的学习环境,可以加入我们的C++学

《Go语言编程入门》视频课程开课了

作为拥有多年工作经验的运维老鸟,我没有选择运维常用的Python作为我今后的主要使用语言.Python编写运维程序的开发效率虽然很高,但随着代码量的增大,以及Python的缩进式语法结构,可读性和维护性并不很高.加之Python本身的设计,并不原生支持多线程多核,我考虑到当程序代码达到一定规模时,必然会考虑它的执行效率和维护成本.最终放弃了Python,选择语言的过程中被Google新出的Go语言吸引了.Go本身脱胎于C,语法和C比较像,我本身就一直学习和编写C和PHP程序,习惯了大括号的语法结

Unix/Linux环境C编程入门教程(41) C语言库函数的文件操作详解

?? 上一篇博客我们讲解了如何使用Linux提供的文件操作函数,本文主要讲解使用C语言提供的文件操作的库函数. 1.函数介绍 fopen(打开文件) 相关函数 open,fclose 表头文件 #include<stdio.h> 定义函数 FILE * fopen(const char * path,const char * mode); 函数说明 参数path字符串包含欲打开的文件路径及文件名,参数mode字符串则代表着流形态. mode有下列几种形态字符串: r 打开只读文件,该文件必须存