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

2023-06-05 0 1,020

在世界上的C词汇有 600 多种不同,TIOBE 统计数据的有 100 种,参与名列的有 50 种,前 20 种是常见的,它们目前科袋,或是曾经十分盛行。

初学者避坑指南:如何选择编程语言和开发方向(非常详细)图1:2021 年 10 月份C词汇名列 TOP 20

TIOBE 是全球最著名的C词汇榜单,它根据网络上有经验的开发人员、专业课程和服务器端供应商的数目,并使用浏览器、Wikipedia、Amazon、YouTube 等统计数据出名列数据。TIOBE 只是反映某一C词汇的炙手可热程度,并不能说明两门C词汇怎么样,或是两门Smalltalk撰写的标识符数目多少。

TIOBE 榜单每星期预览一次,你能转到 https://www.tiobe.com/tiobe-index/ 查阅C词汇的最新名列。

我一直在负责C词汇中国日报的单对单释疑工作,有很多老师问我,该怎样从这么多C词汇中优先选择两门适宜他们的呢?优先选择国际标准又是什么呢?那时我就想写一则该文来回答那个问题了,现在终于如愿了。要想优先选择C词汇,具体来说得确定合作开发路径,比如说中国日报站合作开发、APP 合作开发、机器自学、大数据、嵌入式、GUI 软件、演算法设计等。C词汇不是LX1的,两门C词汇只能独当一面两个或是几个合作开发路径,两个开发路径往往也有多种不同C词汇能优先选择。他们具体来说谈一下合作开发路径的优先选择,然后再说C词汇的优先选择。

1. 优先选择合作开发路径

优先选择小于努力,只有瞄准两个适宜他们的合作开发路径,就能稳步不断进步。关于合作开发路径,我有以下两个优先选择标准。

1) 浓厚兴趣

自学程式设计是两个十分乏味的操作过程,内容多,时间长,成本低,即使参加兼职学习班,至少也得自学一年就能进阶,作出一点小东西来。要想成为别人眼里的天神,或是程式设计专家,没两三年的工夫肯定是没用的。自学程式设计的操作过程是比较艰辛的,没浓厚兴趣极难硬扛下来,即使报名者了学习班也学不会,因此,他们具体来说要优先选择他们钟爱的两个合作开发路径,这样不仅能快速自学,以后还能稳步不断进步。比如说我就对中国日报站钟爱,初中阶段我就想合作开发两个属于他们的中国日报站,感觉十分炫彩,因此大学我不假思索地优先选择了中国日报站合作开发那个路径。我在优先选择合作开发路径的时候没任何苦恼,我知道他们必须优先选择中国日报站合作开发。我的大学专业是电子信息工程,跟软件合作开发几乎没关系,因此网站合作开发完全是我自学的,我也是凭借浓厚兴趣坚持下来的,一直到现在我还在运营C词汇中国日报,把浓厚兴趣变成了职业。浓厚兴趣是最好的老师,没之一。遗憾的是,对某一事物有强烈浓厚兴趣的人很少,大部分人都是被动优先选择。此处我说的浓厚兴趣,是指别人无法撼动的热爱,是工作之余让你放松的事情。如果你只是有过某种想法,别人告诉你那个想法不靠谱,你就放弃了,这顶多是一时的鸡血。

2) 未来发展

如果你自学程式设计不是因为浓厚兴趣,只是想优先选择一份职业,那我希望你瞄准两个有发展潜力的合作开发路径。每个产业的发展规律都是类似的,都要经历以下几个周期:

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

我希望你在发展期瞄准两个产业,然后稳步努力和积累,让产业的发展带着你起飞。站在风口上,猪都能飞起来。你应该听说过很多没啥背景的人,突然之间一夜暴富了,惹得别人羡慕嫉妒恨吧,这些人,大都是在两个爆发式增长的行业里面翻了身,比如说十年前的包工头、稳步火热的开发人员。

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

