初学者避坑指南:如何选择编程语言和开发方向(非常详细)

前言

全世界的编程语言有 600 多种,TIOBE 统计的有 100 种,参与排名的有 50 种,前 20 种是常用的,它们目前正在流行,或者曾经非常流行。

在这里插入图片描述

图1:2023年 6月份编程语言排名 TOP 20

TIOBE 是全球最著名的编程语言排行榜,它根据互联网上有经验的程序员、课程和第三方厂商的数量,并使用搜索引擎、Wikipedia、Amazon、YouTube 等统计出排名数据。TIOBE 只是反映某个编程语言的热门程度,并不能说明一门编程语言好不好,或者一门语言所编写的代码数量多少。

TIOBE 排行榜每月更新一次,你可以转到 https://www.tiobe.com/tiobe-index/ 查看编程语言的最新排名。

我一直在负责C语言中文网的一对一答疑工作,有很多同学问我,该如何从这么多编程语言中选择一门适合自己的呢?选择标准又是什么呢?很早我就想写一篇文章来回答这个问题了,现在终于如愿以偿了。

要想选择编程语言,首先得确定开发方向,比如网站开发、APP 开发、机器学习、大数据、嵌入式、GUI 软件、算法设计等。编程语言不是万能的,一门编程语言只能胜任一个或者几个开发方向,一个开发方向往往也有多种编程语言可以选择。

我们首先谈一下开发方向的选择,然后再说编程语言的选择。

【----帮助Python学习,以下所有学习资料文末免费领!----】

1. 选择开发方向

选择大于努力,只有切入一个适合自己的开发方向,才能持续进步。关于开发方向,我有以下两个选择标准。

1) 兴趣

学习编程是一个非常枯燥的过程,内容多,时间长,成本高,就算参加全职培训班,至少也得学习半年才能入门,做出一点小玩意来。要想成为别人眼中的大神,或者编程专家,没有三五年的功夫肯定是不行的。

扫描二维码关注公众号,回复: 15333819 查看本文章

学习编程的过程是比较艰苦的,没有兴趣很难硬扛下来,即使报名了培训班也学不会,所以,我们首先要选择自己感兴趣的一个开发方向,这样不但能快速学习,以后还能持续进步。

比如我就对网站感兴趣,高中阶段我就想开发一个属于自己的网站,感觉非常炫酷,所以大学我毫不犹豫地选择了网站开发这个方向。我在选择开发方向的时候没有任何纠结,我知道自己必须选择网站开发。

我的大学专业是电子信息工程,跟软件开发几乎没有关系,所以网站开发完全是我自学的,我也是凭借兴趣坚持下来的,一直到现在我还在运营C语言中文网,把兴趣变成了职业。

兴趣是最好的老师,没有之一。遗憾的是,对某个事物有强烈兴趣的人很少,大部分人都是被动选择。

此处我说的兴趣,是指别人无法撼动的热爱,是工作之余让你放松的事情。如果你只是有过某种想法,别人告诉你这个想法不靠谱,你就放弃了,这顶多是一时的鸡血。

2) 未来发展

如果你学习编程不是因为兴趣,只是想选择一份职业,那我希望你切入一个有发展潜力的开发方向。

每个产业的发展规律都是类似的,都要经历以下几个周期:

拓荒期 -> 发展期 -> 成熟期 -> 衰落期

我希望你在发展期切入一个产业,然后持续努力和积累,让产业的发展带着你起飞。站在风口上,猪都能飞起来。

你应该听说过很多没啥背景的人,突然之间一夜暴富了,惹得别人羡慕嫉妒恨吧,这些人,大都是在一个爆发式增长的行业里面翻了身,比如十年前的包工头、持续火热的程序员。

注意,最好不要在拓荒期切入一个产业,你很有可能坚持不到曙光到来之时就已经转行或者年老色衰了,成为了别人谈笑中的“烈士”。

对于软件开发产业来说,GUI 桌面软件已经是过去式了,APP 和网站也已经进入成熟期,我推荐机器学习(人工智能)和大数据两个方向,它们都是国家重点扶植的细分产业,而且写入了十四五规划,未来至少还有十年的发展时间。

机器学习需要大数据提供原料,反过来,大数据分析也依赖机器学习模型,它们是相辅相成的,很难隔离开。

以上是我基于 10 年的编程经验和 7 年的创业过程给出的建议,如果你觉得不对,就当做耳旁风吧,毕竟我也才三十出头,阅历还不是很丰富,难免有偏颇。

另外,选择产业方向也是有风险的,也是一次命运赌博,谁也不能确定这个产业能不能发展起来,就算发展起来,又需要多少年呢?又有多大的产值呢?

