当前位置:首页 > 公众号精选 > 了不起的程序员
[导读]哈喽,大家好,我是月亮。一个工作n年的老程序员啦,平时在公号上给大家分享一些心得体会/有趣的工具,每周更新~今天月亮想和大家聊一下,我是怎么从一个什么都不会的计算机专业的小白,成功入门软件开发的。

哈喽,大家好,我是月亮。一个工作n年的老程序员啦,平时在公号上给大家分享一些心得体会/有趣的工具,每周更新~

今天月亮想和大家聊一下,我是怎么从一个什么都不会的计算机专业的小白,成功入门软件开发的。

普遍现象

很多计算机专业的学生,毕业前夕会面临的一个尴尬情况就是:快要毕业了,才猛然醒悟,自己貌似啥也不会。

起初月亮以为是自己大学太差的原因,才导致自己和大学同学有这样的困惑,但后来参加工作,遇到了来自五湖四海的同事,其中绝大多数人,他们的学校都比月亮就读的学校更好。

他们中的大部分人,刚毕业时居然都有同样的感受,自己似乎什么都不会...

如果你现在、或者曾经也有同样的困惑。那么不要着急,大部分普通学校的计算机学生刚毕业时能力都非常有限,大家都是一样的。

而月亮稍微幸运一点,在毕业时稍微感觉自己还是学到了一些东西,起码能够胜任一些基础的开发工作。虽然当时能力也不强,但是我相信自己一定能找到一份软件开发的工作。

那么我是怎么学会软件开发的呢?

复盘下来,我认为自己做对了3件事情。

学会从网上找教程

在我的编程学习之路上,可以说学校的课程几乎没有对我产生任何的帮助,全是靠自学的。

甚至学校的课程,对我学习编程造成一些心理障碍,我甚至都怀疑自己究竟适合做软件这行吗?我怎么听不懂老师讲课呢?

我们是从大一下学期开始学习编程的,从C语言开始学,然后是Java,一年的课程下来,我只会照着教科书抄两段循环语句,能够运行成功、不报错,就谢天谢地了。

当时我很疑惑,就凭学校教的这些内容,我们出去能找到相关的工作吗?一年学下来,我连这两门语言到底能做什么都不知道,我不知道Java可以做网站开发、Android开发,不知道学C可以做嵌入式...

就这样,学习一年之后我们开了Android开发课程,可我连Java基础都没有学明白,这些课程自然也学不懂了。

当时我很担心,照这种情况发展下去,到期末肯定只有挂科了,搞不好最后连毕业证都拿不到。

我想,这样肯定不行,就算毕业不能找到软件开发的工作,起码毕业证我得拿到,否则大学几年的时间就真的是完全浪费了。

抱着死马当活马医的心态,我想,现在网络这么发达,网上会不会有软件开发的相关教程呢?

我就拿着手机搜:Android开发学习软件。

当时也不太会用搜索引擎,随便胡乱搜索了一通,从结果来看,还是很幸运。

没花多少时间,就找到了一款App,里面只有三套视频教程,一套叫做java4Android,另两分别叫做Android开发教程、Android开发(第二版)(Android的两套大概是这个名称,记不太清楚了)。

这几套教程给我的大学生涯带来了转机,让我知道了可以使用搜索引擎来找教程,找到那些自己当前的学习能力能够消化的教程。

java4Android这套教程,现在我都保存在我的电脑上,这是一套非常适合Java入门学习的教程,虽然讲师一再强调,这一套教程是为了Android入门录制的,不适合Java web开发者学习。

但是在我看来,只要是Java入门,都可以学习这套教程,教程的特点就是:深入浅出,我这样的小白都能听懂。

这套教程给我带来了信心,也纠正了我的一些错误想法:

  • 原来我是能够学会编程的!之前一直学不会,完全是老师的教学方法有问题,毕竟全班30多号人,能学会的只有俩,这问题就完全出在老师身上了。

我甚至觉得,让学习一学期的我去带新手入门,都一定能做得比学校的老师更好,多年以后我仍然深信这一点。

  • 学习Android开发,不会C也没关系,只要会Java基础,就能快速上手。

就这样,我无意中在正确的道路上踏出了第一步:

学会自己找教程。

拆解目标,持续拿到正反馈

上面的课程十分简单易学,但是对于在学校废柴了几年的学生来讲,已经没有足够的自制力让自己专心学习了。

而且当时我记得自己很多时候都很焦虑,焦虑期末挂科、焦虑毕业证、焦虑毕业后的工作...

虽然当时才大二,但是我已经开始为自己毕业的工作发愁了。

有了能学懂的教程,但是我不保证自己能持续地坚持学习呀,这可咋办?

好在才大二,我还有很多时间,所以当时我选择不要逼自己太紧,每天完成一点学习任务就行。

我给自己定的目标是,每天只学习30分钟,时间一到就可以休息了,不要有太多的压力。

现在来看,当时的策略很正确,如果我当时采用每天学习2、3个小时的策略,有极大的可能,我会坚持不下去,半路就选择放弃了。

在2、3个小时里,接收大量的陌生概念,一般人很难消化,尤其是长期不学习的人。

即便是每天30分钟,我还是感觉到了困难,因为学习编程,单单只是看是不行的。学习了一两周,我就发现,好像前面的内容我已经忘记了...

忘了咋办?我只能用最笨的办法,再回过头去再看一遍,第二遍再看的时候,就非常轻松了。

在这个过程中,我慢慢地就找到了信心。

“哈哈,也没想象中的那么难嘛,我当时咋会听不懂呢?”

“真是太简单了。”

就这样,我给自己定下了能够完成的目标,并且持续去做,甚至周末我还允许自己休息,可以不用学习。

无意中,我做对了第二步:

把目标拆解到足够小,让自己能够持续地完成目标,在这个过程中持续地获得成就感,正反馈就形成了。

大量练习非常重要

现在,我还差一个关键的步骤没有完成,当我完成这一步的时候,我开始废寝忘食地学习编程了,每天想的都是学习更多的内容,丰富自己的知识储备。

学习编程,不只是要上课,更重要的是进行大量的练习,只有你自己写得多了,才能慢慢理解到:面对一个新的需求,代码应该怎么写。

当时每次课堂最后,都留有简单的练习题,让学习者进行巩固,我自然也跟着去完成了。

我记得,在学习一两个月之后,课程来到了IO流(文件操作)的阶段,学完之后,演示了一个文件复制的例子。

具体操作为:执行main函数,调用一小段自己写的代码,把一个txt文件给复制一份。

文件操作,对我来说是一个全新的概念,我当时只能照着屏幕,把代码给敲到编辑器里,然后就执行成功了,我记得自己操作成功时还小小的兴奋了一下。

“看,编程有什么难的,不就这样嘛~”

当时自己写一遍,只是为了完成任务,我已经完成了。

但是,脑子里突然冒出了一个念头:我能不能做到不抄代码,凭记忆自己给写出来!

我想,大概需要多重复几遍,也许能做到... ...

于是,我又给自己定了一个小目标:每天把这段代码抄一遍。

事实上只过了三天,我就能把这段代码背着写出来了,为了能尽快完成这个小目标,我每天大概抄两三遍,加上就只有一小段,很快就完成了。

这件事带给了我很大的成就感,即便已经过去很多年,但是我依然记得当时自己很兴奋!

我在这个阶段学到的东西是:

想要真正掌握编程技能,必须要大量地练习,写得多了,自然就知道应该怎么写了。

从那之后,学习编程对我来讲,已经完全不是问题了,我开始投入更多时间去主动学习,总算不再觉得自己什么都不会,并且开始确定了自己以后的就业方向:就干软件开发了!

并且也相信自己肯定能做到!虽然底子差,但还有很多时间可以去学习!

月亮想说

上面这一段经历,对月亮来说非常宝贵,这可以说是我人生的一个转折点。

以前我从来不知道应该怎么自学,但是你瞧,在上面这段经历里,月亮不就已经学会自学了吗?

