![]()
我相信每個程式員都具備自學的能力,因為如果沒有自身的努力,我們不會成為一名優秀的程式員,
大概交代一下故事背景
2016年,我被計算機科學專業錄取,計算機科學家需要研究如何使用計算機解決廣泛問題及其應用數學,但我不太擅長數學,此外也不太了解計算機科學專業究竟是什么,一直以為這大概是關于如何操作計算機的方法——我甚至沒有想過去 google 一下,
小時候,我一直夢想成為一名計算機科學家,做 APP 或者其他我認為很高大上的專案,終于我被夢想的專業錄取了,就此開啟了我成為計算機科學家、程式員的夢想之旅,但是作為一個初學者,我發現學習編程的程序并不簡單輕松,我不知道如何去開始,在好不容易掌味訓礎之后又不知道如何去進階,
老實說,一開始我并不知道何謂編程,直到我用 Visual Studio 上的 VB.net 撰寫并運行了我的第一個程式 “Hello World”,在學習計算機科學的第二年,我用 C++ 撰寫并運行了另一個專案,第三年,我用 HTML 和 CSS 撰寫搭建了一個簡單的個人博客,
我什么都不懂,只知道自己想開發可以在手機或網頁上使用查看的 APP,我最初的幾個月耗費在了毫無頭緒的雜亂學習上,從網路編程到 A + 到 Java 再到 Scratch、Python 甚至圖形編程、HTML、CSS 和數字營銷,各種不同方向的資訊向我涌來,幾個月下來,我依舊毫無頭緒,夢想之路似乎也毫無進展,對此,我感到十分沮喪,我聽取他人建議,明白了心急吃不了熱豆腐,決定一步一個腳印,慢慢來,
真正的問題是,我沒有找到我愿意花時間和精力在上面,而不是將其標記為“作業”的東西,最后,我在 Java 上找到了我的成功之路,我決定將精力集中在研究我打算用一生去做的事情:編程,
我告訴自己要專心并開始撰寫代碼,我需要:
- 從第一個步開始,直到我學到足夠的知識后,才邁下一步,
- 想明白我想要怎樣去學習編碼,例如,我最終想獲得什么樣的技能?我為什么想學習編碼?我可以為此花多少時間和金錢?
- 選擇正確的、適合我的語言,
- 選取合適的資源以幫助我學習(例如線上的編程課程、教材、各種平臺上的視頻檔案等),
- 下載對應語言的編程軟體,
- 練習撰寫程式,
- 加入一個線上的學習社區或社群,
- 不要停止學習,
當我明確這些需求之后,我明白了我要去往何處,以及接下來我該怎么做,
這是你可以從我的故事中學到的第一點:
始終關注你的實際夢想或目標,以及你真正想要的是什么——而不是你認為可能使你成為自己的目標的東西,你可能不知道如何實作自己的目標,但你可以使用互聯網,并對你的目標進行思考,就可以做到,
我為什么選擇 Java
我因為知道它可以幫我實作成為移動應用程式開發人員的夢想,而愛上 Java,我發現,當我熟練掌握 Java 之后,學習任何其他語言對我來說,也很輕松,Java 的課程不僅僅是教 Java,也教編程概念,Java 的應用很廣泛,后端開發、大資料、Android 開發等,
就像 Code Institute 的這篇文章所說:
“Java 使開發人員能夠:
- 在一個平臺上撰寫出的軟體,幾乎可以在任意一個其他平臺上運行,
- 創建可以在 Web 瀏覽器運行并訪問可用 Web 服務的程式,
- 開發用于在線論壇,商店,民意調查,HTML 表單處理等的服務器端應用程式,
- 用 Java 語言組合應用程式或服務,以創建高度定制的應用程式或服務,
- 為移動電話,遠程處理器,微控制器,無線模塊,傳感器,網關,消費產品以及幾乎任何其他電子設備撰寫功能強大且高效的應用程式,
……
從筆記本電腦到資料中心,從游戲機到科學超級計算機,從手機到互聯網,Java 無處不在,”
是的,Java 無處不在,它可以在臺式機、企業臺式機、電視設備、手機等多種設備上運行,
我還記得我實習時的第一堂計算機編程課,甚至大學的也還記得,那天老師給我們布置了幾道關于 Java 的簡單基礎題,
問題1:什么是 println,printf 和 print?
問題2:如何存盤變數?
問題3:什么是 Java?
我班有一半的人都有 IT 背景,因此,他們輕松撰寫出了答案,而另一半人(包括我在內)卻大腦一片空白,我對班上發生的事情一無所知,
在此之前,我從未有過如此尷尬的經歷,
或許你也會在編碼生涯中遇到類似的情況:當有一天,你突然發現別人知道你不知道的事情,這可能會讓你覺得傷自尊,可能會使你失去晉升機會,甚至是你的作業,但你在明白自己與別人的差距之后如何行動,遠比你看到差距這件事本身重要得多,
后來我接觸到了 Udemy 和 SoloLearn,我瞬間明白了自己要學的東西還有很多,且我有能力掌握它們,我并不明確自己未來的方向,但冥冥之中我有一種感覺:世界上最有意思的事情就是能夠學習一些東西,充分掌握它,并用它來創建我想象創建的東西,過去我常常在碰到一些挫折和失誤時,選擇逃避它們,并讓我的朋友們來幫忙解決,但現在我可以自信地自己解決這些問題,
我收集了許多資料,許多關于 Java 編程的 YouTube 視頻,選修了 Udemy 的課程,并花了好些天的時間額外學習基礎知識,好不夸張的說,這并不容易,以前的我從未了解過這些,這是我那個階段必須做的,我的同學比我有優勢,我還有很長的路要走,事實上,同學的優勢也成為了我加倍努力學習的動力,
整個學習程序中,我不斷遇到使我沮喪和煩惱的錯誤,我只能盡可能地保持鎮定、專注、努力,始終如一,我建議每個人都盡早選擇自己的道路和目標,并專注于它,因為你一定會以某種方式到達那里——即使不是馬上,
我的痛苦來源于我犯的錯誤:懷疑自己、缺乏自信、拖延、易放棄、膽小,這些錯誤,可以讓人反思和自省——無論是我們自己還是他人,這也是為什么我決定分享故事的原因,
“你必須從別人的錯誤中學習,你的有生之年不可能有足夠長的時間使自己成為所有人,”——山姆·萊文森
編程如何改變了我的生活
編程使我相信我可以解決問題、處理錯誤,它給了我人生目標,有時,遺漏了一個簡單的語法錯誤會讓我感到沮喪,同時,每一次的進步都會讓我欣喜,
所有陳述句都變為布林值…… True or False,我的計數從零開始,而不是一,
現在的我才知道,訓練計算機以執行特定任務比訓練人類要難,
最后我再叨叨幾句
我花了幾個月的時間找到自己的道路,作為一名開發人員,我慢慢接受自己的錯誤和恐懼,開始享受這種自在,并開發了一個小型桌面 APP,
展望未來,我渴望學習更多,成為一名優秀程式員,并在不久后以程式員的身份擁有我的第一份有薪作業,
我想告訴大家,如果以為僅僅學習了計算機科學課程就可以成為程式員的話,就大錯特錯了,即便是你已經擁有了計算機科學的學位,你仍然必須做到以下這些:
- 對編程充滿熱情;
- 常練習;
- 多看書多學習;
- 嘗試不同的語言;
- 讀寫代碼;
- 以可以識別或表示變數和子例程的方式命名它們;
- 學會盲打(這將改善你的姿勢和肌肉記憶,并且你會在打字時更明顯注意到速度上的差異);
- 用可識別或強代表性的方式來命名變數和子程式;
- 學習并進行實操;
- 把撰寫代碼作為日常;
- 撰寫你感興趣的軟體;
- 從下往上讀取堆疊跟蹤;
- 盡你所能的簡化程式;
- 不會的地方就 google 一下;
- 保持專注,一次只寫一個程式;
- 大括號始終保持配對;
- 正確設計代碼;
- ……
每個故事都可以成為我們重新考慮優先事項或重新集中精力的靈感,
發現一個錯誤的尷尬僅持續幾秒鐘,但從錯誤中學習卻是永遠的,相信我,這是值得的,
我希望這篇文章能激勵大家永不松懈,你可以做到,一定可以,只要對你想做的事始終充滿激情并渴望學習,再找到一位出色的導師,
借此,我要向鼓勵我分享故事的 Charles Best 致意,十分感謝您的教誨和指導,
請堅信,你的夢想必定會變為現實,
本文系實驗樓翻譯,如轉載請注明,原文鏈接:My Journey as a Self-Taught Programmer
千里之行,始于足下,任何夢想的實作,都需要腳踏實地的去進行!
7月,實驗樓開展了第四期的30天百樓挑戰活動,詳情點擊鏈接,30天累計在實驗樓學滿50個小時,即算挑戰成功!
給自己一個挑戰自我的機會吧!
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/2019.html
標籤:其他
上一篇:adobe 2020版全家桶免費破解版 最新pr, photoshop ae 免費使用
下一篇:運營一個游戲禮包的小程式