比如人们一直谈论的人工智能已经发展了几十年了,到现在还是“人工智障”,底层理论并没有本质的突破。虽然国家把人工智能选为重点产业,注入了海量资金和人才,各家大公司也跟风进入,但是底层理论如果不突破,十年以后没准还是智障,只不过应用场景多了。谁也不能穿越到未来,谁也不能告诉你确定的答案。

就算一个国家,也会点错科技树,比如:

  • 美国认为自己无人能敌,发展了朱姆沃尔特级驱逐舰,打算近岸攻击,想不到中国突然崛起,海军开始下饺子,美国不得不转为远洋作战,废掉朱姆沃尔特级。
  • 日本押宝混动汽车和氢能汽车,积累了大量专利,但是中国却切换了赛道,倾力发展纯电动汽车,并且积累了一定的优势,日本想逆袭非常困难,汽车产业岌岌可危。

在产业发展过程中,会有很多不确定因素,我们只能尽力选择一个有前景的产业。

其实吧,很多“暴发户”也不懂得什么产业发展规律,他们只是阴差阳错地进入了某个产业,恰好赶上产业崛起而已。我自己当初也不懂互联网,只是对网站感兴趣,就进入了互联网产业,抓住了 PC 互联网的尾巴,所以才比其他行业的同学混得好点。

也就是说,我混得好点,不是因为我足够优秀,而是因为我进入了互联网产业,搭上了产业的便车,我只是比我的同学更加幸运而已。

2. 选择编程语言

确定了开发方向,接下来就可以选择编程语言了。有的开发方向比较纯粹,只有一两种编程语言,有的开发方向鱼龙混杂,有五六种编程语言,选择编程语言也是一个让人纠结的过程。

以下是部分开发方向可以选择的编程语言:

1) GUI 桌面软件

能开发 GUI 软件的编程语言众多,既有传统的 C++、C#、VB、Delphi、Java,也有新晋选手 Python、Node.js(JavaScript),还有小众的易语言(中文编程语言)。

如果你只是想玩玩,那么你随意,适合自己的就行,其中 Python 上手比较简单。

如果你想找一份工作,建议学习 C++ 或者 C#。C# 虽然比 C++ 简单一点,但是它只适用于 Windows 平台;而 C++ 是一种通用语言,它可以应用于 Windows、Linux 以及嵌入式平台,就业选择较多。

2) 网站开发

网站开发分为前端和后台,前端就是用户在浏览器中看到的界面,后台就是放在服务器上的程序。

前端开发需要学习 HTML、CSS 和 JavaScript,没得选,而且必须都学习。

后台发开语言则多如牛毛,有走进坟墓的 ASP、Ruby on Rails,也有常用的 PHP、Java(JSP)、C#(ASP.NET),还有新晋选手 Python、Node.js(JavaScript)、Go 语言。

如果你想自己玩玩或者创业,建议选择 PHP,上手非常简单。我使用的也是 PHP,因为当时学不会 ASP.NET 和 JSP,所以选择了简单的 PHP。

如果你想找一份工作,那么已经走进坟墓的 ASP、Ruby on Rails 就不要选了,没人用了。C# 也不要选了,只适用于 Windows 平台,而大量的服务器都是 Linux。

剩下的 PHP、Java、Node.js 你自己看着办吧,没法说哪种语言一定有优势,它们只是适用于不同的场景。

值得一提的是,这里我们将 Node.js 和 JavaScript 看做是等价的,如果你选择了 JavaScript,那么你既能开发网站前端,也能开发网站后台,就不用学习多种编程语言了。

3) APP 开发

这个开发方向比较简单,Android APP 开发使用 Java 或者 Kotlin,iOS APP 开发使用 Objective-C 或者 Swift。

每种操作系统都有两种编程语言,一种是传统的,一种是新晋的,选择好了操作系统,把两种语言都学了吧。

4) 嵌入式开发

一般使用汇编、C语言和 C++,近年来也有开发板支持 JavaScript 和 Python。

自己玩的话,可以选择 Python,上手简单。

想找工作的话,还是走传统路线吧,把汇编、C语言和 C++ 都学了吧。

只有那些有 Web 开发基础的程序员才会选择 JavaScript。

5) 机器学习

这是一个比较综合的开发方向,初学者一般从 Python、MATLAB 开始搭建模型,实际工程应用中可能需要使用 C++、Java 等其它语言去实现。

Python 是必学的,MATLAB 最好也要掌握,C++ 和 Java 视情况而定。

6) 大数据

这也是一个比较综合的开发方向,相关语言有 Python、R语言、Java、Scala。把 Python 和R语言学习一下,剩下的看情况吧。

由于我的能力所限,我无法对所有开发方向做深入的分析,有说得不到位的地方,请大家留言,或者在公众号聊天框中反馈给我。

以上说的仅仅是编程语言,除了编程语言,大家还需要学习某些框架或者库,比如:

  • Java 网站开发需要掌握 Servlet、JSP 技术,以及 Spring、Spring MVC、Spring Boot、Spring Cloud、Mybatis、Hibernate 框架;
  • Python 机器学习需要掌握 PyTorch、TensorFlow、Caffe 等框架,以及 sklearn、NumPy 等模块。

