畢業后我才懂得自救,希望大家引以為戒
大家好,我是魚皮,
之前給大家分享過我大學四年的編程學習經歷:我學計算機的四年,共勉!
很多朋友看完這篇文章后,會感到好奇:我是如何在大學期間做了那么多事情、學了那么多編程知識的?
但其實我要說,只要大家按照路徑學習,一定能夠比我學的更多更好 !
為什么呢?

因為首先,大學期間,我并沒有 “死學習”,除了學習什么都不干,而是花了很多時間在學習無關的事情上,比如我作為班長要管理班級事務、我也玩游戲(手游 + 端游)、我也參加學生會和社團、也愛參加活動等,
其次,就是我對編程本身沒有天賦,不是像大家說的一看就會,一下就能寫出代碼,之前也講過,我在高考后自學編程讀了幾十頁書就放棄了,大一期間也是各種采坑,各種看不懂,甚至在 C 語言考試的時候鏈表題都做不出來,只不過后來憑借著我對編程強大的興趣和更多地熬夜砸時間,并且持續總結踩過的坑和學習方法,才幫助我學到了這么多編程知識,才能找到一份大廠的作業,
但這些都不是關鍵原因,最最最最最重要的是,其實我在學編程的時候,有一個 壞習慣 ,直到畢業后才意識到真的因此 白白浪費了太多太多的時間 ,
這也是我學編程時 最后悔的事 ,如果我能早點醒悟,應該能學到更多知識,身體和頭發也會更好些,
下面把這件事以及我畢業后的 自救方法 分享給大家,希望幫助大家少走彎路,高效學編程,
最后悔的事
我學編程時最后悔的事就是:做事不分主次,花了太多時間在技術無關的糾結上,
舉個例子,我在大三學習微服務的時候,獨立開發了一個安卓 APP 叫 面試君主 ,從產品功能、界面設計再到前后端開發和上線都是我一個人負責,斷斷續續做了兩個多月,

聽起來好像還不錯對吧,但是如果我說,這個專案其實我寫代碼的時間大概不到一半,大家會怎么想呢?
當時完全沒有計劃這個 APP 要做多久,所以直到我做完這個專案,在總結復盤時才發現:我特么的竟然花了 60 - 70% 的時間在產品功能和設計上?!
產品功能倒還可以理解,畢竟你在寫代碼前要先明確要做什么、為什么做,但我竟然浪費了大量的時間在設計上!
一方面是糾結專案的界面,比如字體大一點還是小一點,框框寬一點還是窄一點,另一方面是到網上找素材,比如圖示和背景的選取,一會兒覺得這個好看,一會兒又覺得另外一個好看,猶豫不決,,,老強迫癥患者了,

哦,天吶!要知道,我是一個完全沒有審美的程式員,本來在變數命名上我就已經很糾結了,為什么還要花了這么多時間在自己不專業的事情上!
大家肯定會問了,你怎么知道浪費了多少時間呢?
其實這只是粗略的估計,我當時每天晚上基本是在固定時間寫代碼,每天提交 1-2 次,通過分析兩次提交代碼的差異,我驚訝地發現,經常是間隔 2 個多小時,我就只改了圖示或者界面的代碼!

本來做這個專案的 主要目的 是為了學習后端微服務,前端是 次要 的,只是為了方便看到效果,但沒想到,竟然在上面白白浪費了那么多時間,所以對我來說,做這個專案的程序是極其失敗的,
當然,這只是一個例子,我在學編程時,做過的無意義的糾結實在太多了,
而且我不知道大家有沒有這種感覺,尤其是在夜深人靜的時候,思考會更遲緩,無論是改 Bug 還是調界面都更容易使人陷入糾結,不知不覺時間就溜走了,有的時候我第二天醒來甚至都不知道昨天自己到底在熬夜做什么!

熬夜努力或許沒錯,但熬夜做無意義的事真的是罪過!
這個壞習慣一直陪伴我讀完大學,直到作業后,我才意識到需要自救,
自救方法
上面說的是我自己覺得很后悔的事,不知道大家有沒有同感,
接下來我要分享的 自救方法 ,不僅幫助我解決了糾結的毛病,還幫助我告別拖延、提高了做事的效率,
方法概括成一句話:將大的任務(目標)拆分為多個子任務,并且給每個子任務設立一個 deadline(最后期限),按照計劃去完成,
為什么要這樣做呢?分別解釋一下,
任務拆解
我們總是本能地抗拒有難度的、或者較為龐大的任務,所以如果不對這些任務進行拆分,我們就很容易出現以下 3 種情況:
- 不想做,不愿做,拖到最后
- 做的程序中發現問題,中途放棄
- 直接放棄
而且大部分情況下,相信大家都是 直接放棄 對吧,

