2024年5月,經過3個月的努力,終於完成了哈佛CS50X課程。最後,我完成了整個旅程,並獲得了哈佛的免費證書。這是我學過的最好的課程之一。這是我的證書,
既然您在這裡,我可以假設您對 CS50x 有所了解。這是哈佛大學的程式設計入門課程,教您程式設計世界的基礎知識。我在開始之前看到了很多誤解。我將盡力提供全面的概述和一般指南,以幫助您充分了解 CS50x。最終,你可以像我一樣獲得哈佛的免費證書。開始吧
那麼什麼是CS50?哈佛說,
這是哈佛大學的 CS50,為集中人員和非集中人員(無論是否有程式設計經驗)介紹電腦科學和程式設計藝術的知識企業。
課程由 11 週(部分)的學習材料組成,每個部分都會給你一個問題集,你需要自己完成,不需要人工智慧或任何其他方法的幫助。最後11週,你要提交一個最終項目,需要你發揮自己的創意來完成。
CS50 的一大特色是其導師 David Malan 和支持 CS50 的團隊。您一定會愛上大衛馬蘭的教學風格。他的演講和教學非常精彩。我對這門課程的教學沒有任何抱怨。
以下是所有幾週的全面概述。隨意跳過。本部落格後面將介紹如何完成這些部分
**第 0 週刮痕:
**在本節中,您將學習一些電腦科學的入門概念,例如計算思維、問題解決、二進位、ASCII、Uniconde、演算法等。
David 將透過一種名為 Scratch 的嬰兒語言向您展示一些關於程式設計基礎知識的思考。作為挑戰,您必須提交自己的 Scratch 專案。說實話,這很有趣。
**第 1 週 C:
**您將在本節中編寫實際的程式。您將學習如何用 C 語言進行程式設計。這包括程式語言的基礎知識,例如條件、循環、變數、資料類型、基本終端命令。 Malan 將深入探討一些深層概念,例如整數溢位和截斷。
這裡要完成的問題是馬裡奧、現金和信用。
馬裡奧和現金很簡單,但信用很棘手。
**第 2 週數組:
**您將學習處理和編譯步驟、偵錯以及重要的程式設計概念,例如陣列和字串。您將在課堂上製作兩個程式“greet.c”和“touppercase”
問題是拼字遊戲和可讀性。請注意,可讀性很困難。另外,您必須提交以下項目之一,
凱撒(比較容易)和替補(較難++)。
第 3 週演算法:
在課程中,您將學習漸近符號來計算演算法效率。影片展示了搜尋操作和排序,如線性搜尋、二分搜尋、冒泡排序、合併排序和選擇排序。這裡也展示了一個美麗的程式設計概念,即遞歸。
您必須強製完成排序和複數。可選的有 Runoff 和 Tideman。您需要完成兩者中的任何一項。我的建議是完成徑流,因為它更容易。 Tideman 是您一生中遇到的最困難的問題之一。
第四週記憶:
本週,馬蘭教授記憶如何運作。這裡介紹了指標、malloc、free 和基本記憶體執行(如堆疊和堆疊)。您還將了解記憶體洩漏、垃圾值和檔案 I/O 操作。
作為問題,您必須提交磁碟區、復原和任何一種版本的篩選器。我提交了兩個過濾器問題。
第 5 週資料結構:
您將學習一些資料結構基礎知識。這裡涵蓋了佇列、堆疊、堆、鍊錶、搜尋樹、雜湊表和嘗試等概念
問題是Speller和Inheritance,比前面的問題相對簡單。如果你已經做到了這一步,我相信你有能力完成整個旅程。
第 6 週 Python:
您將應用先前的程式語言概念,但使用更簡單的語言 Python。
問題集很簡單。事實上,您實際上是在用 Python 重寫先前的 pset 解決方案。請注意,您可能會發現 DNA 問題有點棘手。
第 6.5 週人工智慧:
您將了解現代人工智慧如何做出決策並在決策背後發揮作用。這裡討論了即時工程、機器學習、深度學習和生成人工智慧的一些基礎知識。
這裡沒有問題。
第 7 週 SQL:
讓我們深入了解關係資料庫的世界。您將學習 sqlite3 資料庫的基礎知識以及表格、行、索引、函數和注入攻擊等概念。
如果您專注於影片中的主題,那麼問題集對您來說太容易解決了。問題是歌曲、電影和 FiftyVille。
我就是喜歡五十維爾。相信你也會喜歡的。
第 8 週 HTML、CSS 與 JavaScript:
影片中討論了基本的網路概念,例如互聯網的工作原理、TCP、IP、HTTP 等。然後您將學習網站的構建塊,即 HTML、CSS 和 JavaScript。您只會對這些技術有一個簡單的了解。
您必須提交Trivia 和Homepage 兩個問題的解決方案。你必須使用 HTML、CSS 和 Javascript 製作自訂網站來解決這個問題
第 9 週燒瓶:
Flask 是一個基於 Python 建立的函式庫,用於使網站動態化。該影片涵蓋了 Flask、路由、請求、回應、會話、Cookie 等主題,並展示了基本的 Jinja 語法。
您必須透過使用 Flask 和 jinja 製作兩個動態網站來解決生日和財務兩個問題。財務是一個困難但有趣的問題。
第 10 週網路安全:
影片中介紹了網路安全的基礎知識,該影片沒有任何與網路安全相關的問題需要完成。您只需完成一個最終專案即可完成整個課程。您可以在這裡利用人工智慧的幫助,但您的專案需要是獨一無二的。為了製作該項目,您可以選擇您想要製作的任何內容以及您想要選擇的技術。
雖然 Cs50 可以使大多數人受益,但在開始之前您應該考慮某些事項。否則,您可能會感到失望或可能無法完成課程並浪費時間。
**您以前從未編碼過:
**雖然一點點編碼經驗會節省很多時間,但如果您以前從未編碼過,您應該從 CS50 開始。如果你能完成它直到最後,你就會變得勢不可擋。請注意,大多數初學者不會完成課程,因為它看起來太難了。
**您想全面了解程式設計世界:
**無論您是員工、創意工作者或大學生,CS50 都將幫助您建立對程式設計世界的良好理解。你可能會找到一條職業生涯的發展之路。就像我一樣。
我是一名前端開發人員,主要從事前端工作並建立美觀的 UI。完成CS50後,我開始走向後端。
您想提升解決問題的能力:
CS50 有大量問題需要解決。每週,問題都會變得更加困難和有趣。我確信,如果您想提高解決問題的能力,同時了解程式設計世界的概況,CS50 絕對是個不錯的選擇。
尋求認可的證書:
獲得哈佛大學的證書是您一生中一件了不起的事情。這麼想一下,
如果您是人力資源部門並選擇在一個職位上招募兩名候選人,那麼先前完成 CS50 的候選人將始終在您的清單中處於方便的位置。儘管其他因素也很重要。
**您想聘請某個領域的專家:
**這是很重要的一點。根據我自己的經驗,我可以說CS50x不是讓你專攻某個領域的課程。無論是 Web 開發、行動裝置或後端開發。它僅向您提供技術世界的基本概述。您將獲得程式設計世界的豐富知識。那麼你的任務就是選擇一個領域並了解更多相關知識。 CS50 也有自己的 Python 或 Web 課程。你可以檢查它們。
您想盡快找到工作:
我想向您傳達這一重要訊息。正如我之前所說,CS50x 不是一門專業課程,它不會讓你成為專家或讓你對某個領域有透徹的了解。對於這一點,你的知識還不夠完整。這是我在社區中發現的一個常見的誤解。如果您想要一份工作,請儘早尋找其他一些完整的課程或學習路徑。 CS50 提供 Python、R 或 Web 等課程。你可以檢查它們。但毫無例外,只靠 CS50x 找到工作是很困難的。您可以在 Twitter 上私訊我,以便我可以幫助您。
注意:CS50的證書可能會幫助您入圍面試
你沒有時間承諾:
當我開始時,我以為我可以透過極大的努力在 1 個月內完成這門課程。
請記住,CS50 是一門艱苦的課程,這是它的特色。需要時間才能完成。有時您可能需要重新觀看講座才能理解這些概念。至少需要2個月的專注工作才能完成。 Ngl 我花了3個月才完成CS50。時間投入是必要的。
其他因素:
你的日程很忙,或者你是一名程式設計師,不想深入學習 C 這樣的低階語言。
也許您已經處於學習某些東西的過程中,並且您的腦海中不斷有一些東西在召喚 CS50。先完成學習,然後就可以隨時來CS50了。
由於我已經完成了課程,我為您提供一些完成 CS50 的提示和指南。我希望我早點知道其中一些技巧。我相信這對您有幫助。
我們選擇CS50不是因為它容易,而是因為它難。
記住:這並不容易
需要提醒您的是,如果您是初學者並且沒有程式設計知識,CS50 是一門很難完成的課程。我很幸運,我有學習 JavaScript 的背景,其概念對我幫助很大。事情最終可能會變得困難,你可能會感到沮喪。但別擔心,不只是你。我們都經歷過這種情況,並且已經克服了它。
**從 CS50 自己的網站完成課程
**您可以免費從 EDX 完成整個課程,但我認為從 CS50 的網站完成課程要簡單得多。這絕對是你的選擇。
挑戰自己
我花了 3 個月完成 CS50x 的原因之一是我已經完成了幾乎所有 pset,包括可選的 pset。我向自己提出了完成所有問題任務的挑戰。這也增長了我的見識。我建議您至少嘗試完成所有 pset,無論是可選的還是必需的。
記筆記:
您必須記下講座中涵蓋的每個重要主題,這樣您就不會回頭重新觀看整個影片來再次理解該概念。
CS50 影片有些複雜。有時你必須重新觀看影片。如果你記筆記,那麼你可能不會重新觀看視頻,而只瀏覽筆記。這很有幫助。我對概念做了筆記。如果你想要它們,請在 Twitter 上私訊我。我會和你們分享。
不要跳過勞埃德的解釋:
每週的大衛課程結束後,為了讓您更好地理解這些主題,我們提供了一些額外的影片。道格·勞埃德 (Doug Lloyd) 是演講者,他嘗試透過一些例子來概述這些主題。我的建議是不要跳過這些。
不要陷入選用問題:
完成強制性問題集是必要的,但有些問題會浪費很多時間。尤其是「更舒服的」。 **這是我犯過的錯誤之一。我被困了好幾個星期才完成一個問題。不要那樣做。有時跳過我是明智的選擇。
這裡有一個提示:不要提交看起來太難的可選選項。只需谷歌解決方案並嘗試了解問題所在。並**注意:不要提交該解決方案。
潮人太強了! !
在第 3 週的 Pset 中,您必須提交 Runoff 和 Tideman 之一。 **潮人太難了。我再說一次太難了。
**我很固執,嘗試了將近17天。這個問題的解決是透過遞歸完成的。然後我不得不繼續前進。如果你覺得這很難(顯然是這樣),那就繼續吧。完成徑流並繼續前進。我希望有人之前告訴我這一點。
從不和中尋求法律協助
CS50 的 Discord 社群非常有幫助。如果您遇到困難或有疑問,只需向伺服器尋求協助即可。但請注意,您不應該分享完整的解決方案。這是非法的。
連結:CS50 Discord
誠實
CS50 制定了學術誠信政策。從其他來源複製程式碼並提交解決方案,就好像它是您自己編寫的一樣,這是絕對非法的。 CS50 團隊可能會因此取消您的證書資格。
另外,你來這裡是為了學習。為什麼在這裡不誠實?
最終專案提交提示:
您應該花時間帶著愛和創造力提交最終項目,就像您正在創建自己的技術產品一樣。深入思考並做出一個看起來很酷的項目。
提示:除了最終專案之外的所有其他 pset 都可以透過 CS50.dev 完成。您應該在本地環境中建立最終專案。此外,您還必須推動最終專案並建立一個長達 750 字的 readme.md 檔案並錄製有關它的影片。
然後提交。但在這裡你可能會面臨挑戰。我必須為此手動提交。
在cs50.me上,你必須使用GitHub登入才能看到你的成績冊。完成每個必需的 psets 和最終專案後,您將有資格獲得哈佛大學的免費證書。是你的了!
感謝您閱讀本文。我希望你能拿到哈佛大學的證書。但這與證書無關。這是從最好的導師那裡學習寶貴的知識。你會喜歡整個旅程。
感謝您的閱讀,這一切都是我的。我希望您在本文中找到一些有見地的東西。如果您面臨任何其他挑戰或有更多疑問,請隨時在 Twitter 上向我發送 DM:Shihab Haque
封面來源:freecodecamp
以上是我對哈佛電腦科學的誠實評論:提示、指南和免費證書的詳細內容。更多資訊請關注PHP中文網其他相關文章!