Skip to content

zh

從Google試算表發起API呼叫

想象一下,你是一位商業用戶,你最喜歡的工具是Excel。你可能不足夠技術化來編碼,但你很擅長寫函數、在試算表中計算和繪圖。在這篇文章中,我將向你展示如何在Google試算表中編寫簡單的指令碼,這樣你就可以從中發出一個簡單的API呼叫,並做更多強大的計算。使用起來非常容易,無需安裝。

首先,開啓一個新的空白Google試算表。然後我們會利用兩個單元格作為輸入坐標。我們可以稍後從Google試算表獲取這個單元格的值。在這個例子中,我們將B1和B2作為日期時間和日期的變數。

其次,我們創建一個按鈕。从上方的导航工具中,简单地点击“插入”然后选择“画图”选项。然后我们会画一个带有“获取空气温度”文字的矩形按钮。点击保存并关闭以创建新按钮。

在新创建的按钮上点击右键并选择“分配脚本”。我们现在先输入“getAirTemperature”,稍后我们再来创建这个方法。

第三步,在导航栏中,选择“扩展”然后选择“应用脚本”。我们将编写一些Javascript代码,类似于微软Excel的视觉基本宏脚本,所有的魔力都会在这里发生。

在代码编辑器里,复制并粘贴下面的代码:

function getAirTemperature() {
    // 使用Google試算表獲取輸入值
    let ui = SpreadsheetApp.getUi();
    let sheet = SpreadsheetApp.getActiveSheet();

    // Google試算表單元格 - [行, 列]
    let inputCoordinates = {
        datetime: [1, 2],
        date:
  created: [2, 2],
    }

    let outputCoordinates = {
        stations: [2, 4],
        readings: [2, 6]
    }

    let datetime = sheet.getRange(
        inputCoordinates.datetime[0],
        inputCoordinates.datetime[1]
    ).getValue();

    let date = sheet.getRange(
        inputCoordinates.date[0],
        inputCoordinates.date[1]
    ).getValue();

    let result = ui.alert(
        '請確認以下參數:',
        'datetime' + ":" + datetime + "\n" +
        'date' + ":" + date + "\n",
        ui.ButtonSet.YES_NO);

    if (result == ui.Button.YES) {

        // 對天氣API發送HTTP呼叫
        let apiCaller = ApiCaller()
        let response = apiCaller.getAirTemperature(datetime, date);
        Logger.log(response.getContentText());

        ui.alert('成功獲取氣象數據');

        let data = JSON.parse(response.getContentText());
        let stations = data["metadata"]["stations"];
        let readings = data["items"][0]["readings"];

        for (let i = 0; i < stations.length; i++) {
            // 將輸出值設置到Google試算表
            sheet.getRange(
                outputCoordinates.stations[0] + i,
                outputCoordinates.stations[1]
            ).setValue([stations[i]["name"]]);

            sheet.getRange(
                outputCoordinates.readings[0] + i,
                outputCoordinates.readings[1]
            ).setValue([readings[i]["value"]]);
        }


    } else {
        ui.alert('權限被拒絕。');
    }

}

