聊聊自学编程

编程语言那么多,入门应该选择哪一个?       我一一作答吧。但还是要说明一下,学习编程切忌漫无目的铺开式学习,一定要有目标,比如做个计算器也算不错的小目标,想做 APP 所以学 Java、Swift 也是不错的目标。 一 · 编程语言及其主要用途 常见的是 C Family (C系列语言),比如:C、Cpp(C++)、C Sharp(C#)、Java、Python、R、JavaScript、Objective-C、S... 阅读详情

背景

经常某乎都会推送如何学习编程?如何零基础学习Java?等之类的问题,虽然我是科班出生,本科学习的是网络工程,硕士读的是软件工程,但是大部分内容都是自学的,面对大学老师有口无心的念着PPT和超大300人的教室,很早就醒悟过来自学才是王道,而且就算在古代老师也就是起到一个引导作用,更多还是要靠自己领悟,所谓师傅领进门,修行在个人大抵就是如此,这可能就是高中和大学最大的不同了吧,不会再有人追着你学习了。这一路走来磕磕绊绊,马上就要入职某厂了,也算不负当初,就此机会回望来路,聊一聊我对编程的看法,希望曾经迷茫的我走过的路可以帮助到正在迷茫的你。

编程是一棵树

现在的我看来编程的世界是一棵树,它包含了根和主干、分支和树叶。绝大多数人进入编程的世界是从一个个分枝开始的,这里的分支就是各种编程语言,每种语言就如同不同的分支一样有着各自适用的领域,例如Python适合于爬虫、数据分析等领域,C++/C则是用于一些高性能编程的场景,JAVA则在服务端开发和Android客户端开发领域扮演着重要角色。对于第一个编程语言的选择根据实际的情况也不相同,自学编程大多可以分为两类,一类是毕业没多久想转行或者即将毕业,这种情况会面对较大的就业压力,时间比较短,但是目标明确。这一类推荐Java就业面广,岗位多,从客户端到后端,再到大数据分析都有用武之地。另一类是刚高中毕业还没上大学,或者刚上大学,有很充裕的时间去打基础。这一类推荐C或C++,为什么推荐C/C++呢?那是因为我觉得在C/C++身上最能体现出编程的魅力和思想,初代程序员智慧的结晶,历经四十年经久不衰,那它身上可以感觉到岁月的质感,以及后来这些语言或多或少都可以找到C语言的影子。
OIP-C.jpeg

其实对于语言的学习都差不多,尤其当你学会一门语言之后再去学习一门新的语言可以很快入门。这是因为绝大多数编程语言的内容都大同小异,比如基本数据类型、控制结构和函数等基本变化不大。只有很小一部分是该语言所特有,可能也正是这一小部分的差异决定了它的应用场景。

第一门编程语言

对于自己第一门编程语言的学习推荐结合视频和书一起看,视频可能会讲得更仔细和形象,只看书会很枯燥容易放弃,至于视频B站上就有很多编程语言的入门视频,有些从环境配置到IDE的下载都介绍的很仔细,可以轻松入门。这一阶段没有什么技巧,唯一需要做的就是坚持,然后就是享受编程的快乐,这一点很重要,不然以后你会很痛苦到最后坚持不下去。虽然可能有些人会说这话说的太假太空,但是我还是要说少一点功利,多一点热爱,因为热爱所以坚持,这才能让你在编程的路上走的更远,这也是最最最重要的,可是却被很多人忽略。等你跟着视频学完第一门编程语言,可以说你已经一只脚走进了编程的世界,那么接下来又该如何呢?

王道or霸道

当你学完第一门编程语言将会有两条路,不同的人将会选择不同的道路,第一条路为霸道,何谓霸道?霸者,横扫六合,睥睨天下。如果说编程是一棵树,那么霸道就是从分支走向树叶之路,树叶是什么?树叶就是各种实际场景下的各种框架,与实际工作紧密联系。如果你是学JAVA这时候你就要选择未来的工作方向了,如果你想写后端就去学Spring、Spring Boot等各种后端框架,如果是想写客户端,就去看Android,如果想去做大数据开发就去看Hadoop等。这时候你会非常的需要全球最大的同性交友平台Github,从这上面会有很多开源的项目,找一个你所学内容的项目,下载下来好好看别人的源码,从别人的源码中可以学到很多的东西,比如良好的编程习惯,好的设计提升自己的基本素养。这时候的你可能已经具备了一定的项目能力,这时候就是要准备面试了,牛客网等这些网站看别人的面经,我之前写过一篇实习面试的总结可以参考下。入职过后则就是在项目中学习,在和同事的交流中学习,看一些进阶视频学习,看框架源码学习。

上面说完了霸道,那么何谓王道?王者,内圣外王,就是进一步去修炼内功,如果说编程是一棵树,那么王道就是从分支走向主干和树根之路,那么主干和树根又是什么呢?主干和树根就是数据结构与算法、操作系统和计算机组成原理,所有的语言和框架都是从这些上面生长出来的。春去秋来,严寒酷暑,树叶落了又长,就如同各种框架横空出世,最后黯然离场。最后只有数据结构和算法、操作系统和计算机组成原理经久不衰。那么为什么他们那么重要呢?以数据结构为例,数据结构是语言无关的,是前人对于数据的一种抽象。计算机是用来干什么的?计算机是用来计算的,那么计算的是什么呢?就算的就是数据,数据结构规定了数据在计算机中的存储方式,那为什么衍生出那么多的数据结构呢?是为了应对复杂的应用场景,尽可能快地完成计算任务。例如经常查询数据的情况下,线性表相较于链表能提供更快的查询速度,而在需要删除和增加数据的场景下,链表则比线性表表现更好。由此也可以看出只有学好了这些树根和主干,你才能更好地理解计算机的运行规则,在面对复杂情况时做出最正确的选择。如果整天沉溺于框架之中,那么当框架黯然离场之日,也就是你程序猿35岁职业危机之时。

其实王道也好,霸道也罢,都是学习编程,其最后的结果自然是殊途同归,当时选择的差别只不过是特定场景下侧重不同而已。选择霸道的人,之后也要将数据结构和算法、操作系统和计算机组成原理补上。而选择王道的人就业之前也要很好的学习框架,培养自己的开发能力,才能更好地就业。

“术”与“法”

上面一节我们讲述了如何在不同的情况下去走进编程世界,然后一步步走下去,这就是“术”,针对不同的情况“术”有可能不同。而“法”没有明确的指示,更像圈定一种范围,在范围内可以自由发挥,是一种原则。如果说这种编程技巧是拳脚功夫,那么接下来说的“法”则更像内功心法,练地越久内功越深厚。

热爱编程

这是第一条也是最要的一条,还是那句话,因为热爱,所以坚持,如果你已经选择了这样一条路,何不选择让自己开心点。改变不了世界,那就改变自己。而且只要你真的静下心来试着去了解,你绝对会被编程的魅力所折服。

贵以恒

今天很残酷,明天很残酷,后天很美好。如果下定决心就请坚持到底,其实从小到大道理我们都懂,课前预习,课后复习,难的是坚持。贵以恒,作为成年人你应该更懂得坚持的意义。

纸上得来终觉浅

书上的,视频里的每一道程序都尽可能全部敲出来,运行一遍。不要觉得那么简单肯定会,不,其实你不会,见过太多初学者因为中文字符半天找不出错误,没有自己打出来运行成功就不叫会,切记眼高手低,切记切记。

输出和输入同样重要

最好的学习方式就是教会别人,从开始学习就要注重总结和归纳,可以通过写博客的方式,一边写一边思考,这样能更好的理解问题,而且这也是在构建自己的知识体系,以后方便回顾,如果还能帮到其他人,这不是一件皆大欢喜的事么。

read fucking source code

阅读源码,阅读源码、阅读源码,重要的事情说三遍,无论是项目源码还是框架源码,学习良好的编码习惯,多想想为什么这么写,如果是你你会怎么写,怎么写比较好,有没有运用什么设计模式,阅读源码是提升自己编程技术最快的方式,没有之一。

多与人交流

现在通信如此发达,多与其他人交流,尤其是比你厉害的人,不要闭门造车,可能别人的一句话就会让你茅塞顿开。

营造沉浸式的环境

其实这一条与上一条有重合,给自己营造一个学习编程的环境,就像学英语最好就是在一个说英语的环境中。多看看别人的技术博客比如掘金、优快云等,开始可能看不懂没关系,要坚持看,有一天你突然发现你能看懂了,说明你就入门了。有问题就直接提出来,一般有时间都会回答,多交流。

最后

有兴趣可以关注公众号QStack,会定期发布一些文章和学习资料。

Trae CN 使用入门指南 【代码】Trae CN 使用入门指南。 阅读详情

相关推荐

C语言练习题:据说一个人的标准体重应该是其身高(单位:厘米)减去100、再乘以0.9所得到的公斤数。已知市斤的数值是公斤数值的两倍。现给定某人身高,请你计算其标准体重应该是多少?

题目内容: 据说一个人的标准体重应该是其身高(单位:厘米)减去100、再乘以0.9所得到的公斤数。已知市斤的数值是公斤数值的两倍。现给定某人身高,请你计算其标准体重应该是多少?(顺便也悄悄给自己算一下吧……) 输入格式: 输入第一行给出一个正整数H(100 < H ≤ 300),为某人身高。 输出格式: 在一行中输出对应的标准体重,单位为市斤,保留小数点后1位。 输入样例: 169 输出样例: 124.2 代码如下: #include<stdio.h> int main() { i

weixin_44877226的博客 2万+

编程语言的魅力之处

接触到的语言 这里只谈印象比较深刻的几种语言,职业生涯中虽是浅尝辄止,细细回味起来,还是收获颇深的 Python,大学里面最先接触的编程是C语言,但最让我下功夫的是Python,做的相对比较好一些的也是Python。那个时候是真的在钻研编程。做的项目是链路预测方面的。完成了几个效果图。 (1) networks中的算法,用Python实现了几种。Python的语言比较好接触,现在小

curry_zhao的博客 2779

基于PI双闭环解耦控制的三相SVPWM电压型逆变器(1)--数学模型

三相电压型逆变器、双PI控制、SVPWM、解耦

weixin_58670090的博客 1万+

不同编程语言的魅力

题目:输入两个整数 a,b,输出它们的和。 注意: Pascal 使用 integer 会爆掉哦! 有负数哦! C/C++ 的 main 函数必须是 int 类型,而且最后要 return 0。 C语言: C语言是一门面向过程的、抽象化的通用程序设计语言,广泛应用于底层开发。C语言能以简易的方式编译、处理低级存储器。C语言是仅产生少量的机器语言以及不需要任何运行环境支持便能运行的高效率程序设计语言。尽管C语言提供了许多低级处理的功能,但仍然保持着跨平台的特性,以一个标准规格写出的C语言程序可在包括类

qianfeng_dashuju的博客 432

Win11下Android模拟器报HAXM未安装?三步搞定虚拟化配置(附终端命令)

本文详细解析了Win11下Android模拟器HAXM报错的解决方案,从虚拟化配置到终端命令实战。通过检查BIOS设置、调整Windows功能及执行PowerShell命令,三步搞定虚拟化配置问题,有效提升模拟器性能。特别针对Win11与HAXM的兼容性问题提供了专业指导。

weixin_29215815的博客 145

MRI脑影像分析从哲学到技术:一文搞懂VBM预处理基本原理(全网最详细解析)

   分析大脑解剖学差异最常用方法之一是基于体素的形态学方法(voxel-based morphometry, VBM)。 VBM的基本思想是测量大脑组织,尤其是灰质的局部浓度的差异。在大脑的每个体素处进行操作,然后在两个或多个实验组之间进行统计比较,从而在受调查的组之间建立特定大脑区域中脑组织浓度的统计学显着差异。 VBM分析基于(高分辨率)MRI脑部扫描,涉及大量处理步骤,主要是空间归一化,分割,平滑和统计分析,最终结果是统计图,显示了各组之间组织类型明显不同的区域[^1]。 参考 [^1] ..

意疏的学习笔记 3万+

聊聊初入编程的一些感悟

2017.4.20 已经大二了,才开始怼JAVA,说实话有点晚。 不过既然开始了,就一条路往死冲。 小时候喜欢做数学题,学奥数,后来一直没机会,现在终于在打代码里找到以前的感觉。 做出一道题的欣喜若狂,打出代码测试通过的开心,真的非常棒。 我知道我现在还差的远,才开始接触这些。 但是 加油! 愿我坚持这份热爱,也希望我多年回首后为自己的选择感到欣慰。 长期更新记录自己吧,欢迎各位

Aibile___的博客 798

【Bug已解决】codex: conversation context window exceeded / Token limit reached — CodeX CLI 上下文窗口超限解决方案

CodeX CLI 上下文窗口超限(context_length_exceeded)的解决方案,含开新会话、更大窗口模型、精简提示与限制工具输出。

博客 4187

编程的魅力

也许你会对为什么程序员总是一天到晚、没白没黑、周末也不休息的总是趴在电脑前编程大惑不解,那么,看看下面这张图,你就会明白编程的魅力所在了…当然作为普通程序员,以下这种写法...

爱编程 1266

手把手教你学simulink(32.1)--汽车电动机管理场景示例:基于Simulink的发动机管理系统中的混合动力车辆能量管理优化

本项目旨在设计和实现一个用于混合动力车辆(Hybrid Electric Vehicle, HEV)的能量管理优化系统(Energy Management Optimization System, EMOS)。通过Simulink进行建模和仿真,确保系统的稳定性和性能。该系统采用了先进的控制策略,如模型预测控制(MPC)、模糊逻辑控制、自适应控制等,以优化燃油经济性、减少排放,并提高驾驶体验。

MHD0815的博客 187

(SEED-Lab)Buffer Overflow Vulnerability Lab缓冲区溢出实验

(SEED-Lab)Buffer Overflow Vulnerability Lab 欢迎大家访问我的GitHub博客 https://lunan0320.cn 文章目录一、实验目的二、实验步骤与结果2.1 环境初始化2.2 Task1 运行shellcode2.3漏洞程序2.4 Task 22.5 Task 3: ASLR2.6 Task 4: Stack Guard2.7 Task 5:不可执行栈三、参考文献 一、实验目的 理解缓冲区溢出攻击的原理以及如何实施攻击 理解针对缓冲区溢出的防御措施

lunan的博客 8983

聊聊如何从零开始自学编程

阅读本文大概需要 6.6 分钟。编程门槛其实并不高,自学几个月就可以入门,但是初级程序员进阶却很难,需要学的知识很多很多。所以自学编程想入门,很简单,只要自己能努力,能坚持,几个月以后你就...

qq_35006660的博客 2万+

从点云到舱口尺寸:船甲板舱口检测的算法实现

本文提出了一种从船甲板激光扫描点云中自动检测舱口尺寸的算法。通过数据预处理(降采样、去噪、平面分割)后,采用甲板投影轮廓法将3D点云转换为2D图像,利用双次闭运算解决扫描碎片化问题,通过轮廓树检测内轮廓识别舱口。算法最终能稳定检测出三个主要舱口的长宽尺寸、面积和位置信息,矩形度超过0.89。该方法克服了扫描稀疏和围壁结构复杂的问题,参数可调性强,适用于工程实践。关键创新点在于将舱口识别转化为图像中的"洞"检测,而非直接处理3D几何特征。

点云兔子的博客 147

0基础学python,聊聊这半年我是如何自学编程

很多人在遇到事业瓶颈,或者从事一份自己不喜欢工作,又或者对未来迷茫的时候,总能看到很多人说,转码农,当程序员。诚然,转行当程序员不仅是政治正确还是事实正确,但是这个过程其实并不容易,倒不是因为程序员门槛高,而是很多人认为学编程很难,并且拒绝尝试。其实掌握方法后,并且拉近自己与编程的距离,你会发现,你完全可以做到。刚好这半年,自己一直在学习Python,根据自己这半年自学编程的经历,班门弄斧,分享一...

qq_42271991的博客 2万+

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

贝叶斯统计 [韦来生编]

贝叶斯(Bayes)统计是近几十年来迅速发展起来的数理统计的一个重要分支。贝叶斯方法与经典统计方法的主要不同之处是进行统计推断时除了利用样本信息外,还要利用参数的先验信息,因此可以提高统计推断或统计决策的效果。它在经济、金融、生物、医学、自然科学和社会科学等许多领域具有广泛的应用。贝叶斯方法的研究已渗透到了统计学的几乎所有领域。作者在给中国科学技术大学概率论与数理统计专业本科生开设的“数理统计”课程中有一章专门讲授“贝叶斯方法和统计决策理论”,近十年来也给中国科学技术大学概率统计专业研究生开设过几次“贝叶斯分析”课。本书是在对过去讲稿的内容作了适当的增减和调整的基础上完成的。  本书共分六章。第1章是绪论,介绍了贝叶斯统计的若干基本概念,同时对必要的数理统计的基础知识有重点地作了回顾。第二章介绍了确定先验分布的若干可供选择的方法。第三章介绍了几类常见统计模型参数的后验分布的主要结果和计算方法。第四章和第五章分别介绍了“贝叶斯统计推断”和“贝叶斯统计决策”的内容。第六章介绍了贝叶斯统计计算的若干方法,包括蒙特卡洛方法和马尔可夫链蒙特卡洛(MCMC)方法以及相关统计软件的简介。本书的每一章附右大量的例题和习题,书末附有常用的几个表格和部分习题解答供读者查用。  大约可在54学时内讲授本书的第1章至第六章的主要内容,教师可根据学时需要选讲本书第1章至第六章的部分内容。书中标“*”号的章节可略去不讲,留给读者作为阅读材料。第六章例题中的R代码和部分例题的数据文件等可从作者个人主页下载。  作者在编写本书的过程中参考了J.O.Berger教授的《统计决策论及贝叶斯分析》和茆诗松教授编写的《贝叶斯统计》等书中的一些内容,以及《贝叶斯分析》一书中由张伟平博士编写的有关贝叶斯统计计算的一些内容。在此表示衷心感谢。  本书编写准备过程中,中国科学技术大学统计与金融系的几个研究生帮助完成了本书部分中文的录入和排版,作者对他们的辛勤工作表示真诚的感谢。高等教育出版社为本书的出版给予了大力支持。在此一并致谢。

聊聊自学Scratch图形化编程需要些什么?

线下或线上的培训机构每节课程的费用大致在100-250,一学就是好几年,无论是费用还是时间都够我们家长喝一壶,而与去机构参加编程培训相比,自学所花费的金钱可能只是去机构培训的一个零头,甚至0费用,最重要的是学习所花费的时间,自学时我们可以天天学,有时间就学,可以在很短时间内就获得突破,效率高,所以说自学更具性价比。在学校里,老师主要负责传授知识和技能,布置作业和教学评估以及答疑解惑,而导师更注重答疑解惑和学习的规划,另外,老师与学生的互动主要集中在课堂,而导师与学生的关系则更紧密和个性化、定制化。

想刷题!只是... 1274

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

万年自学党聊聊如何选择编程学习资源?

大家好,我是鱼皮。 昨天在某乎看到一个问题:“ 准备自学Java,但是B站有两版视频,应该看哪个?” 如今,编程学习资源越来越多,很多想学编程的朋友都会遇到类似的资源选择问题。对于初学者而言,选择合适的编程资源尤为重要,否则就容易被劝退。 作为一名万年沉迷自学党,结合自己大学的经历,分享下我选择学习资源的方法。 主要包括两个方面: 选择何种类型的资源? 同类资源如何对比? 资源类型 学习资源类型有很多,比如书籍、电子书、在线网站、在线文档、视频、讲义等等。 我认为选择学习资源的要点是:以能学

努力做最接地气的编程干货分享,感谢关注 990

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

自学4年多 Github 上斩获 90k Star! 聊聊自学习编程的正确姿势!

如果你看到这篇文章,恭喜你!不论是初入编程领域的小白,还是已经在工作几年的老手,这篇文章都将对你有很大的帮助。建议看到最后。相信我!一定会有收货。 这篇文章我会试着给你带来一个更加不一样的编程能力提高实战指南。如果你觉得这篇文章对你有用的话,也不要白嫖好吧!点个在看或者赞就是对我最大的鼓励。欢迎转发让更多人看到这篇文章,一起变强! 先来说一下自己的情况!我从小学就开始接触电脑,不过到了大学之后才接触编程,整个大一都很迷茫,编程很少,也不知道如何提高自己的编程能力。大二的时候,自己加入了学校的一个技术组织,自

JavaGuide 3170

自学编程的人,正在被 AI 悄悄“重新分班“:聊聊新的学习路径

自学编程的路径正在改变:从"先学后做"到"边做边学"。本文聊 AI 编程工具如何降低起步门槛,也提醒自学者把精力转向拆解问题、描述需求、判断结果这些元能力,并介绍 MonkeyCode 作为低门槛起点。

2404_89164415的博客 188

如何自学C++编程语言,聊聊C++的特点,别轻易踩坑

比如,如果我开了一个培训机构,然后我朋友是一个外包公司的老板,可能会找我说:“我现在想要一些程序员。内推的成功率相对来说是比较高的,因为内推的人已经在公司里工作了,他们对公司的文化、制度和招聘流程都比较熟悉。内推并不仅仅是内部推荐,很多时候,内推就像刚才我们说的外包公司一样,即使我们不认识,但是我们可以互相介绍。现在程序员的需求量是非常大的,但是学编程的人越来越多,有些人可能达不到就业水平,就会去包装简历,导致现在初级程序员就业的话会有一定难度。但是,只要你的能力够百分之百,找到工作是非常方便的。

m0_71628805的博客 1014

聊聊自学,让你事半功倍的学习网站和工具

压箱底的藏货~

Jack-Cui 3万+

正式开始聊聊自学那些事儿!

正文共:2523字建议只字不差的阅读!这次我要跟大家聊聊自学那些事!在前言部分我也说过了,我认为的自学应该是一个人的主观意识,也就是这个学习过程是自己主动进行的,而不是被...

庆哥Java的优快云技术博客 1692

自学编程的 6 个致命误区

嗨,小伙伴们大家好,我是沉默王二。本篇文章来和大家聊聊自学编程中的一些误区——这是我在 B 站上看了羊哥的一期视频后有感而发的文章。因为确实有很多读者也曾私信问过我这些方面的问题,很有代表性,所以我就结合自己的亲身体会来谈一谈,希望对小伙伴们有所启发。 01、追求时髦 所谓基础不牢,地动山摇啊。可很多小伙伴压根就没注意过这个问题,市面上出什么新鲜的技术就想去尝试,结果把自己学的乱七八糟,心灰意冷...

沉默王二 6万+

什么是编程能力 | 计算机专业学生如何提高编程能力 | 如何自学编程

有干货、更有故事,微信搜索【编程指北】关注这个不一样的程序员,等你来撩~ 前言 开局两张图,剩下全靠吹了。 上面这两张图便是写这篇文章的原由。 对话框的另一边,是一位大二计算机科班在读的小姐姐,看似平静的文字背后透露着迷茫与困惑,还对未来的焦虑。 透过屏幕,似乎看到了大一时的自己,不会装环境、不知道怎么编译,报错也不会解决,更不知道除了计算水仙花数、打印乘法口诀表…还能写些什么。 感同身受让我觉得有必要认真的好好回答一下(其实是因为这是小姐姐问的????,也算是对大一时的自己一个隔空对话。 做公众号短

编程指北 8765
上一篇: 微信小程序开发入门教程(二)
下一篇: 微信小程序开发入门教程(三)
QStack
博客等级 码龄6年 30粉丝 80原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值