[闲聊杂谈]如何学习一门编程语言

[目录]

  • 0. 前言
  • 1. 学习多门编程语言是普遍的、可行的
  • 2. 编程语言入门小建议
    • (1)计算机专业
    • (2)计算机相关专业 和 理科专业
    • (3)非相关专业
    • (4)自学方式
  • 3. 从一门编程语言学习另一门语言小建议
  • 4. 结束咯

0. 前言

平时各位都如何学习一门编程语言?我陆陆续续学了很多种,有些是上课需要有些是工作需要。感觉学会和精通一门语言是比较值得探讨的,写此文以总结和探讨吧。不过由于本人经验和能力都一般,所以本文也仅做闲聊杂谈之用。

1. 学习多门编程语言是普遍的、可行的

我大学是电子信息专业,学的方面很多。大一的时候就学C语言,然后学matlab与python,面向对象课程学的是C++,甚至还学Verilog这种硬件描述语言。反正就是学了很多,上课的时候也会用到。比如,单片机嵌入式、FPGA用的C和Verilog,机器学习、图像处理的时候用的phthon和matlab。专业给我提供很多毕业方向选择,嵌入式开发、机器学习读研深造、通信或者电路设计之类的。但后面我自己学了C#跑去做游戏了。而且之前在犹豫毕业做什么的时候也学过一点点java。然后毕业去上班,因为公司之前做小游戏用TS居多,所以Unity3d也用TS的框架,所以也开始学并用起了TS。

陆陆续续的也学了很多语言,很多都只是个入门,多而不精了属于是。但那么说呢,程序员学多种语言也是很正常的事情,我一软件工程专业的同学学了c++,java,python之类的,毕业之后他去上班,工作需要也要学点JS等其他语言,调试网页的时候也会使用到一些。所以从这个角度考虑的话,学习多门编程语言也是一个程序员的基础路程了。需求、环境在变化的话,使用不同语言也是比较常见的,这也能发挥不同语言的优势。另外编程语言也在不断迭代更新,推陈出新,比如之前很火的GO,有些时候为了跟上时代,学习不同语言还是有点需要的。

不过入门一门语言之后,学习其他语言就比较简单了。编程语言之间的相通性还是挺高, 基础内容语法基本都是声明、条件判断、循环之类的内容,而且数据结构之类的这种基础知识也是可以几乎无缝的使用在不同语言中。

所以,学习多门语言的普遍性、可行性都是有的。当然当然,还是需要精通一两门语言的,不然只是啥都会点,但要做东西的时候做不了就比较麻烦了

2. 编程语言入门小建议

(1)计算机专业

这个没啥好说的,就跟着看老师和课程学入门就好了。然后如果有想做更多的话,可以考虑报专业中,算法相关的社团或者活动,在写算法解题的时候,用给这个语言就会越来越顺手了。如果可以进相关的实验室就更好了、

(2)计算机相关专业 和 理科专业

现在好像很多理科专业都会教一门编程语言,之前我同学土木的,他们会学java。比如说我的专业,电子信息工程,就算是计算机相关专业的,当然也会教的,**入门语言基本上应该都是C/C++**吧,从这种开始学起的话,内容都比较基础底层,后续学其他内容就也比较简单了。

就是大学上课老师教学,课后实验、作业,最后考试这样。经过这个过程,基础内容也就学个7788的了。就简单听老师安排,其实就学点基础入门,老师太水也没关系,有点问题百度一下或者问问同学就好了。

不过这里插一句题外话,自己要多去发现行业所需要的技能,然后在额外学习补全。对于非计算机专业来说的大学生,软件编程是课程缺失的(这挺正常的毕竟专业本身不是要教你做软件的),这个之后要自己多去补全。比如说我现在做游戏的,这个当时没学的数据库、计算机网络、计算机图形学也是我一直的痛。

(3)非相关专业

如果是高中生建议还是把基础内容学好先,高考大学很重要。另外数学和英语等这种都是以后会用到的,不要轻视。有闲暇时间在考虑学编程。另外对于零基础来说,语言只是基础,后面数据结构,网络通信等很多内容都是程序员关键要学的,不要头脑一热就要干啥,或者被课程洗脑了。感觉每天花8小时应该也要4个月吧,才能从0开始入门,要非常认真做笔记实践啥的。

