主頁 > 軟體設計 > 我學編程時最后悔的事!

我學編程時最后悔的事!

2021-07-26 08:27:58 軟體設計

畢業后我才懂得自救,希望大家引以為戒

大家好,我是魚皮,

之前給大家分享過我大學四年的編程學習經歷:我學計算機的四年,共勉!

很多朋友看完這篇文章后,會感到好奇:我是如何在大學期間做了那么多事情、學了那么多編程知識的?

但其實我要說,只要大家按照路徑學習,一定能夠比我學的更多更好

為什么呢?

因為首先,大學期間,我并沒有 “死學習”,除了學習什么都不干,而是花了很多時間在學習無關的事情上,比如我作為班長要管理班級事務、我也玩游戲(手游 + 端游)、我也參加學生會和社團、也愛參加活動等,

其次,就是我對編程本身沒有天賦,不是像大家說的一看就會,一下就能寫出代碼,之前也講過,我在高考后自學編程讀了幾十頁書就放棄了,大一期間也是各種采坑,各種看不懂,甚至在 C 語言考試的時候鏈表題都做不出來,只不過后來憑借著我對編程強大的興趣和更多地熬夜砸時間,并且持續總結踩過的坑和學習方法,才幫助我學到了這么多編程知識,才能找到一份大廠的作業,

但這些都不是關鍵原因,最最最最最重要的是,其實我在學編程的時候,有一個 壞習慣 ,直到畢業后才意識到真的因此 白白浪費了太多太多的時間

這也是我學編程時 最后悔的事 ,如果我能早點醒悟,應該能學到更多知識,身體和頭發也會更好些,

下面把這件事以及我畢業后的 自救方法 分享給大家,希望幫助大家少走彎路,高效學編程,

最后悔的事

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

舉個例子,我在大三學習微服務的時候,獨立開發了一個安卓 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 自學進入騰訊的編程學習、求職、考證、寫書經歷,不再迷茫!

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

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

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

標籤:其他

上一篇:有了這7款瀏覽器插件,瀏覽器居然“活了”?!媳婦兒直呼“大開眼界”

下一篇:【C++】STL(一)string類的使用

標籤雲
其他(157675) Python(38076) JavaScript(25376) Java(17977) C(15215) 區塊鏈(8255) C#(7972) AI(7469) 爪哇(7425) MySQL(7132) html(6777) 基礎類(6313) sql(6102) 熊猫(6058) PHP(5869) 数组(5741) R(5409) Linux(5327) 反应(5209) 腳本語言(PerlPython)(5129) 非技術區(4971) Android(4554) 数据框(4311) css(4259) 节点.js(4032) C語言(3288) json(3245) 列表(3129) 扑(3119) C++語言(3117) 安卓(2998) 打字稿(2995) VBA(2789) Java相關(2746) 疑難問題(2699) 细绳(2522) 單片機工控(2479) iOS(2429) ASP.NET(2402) MongoDB(2323) 麻木的(2285) 正则表达式(2254) 字典(2211) 循环(2198) 迅速(2185) 擅长(2169) 镖(2155) 功能(1967) .NET技术(1958) Web開發(1951) python-3.x(1918) HtmlCss(1915) 弹簧靴(1913) C++(1909) xml(1889) PostgreSQL(1872) .NETCore(1853) 谷歌表格(1846) Unity3D(1843) for循环(1842)

