展开菜单
首页 精品内容 本月促销 装机必备 Windows macOS软件 IOS软件 Android AI PDF教程 专题
全部分类

当前位置:

首页 > 编程开发 > 如何自学好编程

如何自学好编程

自学编程的路上,踩过的坑和解决问题的方法,往往比书本上的知识更宝贵。这里分享一些经验,希望能给正在自学编程的初学者朋友们一些参考。如果哪里说得不对,也欢迎批评指正! 1. 为什么要学习编程? (1)因为爱好 如果你对信息技术充满激情与爱好,日常喜欢研究电脑、智能手机等,想要掌握计算机更多的知识,想让

自学编程的路上,踩过的坑和解决问题的方法,往往比书本上的知识更宝贵。这里分享一些经验,希望能给正在自学编程的初学者朋友们一些参考。如果哪里说得不对,也欢迎批评指正!

1. 为什么要学习编程?

(1)因为爱好

如果你对信息技术充满激情与爱好,日常喜欢研究电脑、智能手机等,想要掌握计算机更多的知识,想让自己学会开发出自己的桌面软件、网站、APP,那么编程就是一个值得投入的方向。

(2)想要获得高薪资的工作

IT行业的工资相对于传统行业来说是比较高的,适用领域也很广阔——餐饮、交通、物流、医疗、金融、教育等各大行业都离不开IT的支持。如果掌握一门技术,吃饭是不成问题的,但能不能吃好饭就看自己了。当然,最好是自己喜欢这个行业、喜欢信息技术,然后坚持往这个方向发展。如果仅仅是为了赚钱,也许编程并不适合你。能把对信息技术的热爱投身到工作中,这才是最好的状态。这里以求职为目标,来分享自学编程的经验。

2. 怎么通俗易懂地理解软件开发

(1)什么是编程?

简单的理解就是通过某种编程语言,编写特定代码指令、执行代码,让计算机帮助我们做一些计算、执行一些任务。

(2)编程的最终目的是什么?

更通俗地说,编写代码的大多数最终目的是开发一套完整的软件系统。我们知道软件可以帮我们做很多事,比如使用QQ软件和朋友聊天、使用百度网站搜索资料、在论坛网站上问问题、使用WPS软件编写文档、使用PS软件处理图片,等等。这些都是软件,通过开发者编写代码、打包、上线等多个步骤,最后形成一套完整的程序,供用户使用。

(3)B/S架构和C/S架构

现在市面上的软件如果按照某种特定分类方法可分为两种:B(Browser)/S(Server)架构(浏览器/服务器)和C(Client)/S(Server)架构(客户端/服务器)。当然,还有单机软件,比如很多人手机上的计算器APP,不需要联网就能提供服务。简单来说,使用浏览器打开的网站是B/S架构的软件,而直接打开客户端使用的是C/S架构的软件。

(4)什么是编程语言?

编程语言是用来定义计算机程序的形式语言。人与人交流使用的是汉语、英语、阿拉伯语等,而人与计算机交流使用的就是计算机编程语言,通过编写特定的代码片段让计算机理解我们的意图。于是后来有了很多种计算机编程语言,如C++、C#、Ja va、Ja vaScript、PHP、Kotlin、汇编语言等等。

3. 认识程序员(软件开发者)这个工作职务

(1)软件开发者至少应该具备什么能力?

就现在的社会需求来说,作为软件开发者,至少应该懂得一门编程语言,并且能利用这种编程语言在实际工作中完成相应的任务,这样才是一个合格的软件开发者。现在很多软件开发项目都是由多个人来完成的,那么必定由一个开发者负责开发环节中特定的任务,比如Ja va后端工程师编写与数据交互的代码逻辑,Android工程师负责编写Android APP,IOS工程师负责编写iPhone APP,等等。

(2)软件开发者应该长期具备什么能力?

