HackMD
  • Prime
    Prime  Full-text search on all paid plans
    Search anywhere and reach everything in a Workspace with Prime plan.
    Got it
      • Create new note
      • Create a note from template
    • Prime  Full-text search on all paid plans
      Prime  Full-text search on all paid plans
      Search anywhere and reach everything in a Workspace with Prime plan.
      Got it
      • Options
      • Versions and GitHub Sync
      • Transfer ownership
      • Delete this note
      • Template
      • Save as template
      • Insert from template
      • Export
      • Dropbox
      • Google Drive
      • Gist
      • Import
      • Dropbox
      • Google Drive
      • Gist
      • Clipboard
      • Download
      • Markdown
      • HTML
      • Raw HTML
      • Sharing Link copied
      • /edit
      • View mode
        • Edit mode
        • View mode
        • Book mode
        • Slide mode
        Edit mode View mode Book mode Slide mode
      • Note Permission
      • Read
        • Owners
        • Signed-in users
        • Everyone
        Owners Signed-in users Everyone
      • Write
        • Owners
        • Signed-in users
        • Everyone
        Owners Signed-in users Everyone
      • More (Comment, Invitee)
      • Publishing
        Everyone on the web can find and read all notes of this public team.
        After the note is published, everyone on the web can find and read this note.
        See all published notes on profile page.
      • Commenting Enable
        Disabled Forbidden Owners Signed-in users Everyone
      • Permission
        • Forbidden
        • Owners
        • Signed-in users
        • Everyone
      • Invitee
      • No invitee
    Menu Sharing Create Help
    Create Create new note Create a note from template
    Menu
    Options
    Versions and GitHub Sync Transfer ownership Delete this note
    Export
    Dropbox Google Drive Gist
    Import
    Dropbox Google Drive Gist Clipboard
    Download
    Markdown HTML Raw HTML
    Back
    Sharing
    Sharing Link copied
    /edit
    View mode
    • Edit mode
    • View mode
    • Book mode
    • Slide mode
    Edit mode View mode Book mode Slide mode
    Note Permission
    Read
    Owners
    • Owners
    • Signed-in users
    • Everyone
    Owners Signed-in users Everyone
    Write
    Owners
    • Owners
    • Signed-in users
    • Everyone
    Owners Signed-in users Everyone
    More (Comment, Invitee)
    Publishing
    Everyone on the web can find and read all notes of this public team.
    After the note is published, everyone on the web can find and read this note.
    See all published notes on profile page.
    More (Comment, Invitee)
    Commenting Enable
    Disabled Forbidden Owners Signed-in users Everyone
    Permission
    Owners
    • Forbidden
    • Owners
    • Signed-in users
    • Everyone
    Invitee
    No invitee
       owned this note    owned this note      
    Published Linked with GitHub
    Like BookmarkBookmarked
    Subscribed
    • Any changes
      Be notified of any changes
    • Mention me
      Be notified of mention me
    • Unsubscribe
    Subscribe
    --- title: 學習資源 --- :::info 本共筆是一個動態列表 ::: # 學習資源 ###### tags: `輔大資工` `2020` `學習資源` [toc] ## 在開始學習之前 要具備啥,才能開始學習呢? 幸好你想學的是程式,而這個東西只需要一個小空間、一台有網路的電腦、還有一個想學習的心就可以達成。 有些東西會了,這條路可以走得更順遂: * 英文 * 許多最新的學習資源都是「英文」的 > 誰叫電腦就是西方發明的,固然語言也就是英文,[~~,掌握話語霸權~~](https://www.youtube.com/watch?v=vdNI1HvbyEE) * 自學 * 現在網路發達,知識的共享速度達到前所未及的程度,利用網路上的資源學習是一件非常重要的事 * 不要想著會有誰來幫你準備東西 * 不要以為學校會教所有工作時會用到的東西 ## Roadmap * 職業生涯 * 工程師 * 選擇領域 * 桌面應用程式 * 行動應用程式 * Web 開發 * 前端 * 後端 * 遊戲開發 * Client * Server * Engine * DevOps 維運 * 嵌入式 * Data Science * ... 不勝枚舉 * 研究所 * 研究主題 * [參考](https://zh.wikipedia.org/wiki/%E8%AE%A1%E7%AE%97%E6%9C%BA%E7%A7%91%E5%AD%A6) * 一些連結 * https://github.com/ossu/computer-science * https://teachyourselfcs.com/ * Roadmaps * [Game Devloper](https://github.com/utilForever/game-developer-roadmap) * [Web Developer](https://github.com/kamranahmedse/developer-roadmap) * [.. 其他很多](https://github.com/search?q=roadmap) :::info 如果找到自己的==興趣==所在很好,還沒找到的話可以趁早摸索。 但是在這之前要先打好基礎 ::: ## 程式語言 * 有些初學者會很糾結到底要學哪個程式語言 * 學校會教: C, C++, Java ,但僅止於介紹語法, * 對於初學程式語言的人來說,隨便挑一個語言下去學到可以用它做出東西(任意主題)就好 * 因為通用型的程式語言大多都差不多,主要的差別在於語言有擅長做的事 * 所以精熟一個以後可以很快的轉換到另一個語言上 * 但注意這裡僅止於會寫而已,學習一個語言最主要是要學習它的 "Best Practice" * 每個語言最基本的東西:變數、條件判斷、迴圈、陣列、函式(遞迴) * 那到底要挑哪個? * 不妨參考大家都在學啥: [問問 google 大神吧](https://www.google.com.tw/search?q=%E7%A8%8B%E5%BC%8F%E8%AA%9E%E8%A8%80%E5%85%A5%E9%96%80) * http://statisticstimes.com/tech/top-computer-languages.php ### 一些學習資源 * C++ * 基礎教程 (先挑一個就好,把它全部跑完後,才有餘力看其他的) * [教程/文字/中文] [語言技術:C++ Gossip](https://openhome.cc/Gossip/CppGossip/) * [教程/文字/中文] [C++ 入門 | C++與演算法](https://www.csie.ntu.edu.tw/~b98902112/cpp_and_algo/cpp/README.html) * [教程/文字/英文] [LearnCpp](https://www.learncpp.com/) * 極推這個網站 * [教程/影片/英文] https://www.youtube.com/results?search_query=c%2B%2B+tutirual * 如果你都不喜歡,[問問 Google 大神](https://www.google.com/search?q=c%2B%2B+tutorial)挑一個看起來順眼的 * 其他資源 (建議先有基礎後才來瀏覽) * [列表/英文] https://github.com/fffaraz/awesome-cpp * [列表/英文] https://github.com/rigtorp/awesome-modern-cpp :::danger C 與 C++ 基本上可以當成不同的語言來看待我,只是 C++ 一開始相容 C 而已,隨著時間發展 C++ 早已比 C 多出太多東西了 ::: * Python * 基礎教程 (先挑一個就好,把它全部跑完後,才有餘力看其他的) * [教程/文字/中文] [語言技術:Python Gossip](https://openhome.cc/Gossip/Python/) * [教程/文字/英文] [learnpython.org](https://www.learnpython.org/) * [教程/文字/中文] [Python 教學 from docs.python.org](https://docs.python.org/zh-tw/3/tutorial/index.html) * [教程/影片/英文] https://www.youtube.com/results?search_query=python+tutirual * 其他資源 (建議先有基礎後才來瀏覽) * [列表/英文] https://github.com/vinta/awesome-python * [列表/中文] https://github.com/jobbole/awesome-python-cn #### 步驟 > "What I cannot create, I do not understand." > [name=Richard Feynman] * 先挑一個教程或是書,邊看邊做 * 最有效率的學習方式就是「實踐」 * 當一個語言基本會的差不多時,可以寫一些算法題目 * OnlineJudge 線上程式評測 * [Uva](https://onlinejudge.org/index.php) * 老牌 * [中文題目 Lucky貓的 UVA(ACM)園地](http://luckycat.kshs.kh.edu.tw/) * [vjudge](https://vjudge.net/) * 多樣 * 還有其他很多 OJ * 到一個階段(自行設定)時,開始寫一些具有些規模的小專案 (Project) * 挑個你有興趣的主題自幹 * 或是從生活中發現問題 * e.g. 替自己的動、漫畫寫個追番工具……等 * 自幹 game engine、自幹 editor、[自幹 compiler](https://p-upload.facebook.com/events/291013941683377/) * 這個過程你會學到超多東西 * 參與開源專案 * 從使用開始,看看你覺得有沒有改進的地方 * 用一些開源的函式庫(library) * 難度:中 * 從零開始 (from scratch) * 難度:高 > 你想想你的履歷上如果說:你會寫 C++ ,但是卻沒有專案可以證明?🤔 ## 大學時你能做些啥 ### 一些建議 * 可以選修系上 張信宏老師與鄭進和老師合開的程式競賽選修課(星期三下午) * 打比賽切勿走火入魔,量力而為(隊友要找好) * 多多跟學長姊打聽那些課是雷課 * 那些時間不如拿來自學 * 差不多大二以上時,會開始出現課程會有專題 * 千萬不能亂做,找志同道合的組員,好好的做 * 組員挑選千萬不能只看能力,「態度」也很重要 * 「能力中等但很專注在專題上的組員」比起「厲害但不在乎專題的組員」好100倍 * 做過一次專題後,覺得苗頭不對就快點換人,不要留戀 ### 系上社團 * 輔大資工有兩個系上的社團,活動內容都是與資訊科學相關 * 不時也會參加比賽、舉辦聚會 * [NISRA 資訊安全研究會](https://www.nisra.net/) * 活動時間: 社課(每周二晚上)、Training(雙周四晚上) * 暑期:NISRA Training 營隊、寒訓活動 * 地點: SF645 * [CPC 程式競賽社團](https://cpc2018.wixsite.com/main) * 活動時間: 社課(每周一晚上) * 暑期程式訓練營 * 地點: SF645 以上這些社團都不用報名,只要在活動時間出現在教室就好。 (記得加入 FB 社團) ## 其他東西 ### 筆記網站 * [HackMD](https://hackmd.io/?nav=overview) 可以自己一個或是找同學們一同筆記,提供 latex 語法(插入數學式) ### blog 紀錄是很好的習慣,以資工系來說,可以把遇到並解決問題 (bug) 或是安裝套件的過程記錄下來,在紀錄的過程,你會再去想你做了什麼,有助於學習,再者之後遇到同樣的問題可以直接看紀錄。blog 是一種很好的形式,blog 的額外好處是你能幫助到遇到相同問題的人 * [寫 blog 的好處](http://huli.logdown.com/posts/1880993-the-benefits-of-writing-blog) * 常用來寫部落格的地方:medium、blogger * 自己架部落格:hexo、hugo ### 線上貼程式 寫程式時遇到問題時,拿 code 去問別人是常見的事。但要讓別人能夠輕鬆地了解你的 code,除了要弄好**排版**外,網路上有很多網站專門提供貼程式碼。在手機或是電腦都可以打開來看,網站還會幫忙 highlight 關鍵字,增快閱讀速度 * [gist](https://gist.github.com/) * [codepad](http://codepad.org/) ### 開發工具 * 編輯器 (Editor) * [Visual Studio Code](https://code.visualstudio.com/) * 由微軟開發,跨平台的編輯器 * [安裝 C,C++ 環境](https://github.com/liaojason2/vscode-cpp-for-windows#mingw-%E5%AE%89%E8%A3%9D) * [Sublime Text](https://www.sublimetext.com/) * 一個輕巧、快速的編輯器 > 單純的編輯器還不構成開發環境,根據語言的不同,你還需要個編譯器(e.g. C/C++)或是直譯器(e.g. Python) * IDE (整合式開發環境) * 整合式開發環境把你寫一個語言所需要的工具都包成一個集合的環境,開箱即用 * C++ * [CLion](https://www.jetbrains.com/clion/) * [Code:blocks](http://www.codeblocks.org/) * [Visual Studio](https://visualstudio.microsoft.com/zh-hant/) * Python * [PyCharm](https://www.jetbrains.com/pycharm/) > 不要用 Dev C++,不要用 Dev C++,不要用 Dev C++ > Dev C++ 絕對不能用,Code:blocks 堪用 ### 版本控制 * git * [主流](https://i.imgur.com/TUl0ycd.png)的版本控制軟體 * [Github](https://github.com/) * [GitHub 是什麼?](https://gitbook.tw/chapters/github/what-is-github.html) ## 參考 Roadmaps to become a software developer https://www.reddit.com/r/learnprogramming/comments/8vsesz/roadmaps_to_become_a_software_developer/ Software Development Career Paths https://simpleprogrammer.com/software-development-career-paths/#title-web-development ## Contribution 本文件由採 創用CC 姓名標示─非商業性─相同方式分享 > <img src="https://mirrors.creativecommons.org/presskit/buttons/88x31/png/by-nc-nd.png" width=150> * 貢獻者 * 406262515 鍾秉桓 > 小小宣傳自己的 [blog](http://blog.roy4801.tw/) * 406261597 林子傑 > 我也有 [blog](https://allem40306.github.io/blog/)

    Import from clipboard

    Advanced permission required

    Your current role can only read. Ask the system administrator to acquire write and comment permission.

    This team is disabled

    Sorry, this team is disabled. You can't edit this note.

    This note is locked

    Sorry, only owner can edit this note.

    Reach the limit

    Sorry, you've reached the max length this note can be.
    Please reduce the content or divide it to more notes, thank you!

    Import from Gist

    Import from Snippet

    or

    Export to Snippet

    Are you sure?

    Do you really want to delete this note?
    All users will lost their connection.

    Create a note from template

    Create a note from template

    Oops...
    This template is not available.


    Upgrade

    All
    • All
    • Team
    No template found.

    Create custom template


    Upgrade

    Delete template

    Do you really want to delete this template?

    This page need refresh

    You have an incompatible client version.
    Refresh to update.
    New version available!
    See releases notes here
    Refresh to enjoy new features.
    Your user state has changed.
    Refresh to load new user state.

    Sign in

    Forgot password

    or

    By clicking below, you agree to our terms of service.

    Sign in via Facebook Sign in via Twitter Sign in via GitHub Sign in via Dropbox Sign in via Google

    New to HackMD? Sign up

    Help

    • English
    • 中文
    • Français
    • Deutsch
    • 日本語
    • Español
    • Català
    • Ελληνικά
    • Português
    • italiano
    • Türkçe
    • Русский
    • Nederlands
    • hrvatski jezik
    • język polski
    • Українська
    • हिन्दी
    • svenska
    • Esperanto
    • dansk

    Documents

    Tutorials

    Book Mode Tutorial

    Slide Mode Tutorial

    YAML Metadata

    Contacts

    Facebook

    Twitter

    Feedback

    Send us email

    Resources

    Releases

    Pricing

    Blog

    Policy

    Terms

    Privacy

    Cheatsheet

    Syntax Example Reference
    # Header Header 基本排版
    - Unordered List
    • Unordered List
    1. Ordered List
    1. Ordered List
    - [ ] Todo List
    • Todo List
    > Blockquote
    Blockquote
    **Bold font** Bold font
    *Italics font* Italics font
    ~~Strikethrough~~ Strikethrough
    19^th^ 19th
    H~2~O H2O
    ++Inserted text++ Inserted text
    ==Marked text== Marked text
    [link text](https:// "title") Link
    ![image alt](https:// "title") Image
    `Code` Code 在筆記中貼入程式碼
    ```javascript
    var i = 0;
    ```
    var i = 0;
    :smile: :smile: Emoji list
    {%youtube youtube_id %} Externals
    $L^aT_eX$ LaTeX
    :::info
    This is a alert area.
    :::

    This is a alert area.

    Versions

    Versions and GitHub Sync

    Sign in to link this note to GitHub Learn more
    This note is not linked with GitHub Learn more
     
    Add badge Pull Push GitHub Link Settings
    Upgrade now

    Version named by    

    More Less
    • Edit
    • Delete

    Note content is identical to the latest version.
    Compare with
      Choose a version
      No search result
      Version not found

    Feedback

    Submission failed, please try again

    Thanks for your support.

    On a scale of 0-10, how likely is it that you would recommend HackMD to your friends, family or business associates?

    Please give us some advice and help us improve HackMD.

     

    Thanks for your feedback

    Remove version name

    Do you want to remove this version name and description?

    Transfer ownership

    Transfer to
      Warning: is a public team. If you transfer note to this team, everyone on the web can find and read this note.

        Link with GitHub

        Please authorize HackMD on GitHub

        Please sign in to GitHub and install the HackMD app on your GitHub repo. Learn more

         Sign in to GitHub

        HackMD links with GitHub through a GitHub App. You can choose which repo to install our App.

        Push the note to GitHub Push to GitHub Pull a file from GitHub

          Authorize again
         

        Choose which file to push to

        Select repo
        Refresh Authorize more repos
        Select branch
        Select file
        Select branch
        Choose version(s) to push
        • Save a new version and push
        • Choose from existing versions
        Available push count

        Upgrade

        Pull from GitHub

         
        File from GitHub
        File from HackMD

        GitHub Link Settings

        File linked

        Linked by
        File path
        Last synced branch
        Available push count

        Upgrade

        Danger Zone

        Unlink
        You will no longer receive notification when GitHub file changes after unlink.

        Syncing

        Push failed

        Push successfully