熱門瀏覽
  • 面試突擊第一季,第二季,第三季

    第一季必考 https://www.bilibili.com/video/BV1FE411y79Y?from=search&seid=15921726601957489746 第二季分布式 https://www.bilibili.com/video/BV13f4y127ee/?spm_id_fro ......

    uj5u.com 2020-09-10 05:35:24 more
  • 第三單元作業總結

    1.前言 這應該是本學期最后一次寫作業總結了吧。總體來說,對作業的節奏也差不多掌握了,作業做起來的效率也更高了。雖然和之前的作業一樣,作業中都要用到新的知識,但是相比之前,更加懂得了如何利用工具以及資料。雖然之間卡過殼,但總體而言,這幾次作業還算完成的比較好。 2.作業程序總結 相比前兩個單元,此單 ......

    uj5u.com 2020-09-10 05:35:41 more
  • 北航OO(2020)第四單元博客作業暨課程總結博客

    北航OO(2020)第四單元博客作業暨課程總結博客 本單元作業的架構設計 在本單元中,由于UML圖具有比較清晰的樹形結構,因此我對其中需要進行查詢操作的元素進行了包裝,在樹的父節點中存盤所有孩子的參考。考慮到性能問題,我采用了快取機制,一次查詢后盡可能快取已經遍歷過的資訊,以減少遍歷次數。 本單元我 ......

    uj5u.com 2020-09-10 05:35:48 more
  • BUAA_OO_第四單元

    一、UML決議器設計 ? 先看下題目:第四單元實作一個基于JDK 8帶有效性檢查的UML(Unified Modeling Language)類圖,順序圖,狀態圖分析器 MyUmlInteraction,實際上我們要建立一個有向圖模型,UML中的物件(元素)可能與同級元素連接,也可與低級元素相連形成 ......

    uj5u.com 2020-09-10 05:35:54 more
  • 6.1邏輯運算子

    邏輯運算子 1. && 短路與 運算式1 && 運算式2 01.運算式1為true并且運算式2也為true 整體回傳為true 02.運算式1為false,將不會執行運算式2 整體回傳為false 03.只要有一個運算式為false 整體回傳為false 2. || 短路或 運算式1 || 運算式2 ......

    uj5u.com 2020-09-10 05:35:56 more
  • BUAAOO 第四單元 & 課程總結

    1. 第四單元:StarUml檔案決議 本單元采用了圖模型決議UML。 UML檔案可以抽象為圖、子圖、邊的邏輯結構。 在實作中,圖的節點包括類、介面、屬性,子圖包括狀態圖、順序圖等。 采用了三次遍歷UML元素的方法建圖,第一遍遍歷建點,第二、三次遍歷設定屬性、連邊,實作圖物件的初始化。這里借鑒了一些 ......

    uj5u.com 2020-09-10 05:36:06 more
  • 談談我對C# 多型的理解

    面向物件三要素:封裝、繼承、多型。 封裝和繼承,這兩個比較好理解,但要理解多型的話,可就稍微有點難度了。今天,我們就來講講多型的理解。 我們應該經常會看到面試題目:請談談對多型的理解。 其實呢,多型非常簡單,就一句話:呼叫同一種方法產生了不同的結果。 具體實作方式有三種。 一、多載 多載很簡單。 p ......

    uj5u.com 2020-09-10 05:36:09 more
  • Python 資料驅動工具:DDT

    背景 python 的unittest 沒有自帶資料驅動功能。 所以如果使用unittest,同時又想使用資料驅動,那么就可以使用DDT來完成。 DDT是 “Data-Driven Tests”的縮寫。 資料:http://ddt.readthedocs.io/en/latest/ 使用方法 dd. ......

    uj5u.com 2020-09-10 05:36:13 more
  • Python里面的xlrd模塊詳解

    那我就一下面積個問題對xlrd模塊進行學習一下: 1.什么是xlrd模塊? 2.為什么使用xlrd模塊? 3.怎樣使用xlrd模塊? 1.什么是xlrd模塊? ?python操作excel主要用到xlrd和xlwt這兩個庫,即xlrd是讀excel,xlwt是寫excel的庫。 今天就先來說一下xl ......

    uj5u.com 2020-09-10 05:36:28 more
  • 當我們創建HashMap時,底層到底做了什么?

    jdk1.7中的底層實作程序(底層基于陣列+鏈表) 在我們new HashMap()時,底層創建了默認長度為16的一維陣列Entry[ ] table。當我們呼叫map.put(key1,value1)方法向HashMap里添加資料的時候: 首先,呼叫key1所在類的hashCode()計算key1 ......

    uj5u.com 2020-09-10 05:36:38 more