首先,不断学习。在软件开发这个领域中,技术不断更新与变化,如果想要具备竞争力,就必须不断学习,而不是长期以原有的技术混饭吃。如果真是这样,最终是要被淘汰的。这个行业不适合想要一劳永逸的人,必须不断学习、创新,具备不怕苦不怕累的创业精神。其次,做一个有计划的人。应该时时有危机感,给自己制定计划,不管是短期计划还是长期计划,朝着那个目标努力,会越来越优秀。初级程序员应该朝着高级程序员的目标努力;高级程序员应该朝着架构师的目标努力;而成为了架构师,应该朝着管理者的目标努力。只有做好计划,并随着时间改变而调整,朝着目标努力,才能不断实现自己的价值。

4. 没有编程基础,我该怎么入门?

这是大多初学者困惑的问题,也是阻碍很多初学者学习进度的问题。不知道从哪里开始,或者不知道从何开始——以学习经历为例,提供一些建议,希望对你有帮助。

(1)你应该具备什么基础?

自学至少得有一台自己的电脑,这台电脑不需要配置有多高,除非学习的是开发大型3D游戏。传统的开发学习,普通笔记本、台式机都可以,但必须得有网络,因为需要从网络上获取学习资料,而且我们是在学习信息技术,没有网络怎么可能?想一想多可怕。最重要的是,要喜欢它再去学它,如果不喜欢,学了又有什么意义。

(2)数学、英语不好,能学好编程吗?

这么说吧,如果感觉自己数学不好,但是喜欢信息技术方面,那就好好学吧,是能学好编程的。数学和英语超级不好的人大有人在,原因是不喜欢它们。编程的逻辑性挺强的,但不代表数学不好编程就学得差,它们本就不是一回事。虽然编程很多时候用于科学计算方面,但如果学习编程是为了开发应用软件、为了找工作,编程并没有别人说的那么难。英语不好呢?那也可以学好。计算机发展技术源自西方,西方人在这方面做得比我们多,这些计算机语言几乎全是英语字母组合的。如果能在西方之前发展信息技术,现在外国人估计就使用中文来编程了。但英语不好,句子都读不通顺,怎么办?没关系的,读代码与读英语文章完全不一样,虽然大多数代码使用英文字母编写,但理解代码更多的是理解它的逻辑。不过,如果英语不好,最好提高一下英语水平,因为很多开发文档、教程是用英文写的。不是说英语不好就不能写代码,但连"hello"、"how are you"这些简单的英文单词都不认识肯定不行——也就是说,具有初中毕业生的英语水平就可以学习编程了。

(3)选择自己喜欢的方面入门

软件开发过程中根据不同的需要,包含了多个工作任务和多种工作流程,因此也产生了不同的工作岗位:前端工程师(Android工程师、IOS工程师、Web前端工程师),后端工程师(Ja va后端工程师、Python后端工程师、PHP工程师),Linux运维工程师,现在还流行大数据工程师、AI(人工智能)工程师,等等。当然,在人员缺少的情况下有的人却担任了好几种身份,但在大公司里分工一般是明确的。那怎么开始入门学习呢?首先,选择自己喜欢的语言,选择自己的方向,朝着那个目标学习。可是没了解过,怎么知道什么编程语言适合自己?这就需要事先了解一下了。既然打算自学编程,那就应该查阅一些资料,了解什么语言适合做什么,自己又应该学习什么语言。长远的目标是精通一个技术方向,但其他方向最好也都要会。所以,建议选择自己喜欢的方向、容易入门的方向进行学习。可是有人说现在很火的是大数据、人工智能,月薪两三万、四五万的。但要知道,对于一个没有任何基础的普通初学者,需要花多少功夫才能达到大数据工程师、AI工程师的水平。学习基础是十分重要的,至少得保证自己有一样技能,能胜任某项工作之后,再朝着更高的层次努力,也许那样会更好。如果喜欢APP开发,那就是Android和IOS了,而Android学习成本比IOS低,因为做IOS开发需要mac电脑,Android开发使用普通Windows就可以,进一步学习的话可以安装一个Linux操作系统,再加上一个几百元的Android手机就可以学习了,等掌握Android开发后再学习IOS也不迟。如果喜欢后端开发,建议选择Ja va、Python、PHP这些语言。假如之前没有接触过编程,只要认真学,这些语言挺容易入门的,如果有一点C语言基础那更好。而如果喜欢Web前端,那就好好学习H5+CSS3+Ja vaScript,一个合格的Web前端工程师除了能把网站做出漂亮的特效,还要懂得后端的知识,这时可以学一学Node.js。虽然开发技术分类很多,但这些技术都是相通的,有了一门技术的基础之后,再学习其它技术就轻而易举了。在初学者阶段,需要选择一门技术进行系统的学习,同时不要忘记多了解一些其他的技术。以下是编程语言在某个时间段的排行榜:

