NSYSU 程式研習社
      • Sharing URL Link copied
      • /edit
      • View mode
        • Edit mode
        • View mode
        • Book mode
        • Slide mode
        Edit mode View mode Book mode Slide mode
      • Customize slides
      • Note Permission
      • Read
        • Owners
        • Signed-in users
        • Everyone
        Owners Signed-in users Everyone
      • Write
        • Owners
        • Signed-in users
        • Everyone
        Owners Signed-in users Everyone
      • Engagement control Commenting, Suggest edit, Emoji Reply
      • Invitee
    • Publish Note

      Share your work with the world Congratulations! 🎉 Your note is out in the world Publish Note

      Your note will be visible on your profile and discoverable by anyone.
      Your note is now live.
      This note is visible on your profile and discoverable online.
      Everyone on the web can find and read all notes of this public team.
      See published notes
      Unpublish note
      Please check the box to agree to the Community Guidelines.
      View profile
    • Commenting
      Permission
      Disabled Forbidden Owners Signed-in users Everyone
    • Enable
    • Permission
      • Forbidden
      • Owners
      • Signed-in users
      • Everyone
    • Suggest edit
      Permission
      Disabled Forbidden Owners Signed-in users Everyone
    • Enable
    • Permission
      • Forbidden
      • Owners
      • Signed-in users
    • Emoji Reply
    • Enable
    • Versions and GitHub Sync
    • Note settings
    • Engagement control
    • Transfer ownership
    • Delete this note
    • Insert from template
    • Import from
      • Dropbox
      • Google Drive
      • Gist
      • Clipboard
    • Export to
      • Dropbox
      • Google Drive
      • Gist
    • Download
      • Markdown
      • HTML
      • Raw HTML
Menu Note settings Sharing URL Help
Menu
Options
Versions and GitHub Sync Engagement control Transfer ownership Delete this note
Import from
Dropbox Google Drive Gist Clipboard
Export to
Dropbox Google Drive Gist
Download
Markdown HTML Raw HTML
Back
Sharing URL Link copied
/edit
View mode
  • Edit mode
  • View mode
  • Book mode
  • Slide mode
Edit mode View mode Book mode Slide mode
Customize slides
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
Engagement control Commenting, Suggest edit, Emoji Reply
Invitee
Publish Note

Share your work with the world Congratulations! 🎉 Your note is out in the world Publish Note

Your note will be visible on your profile and discoverable by anyone.
Your note is now live.
This note is visible on your profile and discoverable online.
Everyone on the web can find and read all notes of this public team.
See published notes
Unpublish note
Please check the box to agree to the Community Guidelines.
View profile
Engagement control
Commenting
Permission
Disabled Forbidden Owners Signed-in users Everyone
Enable
Permission
  • Forbidden
  • Owners
  • Signed-in users
  • Everyone
Suggest edit
Permission
Disabled Forbidden Owners Signed-in users Everyone
Enable
Permission
  • Forbidden
  • Owners
  • Signed-in users
Emoji Reply
Enable
Import from Dropbox Google Drive Gist Clipboard
   owned this note    owned this note      
Published Linked with GitHub
Subscribed
  • Any changes
    Be notified of any changes
  • Mention me
    Be notified of mention me
  • Unsubscribe
