-
1 # 後端技術分享
-
2 # 沙茶敏碎碎念
我覺得要避免半途而非,最好的辦法是制定一個好目標!
明確的目標
古羅馬政治家塞涅卡說過,有人活著卻沒有目標,他們在世間行走,就如同河中的一棵小草隨波逐流。好比這個中秋和國慶假期打算學習Redis,那麼就要給自己定一個目標,這個中秋和過期就學習Redis,並且嚴格執行,不要中途又覺得Redis太枯燥無味而跑去學演算法與資料結構,中間又覺得演算法與資料結構太難開始學習Java的一些基礎特性。朝三暮四,最後一個假期過去了,什麼都學了,就是什麼都沒學到。
目標的合理性
目標的制定應該與能力相掛鉤,目標與能力,有這麼三種情況:1.目標遠遠超過了你的能力跟時間,比如說你是一個程式設計的新手,卻給自己制定了一週精通Java精通C++精通資料庫與各種開源框架,這擺明就是不可能的任務,制定這樣的目標,是毫無意義的。2.目標過小,遠遠小於你當前的能力與時間,舉個例子,你已經是一個工作3到5年的資深程式設計師,已經可以熟練使用並深知某一個框架,簡單說數量使用Redis並熟悉底層的大部分實現跟原理,然後現在給自己制定1周內學會memeryCache的基本使用,這種目標太簡單,甚至只要花一個上午的時間就能實現一個簡單的demo,無法給予你足夠的成長。3.目標跟能力剛好完全匹配,你的能力,剛好能夠完成對應的目標,你所預估的時間,也剛剛好能夠完成這個任務。這是一種非常理想的情況,事實上,大部分情況並無法到達這種情況。
如何制定一個合理的目標
上面說了,制定一個好的目標是非常困難的,那麼如何制定一個科學合理的目標呢?哲學家羅素在《人類的知識》中寫到,一個人求職的歷程,就像是一個登山者靠近一座被霧靄籠罩的高山,一開始只能看到一個模糊的輪廓,只有慢慢地走進,才能夠漸漸地清晰起來。一個好的目標,也是如此,一開始我們會定一些比較基礎的輪廓,然後隨著自己的深入,再不斷地進行調整,最後完成整個事情。首先,我們要先定一個可以量化的基礎目標,舉個簡單,我們打算這個假期學習Redis的應用以及原理,作為一個不熟悉Redis的人,肯定不能夠安排到每一天學習什麼內容,你都沒了解過Redis怎麼可能知道Redis的精髓是在於何處呢?我們只能夠定義一個非常容易量化的目標,即第一天學會Redis的基本命令,實現一個簡單的demo。這個分解出來的目標必須是切實可行,單目標確定好之後,就必須預估好時間,協調好資源,然後嚴格執行。不要說一開始定好目標,然後卻不安排好時間,總是臨時去幹別的事情,最後一拖再拖,很多半途而廢的事情的根源,在於拖延症。最後是目標的不斷調整與改進,很多人平庸的原因,在於不會總結與改進,美國密歇根大學透過觀察表明,那些擅長總結反思的學生,在20年後的人生成就遠遠大於不懂得反思的人。但我們完成一個目標的時候,我們肯定會有很多疑惑,舉個例子,我們第一天學習Redis的基礎用法,通常我們會學習到Redis的佇列,這個時候就自然引申出Redis的基礎資料結構已經Redis是如何去實現阻塞請求的問題,當我們對這些問題進行思考的時候,就可以將其排到下一步的目標當中,不斷地進行調整,不斷地進行最佳化迭代。
回覆列表
半途而廢?其實任何事想做好都沒有那麼容易,程式設計師也是如此。
那先問自己當初是為什麼要當程式設計師呢?
1.如果是因為掙錢多,盲目進場,那大機率是半途而廢;
2.如果是自己的興趣,喜歡程式設計,有這種想法,那是不是遇到了一下問題,受到了某種打擊。那建議你去和技術達人聊聊,每個人的成長路徑基本上是一致的;
3.如果是覺得自己很難提高了(比如,每天 CRUD 做著重複的勞動)。那建議你去關注更多的領域,在有了一定深度的時候,可以嘗試去擴充套件自己的廣度
總之,千人千面,想想你做程式設計師的初衷,考慮下你放棄的原因,分析下兩者的差距。
不忘初心,方得始終。