(4)怎么获取学习资源?

可以买一本书。书有好有坏,有的书适合初学者,有的书不适合;有的书通俗易懂,也有的书全是废话,甚至错误一堆,这就需要好好辨认了。有的书适合你,但有的书虽好却不适合你,应该到书店、图书馆里好好翻一翻,选择合适自己的一本系统教学书籍。对于技术类型的书,尽量选择比较新的,对于同一种技术,尽量避免好几年前的书籍,因为技术书籍不像文学书籍那样,技术每天都在改变。还可以看一套系统的视频教程。互联网上免费的教程资源很多,如果好好利用,相信一定能学好的。有的视频里老师讲课方式不适合你,而有的老师讲课方式很适合你,后者对你的进步更有帮助。现在教学网站也很多,提供了大量的免费资源,如极客学院、慕课网、百度传课、腾讯课堂等,建议花一些时间去尝试听一下多套视频的第一节课,最后选择最适合自己的一套。

(5)要善于利用互联网解决问题

在学习编程过程中必定遇到很多问题,甚至有时出现的bug让人感到崩溃、无助,这时不要慌,这是很多初学者都必定经历的过程。只要一个一个地解决问题,积累经验,以后才能解决实际开发中遇到的问题。遇到错误时,把出现的错误百度一下,必定别人也遇到过,并有一堆的解决办法。还可以到各大论坛寻求帮助,如国内的CSDN论坛,如果英语阅读能力比较好,还可以到stackoverflow.com网站上寻求全球开发者的帮助。

(6)多读别人的代码,借鉴别人的长处

阅读别人的代码是提高编码能力的一个方法,可以看到自己与大神的距离,然后努力朝着目标前进。一个合格的开发者,不仅能自己写代码,还要有阅读别人代码的能力。

(7)多练习,熟能生巧

学习中编程的过程中,看懂和会做完全是两回事,不要觉得自己看视频看懂了,或者看书看懂了就从来不去编码练习了。往往很多人看懂了,但自己却敲出一堆的错误,这阶段需要不断的练习。网上说的“7天掌握PHP”、“5节课掌握Ja va”等等,以一个普通初学者的角度来说绝对是不可能的。作为初学者,应该脚踏实地,每天坚持,积累上几万行代码,甚至几十万行代码,也许那样才是真正的入门。这世上没有不劳而获的,所有的收获必定经历付出,知识也一样,加油!

5. 总结

上一个世纪的前辈们在学习的时候,他们没有网络,没有那么多学习资料,而他们却能给后人创造了很多有价值的东西。他们都那么坚持,我们就没有理由不努力了。不管怎么说,学习编程不容易,一定要真正地喜欢它再去学,脚踏实地,坚持不懈,往既定的目标努力。入门学习的付出是辛苦的,甚至是乏味的,但是拼一拼,努力奋斗,相比最后得到的,是值得的。加油!

本文内容来源于网友投稿,如有侵权请联系删除。
作者最新文章
编程开发 网络协议
上一篇: 何为编程
相关文章 更多
精品专题 更多
装机必备

正软商城装机必备专区,精选办公、浏览器、安全防护、影音播放、压缩解压、设计创作和系统工具等电脑常用正版软件,帮助用户快速完成新电脑软件配置。

Windows

