【编程经验】如何学习编程语言的秘诀,编程语言选择,按需学习

news2024/11/28 12:35:45

大家好,欢迎来到停止重构的频道。

最近有些朋友问我们如何学习编程、初学软件的问题,我们打算出几期内容聊聊我们的建议。

本期聊一下如何学习编程语言。

我们将压箱底的诀窍介绍给新手朋友,当然这仅仅是我们的一些经验,并不是绝对的好方法。

也欢迎有经验的朋友在评论区分享自己的学习经验,我们按这样的顺序讨论:

1、 怎么才算学懂了一门编程语言

2、 编程语言选择

3、 如何学习编程语言

怎么才算学懂了一门编程语言

是否真的要看完几百上千页的《C++Primer》、《Java编程思想》 又或者做过几个大项目才算学懂了呢?

我们认为不是,正如同我们不认识所有的汉字,也能正常地阅读写作一样。

编程语言的作用是表达我们的编程思想,也就是告诉计算机应该怎么做。

学懂一门编程语言其实门槛不高,能看懂基础语法,看不懂的语法知道怎么搜索,并能使用该语言完成习题性的程序编写就可以了。

更具体的:如果在没看任何参考答案的前提下,做出这样的题,通过程序算出诸如这样的数学综合式,就算是学懂了编程。

对于一些偏门功能、关键字、奇怪知识,如javascript 中0.1+0.2不等于0.3等问题。其实可以不用纠结

当然,达到这样的程度,往往还是看不懂别人的代码,或者参加工作后看不懂项目代码。

这原因很复杂,可能是缺少软件框架、项目架构、算法、数据结构等等的认知。

但总的来说,仅仅是缺少知识和经验而已只要保持学习心态,就不会有太大的问题。

编程语言选择

编程语言没有绝对的优劣,但每个编程语言都有擅长的领域

所以编程语言的选择更多是依据想做什么软件而定的。

如果是嵌入式,那最好是c/c++ ;如果是网站系统的后端服务,可以是Java/node/php等。

当然,不用担心一开始选错了编程语言,因为这真的无所谓。

毕竟学会了一门编程语言且拥有一定编程思想后,再学其他编程语言是非常容易的。

如何学习编程语言

那么,如何学习编程语言呢?如果是完全新手,我们建议是先按照网上视频教学或学校课程学习基础语法,如if/else,函数,类/对象等等。

当然,这些基础课程顶多就是入门,你会有很多似懂非懂的问题,如c的指针、递归、类/对象等。

比如,你可能会听到,类是图纸、对象是建的具体房子… 好像理解了,但是没懂。

实际上,只要你有足够多的编程练习你就会得到一个更加浅显的理解,类只不过是一种自定义的数据类型,对象是属于这种数据类型的变量。

在学会了一些基础语法后,可以买一些经典的书,如《c++ primer》等,系统地深入学习并做做练习。

但比起啃这些几百页的书,我们更推荐这样做就是重写基础库函数。

这就是我们开篇所说的诀窍,以c语言为例,可以重写printf、itoa、strcmp等库函数。用自己的代码实现这些库函数的功能,当你重写了几十个库函数后,相信很多问题都已解决。

库函数与书中的练习最大的区别是,书中的练习仅仅为了某个知识点设计的,而库函数是为某些实际场景设计的,且不局限于某个知识点。

重写库函数的练习,更具有现实意义

重写库函数还有一个好处,就是学会按需学习,在这过程中,你会不断发现问题,并按需要寻找和学习一些语法或方法。

这是软件编程一个很重要的能力,毕竟未来的工作中,不可能没有知识盲点和技术难题。

总结

编程语言的学习只是冰山一角,以后会有很多诸如算法、框架、软件工具等等问题,但其实也没什么大不了的,按需要学习就解决, 如果没有现成工具,就设计和做一个出来。

顺便一提,做一个新的编程语言其实也不难,可以买一本书叫《自制编程语言》。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

连续四年第一!

近日,IDC发布《2022 H1中国AI云服务市场研究报告》,百度智能云连续四年市场份额第一,整体占比28.1%,在"人体人脸"、"图像视频"‍两个规模最大的子市场继续保持第一。‍‍ 在图像视频等多个领域蝉联市场第一 …

