📜 [專欄新文章] 類 Python 的合約語言 Vyper 開發入門:與 Solidity 差異、用 Truffle 部署、ERC20 賣幣合約實做
✍️ 田少谷 Shao
📥 歡迎投稿: https://medium.com/taipei-ethereum-meetup #徵技術分享文 #使用心得 #教學文 #medium
有鑒於個人近期關注的 Uniswap 及 Curve 皆用 Vyper 實作,索性瀏覽了官方文件並嘗試一些開發工具,希望此文能減少一些讀者初嘗 Vyper 會遇到的麻煩!
Vyper and Solidity
Outline
一. Vyper 極簡介二. 與 Solidity 語法差異三. 開發、開發環境設置 1. 語法高亮 2. 本地 Vyper compiler 安裝 3. 使用 Truffle 操作 ERC20 - 安裝 Truffle - 發幣 - 寫個簡易賣幣合約四. 已知 Remix 問題 五. 結語
一. Vyper 極簡介
Vyper 是除 Solidity 外,以太坊上的另一智能合約 (Smart contract) 語言。其語法和 Python 相近,但畢竟也是寫合約的語言,邏輯差異不大,所以若熟悉 Solidity 應該不難理解用 Vyper 寫出的合約!
Vyper 主要被設計和 Solidity 的區別是安全性及可讀性,這部分會在下一段落及後方的實作中舉例說明。
二. 與 Solidity 語法差異
Vyper 與 Solidity 的差異有許多,在本段只就個人認為感受較深的三點進行說明,其他差異只進行翻譯,有興趣的讀者可以到官方文件詳細了解:https://vyper.readthedocs.io/en/latest/index.html
1. 沒有 modifier
Solidity 常見的 onlyOwner() modifier; 由於 gist 沒有 Solidity 的語法高亮,故截圖
在 Vyper 中單純用 assert 及 assert_modifiable 來進行條件檢查,兩者差別為若要檢查函數執行後的返還值,要用後者,如下圖:
Vyper 寫法
2. 沒有 Class inheritance 繼承
繼承是物件導向程式設計 (OOP) 的核心概念,但各種繼承關係有時候確實很複雜。Vyper 沒有繼承,這無疑大幅地增加了程式可讀性及安全性,以及降低審計程式碼的難度。在此提供一個例子供不熟悉 OOP 複雜之處的讀者有個概念:
source: https://consensys.github.io/smart-contract-best-practices/recommendations/#multiple-inheritance-caution
在上例中,contract A 的 fee 值 (因繼承自 contract B 和 C,故有 fee 一值) 是 5、a 值也是 5 (因繼承自 contract Final,故有 a 一值)。原因是 A 先繼承 B 再繼承 C,因此 contract A 中的 setFee() 是使用了 contract C 的 setFee(),而 a 值是由於 C(5),這代表 contract C 的 constructor (舊版本中即 function C(),函式名稱同 contract 名稱) 被傳入的值為 5。
稍微延伸一下以上概念,將 contract A 改成:contract A is C, B。如此一來,a 值還有 fee 值都會是 3,因為這次 A 先繼承 C 再繼承 B,因此最終吃到的值是 contract B 的。
以上就是 OOP 繼承的複雜之處的簡單範例說明,應該能稍微感受到爲什麼除去繼承後會大幅提高可讀性及安全性,畢竟即使是熟悉 OOP 的人有時頭腦一混亂也會開始懷疑自己寫的程式碼繼承結構是否正確 …
3. 沒有 dynamic array 動態陣列
這應該是目前 Vyper 設計中爭議最大的部分。沒有動態陣列代表在宣告陣列時需要宣告其長度,也就是說 Solidity 中的寫法 uint[], bool[] 等等,這些是不會出現在 Vyper 的。在 Vyper 中只能出現諸如:
# Vyper 的變數宣告方式為 變數名稱: 存取範圍(變數型態(若為陣列給長度))
values: uint256[10]participants: public(address[20])
可以看到上方的 uint256 及 address 兩陣列皆需要宣告長度,不能不宣告而使其動態地配置空間。
沒有動態陣列固然可以確保執行運算的範圍、次數,但一來動態陣列真的很方便、二來在 Solidity 有此功能而 Vyper 卻沒有的情況下可能會造成麻煩,詳見此一討論串:點我。
4. 沒有 inline assembly,程式碼中不會有組合語言
5. 沒有 function overloading,函式不會因傳入的參數數目不同而結果不同
6. 沒有 operator overloading,運算符號不會有不同於預設的自定義功能
7. 沒有無限迴圈,可免於 gas limit attack
8. 十進位定點數 decimal fixed point 而非二進位 (binary) 定點數,詳見:點我
三. 開發、開發環境設置
結論先講
開發 Vyper 的最佳姿勢目前個人認為是在本地裝上 Vyper compiler、用 Truffle 部署,並在撰寫時將檔名後加上 .py 就能有 Python 的語法高亮👌
1. 語法高亮 (syntax highlighting)
有語法高亮絕對是舒服地寫程式的第一步。
Remix 有 Vyper 的語法高亮,但一來個人目前不推薦使用 Remix 來撰寫 Vyper,原因詳見下方 4. 已知 Remix 問題;二來 Remix 的語法高亮其實也沒有很清楚,因此個人推薦:在本地開發,將檔名後加上 .py 就會有 Python 的語法高亮。
2. 本地 Vyper compiler 安裝
照官方說明使用 Python 的虛擬環境 virtualenv:
source: https://vyper.readthedocs.io/en/latest/installing-vyper.html#installing-vyper
簡單兩點提醒:
如果中間那行報錯但確實已經有 Python,則可能是版本問題。依照自己電腦上的版本改成相應的即可,ex: python3.6 改成 python3
進入虛擬環境後(檔案路徑前方應有 vyper-venv 的提示),使用此指令: vyper {檔案名稱}.vy,即可編譯 .vy 檔;使用完畢後輸入 deactivate 即可退出
3. 使用 Truffle 操作 ERC20
安裝 Truffle
Truffle 雖有冗餘的 migration 但也別無他法,畢竟 Remix 目前仍不完善 :(
下載流程可以照官方文件,使用 vyper-example:
source: https://github.com/truffle-box/vyper-example-box
由於我們會接上測試網 Ropsten,因此還要下載 truffle-hdwallet-provider:
source: https://github.com/trufflesuite/truffle-hdwallet-provider
接者就可以開始使用 Vyper 寫合約了!
發幣
由於 Vyper 的官方文件中已經有許多優質範例,因此本文希望來點不一樣但大家卻又很熟悉的…以 ERC20 為例(這千篇一律的主題xD):
用 Curve 的 ERC20 程式碼為範本,發一個幣(又要發…)
寫一個簡易賣幣合約
選擇這個主題一方面畢竟 ERC20 是以太坊的最大宗應用之一,二來有興趣的讀者可以透過讀 ERC20 的程式碼來熟悉 Vyper,並在看過本文的流程後對於用 Vyper+Truffle 來操作 ERC20 有完整的概念!
好的,首先複製一份 Curve 的 ERC20 程式碼(看到就順手拿來用),並複製到 Truffle 所在路徑的 contracts 資料夾中:https://github.com/curvefi/curve-contract/blob/pool_compound/vyper/ERC20.vy
由於第一點希望著重在跑一次流程,因此不改動合約的程式碼。
將 ERC20.vy 複製到 contracts 資料夾中後,到 migrations 資料夾開啟 2_deploy_contracts.js,首先將 require() 中的參數改為 ERC20.vy 的檔名 ERC20,再來依照自己喜好決定幣的名稱、代號、小數點位數及發行總量,輸入於 deployer.deploy() 中。
接著,為了和測試網 Ropsten 互動,需要將以下程式碼寫入 truffle-config.js。
第二行的 privateKeys 是帳號的私鑰。以下實作需要兩個帳號來操作,因此請從錢包匯入兩組私鑰(並非助憶詞)。
在第 13 行中 HDWalletProvider 此函式的第三個參數代表要用第幾個帳號最為預設帳號(部署合約等),第四個函數代表總共匯入幾組帳號。而第二個參數則是需要至 Infura 申請一個 project 來得到串接 Ropsten 的連結。這兩步驟並非本文重點,因此不詳細解說步驟,Google 搜尋關鍵字應該就會找到方法!
接著,就可以輸入以下指令來將代幣發佈到 Ropsten:
truffle deploy --network ropsten
有進入虛擬環境才可以編譯 .vy 檔,若忘記就會收到如下的錯誤訊息:
記得打開虛擬環境才能編譯 .vy 檔
成功後就可以在 contract address 中看到代幣發佈的位置,加入到 Metamask 中就可以看到。本文的例子是維尼代幣 Winnie the Coin, WTC ;)
contract address 便是 ERC20 的所在
Winnie the Coin, WTC
好了,到此測試網上又多了一個測試用的垃圾廢幣。
寫個簡易賣幣合約
賣幣合約中我想要簡單有兩個功能就好:付錢買幣 、結束銷售,以下就是程式碼。買幣的部分就不寫太詳細,固定價格為 0.01 Ether 可以買 500 代幣。
簡單說明幾點:
Solidity 的 constructor() 在 Vyper 中為 Python 風的 __init__():
函式的屬性(public, private, payable 等等)放在函式上方,與 Python 的修飾器位置相同
總之寫法跟 Python 很像,次方也一樣是用兩次乘法代表:**
變數前加上 self 代表是當前合約的變數/全域變數,因此非常容易與函式中的變數/區域變數做區隔
由於已經在第一行匯入了 ERC20 那份合約,因此透過將地址傳入合約當參數,就可以呼叫在該地址的合約:ERC20(self.tokenAddress) 。並且,可以將部署的合約存成一個變數 erc20 較方便
寫完合約後一樣要更改 migrations 資料夾中的 2_deploy_contracts.js 如下,將代幣所在的地址作為參數輸入。
由於先前已經部署過一次了,因此要重置才能再部署第二次,輸入以下指令:
truffle deploy --reset --network ropsten
部署成功之後就要來試著買幣啦!輸入以下來進入 console:
truffle console --network ropsten
成功進入後應該會看到 truffle(ropsten)> 的字樣。接著,首先取得部署的兩合約,並查看是否有返回合約資訊:
# ERC20 及 SellToken 是先前在 2_deploy_contracts.js 中的變數名稱,代表被部署的合約
let instance1 = await ERC20.deployed()instance1 # 印出 instance1 的資訊
let instance2 = await SellToken.deployed()instance2 # 印出 instance2 的資訊
再來,為了讓 SellToken 可以賣幣,要先用 ERC20 的合約匯幣到 SellToken 的合約。因此,輸入以下指令:
instance1.transfer(instance2.address, 10000)
# 這裡數字只要設為 > 500 就可以
接著,我們要利用第二個帳號去買幣(第一個帳號為預設帳號,因此就是代幣擁有者)。將帳號的資訊存入變數 accounts 中,再指定送出交易的帳號是第二個帳號。由於我個人匯入私鑰的順序是將第一個帳號存在 truffle-config.js 的 privateKeys[0]、第二個帳號存在 privateKeys[1],因此第二個帳號的地址就會在 accounts[1] 的位置:
let accounts = await web3.eth.getAccounts()
instance2.buyToken({from: accounts[1], value: 10000000000000000})
# value 為 10^16 是因為在 SellToken 的 buyToken 函式中買一次要 0.01 Ether, 即為 10^16 wei
然後應該就會在自己的第二個帳號中看到匯入的幣了~
最後,由於合約中結束銷售就是一個自殺 selfdestruct 函式,因此可以呼叫看看,第一個帳戶錢包中的錢應該會增加,因為第二個帳戶有付款買幣;並且,可以到 Ropsten 上瀏覽,應該能看到相關提示:
中間 contract 的右上角有 Self Destruct 的樣式
四. 已知 Remix 問題
Remix 目前有兩個版本,只有新版有 Vyper 的編譯器。在此整理目前遇到的問題,如果有人也遇到可以對照一下本處,可以省去很多自我懷疑xD
不會報錯
Remix 的編譯結果有時會是錯的、和本地端編譯出來的結果不同
舉上方的 SellToken 合約為例,將其複製到 Remix 中使用左邊的 Remote Compiler 有錯,但又不報錯 q_q (ERC20 的合約有在同檔案目錄)
左方有紅色三角形,代表編譯失敗,但沒有報錯訊息可以看…
getter function 竟然要花錢
用 Solidity 寫的合約,查詢 public 變數的值應該是不用消耗 gas 的,但不知何故查詢 Vyper 寫的合約的 public 變數卻要消耗 gas,如下圖…
可以看到中下方有 22026 gas 的消耗
Local compiler 無法使用
圖中的 Local Compiler 此選項,個人雖照官方文件執行 vyper-serve 但卻失敗,因此若有讀者成功希望能留個言不吝分享!
五. 結語
Vyper 作為一個比 Solidity 更新的合約語言,在寫程式碼的方面沒什麼問題,但相關的開發工具、學習資源等都遠不及 Solidity。
Vyper 主打的兩個特色:可讀性的部分相信看完上面的讀者應該已經有些感覺;安全性…小白如作者我倒是沒有感受到顯著的不同。況且 Solidity 已經發展許久,很多錯誤的寫法、知名的安全漏洞大家應該也很熟悉了,還有 Openzeppelin 提供安全合約寫法的範本,因此有待以後高人解說安全性是否真的是 Vyper 較好。
有興趣者可以查看 Vyper 的安全報告:點我,大意是目前 Vyper 的編譯器仍有許多問題待改進! (感謝 Chih-Cheng Liang 的提供)
本文對 Vyper 的介紹及其與 Solidity 的差異只講了個大概,欲知更詳細的介紹還是要麻煩讀者前往官方文件了:https://vyper.readthedocs.io/en/latest/index.html
最後,如果本文有任何錯誤,請不吝提出,我會盡快做修正;而如果我的文章有幫助到你,可以看看我的其他文章,歡迎一起交流 :)
田少谷 Shao - Medium
類 Python 的合約語言 Vyper 開發入門:與 Solidity 差異、用 Truffle 部署、ERC20 賣幣合約實做 was originally published in Taipei Ethereum Meetup on Medium, where people are continuing the conversation by highlighting and responding to this story.
👏 歡迎轉載分享鼓掌
同時也有1部Youtube影片,追蹤數超過9萬的網紅Dr. Grace,也在其Youtube影片中提到,今天分享我如何準備美國牙醫學院的面試,醫學院面試是絕對要用技巧的,我把我所有那時應用到的技巧全部公開,包括所有重要環節,希望可以幫助到你們喔! Acoustic/Folk Instrumental by Hyde - Free Instrumentals https://soundcloud.co...
「個人申請自我介紹範例」的推薦目錄:
- 關於個人申請自我介紹範例 在 Taipei Ethereum Meetup Facebook 的精選貼文
- 關於個人申請自我介紹範例 在 Joyce看世界就是不一樣 - Joyce Yang Facebook 的最佳解答
- 關於個人申請自我介紹範例 在 Joyce看世界就是不一樣 - Joyce Yang Facebook 的最讚貼文
- 關於個人申請自我介紹範例 在 Dr. Grace Youtube 的最佳解答
- 關於個人申請自我介紹範例 在 面試的自我介紹怎麼準備?零經驗也能輕鬆完成自介準備大公開! 的評價
- 關於個人申請自我介紹範例 在 面試自我介紹範本2023-在Facebook/IG/Youtube上的焦點新聞 ... 的評價
- 關於個人申請自我介紹範例 在 面試自我介紹範本2023-在Facebook/IG/Youtube上的焦點新聞 ... 的評價
個人申請自我介紹範例 在 Joyce看世界就是不一樣 - Joyce Yang Facebook 的最佳解答
【如何寫出閃閃發光讓人資看一眼就愛上的Cover Letter】
Joyce最近和大家分享如何開始你的國際職涯,想要被人資和獵頭追著給Offer的復合式工作篇,還有,如何寫出讓人資看一眼就愛上的簡歷。這周我們要好好聊聊開始國際職涯的過程中,另一個不能不熟悉的環節:寫Cover Letter。更准確地說:如何寫出閃閃發亮讓人資看一眼就愛上的Cover Letter。
很多人會很困惑,到底什麼是Cover Letter?它和簡歷、自傳、portfolio又有什麼區別?它不是簡歷,它比簡歷更加細節化,它也不是自傳或portfolio,因為這些不是每一個職務都會要求的。
Cover Letter,中文翻譯常常翻成是:求職信,它是申請工作時和簡歷一起寄出的材料。我們在【如何寫出讓人資看一眼就愛上的簡歷】文章裡面和大家說過一個概念,就是簡歷像是一個個人廣告頁,而Cover Letter,就可以理解成是求職者的加長版廣告頁,或者說是給未來雇主對於你這個人正確的“使用說明書”😎
那麼,Cover letter到底要說什麼呢?你要記住,你必須至少要達到三個要件👇
1️⃣ 我對這個職位感興趣具體原因
2️⃣ 我為什麼符合這個工作的要求
3️⃣ 簡歷上想要說但是沒有說的東西
每個行業、每個工作,以及每個求職者的情況都不相同,所以,求職信的寫法也會有差異,但其整體框架以及需要達到的以上的三個要件是普遍通用的。
✅ 在這裡Joyce就從:整體架構、核心內容,和注意事項三個方面來為大家作詳細解說。
#整體架構
Cover Letter求職信的整體架構大同小異,你在撰寫的時候記得要包括以下8點,才能算是完整的求職信:
1. 求職者的姓名和聯系方式(只需要有姓名、電話、電子郵件即可,不用放過多的個資)
2. 雇主的信息及聯系方式 (這個部分根據雇主提供的信息而定)
3. 求職信撰寫日期(求職信,是正式信件,需有撰寫日期)
4. 開頭的稱呼(有負責的人資姓名,請寫負責的人資姓名,如果沒有,常用的是:To Whom It May Concern)
5. 開場白(在這段裡面,建議寫上可以立即吸引人目光的東西)
6. 內文段落(建議以條列式的方式去對應職缺要求)
7. 總結(最後的機會凸顯重點)
8.結尾語(很常見的是在最後寫上:I look forward to hearing from you regarding my application.)
9. 求職者的簽名(通常電子版本就可以)
#整體框架注意事項
求職信的長度一般來說,不要超過一頁A4,除非有特定要求,例如:不超過800字、不超過2頁…等,字的大小應該在11-12。請記住,你是在寫求職信,不是寫回憶錄、情書、自傳,所以,請使用簡潔直接的表達方式。
#核心內容
求職信開頭的稱呼,這個部分,你自己要先做一些功課,首先要搞清楚收信人是誰,有很多時候,求職廣告和職缺信息裡面,都有提供負責這個招聘的人的信息,如果不確定,這也是很好的機會直接聯系雇主詢問。
#走遍國際屢試不爽的小法寶
在我申請過的工作裡面,我發現一個走遍國際屢試不爽的小法寶,這樣做,可以大大提升你在人資心目中的排名 —— 就是在申請工作前,先打電話過去自我介紹和詢問職缺內容☎️
Joyce在瑞士求職的時候,看到一個招聘廣告,職缺要求有7點,我當時符合6點,廣告上面也有提供負責的人資信息,我直接打電話去詢問:
1. 這個職缺是否還在招聘中?(即便這個職缺還在期限內,還是可以問,因為有些人資會和你說,這個職缺目前已經關閉,或是這個職缺目前我們已經在面試人…你可以從人資的口氣裡面知道,他們是否還希望有很多人申請。別忘了人資最不喜歡的就是浪費很多時間在雇佣一個人身上。)
2. 我如果不符合所有職缺要求,我能申請嗎?(這一點非常重要!請大家劃重點!很多粉絲問我:我沒有相關工作經驗可以申請嗎?與其自己問自己、問不相關的人、問天問地…你為什麼不直接問負責的人資?)
3. Who should I address the application to? 我的求職申請要寄給誰比較好呢?
(這個時候,如果人資給到你他/她的姓名和聯系方式,在你的求職信中,相比於“To whom it may concern”這樣的通稱, 人資看到自己的名字 "Dear Mr/Ms/Dr..." 的時候,再加上你已經和他/她有過一段對話,這樣會加深印像和親切度。
4. 利用這樣的機會,在求職申請寄出前,讓人資記住你(和人資短暫的對話結束前,記得說謝謝人資的時間,和他/她再說一次你的名字,然後說在接下來的幾個小時、幾天,給一個時間點內,你會提出求職申請。)
以上是我常常使用的小法寶,很簡單、沒有什麼技術含量,只是你要主動出擊、不怕冷臉、不怕拒絕,你會有異想不到的驚喜!
#成功達成和人資的情感連結
人資是人,只要是人,就會因為感情聯系所影響,在千千萬萬的求職者中,你如果可以利用一通電話,在提出工作申請前,就成功達成和人資的情感連結,即便只是很淺很淺的,你也比其他沒有這樣做的求職者更有優勢。
#開場白內容
開場白,也可以理解成是求職信的引言。這裡的內容,不用多,用簡單幾句話,闡述你是從哪裡看到這個職缺信息、為什麼你想要申請這個職位、表明你申請這個職位的誠意和熱情,做到這些就可以了,其他拉拉雜雜的東西不用說。
在開場白部分,基本上你已經把上述:1️⃣ 我對這個職位感興趣具體原因 搞定了。
#內文內容
內文內容,這部分是求職信最重要的核心,也就是上述的求職信中,你必須至少要達到三個要件中的第二和第三要件:
2️⃣ 我為什麼符合這個工作的要求
3️⃣ 簡歷上想要說但是沒有說的東西
#我為什麼符合這個工作的要求
如果你上網找求職信的範例,很多都是在這個部分用1~2段去闡述,主要是說明關於求職者的相關信息,例如之前的工作經驗和擁有的專業技能。但是我個人認為這樣的方式不夠直接,不如直接用職缺要求來條列式的回復,這樣可以直接讓人資清楚的看到你為什麼符合這個工作的要求,也減少人資在你的求職信裡面找你的信息的時間。
另外,記得在你的求職信裡面,最好不要重復簡歷上的內容,利用好求職信,向雇主展現你與所申請職位的高契合度,讓雇主知道,你,是這個職缺最合適的人選。
#簡歷上想要說但是沒有說的東西
求職信的重要性,就是在於把簡歷上面沒有說出來的東西講清楚,如果你有做過與職缺相關的特別突出的專案,你要在求職信裡面,用簡單的幾句話說明;另外,你也要利用求職信,說明你對公司和職位的了解, 在這一部分,你要盡量將自己的工作經歷和公司做連結,這個跟之前說的要成功達成和人資的情感連結是一樣的,你要利用這個求職信,說明你對職位的了解,以及自己能為公司帶來什麼,進而和成功達成和公司做連結這個目的。
舉個例子, 你可以利用求職信,介紹你的個性,以及表明自己是個能夠團隊協作的人,可以很快的融入團隊,融入公司文化。這就是達到和公司做連結,這會讓你的求職信更容易脫穎而出。
#你的求職信和簡歷一樣只有幾十秒的保鮮期
在撰寫求職信的時候,請你一定要記住這幾個關鍵字:脈絡清晰、有條不紊、突出重點。因為,你的求職信和簡歷一樣,只有幾十秒的保鮮期!
你要在在求職信有限的篇幅裡面,強調自己的相關工作經驗、能力、技術、學經歷背景…等,從而突破人資的心房,成功爭取面試的機會。
這篇文章和【如何寫出讓人資看一眼就愛上的簡歷】一起看,讓你的國際職涯更順利哦!
附上一張澳洲老國會,現在的澳洲民主博物館,Joyce 上週末去玩,覺得很受啟發,想到台北的自由廣場,我們可以發展我們的國際職涯,是因為我們有選擇權,我們要珍惜,要更努力,希望大家的國際職涯發展都如這張照片,走向康莊大道,也願世界各地的人們都能擁有自由與和平❤️
#只要我們每一個人都閃閃發光大家都會看到我們來自的地方
大家可能覺得國際工作是個人的事情,其實,這也是大家共同的事情,是軟實力的體現。若要爭取國際能見度,其實可以用軟實力去體現,我很喜歡一個概念,叫做:民間外交官。就是我們每一個人都能代表我們所來自的地方和文化,不需要頭銜或是官方的什麽認證,因為只要我們每一個人都閃閃發光,大家都會看到我們來自的地方。
#只要我們每一個人都閃閃發光大家都會看到我們來自的地方
#大出走時代你必須主動規劃自己的幸福和前途
#你要的幸福自己做主
#Joyce聊成長
#Joyce聊國際工作
#Joyce聊態度
#Joyce的國際工作生活規劃課程
#我們都能擁有一點點不平凡
#另類成功
👉Joyce的不公開社團:Joyce的國際工作情報站
https://www.facebook.com/groups/joyceseestheworld
👉Joyce的IG:@joyceseeaustraliaandtheworld
https://www.instagram.com/joyceseeaustraliaandtheworld/
👉Joyce的不公開社團:Joyce的異國戀情分享園地
https://www.facebook.com/groups/joycetalkscrossculturalrelationship
個人申請自我介紹範例 在 Joyce看世界就是不一樣 - Joyce Yang Facebook 的最讚貼文
【如何寫出閃閃發光讓人資看一眼就愛上的Cover Letter】
Joyce最近和大家分享如何開始你的國際職涯,想要被人資和獵頭追著給Offer的復合式工作篇,還有,如何寫出讓人資看一眼就愛上的簡歷。這周我們要好好聊聊開始國際職涯的過程中,另一個不能不熟悉的環節:寫Cover Letter。更准確地說:如何寫出閃閃發亮讓人資看一眼就愛上的Cover Letter。
很多人會很困惑,到底什麼是Cover Letter?它和簡歷、自傳、portfolio又有什麼區別?它不是簡歷,它比簡歷更加細節化,它也不是自傳或portfolio,因為這些不是每一個職務都會要求的。
Cover Letter,中文翻譯常常翻成是:求職信,它是申請工作時和簡歷一起寄出的材料。我們在【如何寫出讓人資看一眼就愛上的簡歷】文章裡面和大家說過一個概念,就是簡歷像是一個個人廣告頁,而Cover Letter,就可以理解成是求職者的加長版廣告頁,或者說是給未來雇主對於你這個人正確的“使用說明書”😎
那麼,Cover letter到底要說什麼呢?你要記住,你必須至少要達到三個要件👇
1️⃣ 我對這個職位感興趣具體原因
2️⃣ 我為什麼符合這個工作的要求
3️⃣ 簡歷上想要說但是沒有說的東西
每個行業、每個工作,以及每個求職者的情況都不相同,所以,求職信的寫法也會有差異,但其整體框架以及需要達到的以上的三個要件是普遍通用的。
✅ 在這裡Joyce就從:整體架構、核心內容,和注意事項三個方面來為大家作詳細解說。
#整體架構
Cover Letter求職信的整體架構大同小異,你在撰寫的時候記得要包括以下8點,才能算是完整的求職信:
1. 求職者的姓名和聯系方式(只需要有姓名、電話、電子郵件即可,不用放過多的個資)
2. 雇主的信息及聯系方式 (這個部分根據雇主提供的信息而定)
3. 求職信撰寫日期(求職信,是正式信件,需有撰寫日期)
4. 開頭的稱呼(有負責的人資姓名,請寫負責的人資姓名,如果沒有,常用的是:To Whom It May Concern)
5. 開場白(在這段裡面,建議寫上可以立即吸引人目光的東西)
6. 內文段落(建議以條列式的方式去對應職缺要求)
7. 總結(最後的機會凸顯重點)
8.結尾語(很常見的是在最後寫上:I look forward to hearing from you regarding my application.)
9. 求職者的簽名(通常電子版本就可以)
#整體框架注意事項
求職信的長度一般來說,不要超過一頁A4,除非有特定要求,例如:不超過800字、不超過2頁…等,字的大小應該在11-12。請記住,你是在寫求職信,不是寫回憶錄、情書、自傳,所以,請使用簡潔直接的表達方式。
#核心內容
求職信開頭的稱呼,這個部分,你自己要先做一些功課,首先要搞清楚收信人是誰,有很多時候,求職廣告和職缺信息裡面,都有提供負責這個招聘的人的信息,如果不確定,這也是很好的機會直接聯系雇主詢問。
#走遍國際屢試不爽的小法寶
在我申請過的工作裡面,我發現一個走遍國際屢試不爽的小法寶,這樣做,可以大大提升你在人資心目中的排名 —— 就是在申請工作前,先打電話過去自我介紹和詢問職缺內容☎️
Joyce在瑞士求職的時候,看到一個招聘廣告,職缺要求有7點,我當時符合6點,廣告上面也有提供負責的人資信息,我直接打電話去詢問:
1. 這個職缺是否還在招聘中?(即便這個職缺還在期限內,還是可以問,因為有些人資會和你說,這個職缺目前已經關閉,或是這個職缺目前我們已經在面試人…你可以從人資的口氣裡面知道,他們是否還希望有很多人申請。別忘了人資最不喜歡的就是浪費很多時間在雇佣一個人身上。)
2. 我如果不符合所有職缺要求,我能申請嗎?(這一點非常重要!請大家劃重點!很多粉絲問我:我沒有相關工作經驗可以申請嗎?與其自己問自己、問不相關的人、問天問地…你為什麼不直接問負責的人資?)
3. Who should I address the application to? 我的求職申請要寄給誰比較好呢?
(這個時候,如果人資給到你他/她的姓名和聯系方式,在你的求職信中,相比於“To whom it may concern”這樣的通稱, 人資看到自己的名字 "Dear Mr/Ms/Dr..." 的時候,再加上你已經和他/她有過一段對話,這樣會加深印像和親切度。
4. 利用這樣的機會,在求職申請寄出前,讓人資記住你(和人資短暫的對話結束前,記得說謝謝人資的時間,和他/她再說一次你的名字,然後說在接下來的幾個小時、幾天,給一個時間點內,你會提出求職申請。)
以上是我常常使用的小法寶,很簡單、沒有什麼技術含量,只是你要主動出擊、不怕冷臉、不怕拒絕,你會有異想不到的驚喜!
#成功達成和人資的情感連結
人資是人,只要是人,就會因為感情聯系所影響,在千千萬萬的求職者中,你如果可以利用一通電話,在提出工作申請前,就成功達成和人資的情感連結,即便只是很淺很淺的,你也比其他沒有這樣做的求職者更有優勢。
#開場白內容
開場白,也可以理解成是求職信的引言。這裡的內容,不用多,用簡單幾句話,闡述你是從哪裡看到這個職缺信息、為什麼你想要申請這個職位、表明你申請這個職位的誠意和熱情,做到這些就可以了,其他拉拉雜雜的東西不用說。
在開場白部分,基本上你已經把上述:1️⃣ 我對這個職位感興趣具體原因 搞定了。
#內文內容
內文內容,這部分是求職信最重要的核心,也就是上述的求職信中,你必須至少要達到三個要件中的第二和第三要件:
2️⃣ 我為什麼符合這個工作的要求
3️⃣ 簡歷上想要說但是沒有說的東西
#我為什麼符合這個工作的要求
如果你上網找求職信的範例,很多都是在這個部分用1~2段去闡述,主要是說明關於求職者的相關信息,例如之前的工作經驗和擁有的專業技能。但是我個人認為這樣的方式不夠直接,不如直接用職缺要求來條列式的回復,這樣可以直接讓人資清楚的看到你為什麼符合這個工作的要求,也減少人資在你的求職信裡面找你的信息的時間。
另外,記得在你的求職信裡面,最好不要重復簡歷上的內容,利用好求職信,向雇主展現你與所申請職位的高契合度,讓雇主知道,你,是這個職缺最合適的人選。
#簡歷上想要說但是沒有說的東西
求職信的重要性,就是在於把簡歷上面沒有說出來的東西講清楚,如果你有做過與職缺相關的特別突出的專案,你要在求職信裡面,用簡單的幾句話說明;另外,你也要利用求職信,說明你對公司和職位的了解, 在這一部分,你要盡量將自己的工作經歷和公司做連結,這個跟之前說的要成功達成和人資的情感連結是一樣的,你要利用這個求職信,說明你對職位的了解,以及自己能為公司帶來什麼,進而和成功達成和公司做連結這個目的。
舉個例子, 你可以利用求職信,介紹你的個性,以及表明自己是個能夠團隊協作的人,可以很快的融入團隊,融入公司文化。這就是達到和公司做連結,這會讓你的求職信更容易脫穎而出。
#你的求職信和簡歷一樣只有幾十秒的保鮮期
在撰寫求職信的時候,請你一定要記住這幾個關鍵字:脈絡清晰、有條不紊、突出重點。因為,你的求職信和簡歷一樣,只有幾十秒的保鮮期!
你要在在求職信有限的篇幅裡面,強調自己的相關工作經驗、能力、技術、學經歷背景…等,從而突破人資的心房,成功爭取面試的機會。
這篇文章和【如何寫出讓人資看一眼就愛上的簡歷】一起看,讓你的國際職涯更順利哦!
附上一張澳洲老國會,現在的澳洲民主博物館,Joyce 上週末去玩,覺得很受啟發,想到台北的自由廣場,我們可以發展我們的國際職涯,是因為我們有選擇權,我們要珍惜,要更努力,希望大家的國際職涯發展都如這張照片,走向康莊大道,也願世界各地的人們都能擁有自由與和平❤️
#只要我們每一個人都閃閃發光大家都會看到我們來自的地方
大家可能覺得國際工作是個人的事情,其實,這也是大家共同的事情,是軟實力的體現。若要爭取國際能見度,其實可以用軟實力去體現,我很喜歡一個概念,叫做:民間外交官。就是我們每一個人都能代表我們所來自的地方和文化,不需要頭銜或是官方的什麽認證,因為只要我們每一個人都閃閃發光,大家都會看到我們來自的地方。
#只要我們每一個人都閃閃發光大家都會看到我們來自的地方
#大出走時代你必須主動規劃自己的幸福和前途
#你要的幸福自己做主
#Joyce聊成長
#Joyce聊國際工作
#Joyce聊態度
#Joyce的國際工作生活規劃課程
#我們都能擁有一點點不平凡
#另類成功
👉Joyce的不公開社團:Joyce的國際工作情報站
https://www.facebook.com/groups/joyceseestheworld
👉Joyce的IG:@joyceseeaustraliaandtheworld
https://www.instagram.com/joyceseeaustraliaandtheworld/
👉Joyce的不公開社團:Joyce的異國戀情分享園地
https://www.facebook.com/groups/joycetalkscrossculturalrelationship
個人申請自我介紹範例 在 Dr. Grace Youtube 的最佳解答
今天分享我如何準備美國牙醫學院的面試,醫學院面試是絕對要用技巧的,我把我所有那時應用到的技巧全部公開,包括所有重要環節,希望可以幫助到你們喔!
Acoustic/Folk Instrumental by Hyde - Free Instrumentals https://soundcloud.com/davidhydemusic
Creative Commons — Attribution 3.0 Unported— CC BY 3.0
Free Download / Stream: https://bit.ly/acoustic-folk-instrume...
Music promoted by Audio Library https://youtu.be/YKdXVnaHfo8
Disclaimer: This video is not intended to provide diagnosis, treatment or medical advice. Content provided on this Youtube channel is for informational purposes only. Please consult with a physician or other healthcare professional regarding any medical or health related diagnosis or treatment options. Information on this Youtube channel should not be considered as a substitute for advice from a healthcare professional. The statements made about specific products throughout this video are not to diagnose, treat, cure or prevent disease.
個人申請自我介紹範例 在 面試自我介紹範本2023-在Facebook/IG/Youtube上的焦點新聞 ... 的推薦與評價
一、自我介紹內容的「開頭」 · 個人資訊:先稍微帶過你的基本資料,像是姓名、與欲應徵職位或申請科系相關的學經歷與專長等。 · 人格特質:研究過JD 後抓出 ... 自我介紹要 ... ... <看更多>
個人申請自我介紹範例 在 面試自我介紹範本2023-在Facebook/IG/Youtube上的焦點新聞 ... 的推薦與評價
一、自我介紹內容的「開頭」 · 個人資訊:先稍微帶過你的基本資料,像是姓名、與欲應徵職位或申請科系相關的學經歷與專長等。 · 人格特質:研究過JD 後抓出 ... 自我介紹要 ... ... <看更多>
個人申請自我介紹範例 在 面試的自我介紹怎麼準備?零經驗也能輕鬆完成自介準備大公開! 的推薦與評價
嗨大家~我是台大醫學系王茹Elaine Wang 自我介紹 一直是大部分的面試當中 ... 一些不重要的內容放進自介中,而使得自己的自界顯得不具 個人 特色、冗長而 ... ... <看更多>