CodeGym /Java Blog /Toto sisi /它怎麼樣?或我的第一個項目
John Squirrels
等級 41
San Francisco

它怎麼樣?或我的第一個項目

在 Toto sisi 群組發布
這是我們全球 Java 社群成功故事的翻譯。Alex 在俄語版本的課程中學習了 Java,而您在 CodeGym 上用英語學習了該課程。願它成為您進一步學習的靈感,也許有一天您會想與我們分享您自己的故事:)

介紹

簡單介紹一下我是如何進入程式設計領域的。我是一名受過訓練的教師和心理學家,五年來我一直在成功地實踐我的職業。但由於種種原因,我越來越多地考慮搬到另一個國家。而且由於其他國家的語言和法規不同,如果沒有認真的再培訓,我無法成為同類專業人士。所以我開始尋找更簡單、有趣的方式來移動並取得成功。 它怎麼樣? 或我的第一個項目 - 1我嘗試過成為一名紋身藝術家(這基本上不需要任何語言知識),但那是另一天的故事了。然後我的同事朋友向我介紹了 CodeGym。我最初對透過玩遊戲並以如此低廉的價格使我成為一名成熟的程式設計師的承諾表示懷疑。但後來我得到了一些生日錢(不需繳納“家庭稅”),並面臨著 WoW 和 CodeGym 之間的選擇……好吧,感謝及時的折扣,天平向正確的方向傾斜,我就在這裡。眾所周知,CodeGym 90% 是純練習。你學會解決任務。您學會在網路上找到您缺乏的知識。所有這一切都很好,但對於 15 個關卡,我無法擺脫這樣的感覺:我錯過了一些可以為我完成畫面的東西。我曾想過加入 GeekBrains,但(可能幸運的是)同一個朋友及時阻止了我,並向我介紹了 Udemy。當我打開這個知識庫時,我附和著呼籲:“噓,朋友,你是新手嗎?” 為您提供折扣…僅限 3 天 — 不要錯過這個機會!「 後來我發現折扣總是有的,但這不是重點。我立即購買了包含兩門課程的套餐:Java 從 0 到 Pro 以及類似的 Android 課程。這就是我們的故事開始的地方。

成功還是失敗?

當我學習 Android 課程時,我收到了作業,要根據我的新知識製作一個專案。我是那種認為以簡單或普通的方式做某件事就像根本不做的人。所以,我立即開始讓我的生活變得複雜。我求助於我認識的一個想像力最豐富、最生動的人。這是我親愛的妻子(是的,她也會讀這篇文章)。她建議製作一個帶有動物圖片的應用程序,當點擊它們時會發出相應的動物聲音。這是一個好主意,但仍然非常簡單。以這個建議為基礎,我開始推理:
  • 這個應用程式一定不僅僅是絨毛(一些讓人一笑而忘的東西)。我希望它有價值。例如,透過教一些東西。
  • 讓它成為有動物的字母表。但不僅僅是任何字母表,而是英文字母表!
  • 而且不只是動物,還有很少人知道的珍稀動物,以拓展視野!
  • 並且應該有英語和俄語的字母名稱和動物名稱的動畫、音頻再現!