虽然我也是后来才意识到,原来从那个时候开始,我就已经开始摸索着进行自学了呀。

自学,是我大学时期最大的收获,当你掌握自学之后,学习什么技能都没有问题的。

希望月亮今天的分享,能够给大家带来一些启发,咱们下期再见呀~

关于读者群

了不起的程序员读者群开放啦!!!

欢迎各位读者进群,群内以聊天学习摸鱼为主,不定期分享好玩有趣的优秀工具。

进群方式:公众号后台回复进群,按提示操作即可进群。

各位了不起的老铁们,最近公众号改版了,大家记得星标了不起的程序员,第一时间收到原创优质推荐哦

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

随着信息技术的迅猛发展和大数据时代的到来,机器学习成为了人工智能领域中的核心技术之一。机器学习是通过模拟人类学习行为,使计算机系统能够从数据中自动发现规律、提取特征并进行预测和决策的过程。它在诸多领域取得了广泛的应用,包...

关键字: 计算机 人工智能 机器学习

随着大数据时代的到来,数据处理成为了一项至关重要的任务。传统的数据处理方法往往面临着效率低下、准确性不高等问题,而机器学习技术的兴起为数据处理带来了全新的解决方案。本文将深入探讨机器学习在数据处理中的应用,并分析其优势和...

关键字: 数据处理 计算机 机器学习

机器学习是人工智能领域的一个重要分支,它使用各种算法来使计算机系统能够从数据中学习和改进,而无需进行明确的编程。在机器学习的广阔领域中,有多种算法被广泛应用,每种算法都有其独特的适用场景和优势。本文将详细介绍机器学习中的...

关键字: 机器学习 人工智能 计算机

随着信息技术的飞速发展,机器学习(Machine Learning)作为人工智能领域的重要分支,正在逐步改变我们生活的方方面面。那么,什么叫做机器学习呢?简单来说,机器学习是一门研究如何让计算机从数据中自动获取知识和技能...

关键字: 机器学习 人工智能 计算机

随着信息技术的飞速发展,数据已经成为现代社会的重要资源。数据挖掘和机器学习作为处理和分析数据的两大关键技术,在多个领域得到了广泛应用。尽管它们在某些方面存在重叠,但数据挖掘和机器学习在定义、目标、方法以及应用场景等方面存...

关键字: 数据挖掘 机器学习 计算机

计算机的历史可以追溯到公元前的古代算盘和查尔斯·巴贝奇的“分析机”构想。然而,现代意义上的计算机起源于二战时期对复杂军事计算需求的响应。1941年,美国宾夕法尼亚大学开发出了ENIAC(Electronic Numeri...

关键字: 计算机 云服务

自二十世纪以来,计算机技术经历了从机械计算装置到如今高度智能化、微型化的巨大飞跃,成为人类科技进步的重要推动力。电脑的发展史是一段充满创新与突破的历史,以下将按照时间顺序概述这一发展历程。

关键字: 电脑 计算机

计算机网络是当今信息化社会中不可或缺的基础设施,它将世界各地的计算机系统及其附属设备紧密联系在一起,实现了信息的高速传输与共享资源的有效利用。计算机网络的定义可以归纳为:计算机网络是一系列分布在不同地理位置、具备独立功能...

关键字: 计算机 信息交互

随着科技的不断进步,人工智能(AI)已成为当今世界的热门话题。它以其强大的计算能力和深度学习能力,在多个领域展现出巨大的应用潜力。本文将对人工智能技术进行详细的探究,包括其定义、发展历程、主要技术、应用领域以及面临的挑战...

关键字: 人工智能 深度学习 计算机

嵌入式开发是当今信息技术领域不可或缺的一部分,它融合了硬件设计、软件开发和系统集成等多个学科,专门用于创建那些被嵌入到特定设备或系统中的专用计算机系统。嵌入式开发的主要过程包括利用分立元件或集成器件进行电路设计、结构设计...

关键字: 嵌入式开发 硬件设计 软件开发
关闭