ApiCaller = function () {

    var weatherApi = {
        "airTemperature": {
            "method": "GET",
            "endpoint": "https://api.data.gov.sg/v1/environment/air-temperature"
        }
    }

    return {

        getAirTemperature: function (datetime, date) {

            datetime = datetime.replace(/"/g, "")
            date = date.replace(/"/g, "")

            var method = weatherApi.airTemperature.method
            var url = weatherApi.airTemperature.endpoint + "?date_time=" + datetime + "&date=" + date

            var options = {
                "method": method,
                "contentType": "application/json",
                "headers": {
                    "Content-Type": "application/json"
                }
            };

            return UrlFetchApp.fetch(url, options)
        }
    }

}

如果你不理解这段代码在做什么,别慌,我来解释:当点击按键时,getAirTemperature方法会被触发。这个方法会从Google试算表中获取输入值,弹出一个等待用户确认的提示框。一旦用户确认,它就会使用UrlFetchApp.fetch发出一个API呼叫,获取新加坡的温度,然后它会遍历所有结果并显示输出。

第一次在按钮上点击,你会看到下面这条消息。

继续进行,登陆并选继续进行不安全的选项进行开发。

然后一個彈出式視窗會詢問是否確認輸入值:

點擊“是”繼續。如果一切順利,你應該可以看到成功確認的信息。

最后,我們從API調用中獲取溫度值,並將結果輸出到Google試算表。

就是这么简单。

如果你是一位开发人员而不是商业用户,你可能希望在你最喜欢的代码编辑器进行脚本更改,如VScode,并获取更好的源版本控制。你可以使用命令行界面clasp在你本地进行开发,而不是在线使用Apps Script编辑器。一旦你已经安装了Node.js,你可以使用以下的npm命令进行安装:

npm install @google/clasp

然后根据这个文档的说明操作:

https://developers.google.com/apps-script/guides/clasp

例如:

clasp login
clasp clone <你的脚本ID>

在你的VS code编辑器里进行更改,然后上传新的应用脚本。

clasp push

注意:你可能需要在访问https://script.google.com/home/usersettings后,再重新启用 Apps Script API。

总的来说,Google试算表是一个强大的用于计算的工具,从中直接发起API调用對於更复杂的使用场景而言更有用。你可以将它用作进行计算的前端,而对于商务用户来说,它比使用定制的UI更加友好。如果你有任何关于從Google試算表發出API調用的問題,請让我知道。编码愉快!

出版自己書籍的過程

幾個月前,我透過亞馬遜的自我出版服務在網上出版了一本書。僅給予澄清,我不是一個專業的作家或藝術家;我在金融科技行業擔任軟件工程經理。寫這本書的動機是為了提高我的溝通技巧——我在去年COVID-19封鎖期間自我反思時確定的目標。

我受到加拿大臨床心理學家和教授喬丹·彼得森(Dr. Jordan Peterson)在YouTube視頻的啟發。他建議:“如果你能思考,說話,和寫作,你就絕對致命。”這句話極大地激勵了我,所以我報名參加了他的自我作者計劃,該計劃提供了自我反思的在線提示。同時,我加入了一個Toastmasters俱樂部以提高我公開演講的技巧,並遇到了一位鼓勵我寫作並出版書籍的導師。

開始並不是困難的部分;挑戰在於維持寫作的習慣,尤其是當我感到沒有動力時。像我手機上的通知和負面的自我對話(“我不是好作家;沒有人會閱讀我寫的”)讓我經常放棄。儘管知道我的書可能不會成為暢銷書,但我繼續寫作,忠於我的目標。

讓我失望的不是收到負面反饋,而是完全沒有收到反饋。在如今的互聯網時代,傳統書籍面臨來自YouTube和播客的激烈競爭。我仍然欣賞印刷文字,並至少每週閱讀一本書以保持思考並避免過度思考和抑鬱。

我寫日記的主要目標是自我提升,而不是公眾認知。但是,即使是我亲密的關係,比如我的女朋友,也沒有花時間閱讀我的作品,這讓我感到沮喪。當我在社交媒體上宣布書籍出版時,確實收到了一些積極的反饋,但實際上只有兩個人購買了它——這是我努力的清醒驗證。

直言不諱的事實是,如果你不是像迪士尼公司的CEO,傑夫·貝佐斯,或伊隆·馬斯克這樣的知名人物,你的貢獻可能會被忽視。這也是我從自我出版中學到的一課。也許,如果我更為知名,我可以賣出一百萬份。一本未被讀到的書感覺像是解鎖了新的孤獨層次。也許我需要學習市場營銷策略或在進行另一個自我出版計劃之前理解觀眾的期望。

如果你對我的旅程感興趣,並正在尋找靈感,我的書現在可以在亞馬遜上找到:

https://www.amazon.com/dp/B09FHXLD4G

失落的訊息

一個晚上,我的手機螢幕亮起了一條WhatsApp訊息,讓我驚醒。以為是緊急事態,我很意外發現只是一個女孩說嗨。"Victor, 你過得如何?"來自香港的前女友Joanne發來的訊息。"你收到我的訊息了嗎?"她問道,"為什麼你沒有回覆?"

"我在從香港搬到新加坡的時候換了手機號碼,"我解釋道。當我說著的時候,我心中湧現出對她的思念,想知道遺失的訊息是什麼。

我們就讀不同的大學,選擇不同的學位。我對科學有興趣,選擇化學作為主修。我的目標是揭開宇宙的神秘面紗。和我不同,Joanne 是實際的。她進入會計領域,希望取得好成績,建立穩固的職業生涯,並獲得豐厚的薪水——同時找到一個合適且富有的丈夫。

在我們的一次午餐約會中,我建議道,"讓我帶你去我最喜歡的小販中心吃5美元的蛋炒飯。"她不滿意,回答說,"不,我想去日本餐廳吃美味的壽司,即使只是幾顆米。"我嘗試改變話題,談論我們的度假計劃。"我們去新加坡的圣淘沙島旅遊如何?"我提議。"不,我想去歐洲,去看瑞士的雪山,"她堅持。

金錢是個絆腳石。"這不僅僅是關於金錢,"Joanne詳述道。"這關乎你的抱負,去努力工作,賺更多錢,提升你的社會地位。這就是一個負責任的成年人該做的。"即使我長時間工作,但量子力學、薛丁格方程式和黑洞理論的專業知識並沒有讓我得到高薪工作。"Victor,你能不能成熟點?"她問。

最終,我換了工作,並得到了加薪。隨著收入的增加,我覺得需要提升自己的生活水平。當我告訴Joanne我正在考慮買車的時候,她立刻驚喜地叫道,"好呀!"我買了一輛藍色的Mini Cooper,她對此比我更興奮。

我開始每天用我的新車接送Joanne。我就像她的私人司機,經常免費接送她的家人和朋友。雖然維護車輛的費用很高,但維護和Joanne的關係更是昂貴。

Joanne非常喜愛名牌手袋。即使我無法正確地說出她最愛的牌子的名字,我也必須送她奢侈的禮物。不管是Gucci還是Chanel,其中任何一個手袋都會花掉我好幾個月的薪水。為了償還我的信用卡欠款,我不得不削減我給父母的零花錢,這讓我感到內疚。

在一頓浪漫的日本餐廳晚餐中,Joanne問,"Victor,你是不是比愛你的車還愛我?"我試圖以幽默來緩解這個緊張的時刻,答道,"當然,我愛我的車,"但她並不覺得好笑。我們繼續為些小事吵架。"Victor,你能不能更成熟一點?"她又問了。

我們是一對性格迥異的情侶。我是一個宅男軟體開發者,我更喜歡與機器交談而不是人。另一方面,Joanne是一家銀行的外向型關係經理,以軟性但堅定的口吻銷售金融產品。那意味著什麼?這意味著她賺的錢比我多。

經過18個月的交往,Joanne決定是時候做一個重要的選擇:繼續與這個"不成熟的傢伙"交往還是尋找替代品。在我們的一次通常的外出中,我感覺到有些不對勁。她變得冷淡,拒絕握住我的手。最後,在一個難熬的沉默之後,她說道,"Victor,我們分手吧。"我的心像是被撕裂般疼痛,我努力地忍住不流淚。"Victor,能你不能更成熟一點?"她再次這麼說。

我們在分手後仍然是朋友。雖然我依然在她生日時送她禮物,但她從未回贈。時間總能愈合一切,有一天,她的一條出乎意料的訊息突然出現。內容是,"嘿 Victor,我要結婚了。你想來參加嗎?"我有些惱怒,開始打"恭喜",但我從未按下送出。反倒是刪除了這則訊息。"我為什麼要去呢?"我對自己這麼想。

我後來在Facebook上看到了她的婚禮照片。她看起來很漂亮,她的丈夫看起來很富有,受過良好的教育。"真是浪費錢,"我這麼想,但很快就把那個念頭拋到腦後。我已經走出來了。人際關係建立在試錯上,大多是錯誤。如果你不想重蹈覆轍,就繼續看下去。我有很多關於如何應對生活挑戰的建議。

財富

當我還是個孩子時,我的媽媽總是告訴我,“要努力讀書!否則,你可能會像那個垃圾工人一樣。”這訊息十分清楚:我並不想靠收集垃圾來謀生。由這種恐懼所驅動,我在學校努力學習,最終進入了大學。

大約十年前,我以化學學士學位畢業。然而,由於香港是國際金融中心,理科畢業生的就業機會非常有限。

我的第一份工作與我所學的專業無關。我在日本的服裝店Uniqlo做了一份初級銷售員的工作,每天工作時間很長。這份工作讓我感覺像是在受罪。就像希臘神話中的西西弗斯,不停地將石頭推上山坡,只是為了讓它滾下來,我會整齊地摺好衣服,然後客人進來就把它們弄亂。這種情況讓我質疑我受的教育的價值。

最終,我辭職去澳洲做了一年的打工度假。我做了各種工作來生活,其中一份工作,諷刺的是,在新年夜晚會做了一名垃圾工人。醉酒和嘔吐的惡臭令人難以忍受。這是一個警醒:如果我聽了我媽媽的話,也許我就不會找到自己在這樣的角色中。

在澳洲呆了一年後,我回到了香港。仍然無法在我專業領域找到工作,我轉變了職業,學習编程並成為一名軟件工程師。然而,在一家有聲譽的顧問公司工作,我卻困擾於冒牌者症候群。我找的解決辦法是繼續學習。我攻讀了一個兼職的計算機科學碩士學位,然後是工商管理碩士學位,希望能有更好的職業生涯,並避免變成我曾經做過的垃圾工人。

在我攻讀MBA期間,我遇到了Jonathan,他在一家軟件公司擔任高級銷售總監。他幫助我轉行,成為一名技術銷售顧問。這份工作需要我娛樂客戶,通常是通过過度飲酒——這是我發誓再也不會做的事情。

一個難以忘懷的夜晚,在與一個大客戶的業務晚宴上,我因為飲酒過度而感到極度不適。我藉口到洗手間去嘔吐,這一刻讓我反思我的選擇。我回憶起我在澳洲當垃圾工人的日子,那正是我努力避免的境地。

我的新工作還涉及到在中國各地出差,並在KTV中娛樂客戶,這經常帶給我道德上的困境。儘管我看似有了好運,但我卻無法不對那裡工作的女性過度同情。她們沒有優先考慮教育的奢侈,在我無法想象的困境中掙扎。

在反思我的經歷時,我體認到我媽媽是對的——教育是無價的。然而,我一方面在如KTV這樣的地方用酒精娛樂客戶,與那些KTV裡工作的女性一樣。我們的掙扎並無太大區別。所以,在對他人妄下評論之前,記得:每一份工作背後都有一個你可能不知道的故事。不論他們的職位如何,把每個人都當作應得的尊重對待。謝謝你。

需要完成的工作

我確定你在網上購物時經歷過這種情況。你找到一個價格吸引的商品並決定購買它,使用網上銀行進行付款。然而,出現了一條錯誤信息說:"對不起,出了點問題;交易失敗。請稍後再試。"這很煩人,對吧?也許你受夠了,決定放棄。但在你這樣做之前,考慮一下當你使用服務或產品時的"手頭任務"。這個問題對供應商和你都至關重要。

在過去,我曾在一家銀行擔任技術主管,我發現金融業充滿了縮寫。我以前工作的銀行匯豐,有一個相當諷刺的自稱:"How Simple Becomes Complicated." 如果你認為在網上銀行網站上按一個鍵就很簡單,那你就錯了。這個過程非常復雜。商業團隊收集需求,設計團隊創建佈局,開發團隊撰寫,測試並部署軟件。平均而言,僅更改網頁上的一個字符就需要兩周的時間。

我是ASD-ASP團隊的一員,這意味著我在亞太地區負責加速規模交付,我負責的是創建區域功能。如果你來自馬來西亞,你無疑已經使用過PayNet的FPX(Financial Process Exchange)服務。在新加坡,一個相似的服務被稱為PayNow。

經過幾個月的辛勤工作,我創建了該功能並將其投入生產。我想:"終於,我的工作完成了!"現在,當你在Shopee上購買耳機時,你可以選擇FPX作為付款方式。你在點擊"支付"按鈕後完成了購買,我對我的工作感到滿意。

然而,想像一下如果你是視障人士,依賴輔助工具來導航網站。你不會知道你只有10分鐘的時間可以完成交易。輔助工具會大聲讀出每一秒,倒數時間,讓你沒有時間完成你的任務。這是一個真正的痛點,我當時沒有考慮到。直到很久以後我才收到實際用戶的反饋。

我試圖解決這個問題,但在這樣一家大公司中幾乎不可能。我與商業分析師交談,他們說他們的工作已經完成了,因為他們主要關心的是利潤。設計師宣稱他們的工作已經完成,他們更喜歡創建華麗的動畫,而不是關注輔助功能。工程師們也堅持他們的工作已完成;他們想轉向機器學習和區塊鏈技術。

我無法說服我的同事,部分原因是我不瞭解亞里士多德的三種說服方式:Ethos、Logos和Pathos。但現在,我想聽聽你的想法。在你使用產品或服務之前,考慮一下它應完成的工作是什麼。

哈佛商學院的教授克雷頓·克里斯蒂森森(Clayton Christensen)闡述了這種方法。他的論文提出了問題:"一個人僱用一種產品來完成什麼任務?"理解這個任務會使找出改善產品的方法變得更容易。

所以當我使用網上銀行時,我的工作就是完成交易。我不在乎華麗的動畫或者系統是否使用了AI或加密貨幣。產品團隊一直在問錯誤的問題,並嘗試解決錯誤的問題。我們必須超越競爭對手,確保所有人,包括視覺障礙者,都能成功交易。馬來西亞政府甚至有規定要求,FPX交易必須成功率達到70%,否則將面臨處罰。

工作還沒有完成,還有一頭大象在房間裡。下次你在網上銀行遇到問題時,問問自己:什麼是"需要完成的工作"?對那些面臨同樣問題的人,尤其是視障人士,表示同情。作為顧客,將你的需求告訴銀行。通過表達你的憂慮來推動變革。這個事情不容忽視。你要做你想在世界上看到的變化。

在亞太地區的網站和移動應用上進行本地化工作

首先,為什麼這篇部落格文章會存在?我們試圖回答什麼問題呢?我在英國的一位同事特別問我關於在亞太地區的本地化、工具,以及最佳實踐——或者說沒有這樣操作的原因。

由於我的公司已經擴展到亞太區的多個地方,包括新加坡、菲律賓,和越南,我在這裡討論前端的本地化。

你可能會在前端開發中遇到「i18n」這個詞。曾經搞不清楚18代表什麼嗎?其實並非代表18種不同的語言;它指的是「internationalization」一詞中第一個i和最後一個n之間的字母數量。

讓我先自我介紹一下。我曾經在一家銀行擔任技術領導,現在想要分享我在銀行業的一些過去經驗——一個充滿縮寫詠詠的領域。你很快會意識到,銀行業的一切似乎都和縮寫有關,這看起來更專業,也使意思更為混淆。

我曾為HSBC工作,這是一個笑話般的縮寫,意思是「如何把簡單的事情變得複雜」。在網站上改變甚至一個字符也遠遠不是一件簡單的事情。複雜的過程涉及多個團隊——從商業需求到代碼審查,品質保證,和部署,往往需要花費兩個星期的時間來改變產品網頁上的一個詞語。

我是一個叫做ASD-ASP的團隊的其中一部分,這代表在亞太地區的加速規模化交付。我的角色涉及為網站和移動平台構建區域特性,比如在馬來西亞的FPX和在香港的商業PayMe。我提到的例子都是來自真實生活的經驗。

例如,讓我們考慮下面顯示的頁面:

注意到什麼問題了嗎?問題在於計時器。如果你的視覺有障礙,並且依賴訪問工具來導航網頁,你將對剩餘完成交易的時間一無所知。更糟糕的是,如果你嘗試讓工具將計時器大聲朗讀出來,它將每秒倒數,讓你沒有時間來完成交易。

我們使用Adobe Experience Manager (AEM)來構建這個頁面。雖然AEM允許非技術的團隊成員進行更新,但實際情況通常涉及到前端工程師進行文字更改或用XML構建對話框,創建了不必要的工作層。

在移動方面,我們的內部工具用Python腳本從Confluence頁面讀取各種語言的副本,以生成本地化的JSON文件。開發者然後在應用程序中包含此文件。這種方法常常會創建出比解決的問題更多的問題,我馬上就會解釋。

副本團隊通常使用Confluence頁面來標籤前端設計。這很容易出錯,因為設計截圖往往會過時,而工程師可能使用不一致的鍵來代表同一件事情。在不同頁面上重複使用鍵當值被更新時,會導致意外的副作用。

接下來,考慮下面的螢幕可能會遇到的本地化問題:

這裡有五個主要的陷阱:

  1. "country"這個詞可能會有問題。例如,因為國家安全法,列出台灣或香港作為單獨的國家可能是非法的。

  2. 沒有本地化搜索欄也是另一個問題。搜索行為和排序算法在語言和地區之間有所不同。

  3. 錯誤訊息也需要本地化,而不僅僅是翻譯。最好把錯誤代碼映射成本地化信息,而不是翻譯整個字串。

  4. 對於翻譯缺乏版本控制可能是災難性的,尤其是當商業需要經常變化的時候。

  5. 忽略訪問性翻譯可能會對使用者體驗有害,尤其是對於視覺障礙的個體。

此外,像Google Translate這樣的機器翻譯是非常不被鼓勵的。為了實現更成功的本地化,與能夠隨時識別潛在問題的本地團隊合作。

對於本地化有任何問題嗎?隨時提問。:)

關於不完美

寫一本書難嗎?答案是有爭議的。如果你的唯一目標是成為暢銷書作家,那肯定是充滿挑戰的。寫作、練習、編輯和潤飾的過程需要很長時間。而令人不安的是,如果你是新手,很少有人會去閱讀你寫的東西。然而,如果你承諾每天寫50個字或每周寫一篇文章,寫作就變得容易了。如果你一年內持續寫作,你就有足夠的素材可以編成一本書,或者是一系列的合集。

演講難嗎?答案既是對的也是錯的。在觀眾面前演講可能會讓人感到恐慌,尤其是當你希望能完美無缺的演出來讓所有人驚訝。然而,只需講一個主題兩分鐘並不困難。任何人,不論他們的聲音、身體語言或說話技巧如何,都能辦得到。如果觀眾能抓到你的主要觀點,那就已經是一次成功的演講了。沒有必要深究,或讓你對公開演講的恐懼壓倒你。

維持健康的生活方式困難嗎?一開始看,每天都需要去健身房,早起離開舒適的床鋪,付出運動所需的汗水與努力,感覺似乎相當困難。但是,每天跑步二十分鐘或是每天做幾下俯臥撐是完全實行得到的。一旦迈出第一步,就有可能激發你繼續前進,發展一種積極的習慣。

交往難嗎?沒有人說過這會很容易,但你可能會對其困難程度感到驚訝。在朋友面前,你可能表現得信心滿滿,但在一個美女面前,你可能會變得膽小如鼠。儘管她對你來說並不構成威脅,但是對於尷尬的恐懼可能會阻止你的行動。還有其他的困難,比如她可能已經有男朋友,或者她對男性沒有興趣。結果,她可能不會被你的尷尬所吸引。但是,這都不是關鍵。最重要的是享受你的時間,並進行有意義的對話。

雖然這些活動的清單可以不斷延伸,但其中有一個共同點:我為自己設定了高標。我沉迷於細節,並對成果、公眾輿論和自我意識持續關注。這種心態可能使我抱負高遠,但也導致我耽誤時間。我在對自己的想法有了確定性之前並未開始寫作。如果我感到準備不足,我會拒絕演講的機會。如果我找到越多的藉口,我就會越容易取消健身的安排。如果我覺得需要給他人留下好印象,我就會對與陌生人搭訕感到猶豫不決。我的恐懼經常阻止我邁出第一步,導致我無法行動。單單思考而不去行動,只會讓我們白白浪費時間。

然而,行動起來后,會鼓舞人們進一步思考並促使他們持續行動。我意識到事情往往並不像我起初想象的那麼糟糕。我已經接受了我的文章可能不會得到太多的點讚,我的演講可能不會贏得國際大獎,我可能達不到六塊肌的目標,我的伴侶可能不會是超模。而這一切都沒關係。結果是我們不能控制的,取決於運氣和各種機會的結合。

真正重要的是學會熱愛過程:寫作中尋找治療效果,講話中的信息傳遞,運動帶來的活力,還有社交中的樂趣。接受生活中的不完美可以幫助你克服冒名者症候群,或者是害怕犯錯,覺得自己是個騙子的感覺。即使是像阿爾伯特·愛因斯坦這樣的天才,也曾深受冒名者症候群的困擾。那麼我們這些普通人有什麼理由去質疑自己的成就呢?

那麼,什麼是成功?成功並不是由結果來定義,而是由進步來定義:寫作能力的提高,講話練習的增加,健康狀況的改善,和社交技巧的提高。每一個朝著持續進步的小步驟都是成功。這是你我都能達到的。

持續改進

感謝您花時間閱讀我的書,與我一起經歷我生活中的經驗。您可能有自己一套挑戰和障礙。這就是為什麼您找到我的書-瞭解我如何成功導航我的。

我在我最初的十二個戀愛關係中失敗了。這並不是因為我不吸引人; 實際上,我在前六次失敗後改變了我的外表,選擇了更好的髮型和更適合的衣服。然而,我仍然在掙扎。我希望每次新的關係都能比上一個改善,但婚姻仍然遙不可及。我分享我的經驗是希望您能避免犯同樣的錯誤。

那麼,為什麼關係會失敗呢?這可能是因為你的品質不如其他潛在的伴侶吸引人,使你在吸引力或財務上變得不那麼理想。你的伴侶可能僅僅更喜歡其他的人;畢竟,海裡有很多魚。

你能做什麼呢?我的書建議您專注於兩個字:持續改進。避免陷入嫉妒或自憐之中,遠離負面情緒。

為了提升,全力以赴地投入生活,深化你的人際關係,展示你最好的品質。致力於提升你的職業生涯,擴大你的社交圈子,提高你的身體健康。這種改變不僅會改變人們對你的看法,而且如果一個潛在的伴侶在你和其他人之間做選擇,也會提高你的機會。人們會將你視為一個重視自我提升和長期成長的人。

看到了嗎,現在的情況不代表未來的成功指標。我現在可能正在面臨挑戰,但這不能定義我的未來。在實現目標之前,您必須首先展示您的潛能。自我提升至關重要; 它允許您的伴侶識別你的潛在才能和抱負。

你的競爭對手可能並不致力於個人成長。即使他們現在在某些方面超越你,你也可以通過持續的努力來彌補這個差距。時尚感就是一個例子。如果你和你的女朋友擁有相似的風格,她可能認為你們十分相配。

如果你現在的關係並不能工作,這並不是世界的結束。持續的改進將會擴大你的機會。關鍵是避免向你的伴侶施加壓力,讓他們對關係做出決定。沒有人喜歡被強迫;人們更喜歡自由地做出選擇。給你的伴侶空間決定他們是否看到與你的未來。

你是接受這種哲學的那種人嗎?這就是你拿起這本書的原因-獲得靈感,成為一個更好的人。不要擔心犯單一個錯誤。维持關係中積極的氛圍才是重要的。注入幽默,參與健康的辯論,並和公眾演講一樣設定挑戰。知道何時恭維和奉承; 在正確的時候說對的話可以提升關係。

此外,擁有超越自身利益的人生目標也很重要。如果你表現得自私,沒有女人會想和你共享未來。瞭解你在更大的社會中的責任。努力成為一個能對世界作出正面貢獻的人。那是一種吸引人的品質。

總的來說,請記住自由的原則。讓你的伴侶在不感到壓力的情況下選擇你。少關注你的競爭對手,更多地散發出積極的能量。

我希望您會覺得我的書對您有幫助。如果是這樣,請推薦給可能會受益的其他人。這不僅會提升你的戀愛關係,也會使你成為更有價值的同事和朋友。

別怕,我的導師在這裡。

你是否對在群眾前演講有恐懼?我有。這就是我會加入Toastmasters—為了練習更多和努力克服我的恐懼。在一場社交活動中,我有幸遇到了Ernest Chen,並向他請教。多得他慷慨接納我為他的學生,我今天才能寫到這個主題。

隨著時間的推移,我的恐懼開始消退。我的焦慮減少了,尤其是在一小群朋友面前演講時。然後,上個月,我遇到了我導師的一個學生—一個只有十三歲的女孩。她夢想成為一名成功的外交口譯員。若想在國際場合取得成功,公共演說是極其重要的。她的雄心大大地震撼了我們,我的導師在此助她實現夢想。

要實現這個夢想,需要大量的練習和訓練。我導師在課堂上嘱咐她做一個兩分鐘的報告。主題可以是任何東西—學校,奧運,或者當天的課程。由於我們只有五個人,在似乎足夠簡單。然而,她因緊張而停滯不前,特別是在沉重的來自她母親的壓力下,她母親催促她說話。她愈加地猶豫不決,她也愈來愈焦躁。

最終,她痛哭失聲了。Ernest,我的導師,安慰她:“別怕,我在這裡幫你。只需要開始說出第一句話,剩下的就會自然而然地說出來。沒有對錯。” 她把他的建議銘記在心,勇敢地演說了自己的報告,在過程中重新找回了自信。

我的導師會快速地幫她克服她的恐懼嗎?很不可能。學習不要恐懼並不會讓你的恐懼在一夜之間消失。我導師經過多年的實踐和努力。那個年輕的女孩並沒有立即征服她的恐劇,但她進步了。更重要的是,她每週越來越自信。

現在,作為她年長二十年的人,我在該輪到我說話的時候,也會感到壓力。尽管如此,我还是應對自如,尤其在小型环境中。我繼續運用我從我的導師那裡學到的知識。但即使有大量的練習,恐懼Never完全消失。

上週,我作為工程經理,面對著七十人,包括在新加坡的跨國公司的高管們,做了一個關鍵性的簡報。儘管我刻苦地排練,我對公共演講的恐懼仍然存在。我的內心聲音搖搖欲墜,充滿了懷疑,直到我想起了我的導師的話:“別怕,只需開始說出第一句話。”

雖然壓力很大,但是這場簡報進行得十分順利,甚至還給客戶公司的CEO留下了深刻的印象。我的公眾演講技巧似乎在那個小時的其他六場發言中脫穎而出。

我想對Ernest Chen表達我由衷的感謝,他是一位出色的公眾演講導師。我知道我要花上好幾年的時間才能達到他的水平,但他已經教會了我克服恐懼的第一步。每當我在我的導師不在場的情況下發表演說時,我會記得他令人安心的話:“別怕,你的導師在這裡。” 這種格言已經成為我前行的指路燈,增強了我的信心,幫助我更自由地交流。

我的冒名頂替者症候群、不安全感和抑鬱症

冒名頂替者症候群在 IT 專業人士中很常見,我也不例外。持續的自我懷疑和不適感一直困擾著我。儘管我在 EY(一家極負盛名的顧問公司)擔任軟體開發工程師,但我經常感覺自己是個騙子。我的學術背景並不包含電腦科學元素;我的第一份工作是在市場營銷中,遠離資訊科技。起初,我的角色主要著重於使用 JavaScript 進行前端網頁開發。然而,在被分配到金融科技項目之後,我變成了主要的 Android 應用程序開發者。儘管我提交了經過嚴格測試的高品質程式碼,但這種恐懼仍然存在:如果我的同事發現我並不是最有見地的專家,會怎麼樣?

作為一名專業人士,我需要知道雲計算、網絡、架構、安全性等等。在不斷變化的技術環境中,精通所有這些領域幾乎是不可能的。

加劇內在壓力的是,我為客戶回答他們可以在線查找的問題而收取高時薪。我的主管是典型的優質顧問,他用關於數字化轉型、人工智能和區塊鏈等流行詞匯來打動客戶。與此同時,我的日常任務經常感覺十分瑣碎,例如調整按鈕在不同屏幕上的對齊,這個任務比看起來要複雜得多。

為了對抗我的不安全感,我在 2015 到 2017 年間於香港中文大學攻讀了兼職的電腦科學碩士學位。然而,額外的學習並未緩解我的冒名頂替者症候群;反而加重了。學習學術論文和複雜的主題,如邊界網關協定(BGP)和機器學習演算法,使我感到更加不適。

我的冒名頂替者症候群也滲透到了我的個人生活中。當我在繁忙的工作和兼職學習中遇到我的女友 Jo 時,我的不安全感使我認為我不配得到她。我一直害怕會失去她,這對我們的關係產生了巨大的壓力。不幸的是,我的煩惱導致我們分手,這使我更加痛苦。

隨著時間的推移,我開始自我反省,並從像喬丹·彼得森的《生活的12條規則》這樣的書中找到了慰藉。我意識到,我的冒名頂替者症候群和不安全感正在破壞我的職業生活和個人生活。

人們經常誤解抑鬱症與物質環境有關,但我的問題更多的是普遍的絕望感。為了提升我的情緒健康,我改變了工作,專注於體能鍛練,並努力解決問題的根本原因。

今天,作為一個在香港大型零售銀行的工程經理,我依然經歷著冒名頂替者症候群的困擾。但我已經學會將其接受為終身學習的動力,而不是一種讓人膽怯的恐懼。透過分享我的故事,我希望能給面臨類似挑戰的人帶來安慰,鼓勵他們不要犯我曾經犯的錯誤。