除了编程语言和框架/库,你当然还要掌握一两种数据库,常用的有 MySQL、Oracle、MongoDB、Redis、Sqlite 等,这里不再展开讨论。

总结

软件开发是一个大产业,其中有很多细分方向,每个方向使用的技术栈都不一样,而且要经过长期学习才能掌握,所以大部分程序员都只擅长某个开发方向,那些多面手,要么是学艺不精,要么是技术大咖。

人们之所以迷茫,就是不知道如何选择,这篇文章虽然不一定能让你做出最终的决定,但是可以给你一种不同的视角和标准,帮助你打开思路。

最后给大家介绍一个完整的python学习路线,内容是从入门到进阶,既有思维导图,也有经典书籍,还有配套视频,给那些想学习python以及数据分析的小伙伴们一点帮助!

一、Python入门

下面这些内容是Python各个应用方向都必备的基础知识,想做爬虫、数据分析或者人工智能,都得先学会他们。任何高大上的东西,都是建立在原始的基础之上。打好基础,未来的路会走得更稳重。

包含:

计算机基础

在这里插入图片描述

python基础

在这里插入图片描述

Python入门视频600集:

观看零基础学习视频,看视频学习是最快捷也是最有效果的方式,跟着视频中老师的思路,从基础到深入,还是很容易入门的。

二、Python爬虫

爬虫作为一个热门的方向,不管是在自己兼职还是当成辅助技能提高工作效率,都是很不错的选择。

通过爬虫技术可以将相关的内容收集起来,分析删选后得到我们真正需要的信息。

这个信息收集分析整合的工作,可应用的范畴非常的广泛,无论是生活服务、出行旅行、金融投资、各类制造业的产品市场需求等等,都能够借助爬虫技术获取更精准有效的信息加以利用。

在这里插入图片描述

Python爬虫视频资料

在这里插入图片描述

三、数据分析

清华大学经管学院发布的《中国经济的数字化转型:人才与就业》报告显示,2025年,数据分析人才缺口预计将达230万。

这么大的人才缺口,数据分析俨然是一片广阔的蓝海!起薪10K真的是家常便饭。

在这里插入图片描述

四、数据库与ETL数仓

企业需要定期将冷数据从业务数据库中转移出来存储到一个专门存放历史数据的仓库里面,各部门可以根据自身业务特性对外提供统一的数据服务,这个仓库就是数据仓库。

传统的数据仓库集成处理架构是ETL,利用ETL平台的能力,E=从源数据库抽取数据,L=将数据清洗(不符合规则的数据)、转化(对表按照业务需求进行不同维度、不同颗粒度、不同业务规则计算进行统计),T=将加工好的表以增量、全量、不同时间加载到数据仓库。

在这里插入图片描述

五、机器学习

机器学习就是对计算机一部分数据进行学习,然后对另外一些数据进行预测与判断。

机器学习的核心是“使用算法解析数据,从中学习,然后对新数据做出决定或预测”。也就是说计算机利用以获取的数据得出某一模型,然后利用此模型进行预测的一种方法,这个过程跟人的学习过程有些类似,比如人获取一定的经验,可以对新问题进行预测。

在这里插入图片描述

机器学习资料:

在这里插入图片描述

六、Python高级进阶

从基础的语法内容,到非常多深入的进阶知识点,了解编程语言设计,学完这里基本就了解了python入门到进阶的所有的知识点。

在这里插入图片描述

到这就基本就可以达到企业的用人要求了,如果大家还不知道去去哪找面试资料和简历模板,我这里也为大家整理了一份,真的可以说是保姆及的系统学习路线了。

在这里插入图片描述
但学习编程并不是一蹴而就,而是需要长期的坚持和训练。整理这份学习路线,是希望和大家共同进步,我自己也能去回顾一些技术点。不管是编程新手,还是需要进阶的有一定经验的程序员,我相信都可以从中有所收获。

一蹴而就,而是需要长期的坚持和训练。整理这份学习路线,是希望和大家共同进步,我自己也能去回顾一些技术点。不管是编程新手,还是需要进阶的有一定经验的程序员,我相信都可以从中有所收获。

资料领取

这份完整版的Python全套学习资料已经上传CSDN官方,朋友们如果需要可以点击下方CSDN官方认证微信卡片免费领取 ↓↓↓【保证100%免费】

在这里插入图片描述

好文推荐

了解python的前景:https://blog.csdn.net/SpringJavaMyBatis/article/details/127194835

了解python的兼职副业:https://blog.csdn.net/SpringJavaMyBatis/article/details/127196603

猜你喜欢

转载自blog.csdn.net/weixin_49892805/article/details/131182450