好了,假如现在确定了是要开始学了,就首先要确定一门语言。先确定一下自己希望做的内容,比如做前端还是后端,做移动端吗,还是做机器学习,这个要考虑一下。如果你考虑好了,那建议查相关行业需要的内容选择语言,虽然互联网一堆垃圾信息,但是你多逛逛,货比三家,就大概知道要学啥了。直接问相关从业人员也是很好的选择。这里讲一些我相对了解的,以供参考:

  • 做游戏:
    C++(虚幻,做大型游戏,性能好画面好)
    C#(unity,做手游等3D游戏,很多公司在用,学习资源多)
    typescript(Cocos,做小程序网页游戏)
    (上面的不同游戏引擎都是可以学习的,市场还都不错的,然后强项对应写上了)
    (后面只是强项,不是说unity 只能说手游,做端游也是很厉害的,Cocos当然也不止可以做小程序)

  • 机器学习、AI:
    R语言、matlab(一般大学,学术研究会用,然后matlab是收费的)
    python(非常多的库可供使用,可以自行搭配,网上教程也多)
    (其实机器学习数学很重要,基本算法才是关键,一定要学好数学、高数,线性代数!)

  • 单片机、嵌入式开发:
    C(没啥好说的啦,基础的高级语言,基本非他莫属了吧)

我是推荐看着教程一起做一个demo,然后一起学的,有成果就更容易学下去。其中要注意就是,不要老师打一句代码你就复制一下,然后做完了其实啥也不清楚。代码要自己写不要复制,然后多想想为啥这么写,这句话是在加载什么或者是调用什么。

如果方向不清楚的话,C/C++,java 都是比较好的入门选择。学完一门语言之后再去另一门语言就不太是一件难事了,特别是java和C++这种十分规范的老牌编程语言。python之类的话,不太建议吧,真没有网上传的那种那么好用,比如,什么excel自动处理之类的。这种需求量不大的情况下,比如我就每天登记点内容,这个就手动吧。写个编程其实花费时间更多。而且后续这个需求改动了,程序又用不了。如果先学C/C++之类的,应该会比较好学习其他语言。不过如果你已经有了明确的目标就直接开始学对应内容就可以,比如就要做前端,那你就从javascript 开始学也是可以的(尽管js有些让人很别扭的事情)。我个人认为没有说非要从c/c++开始学,虽然这样对基础了解更多,但是复出精力还是很多的。之后如果工作深入或者其他有需求的话再去补全就好了。

(4)自学方式

学习方式的话,感觉跟看视频会比看书容易学,看书容易放弃,而且细节不太够。b站之类的教程很多。付费教程的话,就需谨慎了,别到时候花了钱但自己又不想学了。书的话,我推荐是可以有一本书,作为工具书,书的信息密度比较高,查找的时候内容用可以。比如你忘记数组怎么声明了,程序集怎么打,看目录翻到对应内容一查就知道了。

自己要多写写,写多了就习惯了,多实践多记录,写博客之类的。后面忘了还能翻。尽量不要复制,自己多打一遍梳理一遍会更加清楚熟悉。**如果不记录,很容易后面学了就忘记了,最后和没学一样。**以前大学的时候也不知道要写博客,但是如果博客写得好的话也可以方便找工作的。

3. 从一门编程语言学习另一门语言小建议

如果已经入门一门编程语言的话,然后再去学习另一门语言的情况下,感觉会是分为两个部分。推荐看书学习,跳着看第一部分学语法,第二部分学语言特性当然要确定是有学习新语言的需求的,比如工作需要之类的,不然学多门语言还不如精通一门

学语法,看一下基础定义,声明,循环,条件等语法就可以了,然后按书中的内容敲一下代码。然后多用就好, 想不起来数组怎么定义之类的翻书查一查就好了。大概1-2天就可以学会基础语法了,然后一个星期就能够相对熟练地使用了。之后就多用就更熟悉了,不懂再翻书查。