正软商城Windows软件专区,汇集适用于Windows电脑的办公、设计、安全防护、影音播放、开发工具和系统优化软件,提供软件介绍、系统要求、正版授权及购买下载服务。

macOS软件

正软商城macOS软件专区,精选适用于Mac电脑的办公、设计、影音、效率、开发和系统工具,提供软件功能介绍、macOS兼容版本、正版授权及购买下载服务。

IOS软件

正软商城iOS软件专区,精选适用于iPhone和iPad的办公、学习、影音、设计、效率及AI应用,提供功能介绍、适用设备、系统要求和正版获取方式等信息。

AI

正软商城AI软件专区,汇集AI写作、AI绘画、AI视频、AI办公、AI编程、AI翻译、智能客服和数据分析等人工智能工具,提供功能介绍、适用平台、收费方式及正版购买信息。

Mac软件 更多
Blender
Blender

Blender 是一款免费开源、跨平台的专业 3D 创作软件,集建模、动画、渲染、视频编辑与视觉合成等功能于一体,广泛应用于影视动画、游戏设计和建筑可视化等领域。软件支持 Cycles 物理渲染器与 Eevee 实时渲染引擎,并提供多边形建模、骨骼绑定、物理模拟等专业工具。Blender 兼容 Windows、macOS 和 Linux 系统,安装包轻巧、运行流畅,依托活跃的全球开发者社区持续更新,是从初学者到专业创作者都值得选择的正版 3D 创作工具。

灵活计算器
灵活计算器

灵活计算器是一款笔记式算数应用,支持实时计算、动态关联和云端同步功能。记录、整理和输出之间的过渡会更自然,适合长期写作、做笔记或持续沉淀个人内容。

赤友清理大师
赤友清理大师

赤友清理大师是一款为 Mac 设计的智能清理优化工具,可精准扫描垃圾、大文件、重复文件等,释放磁盘空间。做扫描整理、文字提取和表格转换时,它能把识别后的处理步骤接得更顺,资料录入这类场景会省下不少时间。

极度公式
极度公式

极度公式是一款跨平台专业LaTeX公式识别编辑软件,支持OCR公式识别和多平台编辑。和使用说明,避免使用,享受完整功能与稳定支持。做扫描整理、文字提取和表格转换时,它能把识别后的处理步骤接得更顺,资料录入这类场景会省下不少时间。

图几
图几

图几是一款适用于 macOS 的截图、标注与美化工具,支持离线操作保障隐私。界面整理和高频系统操作被放到一起考虑,桌面或窗口内容一多时,管理起来会更省心。

密码键盘
密码键盘

密码键盘是一款兼具安全性与便捷性的高效密码管理器。日常使用里的持续防护和信息管理会更突出,适合把安全控制放进长期使用流程中的场景。

思源笔记
思源笔记

思源笔记是一款本地笔记软件,提供所见即所得的编辑方式,为长文写作带来顺滑的体验。记录、整理和输出之间的过渡会更自然,适合长期写作、做笔记或持续沉淀个人内容。

Office 365 简体中文
Office 365 简体中文

一款文字处理软件,一种订阅式的跨平台办公软件,基于云平台提供多种服务,通过将 Excel 和 Outlook 等应用与 OneDrive 和 Microsoft Teams 等强大的云服务相结合,Office 365 可让任何人使用任何设备随时随地创建和共享内容。

Mac
WALTR PRO
WALTR PRO

WALTR是一款电脑至iOS文件传输转换工具,操作简单,快速实现文件识别与传送。做扫描整理、文字提取和表格转换时,它能把识别后的处理步骤接得更顺,资料录入这类场景会省下不少时间。

CodeExpander
CodeExpander

CodeExpander 是一款快捷短语输入增强工具,通过键入缩写自动展开为自定义文段,提升工作效率。任务管理和过程控制会更完整,持续下载、批量同步或需要稳定传输流程的场景会更适合它。

Mountain Duck
Mountain Duck