最新发布
  • 【中介者設計模式詳解】C/Java/JS/Go/Python/TS不同語言實作

    * 中介者模式是一種行為型設計模式,它可以用來減少類之間的直接依賴關系,
    * 將物件之間的通信封裝到一個中介者物件中,從而使得各個物件之間的關系更加松散。
    * 在中介者模式中,物件之間不再直接相互互動,而是通過中介者來中轉訊息。 ......

    uj5u.com 2023-04-20 08:20:47 more
  • 露天煤礦現場調研和交流案例分享

    他們集團的資訊化公司及研究院在一個礦區正在做智能礦山的統一平臺的 試點,專案投資大概1億,包括了礦山的各方面的內容,顯示得我們這次交流有點多余。他們2年前開始做智能礦山的規劃,有很多煤礦行業專家的加持,他們的描述是非常完美,但是去年底應該上線的平臺,現在還沒有看到影子。他們確實有很多場景需求,但是被... ......

    uj5u.com 2023-04-20 08:20:25 more
  • 《社區人員管理》實戰案例設計&個人案例分享

    設計是一個讓人夢想成真程序,開始編碼、測驗、除錯之前進行需求分析和架構設計,才能保證關鍵方面都做正確 ......

    uj5u.com 2023-04-20 08:20:17 more
  • 軟體架構生態化-多角色交付的探索實踐

    作為一個技術架構師,不僅僅要緊跟行業技術趨勢,還要結合研發團隊現狀及痛點,探索新的交付方案。在日常中,你是否遇到如下問題 “ 業務需求排期長研發是瓶頸;非研發角色感受不到研發技改提效的變化;引入ISV 團隊又擔心質量和安全,培訓周期長“等等,基于此我們探索了一種新的技術體系及交付方案來解決如上問題。 ......

    uj5u.com 2023-04-20 08:20:10 more
  • 【中介者設計模式詳解】C/Java/JS/Go/Python/TS不同語言實作

    * 中介者模式是一種行為型設計模式,它可以用來減少類之間的直接依賴關系,
    * 將物件之間的通信封裝到一個中介者物件中,從而使得各個物件之間的關系更加松散。
    * 在中介者模式中,物件之間不再直接相互互動,而是通過中介者來中轉訊息。 ......

    uj5u.com 2023-04-20 08:19:44 more
  • 露天煤礦現場調研和交流案例分享

    他們集團的資訊化公司及研究院在一個礦區正在做智能礦山的統一平臺的 試點,專案投資大概1億,包括了礦山的各方面的內容,顯示得我們這次交流有點多余。他們2年前開始做智能礦山的規劃,有很多煤礦行業專家的加持,他們的描述是非常完美,但是去年底應該上線的平臺,現在還沒有看到影子。他們確實有很多場景需求,但是被... ......

    uj5u.com 2023-04-20 08:19:07 more
  • 《社區人員管理》實戰案例設計&個人案例分享

    設計是一個讓人夢想成真程序,開始編碼、測驗、除錯之前進行需求分析和架構設計,才能保證關鍵方面都做正確 ......

    uj5u.com 2023-04-20 08:18:57 more
  • 軟體架構生態化-多角色交付的探索實踐

    作為一個技術架構師,不僅僅要緊跟行業技術趨勢,還要結合研發團隊現狀及痛點,探索新的交付方案。在日常中,你是否遇到如下問題 “ 業務需求排期長研發是瓶頸;非研發角色感受不到研發技改提效的變化;引入ISV 團隊又擔心質量和安全,培訓周期長“等等,基于此我們探索了一種新的技術體系及交付方案來解決如上問題。 ......

    uj5u.com 2023-04-20 08:18:49 more
  • 05單件模式

    #經典的單件模式 public class Singleton { private static Singleton uniqueInstance; //一個靜態變數持有Singleton類的唯一實體。 // 其他有用的實體變數寫在這里 //構造器宣告為私有,只有Singleton可以實體化這個類! ......

    uj5u.com 2023-04-19 08:42:51 more
  • 【架構與設計】常見微服務分層架構的區別和落地實踐

    軟體工程的方方面面都遵循一個最基本的道理:沒有銀彈,架構分層模型更是如此,每一種都有各自優缺點,所以請根據不同的業務場景,并遵循簡單、可演進這兩個重要的架構原則選擇合適的架構分層模型即可。 ......

    uj5u.com 2023-04-19 08:42:41 more