編輯:大家好!在對本文做出驚人反應後,我建立了一個名為「每週專案俱樂部」的專案。每週您的收件匣都會收到需要解決的問題。你可以努力解決問題,並且你將得到整個俱樂部的幫助,讓你走上正軌。了解更多並在這裡註冊!

有一天我注意到一個模式。我注意到很多人都在努力

學習編程,但他們心中沒有特定的目標。我已經討論過如何了解您想要學習程式設計的原因可以幫助您選擇要學習的語言 ,以及如何實際做出決定(在這裡! )但是專案有什麼幫助呢?

當我指導程式設計師時,我發現有一個專案可以幫助排除其他一些幹擾,例如想知道你是否使用了正確的語言。透過專注於一個特定的目標,你就不用那麼費力去擔心是否正是你應該使用的語言。結果是你建立了一些簡潔的東西,並且一路上你學到了一些東西! 2隻鳥,1塊石頭。

這就是為什麼我為初學者程式設計師策劃了這個專案清單。許多人列出了大量的專案來學習編程,但很少按照難度進行組織。我瀏覽了幾個流行的程式設計專案想法清單。如果您想查看完整列表,可以在頁面底部找到來源。

我將其分為教程和想法。教程包含資源連結,而想法只是專案的一般描述。我還列出了我最喜歡的初學者清單。

看看,看看是否有什麼啟發你!

教學

我的最愛

簡單的

