我學編程時最後悔的事!

畢業後我才懂得自救,但願你們引覺得戒前端

你們好,我是魚皮。程序員

以前給你們分享過我大學四年的編程學習經歷:我學計算機的四年,共勉!面試

不少朋友看完這篇文章後,會感到好奇:我是如何在大學期間作了那麼多事情、學了那麼多編程知識的?算法

但其實我要說,只要你們按照路徑學習,必定可以比我學的更多更好編程

爲何呢?後端

由於首先,大學期間,我並無 「死學習」,除了學習什麼都不幹,而是花了不少時間在學習無關的事情上。好比我做爲班長要管理班級事務、我也玩遊戲(手遊 + 端遊)、我也參加學生會和社團、也愛參加活動等。markdown

其次,就是我對編程自己沒有天賦,不是像你們說的一看就會,一下就能寫出代碼。以前也講過,我在高考後自學編程讀了幾十頁書就放棄了,大一期間也是各類採坑,各類看不懂,甚至在 C 語言考試的時候鏈表題都作不出來。只不事後來憑藉着我對編程強大的興趣和更多地熬夜砸時間,而且持續總結踩過的坑和學習方法,才幫助我學到了這麼多編程知識,才能找到一份大廠的工做。微服務

但這些都不是關鍵緣由,最最最最最重要的是,其實我在學編程的時候,有一個 壞習慣 ,直到畢業後才意識到真的所以 白白浪費了太多太多的時間工具

這也是我學編程時 最後悔的事 ,若是我能早點醒悟,應該能學到更多知識,身體和頭髮也會更好些。oop

下面把這件事以及我畢業後的 自救方法 分享給你們,但願幫助你們少走彎路,高效學編程。

最後悔的事

我學編程時最後悔的事就是:作事不分主次,花了太多時間在技術無關的糾結上。

舉個例子,我在大三學習微服務的時候,獨立開發了一個安卓 APP 叫 面試君主 。從產品功能、界面設計再到先後端開發和上線都是我一我的負責,斷斷續續作了兩個多月。

當時作的 APP

聽起來好像還不錯對吧。可是若是我說,這個項目其實我寫代碼的時間大概不到一半,你們會怎麼想呢?

當時徹底沒有計劃這個 APP 要作多久,因此直到我作完這個項目,在總結覆盤時才發現:我特麼的居然花了 60 - 70% 的時間在產品功能和設計上?!

產品功能倒還能夠理解,畢竟你在寫代碼前要先明確要作什麼、爲何作。但我居然浪費了大量的時間在設計上!

一方面是糾結項目的界面,好比字體大一點仍是小一點,框框寬一點仍是窄一點。另外一方面是到網上找素材,好比圖標和背景的選取,一下子以爲這個好看,一下子又以爲另一個好看,猶豫不決。。。老強迫症患者了。

哦,天吶!要知道,我是一個徹底沒有審美的程序員,原本在變量命名上我就已經很糾結了,爲何還要花了這麼多時間在本身不專業的事情上!

你們確定會問了,你怎麼知道浪費了多少時間呢?

其實這只是粗略的估計,我當時天天晚上基本是在固定時間寫代碼,天天提交 1-2 次。經過分析兩次提交代碼的差別,我驚訝地發現,常常是間隔 2 個多小時,我就只改了圖標或者界面的代碼!

對比兩次提交

原本作這個項目的 主要目的 是爲了學習後端微服務,前端是 次要 的,只是爲了方便看到效果。但沒想到,居然在上面白白浪費了那麼多時間。因此對我來講,作這個項目的過程是極其失敗的。

固然,這只是一個例子,我在學編程時,作過的無心義的糾結實在太多了。

並且我不知道你們有沒有這種感受,尤爲是在夜深人靜的時候,思考會更遲緩,不管是改 Bug 仍是調界面都更容易令人陷入糾結,不知不覺時間就溜走了,有的時候我次日醒來甚至都不知道昨天本身到底在熬夜作什麼!

熬夜努力或許沒錯,但熬夜作無心義的事真的是罪過!

這個壞習慣一直陪伴我讀完大學,直到工做後,我才意識到須要自救。

自救方法

上面說的是我本身以爲很後悔的事,不知道你們有沒有同感。

接下來我要分享的 自救方法 ,不只幫助我解決了糾結的毛病,還幫助我告別拖延、提升了作事的效率。

方法歸納成一句話:將大的任務(目標)拆分爲多個子任務,而且給每一個子任務設立一個 deadline(最後期限),按照計劃去完成。

爲何要這樣作呢?分別解釋一下。

任務拆解

咱們老是本能地抗拒有難度的、或者較爲龐大的任務。因此若是不對這些任務進行拆分,咱們就很容易出現如下 3 種狀況:

  1. 不想作,不肯作,拖到最後
  2. 作的過程當中發現問題,中途放棄
  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 自學進入騰訊的編程學習、求職、考證、寫書經歷,再也不迷茫!

我學計算機的四年,共勉!

我是魚皮,致力編程學習經驗和技術知識分享,點贊 仍是要求一下的,祝你們都能心想事成、發大財、行大運。

相關文章
相關標籤/搜索