自学编程的八大误区!克服它!

简介: 关于“自学编程的一些常见误区”这个话题其实很早之前就在视频里聊过了。时间过去了大半年,也还是有很多小伙伴会提及各种自学过程中的常见疑惑,所以还是用文字总结一下这几点想法,和大家共勉。

原文链接

image.png

说在前面

小伙伴们大家好,又是全新的一天。

关于“自学编程的一些常见误区”这个话题其实很早之前就在视频里聊过了。时间过去了大半年,也还是有很多小伙伴会提及各种自学过程中的常见疑惑,所以还是用文字总结一下这几点想法,和大家共勉。

误区1:忽略基础,盲目莽进

基础知识和基础路线真的非常重要,就以Java领域举例,现在的应用框架实在是太多了,五花八门,层出不穷,迭代的速度太快了。但是假如Java SE的基础不牢、网络协议和操作系统不熟,基本的设计模式不了解,那一味地追求学习新框架反而会让自己陷入迷茫与困顿。

基础牢固,应用框架的学习自然就不用惧怕了,很快就能切入核心,掌握原理。而且越时髦的东西淘汰也越快,毕竟迭代太快了。

对于编程开发来说,这里一直在强调的基础主要就包括:编程语言本身、数据结构和算法、计算机网络协议、操作系统知识、数据库、常见的设计模式等等,无非也就这些了!

误区2:学到怀疑自己能力,编程真得靠天分?

有时候学习受挫,难免会怀疑自己的能力、怀疑自己的人生与理想,偶尔的心情低落属实太常见了。

在我个人看来,这东西主要跟你的经历、眼界,以及知识的丰富度有关。因为初学者很难看到问题背后的一些东西,眼界也没有那么开阔。从我个人感受来说,我以前练书时所心心念念的一些困扰和迷茫,随着知识学习的增加,所见所闻的丰富,也自然解惑了。

所以某个程度上来说,这东西也急不得,我们只能靠努力、积累、时间去完成,学到一定时候你就会不自觉地发现,原来之前的一些疑惑与困顿都豁然开朗了。

我还是坚信一句话:编程开发目前绝对还没有到拼天分的地步,不要日常怀疑自己,不要妄自菲薄。

误区3:孤军奋战,封闭学习

脱离交流,往往会让学习问题越积越多,最终导致失去兴趣,从而被劝退,所以我觉得还是应该 “走出去” 学习。

关于这件事,我觉得我们能做的其实有很多,最最简单的方式那就是敢于总结、敢于分享,敢于把所学所做的东西亮出去和大家一起交流,即使收到的是批评,换一个角度来想,反映的就是自己的缺陷与不足,改进后就是成长。

误区4:必须学习最好的语言

或者说,担心学习到的不是最好的语言。

这也是一年多来和小伙伴们交流的过程中,几乎提及最多的一个问题。语言其实不分好坏,而只有适合的应用场景。想学什么也结合自己的兴趣领域和目标岗位来定。我觉得后者才是应该首先花时间探寻和澄清的东西。

误区5:代码总记不住咋整?

代码真的不是靠记忆的,而是不停的写、不停的思考,在反复的练习中熟练掌握的。即使要记,最终熟记的也应该是设计和编码上的一些模式和套路,而不是具体的代码。

千万不要尝试用记忆力去替代自己的理解力!

误区6:到处搜集资料却从来不看

好像大家都有一个毛病,那就是到处搜集资源,网盘里很多东西,但是基本从来不看,也不好检索。

我觉得收集资料没有问题,但是墙裂建议在入库的那一刻做好归类与标记,方便后续检索与学习。另外也建议尽快规划好学习路线和时间节点,把所获资料和学习路线关联起来,扎实执行,把资料利用起来才是关键!

误区7:学了就忘,是不是不适合学编程?

学了就忘,是绝大多数人都有的通病。忘得快主要的原因还是因为没有用上,缺少实践和练习。

所以为了克服这个问题,我们能做的最起码有:一是多记录、多总结、多回顾。对于一个知识或者技能,可以画成脑图、或写成技术博客,这些都是不错的形式,后续复习也方便了;另外一点则是需求驱动,尝试寻思用所学的技能去做点小东西,练手非常重要,即使目前没有好的创意,那也可以多学习研究一些优秀的开源项目,从中找寻想法和灵感。

误区8:非科班以后工作可以做编程吗?

一年多来,遇到的另外一个很常见的问题就是:我读XXX专业,有意愿以后从事编程开发,请问可以转过去,或者找相关的工作吗?

从个人的经历和所见来看,不管是自己同学,校招认识的小伙伴,还是工作后遇到的同事,专业背景真的是五花八门,暂且不说像通信、电子、自动化这些专业背景出身的人来搞编程,甚至连学地理科学、机密器械专业的我也见过,所以从某一程度上来说,这也不算什么。