PLC算法系列之数值积分器(Integrator)

数值积分和微分在工程上的重要意义不用多说,闭环控制的PID控制器就是积分和微分信号的应用。流量累加也会用到。有关积分运算在流量累加上的应用,请参看下面的文章链接: SMART S7-200PLC流量累计算法实现(梯形图算法详解+优化)_RXXW_Dor的博客-CSDN博客_smart 200 流量积分…

【bootstrap】使用,初学者的总结

官网&#xff1a;bootstrap中文网 首页点击v3文档&#xff0c;然后下载最左边的那个。 解压后把里面的css和js文件复制过去&#xff0c;因为也要用到jQuery&#xff0c;所以要把jQuery.min.js也一起放入js文件夹。 然后&#xff0c;就是导入&#xff1a; <link rel"s…

Java互联网支付系统源码,基于SpringBoot,含支付宝,微信,银联详细代码案例

spring-boot-pay 支付服务&#xff1a;支付宝&#xff0c;微信&#xff0c;银联详细 代码案例 (支付宝和微信支付测试均需要企业认证&#xff0c;如果没有企业推荐使用 [服务商模式] 申请开通个人商户 也可以测试 )&#xff0c;项目启动前请仔细阅读 注意事项 :fa-hand-o-left…

快速上手 BearPi-HM Micro 一个带显示屏的开发板

一、前言 为什么要写这篇文章呢? 华为官方给OpenHarmony分:南向开发 和 北向开发 北向开发:应用APP开发 南向开发:设备开发 带显示屏的设备,可以更好的使用可视化界面,能更直接的利用烧录到设备里面的代码。 例如:冰箱上面的小的显示屏,可以更好的操控和观察当前冰箱…

一个 web 开发者眼中的技术美术(TA—Technical Artist)

Techical Artist 的中文翻译是技术美术&#xff0c;相比于直译为技术艺术家&#xff0c;技术美术这个称谓让我感觉更加亲切&#xff0c;当然艺术家这个称谓也很好&#xff0c;很高级 :p 。在游戏行业里我们常常能听到美术这个职业&#xff0c;而技术美术&#xff0c;从字面意思…

微信公众号活动策划方案怎么写?看完你也可以直接套用

一场成功的活动策划可以给企业带来相当可观的用户流量和曝光&#xff0c;前提是你的这份公众号活动策划方案是可执行和有回报的&#xff01; 毫不夸张的说&#xff0c;我们在写公众号活动策划方案之前&#xff0c;只要你搞清楚以下这几点&#xff0c;这个方案就可以说是成功了…

介绍一个MySQL参数检索工具

碰巧看到徐老师的这篇文章《MySQL的参数工具》&#xff0c;其中介绍了一个讲解MySQL不同版本参数的小工具&#xff0c;网站的作者是MySQL日本用户组的负责人Tomita。该网站能够提供不同版本MySQL的参数&#xff0c;包括不同版本之间的对比。当用户需要对MySQL进行升级、需要确认…

用javascript分类刷leetcode13.单调栈(图文视频讲解)

84. 柱状图中最大的矩形 (hard) 给定 n 个非负整数&#xff0c;用来表示柱状图中各个柱子的高度。每个柱子彼此相邻&#xff0c;且宽度为 1 。 求在该柱状图中&#xff0c;能够勾勒出来的矩形的最大面积。 示例 1: 输入&#xff1a;heights [2,1,5,6,2,3] 输出&#xff1a;10 …

2022年总结与2023年展望

又是疫情的一年&#xff0c;所幸年尾的政策看来是要全面开放了&#xff0c;也算是一件好事了。但是明年会不会就要强制线下上课导致实习不方便&#xff0c;这也是个问题。 技术学习 确定了自己的方向是走C/CLinux后端开发方向&#xff0c;跟着课程学到了一个图床后端的项目&a…

前端页面插件集成-Markdown编辑器