Subscribe
--- tags: 程式研習社 --- # 程式社 108 下社課 地點:EC 9013 [TOC] ## 三月 ### 專案開發 3/10 > 到場參與人:B063040050、B063040059、B073040047、B073012044、B084030022、B084020042、B083011026、B072040051、B072040042、B063040013、B063040046 <font size="6" style="font-weight: bold;">中山校務通</font> > [name=房志剛]中山校務通 * 用爬蟲在顯示在手機上 * 爬蟲程式 * 協助瀏覽學校網頁 * HTTP Client端 * 版本 * 網頁 * 原生 (Native) * 跨平台重寫 * 原生架構 * 原生的語言 ex: JAVA, Obj.c * 原生程式碼 與元件溝通 * 元件(繪圖、事件)和硬體都由系統提供 * 不同的 Andriod 版本的系統提供的元件可能不同 * 跨平台 * 內嵌瀏覽器的架構(WebView) * ex: Cordova * JS (JavaScript) 寫繪圖和事件的部分 * 硬體由 JS 擔任橋接的程式碼,還是從原生程式碼去控制 * JS 映射 * ex: React-Native, Native Script * JS 擔任橋接的程式碼,元件、繪圖、事件都是系統的 * 硬體部份同 WebView,也是擔任橋接,主要是原生的 * 簡單來說,寫 JS,但底下都是原生的 * (台下補充:因為要 compile,檔案通常比原生的肥很多) * 自帶渲染引擎 * e.g. Flutter * Flutter 使用的程式語言是 Dart * 元件用引擎去渲染(EX: Flutter) * 硬體一樣是自身擔任橋接,主要都是用原生的 * Flutter * Mobile, Web, Desktop, Embedded * 主要還是以 Mobile 為主,其他的還不穩定 * 校務通架構 * 使用 Firebase Server * APP 主體是 Flutter * HTTP Server 用 Python 寫 API (Flask 框架) * 直接去爬校務網頁 * 校務通功能 * 中山只有課表、成績、基本資料 * 程式碼(介面)可以共用,不管是哪間學校的,基本上只差在爬蟲 * 功能加強(課表) * 已知問題 * 課堂會重疊 * 時間範圍有誤 * 課堂只顯示兩個字 * 可延伸功能 * 自訂課表 * RWD(響應式界面) * 上課提醒 * Firebase * 只想寫前端,不想寫後端可以用 * 資料分析 (Analysis) * 分析一些資料,EX 大家大多停留在哪一頁、使用者使用時間 * 雲端推播 (Clound Message) * 就...推播? * 崩潰分析 (Crashlytics) * APP 閃退問題 * 遠端設定檔 (Remote Config) * 部署 (Hosting) * 可以部署在不同平台 * 例如 Flutter 可以用在 Mobile 和 Web,就可以部署在這些地方(高科校務通有網頁版) * 中山不能寫網頁版,原因是 CORS 跨站請求(校務通直接對中山網頁發 request,官方目前無解,要解決只能自己寫一個爬蟲 server,變成請求自己的 server) * CORS (Cross-Origin Resource Sharing) * 怎麼加入 * 爬蟲 * 介面實作(Flutter + Dart) * [開源專案](https://github.com/abc873693/NSYSU-AP) * 介面設計(AI, PS, Ziplin) * 資料分析或行為分析(By Firebase) * 分析多少人使用,使用的人是什麼系...等 * 文件製作 * 功能測試 (內部測試) * 宣傳 * 如果要寫介面/爬蟲 * [安裝 Flutter SDK](https://flutter.dev/docs/get-started/install) * 學 Dart 基本語法 * [教學筆記](https://hackmd.io/@macs1207/rkLScjudE?type=view) * 爬蟲 * HTTP, Dio, XML * 找想爬的網站 * 介面 * [Widget catalog](https://flutter.dev/docs/development/ui/widgets), [Widget Livebook](https://flutter-widget.live/basics/introduction) * [Dartpad](https://dartpad.dev/) 類似線上的 IDE <font size="6" style="font-weight: bold;">實習經驗分享(找公司/履歷/面試)</font> > [name=Rice]實習經驗分享(找公司/履歷/面試) * Why實習? * $$ * 未來找工作方便 * 學新技術 * 了解業界在做什麼 * 吃好吃的 * 公司分類 * 新創 * 小型:人數少、容易倒、程式能力強 * 中型:為了擴大產品招收新血,可能有點亂? * 有一定能力,會教實習生怎麼做 * e.g. Dcard * 大型 * 傳統產業 * 小型倒光ㄌ QAQ * 中型 * 大型:做固定的事情 * e.g. 台GG * 外商 * 偏重 資料結構與演算法 * 中型 * 大型 * e.g. Google * 新創 vs. 傳產 * 新創偏重新技術,10年內的技術居多 * 傳產求穩定 * 找工作管道 * 104, Yourator, CakeResume, PTT, FB(最雜), Linkedin (外國人居多) * 徵才博覽會、就業博覽會 * 問朋友是否可以內推 * 找工作技巧 * 公司名稱沒有很加分一律選擇支薪 * 心態:是否能和公司一起合作、對公司是否有幫助 * 流程 * 寫履歷優先,再去尋找有興趣的職缺 * 面試先選擇不重要的公司,比較想要的公司放後面面試 * 上了也不會去的放在前面,最想去的放後面一點 * 以利於提升面試的表現 * ==~~拉麵店很缺工程師喔XD~~== * 寫履歷 * 外商要求全英文,也有中英都要 * 最好都投英文 * LaTeX template * 一頁簡歷,一頁自傳 * 履歷內容 * 基本資料、部落格、GitHub * 推薦要放 (放相關上去) * 工作經驗(選擇相關的放上去)、學歷、競賽、技能樹、專案、研討會 * 工作經驗的敘述,大概做了什麼、專案等等 * 履歷如果太空 * 投遞目標、個人期望 * 面試 * 電話/實體面試 * 履歷上的東西都要準備好,可能會被問或要求DEMO (建議帶筆電) * 白板題 (打聽該公司會怎麼面試,避免尷尬) * 自我介紹(必備),1 min,通常還沒講完就被打斷ㄌ QQ * 要問面試官什麼 * e.g. 經驗如何、可以學到什麼、問自己有關的問題 * 電話面試 * 詢問面試官是否可以晚點回撥 * 準備耳機、水 * 盡量找沒人的地方 * 實體面試 * 白板手寫 code (電話面試也有可能用 google doc) * 提早到要準備聊天內容 (監介) * 增進競爭力 * 多做 project,累積經驗 * 根據公司選擇放什麼 project > [name=楊志璿]一些發現、想法跟討論 >> [東京都 新型コロナウイルス感染症対策サイト](https://github.com/tokyo-metropolitan-gov/covid19) >> [口罩 2.0](https://github.com/PDIS/emask-static) >> [jserv 作業](https://hackmd.io/0SMjfYhATgKtSek67F6q_Q)、[quiz 延伸練習](https://hackmd.io/@sysprog/linux2020-quiz3) ### 程式競賽 3/24 ## 競賽常用 STL > 簽到 M084112012、B083040012、B063040059、B063040049、B063040050 * Template 什麼資料型態都可以裝 * 容器本身是一種資料結構,因此可以宣告成資料型態 * 相較於array,vector無須固定大小,因此非常好用 * vector 擴展性高 | 功能 | 含意 | | --------- | ------------------------------- | | v.begin() | 回傳第一個 iterator | | v.end() | 回傳最後一個之下一個的 iterator | ```C++= #include <iostream> using namespace std; int main(){ vector<int> v = {1,2,3}; vector<int>::iterator it = v.begin(); while(it != v.end()){ cout << *it << endl; it++; } return 0; } ``` * 萬能標頭檔 `#include <bits/stdc++>` includde C及C++常用的標頭檔 ==pair== * `#include <utility>` ```C++= #include <iostream> #include <utility> using namespace std; int main(){ pair <string, int> p; cin >> p.first >> p.second; p = {"Sophie", 18}; cout << p.first <<" "<< p.second; return 0; } ``` e.g. ```C++ vector< pair<int, string> > v(10); for(int i=0; i<10; i++){ cin >> v[i].second >> v[i].first; } v[0] < v[1]; // 先比較 first 元素,再比較 second 元素 ``` ==stack== 比喻堆書 ==queue== * `include <queue>` q.push() q.front() q.pop() q.empty() q.size() 迷宮問題:想像成淹水 ==priority_queue== `#include <queue>` 當作max-heap使用 由大到小印出 ```C++= #include <iostream> #include <queue> using namespace std; int main() priority_queue<int> pq; for(int i=0, x; i<5; i++){ cin >> x; pq.push(x); } while(!pq){ cout << pq.top() << endl; pq.pop(); } return 0; } ``` 由小到大輸出 ```C++= #include <iostream> #include <queue> using namespace std; int main() priority_queue<int> pq; for(int i=0, x; i<5; i++){ cin >> x; pq.push(-x); } while(!pq){ cout << -pq.top() << endl; pq.pop(); } return 0; } ``` 由小到大印出 ```C++= #include <iostream> #include <queue> using namespace std; int main() priority_queue<int, vector<int>, greater<int> > pq; for(int i=0, x; i<5; i++){ cin >> x; pq.push(x); } while(!pq){ cout << pq.top() << endl; pq.pop(); } return 0; } ``` ==set== | 常見函數名稱 | 解釋用途 | |:------------------------:|:---------------:| | s.insert(val) | | | s.find() | 元素是否有在set | | s.erase(iterator or val) | 移除元素 | | s.size() | 大小 | 使用時機 * 尋找比該數字還要大的第一個數字 ==map== ```C++ #include <iostream> #include <map> using namespace std; int main() map<string, int> m; for(int i=0, x; i<5; i++){ cin >> x; pq.push(x); } for(auto i=m.begin(); i != m.end(); i++){ cout << i->first <<" "<< i->second << endl; } // 或 for(auto i:m){...} 也行 return 0; } ``` #### Algorithm * `include <algorithm>` ![](https://i.imgur.com/1eu16gx.png) ![](https://i.imgur.com/tPFGJUr.png) ![](https://i.imgur.com/JBQ08M5.png) ![](https://i.imgur.com/aGiGdPV.png) ## 四月 ### 專案開發 4/14 > 因肺炎暫停 ### 程式競賽 4/28 > 因肺炎暫停 ## 五月 ### 專案開發 5/19 ***因本次課程延期後依然無人參與,故暫停乙次*** > 資料庫規劃簡介[name=Rice] > 網頁遊戲製作簡介[name=Rice] ### 程式競賽 6/02 ***因 CPE 遇上肺炎延期至 5/26 舉辦,故五月的程式競賽課程暫停乙次*** > 題目檢討[name=Rice]

Import from clipboard

Paste your markdown or webpage here...

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 lose their connection.

Create a note from template

Create a note from template

Oops...
This template has been removed or transferred.
Upgrade
All
  • All
  • Team
No template.

Create a template

Upgrade

Delete template

Do you really want to delete this template?
Turn this template into a regular note and keep its content, versions, and comments.

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 with Wallet
Wallet ( )
Connect another wallet

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

Help & Tutorial

How to use Book mode

Slide Example

API Docs

Edit in VSCode

Install browser extension

Contacts

Feedback

Discord

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 and GitHub Sync
Get Full History Access

  • Edit version name
  • Delete

revision author avatar     named on  

More Less

Note content is identical to the latest version.
Compare
    Choose a version
    No search result
    Version not found
Sign in to link this note to GitHub
Learn more
This note is not linked with GitHub
 

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.
      • HackMD links with GitHub through a GitHub App. You can choose which repo to install our App.
      Learn more  Sign in to GitHub

      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
      Include title and tags
      Available push count

      Pull from GitHub

       
      File from GitHub
      File from HackMD

      GitHub Link Settings

      File linked

      Linked by
      File path
      Last synced branch
      Available push count

      Danger Zone

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

      Syncing

      Push failed

      Push successfully