-   [Part 1](https://codeburst.io/build-a-simple-twitter-bot-with-node-js-in-just-38-lines-of-code-ed92db9eb078)

-   [Part 2](https://codeburst.io/build-a-simple-twitter-bot-with-node-js-part-2-do-more-2ef1e039715d)

-   [Part I : Introduction](https://tutorial.djangogirls.org/en/)

-   [Part II : Extension To Add More Features](https://legacy.gitbook.com/book/djangogirls/django-girls-tutorial-extensions/details)

中等的

-   [Part 1](https://houssein.me/angular2-hacker-news)

-   [Part 2](https://houssein.me/progressive-angular-applications)

  • 帶有 Angular 5 的 ToDo 應用程式
-   [Introduction to Angular](http://www.discoversdk.com/blog/intro-to-angular-and-the-evolution-of-the-web)

-   [Part 1](http://www.discoversdk.com/blog/angular-5-to-do-list-app-part-1)

  • 帶有 Angular 5 的 ToDo 應用程式
-   [Introduction to Angular](http://www.discoversdk.com/blog/intro-to-angular-and-the-evolution-of-the-web)

-   [Part 1](http://www.discoversdk.com/blog/angular-5-to-do-list-app-part-1)

難的

-   [Part 1](https://scotch.io/tutorials/build-a-serverless-mern-story-app-with-webtask-io-zero-to-deploy-1)

-   [Part 2](https://scotch.io/tutorials/build-a-serverless-mern-story-app-with-webtask-io-zero-to-deploy-2)

[Testing React App With Pupepeteer and Jest](https://blog.bitsrc.io/testing-your-react-app-with-puppeteer-and-jest-c72b3dfcde59)

-   [Part 1](https://www.youtube.com/watch?v=3QngsWA9IEE)

-   [Part 2](https://www.youtube.com/watch?v=XnoTmO06OYo)

-   [Part 3](https://www.youtube.com/watch?v=us51Jne67_I)

-   [Part 4](https://www.youtube.com/watch?v=iZx7hqHb5MU)

-   [Part 5](https://www.youtube.com/watch?v=lpba9vBqXl0)

-   [Part 6](https://www.youtube.com/watch?v=Jvp8j6zrFHE)

-   [Part 7](https://www.youtube.com/watch?v=M_hFfrN8_PQ)

  • 使用 Angular 6 建立美麗的現實世界應用程式:
-   [Part I](https://medium.com/@hamedbaatour/build-a-real-world-beautiful-web-app-with-angular-6-a-to-z-ultimate-guide-2018-part-i-e121dd1d55e)

想法

簡單的

99 瓶

  • 建立一個程序,列印歌曲“牆上的 99 瓶啤酒”的每一行。

  • 不要使用所有數字的列表,也不要手動輸入所有數字。請改用內建函數。

  • 除了短語“取下一個”之外,您不得直接在歌詞中輸入任何數字/數字名稱。

  • 請記住,當您還剩下 1 瓶時,「瓶子」一詞將變為單數。

魔術8球

  • 模擬神奇的 8 球。

  • 允許使用者輸入他們的問題。

  • 顯示正在進行的訊息(即“思考”)。

  • 建立 20 個回應,並顯示隨機回應。

  • 允許用戶提出另一個問題或退出。

  • 獎金:

-   Add a gui.

-   It must have a box for users to enter the question.

-   It must have at least 4 buttons:

    -   ask

    -   clear (the text box)

    -   play again

    -   quit (this must close the window)

石頭剪刀布遊戲

  • 建立一個石頭剪刀布遊戲。

  • 讓玩家選擇石頭、剪刀或布。

  • 讓計算機選擇它的移動方式。

  • 比較選擇並決定誰獲勝。

  • 列印結果。

  • 子目標:

-   Give the player the option to play again.

-   Keep a record of the score (e.g. Player: 3 / Computer: 6).

倒數時鐘

  • 建立一個程序,允許使用者選擇時間和日期,然後以給定的時間間隔(例如每秒)列印一條訊息,告訴使用者距離所選時間還有多長時間。

  • 子目標:

-   If the selected time has already passed, have the program tell the user to start over.

-   If your program asks for the year, month, day, hour, etc. separately, allow the user to be able to type in either the month name or its number.

-   TIP: Making use of built in modules such as time and datetime can change this project from a nightmare into a much simpler task.

中等的

番茄計時器

建立一個番茄計時器。

番茄計時器是一種時間管理方法。該技術使用計時器將工作分解為多個時間間隔,通常長度為 25 分鐘,中間間隔短暫的休息。這些間隔被命名為“pomodoros”,是意大利語單字“pomodoro”(番茄)的英文複數形式,以西里洛在大學時使用的番茄形狀的廚房計時器命名。

原始技巧有六個步驟:

決定要完成的任務。

設定番茄計時器(傳統上為 25 分鐘)。

完成任務。

當計時器響起時結束工作並在一張紙上畫上複選標記。

如果您的複選標記少於四個,請短暫休息(3-5 分鐘),然後轉到步驟 2。

四個番茄鐘後,休息較長時間(15-30 分鐘),將複選標記計數重設為零,然後轉到步驟 1。

要了解有關番茄計時器的更多訊息,請單擊此處

谷歌案例

  • 這是一個可以讓你玩英文句子的遊戲。

  • 使用者將以任何格式輸入一個句子。(大寫或小寫或兩者的混合)

  • 程式必須將給定的句子轉換為Google大小寫。什麼是Google大小寫句子風格?[know_about_it_here:](這是一種寫作風格,我們將所有小寫字母替換為大寫字母,留下所有單字的首字母)。

  • 子目標:

-   Program must then convert the given sentence in camel case.To know more about camel case

    [click_here](https://en.wikipedia.org/wiki/Camel_case)

-   Sentence can be entered with any number of spaces.

擲骰子模擬器

  • 允許使用者輸入骰子的面數以及應擲骰子的次數。

  • 您的程式應該模擬擲骰子並追蹤每個數字出現的次數(這不必顯示)。

  • 最後,列印出每個數字出現的次數。

  • 子目標:

-   Adjust your program so that if the user does not type in a number when they need to, the program will keep prompting them to type in a real number until they do so.

-   Put the program into a loop so that the user can continue to simulate dice rolls without having to restart the entire program.

-   In addition to printing out how many times each side appeared, also print out the percentage it appeared. If you can, round the percentage to 4 digits total OR two decimal places.

  • 獎金:
-   You are about to play a board game, but you realize you don't have any dice. Fortunately you have this program.

-   1. Create a program that opens a new window and draws 2 six-sided dice

-   2. Allow the user to quit, or roll again

-   Allow the user to select the number of dice to be drawn on screen(1-4) 2. Add up the total of the dice and display it

計算並修復綠雞蛋和火腿

你們有些人可能還記得蘇博士的故事「綠雞蛋和火腿」。對於那些不記得或從未聽說過的人,是這個故事。然而,我給你的故事有一個問題——每次使用「我」這個詞時,它都是小寫的。

由於此問題,您的工作是執行以下操作:

  • 將我給您的故事複製到常規文字檔案中。

  • 建立一個程式來通讀故事並在任何時候將字母 i 變為大寫。 (當它也用在 sam-I-am 的名字中時,請務必更改它。)

  • 讓你的程式建立一個新文件,並讓它正確地寫出故事。

  • 印出有多少錯誤被修正。

  • 完成後,您應該已經糾正了這麼多錯誤。

難的

隨機維基百科文章

如果您曾造訪維基百科,您可能已經注意到螢幕左側有一個指向隨機文章的連結。雖然看到您被帶到哪篇文章可能很有趣,但有時看到文章的名稱會很好,這樣您就可以在聽起來很無聊時跳過它。幸運的是,維基百科有一個 API,允許我們這樣做點擊這裡

然而,有一個困境。由於維基百科擁有有關世界各地主題的文章,其中一些文章的標題中包含特殊字元。例如,關於西班牙畫家埃拉斯托·科爾特斯·華雷斯 (Erasto Cortés Juárez)的文章中就有 é 和 á。如果您查看這篇特定文章的API ,您將看到標題是“Erasto Cort\u00e9s Ju\u00e1rez”,並且 \u00e9 和 \u00e1 正在替換前面提到的兩個字母。 (有關這是什麼的訊息,請首先查看文件中本頁的前半部分)。為了讓你的程式正常運作,你必須以某種方式處理這個問題。

  • 建立一個程序,從官方維基百科 API 中提取標題,然後一一詢問用戶是否願意閱讀該文章。

  • 例子:

-   If the first title is Reddit, then the program should ask something along the lines of "Would you like to read about Reddit?" If the user says yes, then the program should open up the article for the user to read.

-   HINT: Click [here](https://en.wikipedia.org/wiki?curid=39608394) to see how the article's ID can be used to access the actual article.

  • 子目標:
-   As mentioned before, do something about the possibility of unicode appearing in the title.

-   Whether you want your program to simply filter out these articles or you want to actually turn the codes into readable characters, that's up to you.

-   Make the program pause once the user has selected an article to read, and allow him or her to continue browsing different article titles once finished reading.

-   Allow the user to simply press ENTER to be asked about a new article.

天氣如何?

如果您想了解 API 的基礎知識,請查看 iamapizza 的這篇文章。

  • 建立一個程序,從 OpenWeatherMap.org 提取資料並列印有關當前天氣的訊息,例如您居住的地方的最高氣溫、最低氣溫和雨量。

  • 子目標:

-   Print out data for the next 5-7 days so you have a 5 day/week long forecast.

-   Print the data to another file that you can open up and view at, instead of viewing the information in the command line.

-   If you know html, write a file that you can print information to so that your project is more interesting.

  • 尖端:
-   APIs that are in Json are essentially lists and dictionaries. Remember that to reference something in a list, you must refer to it by what number element it is in the list, and to reference a key in a dictionary, you must refer to it by its name.

-   Don't like Celsius? Add &units=imperial to the end of the URL of the API to receive your data in Fahrenheit.

來源

  • https://github.com/tuvtran/project-based-learning

  • https://github.com/jorgegonzalez/beginner-projects

  • https://github.com/MunGell/awesome-for-beginners/blob/master/README.md

  • https://github.com/sarahbohr/AbsoluteBeginnerProjects


你怎麼認為?您喜歡透過特定專案進行學習還是不喜歡透過特定專案進行學習?


原文出處:https://dev.to/samborick/100-project-ideas-oda


共有 0 則留言