页面插件集成-Markdown下载MarkDown的插件包引入css、js、Jquary文件定义一个textarea区域作为MarkDown的载体初始化Markdown编辑器最终效果下载MarkDown的插件包 下载地址如下&#xff1a; 下载传送门 点击Github下载&#xff0c;然后解压 解压之后将如下文件夹和 js 文件cop…

贷后联动管控指标与差异化案件的分配逻辑

在风控精细化运营的当下&#xff0c;贷后工作的开展&#xff0c;越来越需要精细化管理。如何做好相关的精细化管理工作&#xff0c;首先我们从这些贷后相关的名词如下开始熟悉&#xff1a; 贷后基本催收名词解释 Flow Rate 迁移率就是在贷后资产评估里最重要的报表了&#xf…

【C语言进阶】还说不会?一文带你全面掌握计算机预处理操作

目录 &#x1f34a;前言&#x1f34a;&#xff1a; &#x1f348;一、宏与函数&#x1f348;&#xff1a; 1.宏与函数对比&#xff1a; 2.宏与函数的命名约定&#xff1a; &#x1f353;二、预处理操作符&#x1f353;&#xff1a; 1.预处理操作符 " # "&#xff…

C语言学生成绩管理系统

程序示例精选 C语言学生成绩管理系统 如需安装运行环境或远程调试&#xff0c;见文章底部微信名片&#xff0c;由专业技术人员远程协助&#xff01; 前言 这篇博客针对<<C语言学生成绩管理系统>>编写代码&#xff0c;代码整洁&#xff0c;规则&#xff0c;易读。 …

DFS算法-leetcode java题解

DFS算法-leetcode java题解 本文目录DFS算法-leetcode java题解leetcode 547. 省份数量leetcode 463. 岛屿的周长leetcode 200. 岛屿数量leetcode 130. 被围绕的区域leetcode 417. 太平洋大西洋水流问题leetcode 17. 电话号码的字母组合leetcode 22. 括号生成leetcode 39. 组合…

List 容器的接口使用、迭代器失效(仅erase)

目录 一、接口使用 ① 构造函数 ②迭代器 ③ 容量与元素修改 ④ remove ⑤remove_if ⑥ unique ⑦sort&#xff08;&#xff09; ⑧ merge() 二、对于迭代器失效问题 一、接口使用 ① 构造函数 void MyListTest1() {list<int> l1;list<int> l5(10, 5);vector…

〖产品思维训练白宝书 - 产品思维认知篇⑦〗- 聊一聊 产品经理 的工作内容与职责划分

大家好&#xff0c;我是 哈士奇 &#xff0c;一位工作了十年的"技术混子"&#xff0c; 致力于为开发者赋能的UP主, 目前正在运营着 TFS_CLUB社区。 &#x1f4ac; 人生格言&#xff1a;优于别人,并不高贵,真正的高贵应该是优于过去的自己。&#x1f4ac; &#x1f4e…

自定义类型【c语言】

前言&#xff1a; c语言提供了丰富的内置类型&#xff0c;但是在描述一些复杂对象的时候仍不能满足一定的功能&#xff0c;因此c语言为了支持我们能描述一些复杂对象给出了我们能自定义的一些类型&#xff0c;因此便有了自定义类型。 在之前我们已经初步对结构体进行相应的了解…

提升工作效率,领导都夸的开源数据可视化工具

echarts官网有很多好看的图例&#xff0c;怎么结合起来放到自己的项目中呢&#xff1f;比如这种酷酷的首页&#xff1a; 这种看起来美观又大方&#xff0c;自己要是能用上就好了。 其实这是可以的&#xff0c;echarts上有现成的图例和示例代码&#xff0c;咱们只要改改数据源就…

华为防火接与二层交换机对接配置VLAN上网设置

拓扑图 一、防火墙设置 1、G1/0/0接口设置IP&#xff0c;G1/0/1接口切换二层口设置VLAN&#xff0c;G1/0/0 桥接了本地无线网卡来模拟外网地址 <USG6000V1>sys [USG6000V1]sys FW1 [FW1]un in en# 设置外网IP [FW1]int g1/0/0 [FW1-GigabitEthernet1/0/0]ip addr 192.1…