学语言特性,这里其实也尤为重要,就像如果使用C++还和在C的时候一样面向过程编程,那C++这个语言的作用就被埋汰了。那学习语言特性的话,也是看书就好了,一般书都会给这种语言标志性的特性多开一章来解释。比如我买的C#的书,《C#本质论》,里面就会将反射,泛型这种内容单独讲。这几个章节就细看然后多实践实践。

看书有个好处就是,技术相关书籍内容一般精准正确,而且容易理解,看书来学习语言特性书非常合适的。毕竟出书是需要成本的,不像我现在写博客张口就来,内容会太杂,基本随便挑一本热销技术书籍都有不错的表现。而看视频或者教程的话,无用选择太多,而且太多已经是之前学过的内容,跳着看比较麻烦,浪费时间。

那么到这的话,基本上这门语言也就入门了,后续自然是多用多记录就逐渐精通了。

4. 结束咯

大概就是这样吧,居然说了这么多,都3400字了,有点啰嗦了哈哈。
最后祝大家身体健康,学有所成吧,溜了。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/83722.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

代码随想录打卡—day21—【二叉树】— 8.21

1 530. 二叉搜索树的最小绝对差 530. 二叉搜索树的最小绝对差 想法:先直接中序遍历(升序的序列)过程中相邻两个数的差值取min,自己写一次AC代码: /*** Definition for a binary tree node.* struct TreeNode {* …

关于视频监控平台EasyCVR视频汇聚平台建设“明厨亮灶”具体实施方案以及应用

一、方案背景 近几年来,餐饮行业的食品安全、食品卫生等新闻频频发生,比如某火锅店、某网红奶茶,食材以次充好、后厨卫生被爆堪忧,种种问题引起大众关注和热议。这些负面新闻不仅让餐饮门店的品牌口碑暴跌,附带的连锁…

爬虫工具的选择与使用:阐述Python爬虫优劣势

作为专业爬虫ip方案解决服务商,我们每天都面对着大量的数据采集任务需求。在众多的爬虫工具中,Python爬虫凭借其灵活性和功能强大而备受青睐。本文将为大家分享Python爬虫在市场上的优势与劣势,帮助你在爬虫业务中脱颖而出。 一、优势篇 灵活…

32.Netty源码之服务端如何处理客户端新建连接

highlight: arduino-light 服务端如何处理客户端新建连接 Netty 服务端完全启动后,就可以对外工作了。接下来 Netty 服务端是如何处理客户端新建连接的呢? 主要分为四步: md Boss NioEventLoop 线程轮询客户端新连接 OP_ACCEPT 事件&#xff…

分享图片 | 快速浏览网页资源,批量保存、一键分享图片

前言 小伙伴学习吉他,有时需要在互联网搜索曲谱资源,而多数曲谱均为图片,并且为多页,在电脑上显示练习很不方便,需要停下来点击鼠标进行翻页,影响练习的连贯性。 为了解决上述问题,通常把图片…

【数据分析入门】Jupyter Notebook

目录 一、保存/加载二、适用多种编程语言三、编写代码与文本3.1 编辑单元格3.2 插入单元格3.3 运行单元格3.4 查看单元格 四、Widgets五、帮助 Jupyter Notebook是基于网页的用于交互计算的应用程序。其可被应用于全过程计算:开发、文档编写、运行代码和展示结果。 …

宇宙原理:黑洞基础。

宇宙原理:黑洞基础TOC 黑洞的数理基础:一个由满数组成的数盘,经过自然演进,将会逐步稀疏化、最终会向纯数方案发展;纯数方案虽然只有{2}、无数(虚拟)、{0,1,2,3}(虚拟)、…

jenkins同一jar包部署到多台服务器

文章目录 安装插件配置ssh服务构建完成后执行 没有部署过可以跟这个下面的步骤先部署一遍,我这篇主要讲jenkins同一jar包部署到多台服务器 【Jenkins】部署Springboot项目https://blog.csdn.net/qq_39017153/article/details/131901613 安装插件 Publish Over SSH 这…

量子非凡去广告接口

量子非凡去广告接口,免费发布,请各位正常调用,别恶意攻击 >>>https://videos.centos.chat/weisuan.php/?url

深入浅出带你玩转栈与队列——【数据结构】

W...Y的主页 😊 代码仓库分享 💕 目录 1.栈 1.1栈的概念及结构 1.2栈的结构特征图 ​编辑 1.3栈的实现 1.3.1栈的初始化 1.3.2进栈 1.3.3出栈 1.3.4销毁内存 1.3.5判断栈是否为空 1.3.5栈底元素的读取 1.3.6栈中大小 1.4栈实现所有接口 2…

Python“牵手”拼多多商品评论数据采集方法,拼多多API申请步骤说明

拼多多平台API接口是为开发电商类应用程序而设计的一套完整的、跨浏览器、跨平台的接口规范,拼多多API接口是指通过编程的方式,让开发者能够通过HTTP协议直接访问拼多多平台的数据,包括商品信息、店铺信息、物流信息,评论数据等&a…

无涯教程-Perl - splice函数

描述 此函数从LENGTH元素的OFFSET元素中删除ARRAY元素,如果指定,则用LIST替换删除的元素。如果省略LENGTH,则从OFFSET开始删除所有内容。 语法 以下是此函数的简单语法- splice ARRAY, OFFSET, LENGTH, LISTsplice ARRAY, OFFSET, LENGTHsplice ARRAY, OFFSET返回值 该函数…

2024浙大MBA/MEM/MPA四个月冲刺备考策略

近期收到很多考生的咨询:距离联考就仅剩四个多月的时间,这个管理类联考的难度如何?主要考些什么内容?现在才开始备考还有希望上岸浙大吗?是不是要等到明年在开始备考比较合适?那么今天在这里小立老师就跟大…

管家婆中了mallox勒索病毒该怎么办?勒索病毒解密数据恢复

管家婆是很多中小企业使用的财务软件,它的性价比高、操作简单,适用行业也非常广。这也是它能够赢得众多中小企业主欢迎的原因之一。俗话说的好,木秀于林风必摧之,正是因为管家婆有着非常庞大的使用群体,所以它才成为了…

Stable Diffusion训练Lora模型

以下内容参考:https://www.bilibili.com/video/BV1Qk4y1E7nv/?spm_id_from333.337.search-card.all.click&vd_source3969f30b089463e19db0cc5e8fe4583a 1、训练Lora的2个重点步骤 第一步,准备训练要使用的图片,即优质的图片 第二部,为…

【vue3】对axios进行封装,方便更改路由并且可以改成局域网ip访问(附代码)

对axios封装是在main.js里面进行封装,因为main.js是一个vue项目的入口 步骤: 在1处创建一个axios实例为http,baseURL是基础地址(根据自己的需求写),写了这个在vue界面调用后端接口时只用在post请求处写路由…

【深入解析:数据结构栈的魅力与应用】

本章重点 栈的概念及结构 栈的实现方式 数组实现栈接口 栈面试题目 概念选择题 一、栈的概念及结构 栈:一种特殊的线性表,其只允许在固定的一端进行插入和删除元素操作。进行数据插入和删除操作的一端 称为栈顶,另一端称为栈底。栈中的数…

Masterstudy主题 - 用于线上教育、在线学习和在线课程的LMS WordPress主题

Masterstudy主题是每个人的最佳选择!它是一个完整的线上教育WordPress主题,适合所有想要创建在线课程、辅导和语言中心、在线学习平台并在全球范围内传播知识的人。这是一个完美的教育主题,旨在满足学习行业的需求。 网址:Master…

【数据结构练习】单链表OJ题(一)

目录 一、移除链表元素思路1:思路2: 二、反转链表三、链表的中间节点四、链表中倒数第k个节点五、回文结构六、合并两个有序链表 一、移除链表元素 题目: 思路1: 在原来的链表上进行修改,节点的数据是val的删除&am…

axios 各种方式的请求 示例

GET请求 示例一&#xff1a; 服务端代码 GetMapping("/f11") public String f11(Integer pageNum, Integer pageSize) {return pageNum " : " pageSize; }前端代码 <template><div class"home"><button click"getFun1…