读大学的一个重要作用还是培养独立学习、独立解决问题的能力,所以编程开发这一块,自学出来的有很多。

后记

好啦,聊了这么多,希望和小伙伴们一起共勉吧,加油就完事儿了!

来源 | 五分钟学算法
作者 | 程序员小吴

相关文章
资源块|带你读《5G空口特性与关键技术》之九
3GPP TS38.211 中对 Point A 进行了定义。需要说明的是,2018/6 版本的TS38.211-f20 中的定义在 2018/9 版本中没有变化,不过在2018/12 版本 TS38.211-f40 中,基于 RAN1#94b 会议的决议进行了修改,有关信息请参看 RAN1#94b会议报告以及提案 R1-1811817 和 R11810834。
12574 1
资源块|带你读《5G空口特性与关键技术》之九
5G 物理资源 |带你读《5G空口特性与关键技术》之八
基站信道带宽是指基站侧上下行所支持的单个 NR 射频载波。同一频段下,支持不同的 UE 信道带宽。在基站信道带宽范围内,UE 信道带宽可以灵活配置。UE 的 BWP 的信号等于或者小于 RF 载波的载波资源块数时,基站就能够在任何载波资源块上收发 UE 的 1 个或者多个 BWP 的信号。
5G 物理资源  |带你读《5G空口特性与关键技术》之八
|
数据采集 Web App开发 JavaScript
Puppeteer的高级用法:如何在Node.js中实现复杂的Web Scraping
随着互联网的发展,网页数据抓取已成为数据分析和市场调研的关键手段。Puppeteer是一款由Google开发的无头浏览器工具,可在Node.js环境中模拟用户行为,高效抓取网页数据。本文将介绍如何利用Puppeteer的高级功能,通过设置代理IP、User-Agent和Cookies等技术,实现复杂的Web Scraping任务,并提供示例代码,展示如何使用亿牛云的爬虫代理来提高爬虫的成功率。通过合理配置这些参数,开发者可以有效规避目标网站的反爬机制,提升数据抓取效率。
1147 4
Puppeteer的高级用法:如何在Node.js中实现复杂的Web Scraping
|
11月前
|
前端开发 JavaScript API
给Web开发者的HarmonyOS指南01-文本样式
本系列教程适合 HarmonyOS 初学者,为那些熟悉用 HTML 与 CSS 语法的 Web 前端开发者准备的。
361 5
给Web开发者的HarmonyOS指南01-文本样式
|
5G 调度 芯片
5G 帧结构 |带你读《5G空口特性与关键技术》之七
虽然在较高的载波频率下通常不使用较小的子载波间隔,但是参数集可以独立于频段进行选择。不同子载波间隔可用于不同的场景下。如对于室外宏覆盖和微小区,可以采用 30kHz 子载波间隔;而室内站则可以采用 60kHz 子载波间隔;对于毫米波,则可以采用更大的子载波间隔,如 120kHz。
13304 3
5G 帧结构 |带你读《5G空口特性与关键技术》之七
修改了代码,但是不想提交应该怎么设置呢
在开发过程中,为了防止本地调试时修改的配置文件被误提交,可以采用以下方法:先点击“commit”,然后右键选择“Move to Another Changelist”,并为新变更列表命名。提交时忽略该列表即可避免误提交。
|
负载均衡 网络协议 安全
DNS解析中的Anycast技术:原理与优势
【9月更文挑战第7天】在互联网体系中,域名系统(DNS)将域名转换为IP地址,但网络规模的扩张使DNS解析面临高效、稳定与安全挑战。Anycast技术应运而生,通过将同一IP地址分配给多个地理分布的服务器,并依据网络状况自动选择最近且负载低的服务器响应查询请求,提升了DNS解析速度与效率,实现负载均衡,缓解DDoS攻击,增强系统高可用性。此技术利用动态路由协议如BGP实现,未来在网络发展中将扮演重要角色。
1166 0
|
人工智能 Ubuntu 机器人
【Valgrind】Valgrind安装(ubuntu系统)
【Valgrind】Valgrind安装(ubuntu系统)
|
5G 调度
带你读《5G 系统技术原理与实现》——3.3 5G 时频资源
带你读《5G 系统技术原理与实现》——3.3 5G 时频资源
带你读《5G 系统技术原理与实现》——3.3 5G 时频资源
|
前端开发 容器
Echarts实战案例代码(46):带渐变背景颜色的倾斜角度的图表的CSS样式表解决方案
Echarts实战案例代码(46):带渐变背景颜色的倾斜角度的图表的CSS样式表解决方案
339 0