程序员

注册

 

发新话题 回复该主题

我学编程时最后悔的事 [复制链接]

1#

毕业后我才懂得自救,希望大家引以为戒

大家好,我是鱼皮。

之前给大家分享过我大学四年的编程学习经历:我学计算机的四年,共勉!

很多朋友看完这篇文章后,会感到好奇:我是如何在大学期间做了那么多事情、学了那么多编程知识的?

但其实我要说,只要大家按照路径学习,一定能够比我学的更多更好!

为什么呢?

因为首先,大学期间,我并没有“死学习”,除了学习什么都不干,而是花了很多时间在学习无关的事情上。比如我作为班长要管理班级事务、我也玩游戏(手游+端游)、我也参加学生会和社团、也爱参加活动等。

其次,就是我对编程本身没有天赋,不是像大家说的一看就会,一下就能写出代码。之前也讲过,我在高考后自学编程读了几十页书就放弃了,大一期间也是各种踩坑,各种看不懂,甚至在C语言考试的时候链表题都做不出来。只不过后来凭借着我对编程强大的兴趣和更多地熬夜砸时间,并且持续总结踩过的坑和学习方法,才帮助我学到了这么多编程知识,才能找到一份大厂的工作。

但这些都不是关键原因,最最最最最重要的是,其实我在学编程的时候,有一个坏习惯,直到毕业后才意识到真的因此白白浪费了太多太多的时间。

这也是我学编程时最后悔的事,如果我能早点醒悟,应该能学到更多知识,身体和头发也会更好些。

下面把这件事以及我毕业后的自救方法分享给大家,希望帮助大家少走弯路,高效学编程。

最后悔的事

我学编程时最后悔的事就是:做事不分主次,花了太多时间在技术无关的纠结上。

举个例子,我在大三学习微服务的时候,独立开发了一个安卓APP叫面试君主。从产品功能、界面设计再到前后端开发和上线都是我一个人负责,断断续续做了两个多月。

当时做的APP

听起来好像还不错对吧。但是如果我说,这个项目其实我写代码的时间大概不到一半,大家会怎么想呢?

当时完全没有计划这个APP要做多久,所以直到我做完这个项目,在总结复盘时才发现:我特么的竟然花了60-70%的时间在产品功能和设计上?!

产品功能倒还可以理解,毕竟你在写代码前要先明确要做什么、为什么做。但我竟然浪费了大量的时间在设计上!

一方面是纠结项目的界面,比如字体大一点还是小一点,框框宽一点还是窄一点。另一方面是到网上找素材,比如图标和背景的选取,一会儿觉得这个好看,一会儿又觉得另外一个好看,犹豫不决。。。老强迫症患者了。

哦,天呐!要知道,我是一个完全没有审美的程序员,本来在变量命名上我就已经很纠结了,为什么还要花了这么多时间在自己不专业的事情上!

大家肯定会问了,你怎么知道浪费了多少时间呢?

其实这只是粗略的估计,我当时每天晚上基本是在固定时间写代码,每天提交1-2次。通过分析两次提交代码的差异,我惊讶地发现,经常是间隔2个多小时,我就只改了图标或者界面的代码!

对比两次提交

本来做这个项目的主要目的是为了学习后端微服务,前端是次要的,只是为了方便看到效果。但没想到,竟然在上面白白浪费了那么多时间。所以对我来说,做这个项目的过程是极其失败的。

当然,这只是一个例子,我在学编程时,做过的无意义的纠结实在太多了。

而且我不知道大家有没有这种感觉,尤其是在夜深人静的时候,思考会更迟缓,无论是改Bug还是调界面都更容易使人陷入纠结,不知不觉时间就溜走了,有的时候我第二天醒来甚至都不知道昨天自己到底在熬夜做什么!

熬夜努力或许没错,但熬夜做无意义的事真的是罪过!

这个坏习惯一直陪伴我读完大学,直到工作后,我才意识到需要自救。

自救方法

上面说的是我自己觉得很后悔的事,不知道大家有没有同感。

接下来我要分享的自救方法,不仅帮助我解决了纠结的毛病,还帮助我告别拖延、提高了做事的效率。

方法概括成一句话:将大的任务(目标)拆分为多个子任务,并且给每个子任务设立一个deadline(最后期限),按照计划去完成。

为什么要这样做呢?分别解释一下。

任务拆解

我们总是本能地抗拒有难度的、或者较为庞大的任务。所以如果不对这些任务进行拆分,我们就很容易出现以下3种情况:

不想做,不愿做,拖到最后做的过程中发现问题,中途放弃直接放弃

而且大部分情况下,相信大家都是直接放弃对吧。

将大任务拆分为小任务后,我们就可以逐个击破,通过完成一个个小目标收获成就感,保持热血。

设立deadline

很多时候,我们做事拖延、磨叽、纠结,就是因为没有事先给自己定下截止时间,所以总是不紧不慢,想些有的没的,忽视了关键目标。

像我上面讲到的,因为没有deadline,导致自己在开发APP时很放松,才过分地纠结设计和界面。如果我当时给自己设立一个deadline,就必须1个月内完成,那我相信自己也是可以做到的,而且可能会更好。

deadline的作用在我的日常工作中体现的更加明显,以前在学校做项目的时候,除了课堂作业,很少有人给我deadline,或者说比较宽松。但工作中,老板说这个需求这周上线,那你就必须在这周完成,除非有合理的理由,否则根本没得商量。因此,也是在工作后,我才意识到自己在学校的效率真的是太低了,才变得更加高效。

还有一个有趣的现象:在我自己维护工作室、以及跟其他小伙伴合作开发的时候发现,同一个任务,给他们3天的时间能按预期完成,给他们一周的时间反而完不成。

所以不仅要设置deadline,而且要多设置,给每个子任务都设置deadline,持续给自己压迫感,更有助于帮助我们完成目标。

推荐好文:为什么你的deadline永远只有dead?

分享 转发
TOP
发新话题 回复该主题