這就是我所說的家庭作業(我忘了說,在使用CodeGym 之前,我對程式設計基本上不熟悉。從我開始積極使用該網站到開始項目,只花了不到3-4 個月的時間。所以,如果你如果你是這個領域的老手,你會想,“噗……原來的版本有什麼改變嗎? ”,我向你保證,是的,它改變了)! 奇怪的是,我遇到的第一個困難是啟動這個專案。事實證明,作家並不是唯一經歷「作家障礙」的人……但因為我是心理學家,所以我知道解決問題的方法。你只需要開始做某事。至少踏出一小步,然後就不要停下來。所以我從一個抽象的 Letter 類別開始。這個類別有幾個字段,隨後必須有各種方法。事實上,我不知道我會用它做什麼,但我必須做點什麼。然後,我為每個字母創建了類,使它們繼承抽象類別。花了很多時間,第一天的工作就這樣結束了。第二天我刪除了該項目並重新開始。我剛剛打開該項目來記住自上述那一刻起發生了什麼變化。我想說,當我完成後,一切看起來都更好了,但事實並非如此。每個字母確實還是有類的……這主要是因為我幾乎在 Android 課程一開始就被佈置了這個作業,而我必須自己弄清楚一個字母之間錯綜複雜的關係。活動(活動窗口,或類似的東西)與一個類別。除了這種將特定類別與特定活動相關聯的笨拙方式之外,我沒有發現或想到任何其他方法。無論如何,程式設計的原則之一(避免重複)被違反了 26 次。首先,我完全(在我看來)實現了前兩個字母,製作了一個由兩個選單組成的粗略UI(擴展功能時可能需要的通用選單,以及一個目錄,您可以從中跳到任何內容)的字母)。我在程式設計方面並沒有遇到太大的困難。當我實現我的獨立專案時,很多事情,例如類別、方法之間的關係等都變得清晰起來,並且該專案本身成為了鞏固我所獲得的所有知識的絕佳實踐,不僅涉及Android,還涉及Java。 第二個困難是聽到它的名字的同時,這封信也改變了。平滑的過渡(陰影)使聲音看起來像是先於影像。但是,當我對聲音進行延遲時,整個線程都會凍結 - 轉換只是簡單地推遲了延遲量,產生了相同的不良效果,只是稍後。然後我做出了一個大膽的決定,讓我的程式成為多線程的!我將聲音播放移至單獨的線程,延遲時間足以載入圖片。這就是多線程的情況,但我很自豪地說我正在編寫一個多線程應用程式。 最後的困難是選擇合適的材料。你是否認為英文中的字母X沒有動物(事實證明有)?我必須識別26種動物並找到它們的圖像和聲音,並記錄26個字母和26種動物的名字。如果我在一個團隊中工作,我顯然會把這部分工作留給其他人。這種單調的時刻扼殺了工作的慾望,而當沒有慾望時,就會有藉口。無論如何,這個階段花了大約兩週的時間(我在業餘時間並且沒有任何藉口的情況下完成了這個項目)。該項目在開始後大約 3-4 週被宣布完成。

繼續學習程式設計值得嗎?

隨之而來的是幻滅。首先,我不被允許發表我的課程作業。我做了這項工作,並付出了巨大的努力來炫耀,但我不被允許這樣做。其次,我的應用程式在模擬器和手機上運行得非常好。在我計劃要做的事情中,我沒有實現動畫,因為我吐槽並決定當我完成課程中的相關課程後我會完成它。但當我開始考慮分發應用程式時,我遇到了一個有趣的問題。在使用另一部手機和平板電腦檢查我的應用程式是否針對不同螢幕和不同版本的 Android 進行最佳化後,我遇到了未知錯誤。當切換到字母時,程式會直接關閉。我試圖找到問題的根源,查看日誌,與簡潔的 Java 異常相比,這看起來更像是騙局。網路對我沒有幫助。一方面,我製作了一個我的孩子們喜歡玩的可用應用程式。另一方面,它只適用於我的手機。這讓我笑了。當然,我很沮喪,但反思一下,我得出的結論是,我得到的比失去的更多:
  • 我更擅長處理對我工作的批評。
  • 我意識到軟體設計知識和經驗的價值。
  • 我增強了程式設計的自尊心。
  • 我意識到有必要學習設計模式和重構的基礎。
  • 正如我所說,現在我有了自己的應用程序,其他人沒有,也可能永遠不會有。=)
「我知道我一無所知」。透過實施這樣的教育項目,您有一個很好的機會來分析您所知道的知識缺口,並找出進一步進步的方法。如果你明白你一生中很長一段時間的所有努力已經讓你從 0 上升到 +0.001,那麼繼續學習程式設計還值得嗎?對我來說,答案是肯定的。你呢?
留言
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION