回覆列表
  • 1 # IT人劉俊明

    對於當代的大學生來說,不論是否就讀於計算機相關專業,都應該至少掌握一門程式語言,因為程式語言對於未來的學習和就業都會產生重要且直接的影響。

    程式語言本身就是一種工具,同時也是開啟計算機技術大門的鑰匙,所以學習程式語言並不需要什麼基礎,而且學習過程也沒有想象中那麼困難,因為計算機程式語言遠沒有自然語言複雜,也沒有那麼豐富的語法結構。

    學習程式語言首先要選擇一門適合自己的程式語言,由於程式語言自身的工具屬性,必然是越使用就越熟悉,所以要結合自己的專業特點來選擇程式語言。

    如果不清楚自己的專業會用到哪些程式語言,就選擇一門全場景程式語言,比如Python、Java就是不錯的選擇。

    學習程式語言要經歷三個階段,分別是基礎語法學習階段,主攻方向積累階段和場景實踐階段,這三個階段分別有不同的側重點。

    基礎語法學習階段要重視多做實驗,要透過實驗來為抽象概念建立畫面感,要掌握基本的程式設計流程,形成初步的程式設計思想。

    主攻方向積累階段是形成技術棧的階段,不同的主攻方向會有不同的學習內容,學習週期也有較大的差別,比如大資料開發方向就需要繼續學習大資料開發平臺的相關知識。在當前的雲計算時代,主攻方向積累階段往往需要更關注技術平臺和工具。

    場景實踐階段是最後一個階段,也是非常重要的一個階段,這個階段會直接決定一個人能否真正掌握一門程式語言,也就是能否透過程式語言來解決生產和科研場景下的各種問題。除了技術之外,這個階段的重點是要學會合作,要學會溝通。

  • 2 # IT少女

    對於所有程式設計學習者,尤其是零基礎的同學們,在學習的初期,一定要給自己做一個思想上的轉變。

    在我的程式設計學習理論中,這個思想的轉變至關重要,什麼時候你把這個思維轉換過來了,你就是真正上道的那一天。

    這個思維轉換就是:

    不要把自己當學生,而是要把自己當開發者。

    不同的身份認同感,最後會導致不同的行為模式,而這行為模式,會對你的程式設計學習造成非常大的影響。

    做好心裡準備

    自學程式設計的彎路多得數不完,坑多得踩不完。如果你決定要自學程式設計,就意味著踏上了一條面對困難、挫折和失敗的無盡之路,要想清楚自己能不能承受這些挫折,自己能不能堅持走到最後。

    自學程式設計過程中總會遇到這樣一些問題:* 程式設計環境?不會搭建* 知識點好多,定義概念,格式規則,缺點優點。。。* 剛學的知識怎麼又忘了,怎麼這也不會那也不會* 這個語法是什麼邏輯,搞不懂* 教程這樣做可以,我這樣做怎麼就不行?* 敲了半天程式碼,一執行怎麼全是錯誤?* 錯誤解決不了,想放棄,狗帶* 學了這麼久,感覺還沒入門* 教程內容都是舊的,學起來費力* 技術更新了,舊知識不管用,又要重新學

    如果沒有一顆能戰勝這些苦惱的勇敢的心,我勸你還是儘早放棄,免得心灰意冷,身負重傷。而如果你喜歡挑戰艱難險阻,能直面失敗,並能在失敗與痛苦中砥礪前行,那麼恭喜你可以踏上程式設計之路,努力的去追尋自己的夢想吧。

    選定方向

    程式設計的世界是多元紛繁的,大的方向就分前端開發、後端開發、移動開發、雲計算、資料處理、智慧硬體、物聯網、虛擬現實等等,光程式語言都幾十種。如果沒有做過功課,貿然進入只會分分鐘懵逼。所以最好是根據自己的興趣愛好再結合市場前景,先選定一個方向,再選擇一門語言,然後頭也不回的深深扎進去。

    區別一:記筆記 VS 寫技術文章

    學生有一個特點,就是他們喜歡記筆記,但是開發者不怎麼記筆記,而是會把自己學會的東西寫成技術文章、教程的形式發表在技術部落格或者知乎等網站上。

    一個很有名的學習法叫做費曼學習法,這個學習方法簡單地說,就是在學完一個東西之後,去給別人講明白,注意,是講給別人聽,當你寫成文章發表在網上的時候,你自然會去用更通俗的語言,更清晰的邏輯去講述這個事物背後的邏輯,這個過程,是對自己學習的一個檢驗,也是加深映像,整理思路的重要過程。

    那麼如果你是去記筆記的話,很有可能,你不會去試圖講清楚這個東西,而是傾向於去照抄,或是不完全照抄,以“提綱”或是“知識點”的形式抄在本子上,說句實話,照抄的筆記,真的沒用,因為現在搜尋引擎的能力已經可以讓你把大多數東西快速找到,你為什麼還要照抄到筆記本上呢?

    從功利的角度考慮,技術文章的寫作,別人可以直接訪問,也可以逐漸累積你的影響力,一個好的個人技術部落格,會給你的簡歷加分很多,而一個厚厚的筆記本,沒有人會管你記了什麼。

    區別二:以學會XX為目標 VS 以做出XX為目標

    你會發現,學生思維裡面有一個重要的特點,就是他們總是特別關注自己“學會了什麼”,不僅如此,他給自己定的目標,定的計劃,永遠都是”學會XX書第XX章內容“。

    學生永遠在準備, 而開發者早已動手。

    如果你還在上學,學生思維是“這個學期我要學會XX課程”,而開發者思維是“這個學期我要做出XX”。

    如果學Python,學生思維會拿起一本教材,開始從頭到尾看,我不知道你們發現沒有,幾乎所有那種程式語言教材,長得都差不多,上來先是基本的語法,基本的整型變數,浮點型變數之類的,然後伴隨著幾個小的教學例子。

    開發者學Python,他第一步絕對不是去書店買教材,而是先去了解,Python適合做什麼,然後他了解到,Python適合做爬蟲,資料分析,AI,還能很輕鬆地搭建Web後端,之後他逛了一下午Github,看了看那些Python高星專案都是做啥的,於是他給自己定下了這個目標:

    半年時間內,我要用Python和Python周邊的庫搭建出一個網站,這個網站服務端運用爬蟲技術爬取一些資料,可以提供知乎粉絲性別比例分析功能。

    學生繼續看書,一個個的知識點去記憶,拿著他的小本本去總結知識點,而開發者上官網簡單的看了下Reference Doc的簡單互動式語法教程後,便馬上開始了變做邊學的過程,有了一個實際的專案目標,朝著這個目標走,不斷地發現自己不會這,不會那,然後有目的性的去補足知識,他了解到了beatuiful soup作為爬蟲主庫,flask作為後端web服務主庫,然後會去看一些簡單的教程,在這個過程中,基礎語法得到了熟練,也訓練了工程能力。

    開發者很功利,他們深知他們學會的所有東西都是為了開發出偉大的產品而服務的,所以他們絕對不會出現“在學一個東西,但是也不知道學這個用來幹嘛”的窘境。

    區別三:厭惡不確定性 VS 接受不確定性

    學生們總是對“確定性”有一種幾乎瘋狂的追求,他們總問,“C語言學到什麼程度就一定能被大廠錄取?”,“掌握XX要幾個月?”,“上課認真聽講,認真做筆記,考試是否一定能上80分?”

    這種對確定性的追求,直接導致學生有一種下意識的舉動:

    幹什麼都等準備好了再去做,但是卻“永遠在準備”。

    因為他們害怕那種不太會還要硬上帶來的各種不確定性,他們渴求一種內功的修煉,寄希望於”把基礎夯實了,就能順暢的開發,所以還是先夯實基礎吧!”

    開發者選擇接受這種不確定性,他們願意”邊學變做“,因為他們知道,最初學習敲鍵盤的時候,他們就是這麼做的,邊看某個按鍵在哪,邊打字,做和學交叉進行,他們始終抱有疑問,他們又始終試圖透過學習的延伸拓展去解決疑問,他們彷彿就像是拿著燭火在迷宮中行走的俠客,在遊戲的一開始,對迷宮的結構一無所知,透過不斷地摸索和碰壁,逐漸建立起對整個地圖的認知.

    區別四: 線性學習 VS 遞迴學習

    學生喜歡線性的學習,因為線性的學習(拿本教材從頭到尾慢慢看)正是符合了他們對確定性的追求,可惜這違背了學習的本來面目

    開發者知道,人腦最不擅長的就是線性列舉,即便我們認識幾千個漢字,但是我們無法去線性地去將所有認識的漢字枚舉出來,我們的大腦,本就不是用來進行線性思考的,而複雜度上了一定程度的知識,線性的掌握,基本不可能。

    有難度的知識,往往是這樣的:為了搞懂A,而去學B,為了學會B,而去學C,這叫遞迴學習,遞迴雖深,但有回溯,它最終會回溯到我們的起點。

    所以開發者的學習更偏向於遞迴式的學習,而且可能會以一個知識點為起點,去完成樹狀知識外圍的遍歷。(有點像搜尋引擎去爬蟲)

    知識是樹狀結構, 或者網狀結構.

    當我們試圖遍歷一個樹的時候, 最簡單直接的方式就是遞迴, 如果你非要去"線性"的學, 那就你是把程式設計學習當成了連結串列, 還是“單向”的,這種演算法怎麼可能用來遍歷樹呢?

    區別五:拿會XX定義自己 VS 拿XX專案作者定義自己

    linus 從來不說自己精通 c 語言, 與其說他不需要, 不如說他不關心, 因為他是 linux 和 git 的作者.

    linus 這個程式設計師之神就是一個典型的開發者思維的人.

    我希望所有計算機專業的同學們, 等你們畢業了之後, 你的github應該是綠油油的, 而不是貧瘠的一片白.

    我希望你們用你們的簡歷裡寫的是"用c語言實現了一個XX引擎, github連結http://github.com/xxxxxx"

    而不是"精通c".

    我希望學生們明白, 任何一個像樣子的專案, 製作週期至少是按月計, 你的大學有四年時間, 哪怕一個專案做一年, 你也能拿出兩三個好專案, 不一定有多少star, 但是要完整, 文件, 測試, 一應俱全.

    我希望學生們知道, 做專案和寫課後習題不一樣, 課後習題一個小時, 而專案是長期不斷努力, 不斷學習突破的過程, 需要你每天都搞, 善始善終, 最終拿出成果來.

    我希望學生們明白, 這個世界衡量一個人的成就, 從來都是"他做了什麼", 而不是"他學會了什麼", 不要總用修煉內功去感動自己, 必要時, 也請你為開源世界貢獻一點自己的力量.

    我希望學生們明白, 考上985, 拿獎學金, 這都不叫成就, 因為和別人沒關係, 只有真正影響到別人的東西, 讓這個世界變得更好的東西, 才是值得去"秀"的.

    最後送給學生們一句話:

    願你早日忘記學生的身份, 以開發者的姿態, 面對這個世界。關於學習方法,比如看影片還是看書?

    從效率上說,影片要好於書,因為影片所有的操作是連續的,自己出錯了便於排查,更直接、清晰,書呢,種類很多,重點不同,適合不同的訴求。也適合作為查漏補缺使用。

    再者學程式設計一定要多敲、多模仿、多思考。

    多少人學習是一看就會,一敲就廢,俗話說,鍵盤敲爛月薪過萬,鍵盤落灰狗屎一堆,學程式設計沒有什麼竅門,就是多看別人的程式碼,多敲自己的程式碼,多思考為什麼這樣設計,記住,實踐是檢驗真理的唯一標準。

    2022年度全網最全Web前端學習路線

    https://www.bilibili.com/read/cv5650633

    茅塞頓開:簡歷製作\面試技巧\就業求職_嗶哩嗶哩_bilibili

    https://www.bilibili.com/video/BV1Dz411b7Yh?spm_id_from=333.999.0.0

    前端求職秘籍&前端技術趨勢_嗶哩嗶哩_bilibili

    https://www.bilibili.com/video/BV1Q54y1B7Cc?spm_id_from=333.999.0.0

    尚矽谷經典前端面試題精講第一季(web前端大咖總結)_嗶哩嗶哩_bilibili

    https://www.bilibili.com/video/BV1nb411P7tQ?spm_id_from=333.999.0.0

    面試官:web前端面試 - 面試官系列 (vue3js.cn)

    https://vue3js.cn/interview/

    2022年度全網最全Java學習路線

    https://www.bilibili.com/read/cv5216534

    尚矽谷Java大廠面試題第3季,跳槽必刷題目+必掃技術盲點(周陽主講)_嗶哩嗶哩_bilibili

    https://www.bilibili.com/video/BV1Hy4y1B78T?

    尚矽谷Java大廠面試題第2季,面試必刷,跳槽大廠神器_嗶哩嗶哩_bilibili

    https://www.bilibili.com/video/BV18b411M7xz?

    尚矽谷經典Java面試題第一季(java面試精講)_嗶哩嗶哩_bilibili

    https://www.bilibili.com/video/BV1Eb411P7bP?

    強烈推薦一個網站:

    Java面試題-幫助你透過Java面試 (zwmst.com)

    https://zwmst.com/

    2022年度全網最全大資料學習路線

    https://www.bilibili.com/read/cv5213600

    尚矽谷C語言零基礎快速入門教程_嗶哩嗶哩_bilibili

    https://www.bilibili.com/video/BV1qJ411z7Hf?

    尚矽谷-C語言國二真題講解(計算機二級c語言考試真題)_嗶哩嗶哩_bilibili

    https://www.bilibili.com/video/BV1bJ411z7ke?

  • 中秋節和大豐收的關聯?
  • 你覺得大學生談戀愛能長久嗎?