Mountain Duck 是一款能将多个网盘挂载到本地的工具,像本地磁盘一样使用网盘。清理链路的完整性会更好一些,做应用卸载、残留处理和空间整理时,通常能少走很多手动排查步骤。

Menuist
Menuist

Menuist 是一款面向 macOS 的 Finder 右键菜单增强工具,主要用来补充新建文件、快捷导航等常用操作,让日常文件管理和访问路径时更高效、更顺手。

WINDOWS 更多
Blender
Blender

Blender 是一款免费开源、跨平台的专业 3D 创作软件,集建模、动画、渲染、视频编辑与视觉合成等功能于一体,广泛应用于影视动画、游戏设计和建筑可视化等领域。软件支持 Cycles 物理渲染器与 Eevee 实时渲染引擎,并提供多边形建模、骨骼绑定、物理模拟等专业工具。Blender 兼容 Windows、macOS 和 Linux 系统,安装包轻巧、运行流畅,依托活跃的全球开发者社区持续更新,是从初学者到专业创作者都值得选择的正版 3D 创作工具。

Windows 10
Windows 10

Windows 10 是一款微软推出的经典操作系统,拥有硬件兼容性与多任务处理能力。它更偏向把系统状态查看和常用调节动作放在一起,适合需要持续观察和微调设备状态的场景。

极度公式
极度公式

极度公式是一款跨平台专业LaTeX公式识别编辑软件,支持OCR公式识别和多平台编辑。和使用说明,避免使用,享受完整功能与稳定支持。做扫描整理、文字提取和表格转换时,它能把识别后的处理步骤接得更顺,资料录入这类场景会省下不少时间。

密码键盘
密码键盘

密码键盘是一款兼具安全性与便捷性的高效密码管理器。日常使用里的持续防护和信息管理会更突出,适合把安全控制放进长期使用流程中的场景。

思源笔记
思源笔记

思源笔记是一款本地笔记软件,提供所见即所得的编辑方式,为长文写作带来顺滑的体验。记录、整理和输出之间的过渡会更自然,适合长期写作、做笔记或持续沉淀个人内容。

傲梅轻松备份
傲梅轻松备份

傲梅轻松备份是一款专业易用的数据备份软件,为重要数据提供安全保障。日常使用里的持续防护和信息管理会更突出,适合把安全控制放进长期使用流程中的场景。

Office 365 简体中文
Office 365 简体中文

一款文字处理软件,一种订阅式的跨平台办公软件,基于云平台提供多种服务,通过将 Excel 和 Outlook 等应用与 OneDrive 和 Microsoft Teams 等强大的云服务相结合,Office 365 可让任何人使用任何设备随时随地创建和共享内容。

Mac
Wise Folder Hider Pro
Wise Folder Hider Pro

Wise Folder Hider Pro 是一款专业级文件和文件夹隐藏加密软件,为私密数据添加多重保护。高频操作更强调就近处理,浏览、整理和跨目录移动文件时,来回切换和重复点击都会少很多。

WALTR PRO
WALTR PRO

WALTR是一款电脑至iOS文件传输转换工具,操作简单,快速实现文件识别与传送。做扫描整理、文字提取和表格转换时,它能把识别后的处理步骤接得更顺,资料录入这类场景会省下不少时间。

CodeExpander
CodeExpander

CodeExpander 是一款快捷短语输入增强工具,通过键入缩写自动展开为自定义文段,提升工作效率。任务管理和过程控制会更完整,持续下载、批量同步或需要稳定传输流程的场景会更适合它。

PinStack
PinStack

PinStack是一款轻量级的Windows平台剪贴板管理工具,优化您的剪贴板使用体验。它更偏向把系统状态查看和常用调节动作放在一起,适合需要持续观察和微调设备状态的场景。

Mountain Duck
Mountain Duck

Mountain Duck 是一款能将多个网盘挂载到本地的工具,像本地磁盘一样使用网盘。清理链路的完整性会更好一些,做应用卸载、残留处理和空间整理时,通常能少走很多手动排查步骤。