將大任務拆分為小任務后,我們就可以逐個擊破,通過完成一個個小目標識訓成就感,保持熱血,
設立 deadline
很多時候,我們做事拖延、磨嘰、糾結,就是因為沒有事先給自己定下截止時間,所以總是不緊不慢,想些有的沒的,忽視了關鍵目標,
像我上面講到的,因為沒有 deadline,導致自己在開發 APP 時很放松,才過分地糾結設計和界面,如果我當時給自己設立一個 deadline,就必須 1 個月內完成,那我相信自己也是可以做到的,而且可能會更好,
deadline 的作用在我的日常作業中體現的更加明顯,以前在學校做專案的時候,除了課堂作業,很少有人給我 deadline,或者說比較寬松,但作業中,老板說這個需求這周上線,那你就必須在這周完成,除非有合理的理由,否則根本沒得商量,因此,也是在作業后,我才意識到自己在學校的效率真的是太低了,才變得更加高效,

還有一個有趣的現象:在我自己維護作業室、以及跟其他小伙伴合作開發的時候發現,同一個任務,給他們 3 天的時間能按預期完成,給他們一周的時間反而完不成,
所以不僅要設定 deadline,而且要多設定,給每個子任務都設定 deadline,持續給自己壓迫感,更有助于幫助我們完成目標,
實際應用
方法介紹完后,結合編程舉幾個實際應用的例子,
做專案
以前參加比賽做專案時,我一般都是拖到最后才匆匆忙忙提交結果,
但如果現在讓我做一個完整的專案,比如編程導航,我先定個目標:1 個月內上線,然后把任務拆解為:先用 3 天時間確定產品功能、再用 1 天時間參考同類產品的設計(花更多時間在開發上),用 1 天設計庫表、用 7 天開發前端、3 天開發后端(1 天開發登錄、2 天開發基礎增刪改查),剩余的時間拿來填充網頁內容和優化,
這樣一來,當我沒有按照預期完成小任務時,我會反思原因,并且動態調整剩余作業的時間,以保證整體目標預期達成,
學編程
以前看書、看視頻學習某項技術時,我可能就是想學什么、點進視頻就開始學了,也沒有想過計劃用多少時間把它學完,結果就是導致學習節奏慢,每天看個幾節課,可能今天的還沒看,昨天的就忘了,

但假如現在讓我學 Java,我會先掃一遍視頻(書籍)的目錄,根據視頻的時長和章節,定下總的學習目標,比如 1 個月學完 Java 基礎,然后將目標拆分成:3 天搭建 Java 環境和跑起專案,5 天學完 Java 基礎語法、10 天學完 Java 面向物件、5 天做一個 Java 實戰專案、再花 5 天學習高級特性和復習等,
刷演算法
很多朋友跟我抱怨說自己會在一道演算法題上糾結很久,多達幾個小時,結果到最后也沒做出來,非常難受,
我大一做 ACM 練習題的時候也是這樣,想不通就硬想,生來倔強,就以為自己能做出來,現在想想,太虧了,雖然這道題自己想出來可能會很有意義,但不要忘了,你大學的時間是有限的啊!想出來一道題的時間,說不定別人都學了一個新技術了,
因此,我會給自己定下刷演算法的目標:每天 2 - 3 道題,每道題限時 30 分鐘,想不出來就直接去看題解,有了思路再去想,再多復習鞏固,由此,最后我用了接近一年半的時間刷了 1000 多道演算法題,
其他工具
最后也給大家分享一些幫助管理計劃、安排時間、高效作業、防止遺漏的實用工具吧~
滴答清單
我自己一直在用的任務管理工具,也是幫助我成為時間管理大師(狗頭)的必備神器,支持多端同步,

Forest 專注森林
我從高中就在用的 APP,每成功保持專注一段時間后,都能識訓一顆小樹,終有一日聚為森林,

番茄 todo
也是一款幫助你管理時間,保持專注的 APP,好評率很高,

Teambition
阿里巴巴旗下的作業學習套件,同時適用于團隊和個人,團隊協作、專案管理、個人安排、做筆記等功能一應俱全,界面也很精簡,

以上就是本期分享,最后再送大家一些 幫助我拿到大廠 offer 的學習資料:
跑了,留下 6T 的資源!
歡迎閱讀 我從 0 自學進入騰訊的編程學習、求職、考證、寫書經歷,不再迷茫!
我學計算機的四年,共勉!
我是魚皮,致力編程學習經驗和技術知識分享,點贊 還是要求一下的,祝大家都能心想事成、發大財、行大運,

轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/290141.html
標籤:其他