对于软件合作开发产业来说,GUI 桌面软件已经是过去式了,APP 和中国日报站也已经进入成熟期,我推荐机器自学(人工智能)和大数据两个路径,它们都是国家重点扶植的细分产业,而且写入了十四五规划,未来至少还有十年的发展时间。机器自学需要大数据提供原料,反过来,大数据分析也依赖机器自学模型,它们是相辅相成的,极难隔离开。以上是我基于 10 年的程式设计经验和 7 年的创业操作过程给出的建议,如果你觉得不对,就当做耳旁风吧,毕竟我也才三十出头,阅历还不是很丰富,难免有偏颇。另外,优先选择产业路径也是有风险的,也是一次命运赌博,谁也不能确定那个产业能不能发展起来,即使发展起来,又需要多少年呢?又有多大的产值呢?比如说人们一直谈论的人工智能已经发展了几十年了,到现在还是“人工智障”,底层理论并没本质的突破。虽然国家把人工智能选为重点产业,注入了海量资金和人才,各家大公司也跟风进入,但是底层理论如果不突破,十年以后没准还是智障,只不过应用场景多了。谁也不能穿越到未来,谁也不能告诉你确定的答案。即使两个国家,也会点错科技树,比如说:

美国认为他们无人能敌,发展了朱姆沃尔特级驱逐舰,打算近岸攻击,想不到中国突然崛起,海军开始下饺子,美国不得不转为远洋作战,废掉朱姆沃尔特级。

日本押宝混动汽车和氢能汽车,积累了大量专利,但是中国却切换了赛道,倾力发展纯电动汽车,并且积累了一定的优势,日本想逆袭十分困难,汽车产业岌岌可危。

在产业发展操作过程中,会有很多不确定因素,他们只能尽力优先选择两个有前景的产业。其实吧,很多“暴发户”也不懂得什么产业发展规律,他们只是阴差阳错地进入了某一产业,恰好赶上产业崛起而已。我他们当初也不懂网络,只是对中国日报站钟爱,就进入了网络产业,抓住了 PC 网络的尾巴,因此才比其他行业的老师混得好点。也就是说,我混得好点,不是因为我足够优秀,而是因为我进入了网络产业,搭上了产业的便车,我只是比我的老师更加幸运而已。

2. 优先选择C词汇

确定了合作开发路径,接下来就能优先选择C词汇了。有的合作开发方向比较纯粹,只有一两种C词汇,有的合作开发路径鱼龙混杂,有五六种C词汇,优先选择C词汇也是两个让人苦恼的操作过程。以下是部分合作开发路径能优先选择的C词汇:

1) GUI 桌面软件

能合作开发 GUI 软件的C词汇众多,既有传统的 C++、C#、VB、Delphi、Java,也有新晋选手 Python、Node.js(JavaScript),还有小众的易词汇(中文C词汇)。如果你只是想玩玩,那么你随意,适宜他们的就行,其中 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。Python 也不要选,实际应用场景不多。Go 词汇主要用作 Web 底层合作开发,而不是应用层合作开发。剩下的 PHP、Java、Node.js 你他们看着办吧,没法说哪种词汇一定有优势,它们只是适用于不同的场景。值得一提的是,这里他们将 Node.js 和 JavaScript 看做是等价的,如果你优先选择了 JavaScript,那么你既能合作开发中国日报站前端,也能合作开发中国日报站后台,就不用自学多种不同C词汇了。

3) APP 合作开发

那个合作开发路径比较简单,Android APP 合作开发使用 Java 或是 Kotlin,iOS APP 合作开发使用 Objective-C 或是 Swift。每种操作系统都有两种C词汇,一种是传统的,一种是新晋的,优先选择好了操作系统,把两种词汇都学了吧。

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词汇自学一下,剩下的看情况吧。

由于我的能力所限,我无法对所有合作开发路径做深入的分析,

以上说的仅仅是C词汇,除了C词汇,大家还需要自学某些框架或是库,比如说:

Java 中国日报站合作开发需要掌握 Servlet、JSP 技术,以及 Spring、Spring MVC、Spring Boot、Spring Cloud、Mybatis、Hibernate 框架;

Python 机器自学需要掌握 PyTorch、TensorFlow、Caffe 等框架,以及 sklearn、NumPy 等模块。

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

总结

软件合作开发是两个大产业,其中有很多细分路径,每个路径使用的技术栈都不一样,而且要经过长期自学就能掌握,因此大部分开发人员都只擅长某一合作开发路径,那些多面手,要么是学艺不精,要么是技术大咖。人们之因此迷茫,就是不知道怎样优先选择,这篇该文虽然不一定能让你作出最终的决定,但是能给你一种不同的视角和国际标准,帮助你打开思路。

相关文章

发表评论
暂无评论
官方客服团队

为您解决烦忧 - 24小时在线 专业服务