Tuesday 6 November 2018

how-to-recursively-create-subfolder-in-each-folder-of-a-directory-in-cmd

test.cmd:
@echo off
setlocal
for /f "usebackq tokens=*" %%a in (`dir /b /a:d`) do (
  rem enter the directory
  pushd %%a
  echo In Directory: %%a
  md child
  rem leave the directory
  popd
  )
endlocal
Notes:
  • dir /b /a:d is evaluated once, so the list of directories is fixed
  • for /f will loop through this fixed list exactly once.
Example output:
> test
In Directory: Documentation
In Directory: subdir
In Directory: test
In Directory: test with space
In Directory: test1

> dir /b /a:d /s child
F:\test\Documentation\child
F:\test\subdir\child
F:\test\test\child
F:\test\test with space\child
F:\test\test1\child

Further Reading

  • An A-Z Index of the Windows CMD command line - An excellent reference for all things Windows cmd line related.
  • dir - Display a list of files and subfolders.
  • for /f - Loop command against the results of another command.
  • md - Make Directory - Creates a new folder.
  • pushd - Change the current directory/folder and store the previous folder/path for use by the POPD command.
  • popd - Change directory back to the path/folder most recently stored by the PUSHD command.

Sunday 28 October 2018

2018 第五本書 The Four: The Hidden DNA of Amazon, Apple, Facebook, and Google

The Four: The Hidden DNA of Amazon, Apple, Facebook, and Google




這本作者詳盡分析為何AmazonAppleFacebookGoogle這四騎士的成長速度與規模,已經徹底改變市場,而且將對每個人與企業的未來,產生絕大的影響,而且最精采的地方是,作者用了人類學、心理學和人類行為學來解釋商業現象,更清楚瞭解為何四騎士為何能在這麼短時間,成為左右全世界的科技巨獸。
  
    作者稱AppleAmazonFacebookGoogle分別代表消費的四騎士(Four horsemen),作者一一分析他們的現況與起源的方式並且在現有狀況下努力建立類比護城河保護自己的領土抵擋潛在對手,在閱讀後發現四騎士都有一個共同的點就是深入消費者生活與透過與消費者互動收集資料分析資料,進而利用資料來用優化自己。

Amazon : 在亞洲的我對此比較沒有感覺與真實體驗,但是在美國卻是第一零售龍頭,美國人生活中幾乎不能缺乏的,很多人討論著Amazon成功的原因,但是就如作者說的Amazon是滿足人性的消費Amazon 靠著全力專注於消費者,透過執行OODA戰術來取得消費者,就如許多書上說的貝佐斯都留一個空位給消費者坐,要所有人從消費者角度來想,而observe(觀察)orient(定位)decide(定位)act(行動)來改善他們讓消費者購物方便降低與消費者之間的障礙。 讓顧客購物方便,就讓允許Amazon監聽自己的對話收集數據對話,分上所有資訊,讓Amazon了解比自己更了解的購物偏好。而Amazon一開始起來的原因就是說故事 Amazon靠著說故事提供宏大願景,重塑公司與股東之間的關係加上強力的執行力。
         故事: 全球最大商店
         策略: 經得起時間考驗的大型消費者利益投資--- 價格便宜、選擇眾多、快速送達。

Apple : 不只是科技,更是精品。
      2016年時iPhone在智慧型手機市占率不到15%,卻抱走近八成利潤,但是為什麼Apple可以做到這樣呢? 就讓Apple產品打造成奢侈品,奢侈品是聚寶盆。由奢侈品來看就知道為什麼Apple變每人都想要了,因為奢侈品的成功源自一絲不苟專注於細節,以及近乎超人的專家手藝而Apple的奢侈的語言是簡潔,簡潔是最極致的複雜,不論是產品或是店面都是強烈表達簡潔,也讓消費者感受到,高價象徵著品質與尊榮,所以即使現在iphone Xs系列現在是35起跳,但是相信還是很多人會願意買的,而這個就是Apple的護城河,保護的Apple的品牌,讓Apple享有高利潤與競爭優勢,Apple是四騎士中唯一的奢侈品,可以高高在上不必蹚價格戰的混水。


FaceBook :  長壽的關鍵是愛,最棒的廣告收入來源,也是愛
        Facebook公司擁有三個產品: FacebookWhatsappInstagram,作者用marketing funnel來描述facebook就是最上方的awareness(激發需求)階段。Facebook是史上絕無僅有的媒體公司,即有規模,又有瞄準個人。事實上,Facebook靠著分析我們每個人的所有資訊,可能比朋友還懂我們,Facebook追蹤與掌握越來越多細節的數十億用戶資料,靠著用戶資料來獲取財富,為了達此目的Facebook也是不斷摧毀潛在競爭者也是假扮自己是平台而不是媒體,但是目前Facebook還是全球最大的社群網站,在做產品時應該定位清楚,有時也要故意模糊讓政府與競爭者不懂自己,來逃過很多問題,例如今年Facebook最大的爭議就是隱私權,資料被竊取而不想被罰。

Google:無所不知、全知全能的現在之神
   Google 一開始藉著幫使用者資料方式來擷取各媒體業的資料庫,也是各媒體業上的主管對此不熟讓Google趁機而入讀取資料,Google以暗中進行的搜尋本質,吸收全球的公開資訊,等潛在受害者發覺時為時已晚,Google現在幾乎掌握極度完整的知識和競爭者無法攻下的進入障礙和不停止的擴展自己的領域。

作者在第6章四騎士在初期都犯下兩種詐欺罪,第一種是拿其他公司的IP,改頭換面後獲取大量利潤後又誓死保護那個IP。第二種詐欺是從他人建立的技術得利,原創者什麼都得不到,印象最深刻就是Facebook,作者說的對,Facebook讓數百個品牌在Facebook上建立品牌社群,接著又鼓勵消費者替品牌,免費特Facebook打廣告吸收成員。 當建立好後,又轉身向各品牌收取廣告費用,例如自然觸及率,這一切都會靠著Facebook的演算法。一開始品牌以為是Facebook房東,結果只是租客,一切控制權都在Facebook手上,Facebook可以隨時將租客停權。

作者在第七章提出在從心理學的角度,所有的成功企業靠的是主攻人類身體三個區域吸引我們的腦、我們的心或者是我們的生殖器,要確認自己主攻那一塊,例如Google主攻大腦,輔助大腦,讓我們越來越信任Google搜尋的結果,甚至勝過相信我們自己的記憶。

第八章作者提出四騎士有八個共通點: Product differentiation (產品差異化)visionary capital(願景資本)global reach(全球觸角)likability(親和性)vertical integration (垂直整合)AI (人工智慧)accelerant(職涯助力) geography (access to talent 地緣性),並一一解說 就以global reach 就是
  • Google’s vision: Organizing the world’s information.
  • Facebook’s vision: Connecting the world.


第十章是如何在如此快速和競爭的環境中成為一名成功的專業人士的商務課程。 作者提出跟隨你的專業,可別跟隨著你的熱情,在此章作者提出很多重點,對我而言幾個是很重要的 養成成功的習慣前往城市推銷自己配股與分紅計畫你忠誠的對象是人、不是組織經營你的職涯等等重點,每一個點都給我思考,就如"你忠誠的對象是人、不是組織",工作也有10年以上,會記住我的永遠都是人而不是企業,對於企業來說人永遠的來來去去的,所以在工作時要結交要效忠對的人。雖然有點揶揄,但是北農的吳音寧就是最好的例子了。 目前我在學的是推銷自己配股與分紅計畫”,新創公司中就是要這兩項,這章真的很值得一再閱讀。

特別是經營你的職涯”: 替自己的職涯負起責任、好好經營,不要追尋你的熱情,追群你的才能,(趁早)找出自己擅長的是,努力更上一層樓。

11章,作者在此章做結論雖然四騎士已經很強大,但是不是不能被擊敗,在四騎士之前也是很多大企業,但是也是被四騎士一一超越,而目前的四騎士雖然提出很多願景,但是實際上他們的目標只是再多賣一個產品賺錢而已。另一方面四騎士很大規模很大,看起來它們創造大量工作機會但是事實上他們只有提供很少的高薪職位。


閱讀這本書,雖然還有很多更多的有關四騎士的運作與目標要更深入了解討論,但是此書已經點出許多我未曾想過的,也因此讓我對創業的目標與規模有更明確的想法,也瞭解現在企業的整體真面目,如何透過人類的需求讓自己壯大,更一步建立自己護城牆。

"企業最終與最初的目的就是營利與獲利"



試閱讀 : http://www.thefourbook.com/assets/the_four_ch1.pdf

Saturday 27 October 2018

2018/10/26 How do you start coding or working?

上週日搭紅眼班的飛機,這週一早上回到新加坡。 早上大約8點回到我的房間,躺了約1小時後就起來整理行李,打開電腦看看要做的事也查看所有的郵件也列出本周要完成的事,一直到大約11點左右。
下午兩點要到朋友的辦公室去見他的新雇員 (intern),他是上周一加入的,因為我在幫朋友做他的產品,現在要幫他訓練員工,上周在台北時已經有跟他線上談過並且給他第一個任務,但是似乎程度不太理想,下午見面是要更進一步了解他的狀況。 事實上他是第二位員工,月初時也有第一位實習生進來,第二位比他懂一點點,但是經過這周的互動下發現他們幾乎沒有什麼基礎,所以都必須從基本的HTML, Javascript和CSS教起來。
他們是幸運嗎? 來到我朋友的公司裡讓人一步步的教導寫程式,之前公司的實習生都是一來就丟任務給他要馬上上手寫東西等結果,差異蠻大的,不過實習生10個中有8個程度都是很新手。我說的幸運是我來教還跟他們做code review. 你們公司有這樣嗎?
為什麼我現在教第二位實習生而非第一位呢? 是因為我朋友是新創公司沒有時間浪費所以如果有更好的人可以就會馬上被換掉,所以由第二位實習生替代第一位實習生,這就是新創公司的競爭,但是我朋友也是對他們說很清楚情況,有能力者做事。
另一個注意的點是兩位實習生都是從學校出來的,雖然CV上都有寫過程式,但是經過我評量他們對於程式程度幾乎是0,看來程式似乎目前學校無法訓練出來的。 好的程式員都需要自己本身對程式有熱情在校裡就開始自己接觸,像他們的情況就是進入一間公司然後因公司的需求來學習程式,至於是否透過正確方法來學習寫正確的程式呢? 全憑運氣了! 但是之後的發展就要看個人的發展了! 我想說的是對職涯和技能,一開始進入公司可能被迫學習但是要深入就要看個人自己去學習,也是要了解後自己的需求與興趣去學。 早知道可以早點起步學習晚知道就晚點起步,學習重點是”了解需求”與”行動”,如果確定自己以後要做的事,就應該早點學習來,如果沒有就多方面學習來尋找囉!! 當然沒有每個人一定要一直學習。 就像一位網紅的文章有提” 台灣人就是太愛學了” 對我而言,如果沒有一直學習似乎就像是沒有安全感吧!!

No automatic alt text available.

2018/10/19 日誌

回到台北,就像是出差一樣每天都有安排著活動拜訪一些企業了解一些問題
昨天新加坡朋友分享會結束了! 大家的問答很熱烈,主要是在工作准證和 cover letter, CV and resume要怎麼寫 還有新加坡工作等等,也謝謝一位粉絲團裡的朋友來參加,ˊˋ希望你有得到
這週都忙著見人也討論很多問題,發現我原來有點迷失了! 要真實的面對自己明確目標做出取捨,這個也是創業的陷阱吧! 等下週回到新加坡把自己的想法整理一下吧 分享給大家

Image may contain: 2 people, people sitting and indoor

Image may contain: one or more people, people sitting, table and indoor

Saturday 23 June 2018

你的編程生涯 : 如何避免在編程的黑暗森林中迷失


警告:你的編程生涯

如何避免在編程的黑暗森林中迷失

Author : Vardan Grigoryan 



在剛開始我的編程生涯時,困擾我的主要原因是語言/技術的選擇。我應該學什麼,我應該從哪裡開始?我應該知道什麼才能成為程序員的第一份工作?當時(近10年),沒有Coursera,Udemy或SoloLearn。我無法弄清楚自己的成功工作的確切方向,完整路徑。二十一世紀的宇航員的高薪,充分補貼,善待處理的工作:程序員。

同樣的問題依然存在:初學者被困在選擇之中,沒有一條直線成為一名優秀的程序員,社區也不熱情歡迎像“iz pythn a gut lang ???”這樣的新手問題。 。通往成功編程生涯的道路甚至比以前更加模糊。你(假設你是初學者)應該在C ++ / C ++ 11 / C ++ 14 / C ++ 17,Java,C#,Kotlin,PHP(什麼?),Python,Node.js,JavaScript, ,與Angular,React或Vue?)等等。

語言,技術或技能? The language, the technology, or the skills?
要回答你的主要問題,我必須先問你一個問題。你想要什麼?您是否興奮地構建移動應用程序,網站,像Facebook這樣的網站或像中等網站,或者您是否想要構建像Photoshop這樣的桌面應用程序?也許你完全進入遊戲開發?移動?桌面?

回答“我應該知道什麼才能在科技公司擔任軟件工程師?”的最明智的方法是找出您應該掌握的成功通過技術面試的主要技能。但首先,我們應該把事情整理好,讓我們深入到編程世界,它的國家和城市,文化和戰爭,它的勝利和失敗。對於那些不夠耐心的人,請向下滾動到“編碼採訪準備”部分。


探索編程世界將我們帶到3個主要平台:

網絡(Google搜索,Facebook,亞馬遜,Twitter和其他)
桌面(Dropbox,Photoshop,Visual Studio,Skype等)
移動 (SoloLearn, Instagram, Uber and others)

上述大多數服務幾乎都存在於所有平台中,例如,Skype是桌面應用程序,移動應用程序(儘管做得很差)的Web應用程序,Twitter是一種網絡和移動應用程序等等。

捲筒紙
Web本身在這個背景下是一個巨大的概念,為了闡明它,我們應該把它分解成所謂的前端和後端,後者是我​​個人的最愛。前端就是你所看到的,後端是你需要的,以便看到你所看到的。前端是外觀和感覺,後端是運行應用程序的服務器,處理用戶請求,處理數據庫查詢等等。

前端。如果你想掌握外觀和感覺,也就是建立那些非常漂亮的網站,那麼你應該知道HTML(外觀),CSS(外觀和感覺),JavaScript(感覺)。這還不夠,現在只使用純JavaScript是不夠的,所以你必須選擇正確的框架,目前流行的Angular,React或Vue。哪一個選擇主要基於你最喜歡的公司,谷歌或Facebook?如果你喜歡Google,可以選擇Angular;如果你喜歡Facebook,也可以選擇React。如果你不喜歡他們中的任何一個(奇怪),那麼跟Vue一起去吧。簡單!除此之外,您應該掌握一些基本概念,比如HTTP協議的內部工作原理,熟悉Web服務器(至少您不應該對Apache或Nginx等名稱感到害怕)。作為前端開發人員意味著您可以從後端獲取數據(為用戶進行美化),因此對API的內容,JSON是什麼(以及它為什麼比XML更好)的理解是必須的。 (如果聽起來有些不太熟悉,請查看本文最後的參考文獻部分)。

後端。不可思議的事實,不可思議的故事。在過去,了解PHP足以稱自己為後端開發人員,然後微軟推出了ASP.NET。他們互相爭鬥,直到Node.js來到並將事情按最佳順序排列。 Node.js最適用於事件驅動開發的一些概念,所以如果您選擇它,那麼您會對項目很好。

後端的混亂部分是它的語言多樣性,你可以在後端使用任何你想要的語言,問題是,“後端”是“查詢數據庫,過程數據,響應盡可能高效地為客戶服務“,並且選擇”正確“的語言/技術/數據庫不是一種選擇。雖然有些開發人員使用像MySQL或PostgreSQL這樣的關係數據庫,但新手選擇了黑暗面,NoSQL(如Cassandra或MongoDB)。選擇真的是你的,但我有一個簡單的公式。你的數據是否有嚴格的模式,在不久的將來它不會有太大的變化?選擇關係數據庫。你有每分鐘超過100萬的訪問量嗎?更改為NoSQL(痛苦)。你的產品變化很快嗎?選擇NoSQL。比方說,你現在選擇了哪一方,你應該選擇什麼樣的具體技術?你喜歡微軟,你有Windows服務器?選擇MsSQL。你喜歡甲骨文嗎?選擇Oracle。你對甲骨文沒問題,但你同時討厭微軟?選擇MySQL。你真的不想傷害任何人嗎?選擇PostgreSQL。

NoSQL進入棘手。這真的取決於您的服務和數據架構。你們之間只有文件和一些薄弱的聯繫?選擇MongoDB。你需要存儲一大堆鍵值對嗎?選擇Redis。您正在使用類似圖形的結構(Facebook好友圖表,Google知識圖表等)?選擇Neo4j。不確定你需要什麼,但是你覺得你需要所有這些?選擇ArangoDB。

雖然數據庫包含所有必要的數據,但您應該定義一個API,客戶端可以通過它來請求和讀取/寫入數據庫。這裡最有用的選擇是Node.js,儘管您可以使用PHP或ASP.NET,Ruby或Python,但我個人的建議是Node.js.  那麼,Facebook在其後端使用PHP,就是這樣。他們重寫了C ++中的大部分PHP。有些使用Python,而另一些則偏愛Ruby。的確,您可以在後端使用幾乎任何語言,例如,Google使用C ++,Java和Python(以及Go)。對於低級別的數據處理,C ++最適合用於更新用戶朋友建議等後台作業,Java是一個不錯的選擇。對於數據分析或自然語言處理,或者對於目前非常流行的AI相關任務,您很可能會使用Python。

同樣,除了後端的各種語言,框架和數據庫之外,還有一些核心概念需要掌握。

Caching。從CPU緩存(具有不同的級別)開始並以瀏覽器緩存結束。緩存無處不在,對於像Google搜索或Facebook這樣的高負載服務,緩存是非常必要的。

Servers。雖然您可能認為這與硬件有關(如果您知道如何設置多台計算機以作為存儲和處理數據的一部分工作,這將非常棒),而後端開發人員服務器則意味著Web服務器。時下流行的Web服務器是Nginx,知道如何設置和配置它將在未來的努力中付出高昂的代價。

Sockets。網絡編程的基石。您通過網絡發送/接收的所有內容均由套接字完成。了解套接字編程的低級細節是您技能庫存的一大優點(了解TCP套接字,UDP套接字以及WebSocket的巨大優勢)。

Database Design 無論您選擇或必須使用哪種DBMS,使用數據操作都是您的主要任務之一。能夠查看完整圖片,可視化數據單元之間的數據和連接,這是您在整個編程生涯中將掌握的一項技能。

Security。正如上面提到的其他概念一樣,這個概念也非常廣泛。你不能完全掌握它們中的任何一個,所以你至少應該熟悉一些最佳實踐,比如存儲密碼散列而不是純文本。通過API令牌檢查請求,驗證每個請求的用戶權限等等。

Desktop
我們將討論實際使其成為桌面應用程序的那部分桌面應用程序。在桌面平台上有大量需要特定技能的應用程序,例如,Photoshop正在處理圖像,並且如果您想要編寫類似Photoshop的圖像處理算法和技術,則必須知道。如果你想寫一些類似Dropbox的東西,那麼了解套接字編程是必須的。了解如何設計編譯器是您想要構建編譯器或IDE(如Visual Studio)的必備工具。我們不會涉及具體內容,只是想探索一下如果您想在桌面平台上工作,最有可能使用的語言。

當涉及桌面應用程序的語言時,程序員很難在C ++,Java或C#中進行選擇。有一個簡單的公式可以做出正確的選擇:如果您喜歡微軟,請使用C#。如果您喜歡Oracle,請使用Java。如果您認為編程語言不應該由某個公司所有,請使用C ++。如果這沒有多大幫助,我們來討論一下實際的子平台。如果您只為Windows用戶編寫軟件,那麼C#是最佳選擇。這是顯而易見的,因為兩者都是微軟的產品,它們最好地融合在一起。儘管C#開發人員堅持認為在.NET核心發布之後,C#也可以在Linux環境中使用,但我個人建議如果您想要涵蓋Linux,可以使用C ++。關鍵是,C ++被創建為一種跨平台的編程語言,它在所有操作系統中都很好(甚至是MacOS)。那麼,在這種情況下,跨平台假設你必須在所有操作系統中分別編譯你的C ++項目,以便為每個具體操作系統提供你的應用程序的“不同”可執行文件。而且,老實說,C ++缺乏任何GUI。最大的藉口是“C ++是為硬核開發者,硬核開發者只使用終端(命令行界面)”。然而,善良的開發人員聚集在一起創建了Qt,這是與C ++完美契合的最好的跨平台GUI庫。

最後,如果您對C ++的複雜性感到憤怒,並且您應該連接一個像Qt這樣的單獨庫來為您的用戶提供完整的GUI體驗,並且您討厭為不同的操作系統編譯和發布產品的不同可執行文件,請使用Java 。 Java有它的虛擬機,可以很容易地運行可執行文件。您的應用程序在任何安裝了JVM(Java虛擬機)的操作系統上運行得都很好。

Mobile
談到Java時,首先想到的就是Android。在Kotlin被介紹給世界之前很久,為了實現Android應用程序,Java是事實上的語言。如今,Kotlin吸收了開發者的心,並為開發麵向Android平台的應用程序提供了更好的體驗。所以,如果你想製作Android應用程序,你應該選擇Java和Kotlin。為了做出正確的選擇,我們應該看看幕後。關鍵是,谷歌對甲骨文來說並不那麼酷。甲骨文擁有Java和Java在谷歌的Android中占主導地位,為了在這裡有一定的靈活性,Google必須為輕微的一面(或者黑暗的一面,由您決定)引入一個選項,並將Kotlin引入為“哇,為什麼要使用Java這樣一個偉大的語言,我們支持“。我個人建議你從Kotlin開始,如果你剛剛開始Android開發人員的職業生涯,儘管要成為市場上有能力的開發人員,那麼你必須支持以前用Java實現的應用程序,因此,了解Java對你的簡歷來說是一個很好的獎勵。

最後,iOS。 iLand。一個完全不同的故事。很長一段時間,Objective-C是iOS的主流語言,並且要完全誠實,掌握Objective-C需要認真的態度,堅韌的外表和堅定的毅力。這是Objective-C開發人員數量相對較少的主要問題,Apple最終通過引入Swift做出了正確的舉動。 Swift比Objective-C更容易掌握,這導致iOS開發人員數量的增加。因此,要成為iOS開發人員,您需要使用Swift,但要成為一名非常有信心的開發人員,建議您掌握Objective-C以支持已經用Objective-C編寫的應用程序(大量應用程序)。

我應該在這裡提到React Native,因為它允許使用JavaScript編寫適用於Android和iOS平台的應用程序,但是,作為市場中新的和迅速變化的播放器,我們只要考慮它存在,並且您已經可以編寫簡單的應用程序你只知道JavaScript。

Preparing for Coding Interviews
在編程世界中有一些基本的概念。大部分的技術面試都是為了發現解決問題的能力和了解這些概念,所以除了掌握編程語言之外,您還應該熟悉程序員庫中需要的一些概念。以下是我最近在SoloLearn上課的摘錄(下面是Android和iOS應用程序的鏈接)。

要成功編寫面試代碼,您應該對以下方面充滿信心:
1.算法和數據結構
2.計算機組織和操作系統
3.編碼
4.系統設計

算法和數據結構 (Algorithms & Data Structures )
這是程序員最想要的技能。以下是每個程序員必須熟悉的主題:

算法複雜性 (Algorithm Complexity):Big-O符號以及如何計算算法複雜度;基於其複雜性知道哪種算法更好,例如, O(N)對O(logN)。

基本數據結構和適配器 (Basic Data Structures & adapters):數組,鏈接列表,堆棧,隊列。

排序和搜索 (Sorting & Searching):了解各種排序算法可幫助您確定項目的最佳實施方案。實踐中,嘗試實施插入排序,選擇排序或合併排序,並找出線性搜索和二分搜索之間的區別。

樹與圖 (Trees & Graphs):樹與圖無處不在,從Facebook中的“朋友圖”開始到Google搜索中的“知識圖”。

哈希表 (Hashtables):作為世界上最高效的數據結構之一,哈希表總是一個不錯的選擇。你應該能夠實現一個Hashtable並且熟悉解決衝突的技巧。


計算機組織和操作系統
強烈建議您熟悉如下主題:

 - 按位操作
 - CPU如何執行機器碼
 - 靜態RAM和動態RAM有什麼區別
 - 什麼樣的操作系統內核類型存在
 - “互斥體”和“信號量”有什麼區別
 - 什麼是僵局,什麼是活鎖

Coding
你應該對至少一種編程語言有很好的了解。了解所有優點和缺點,您最喜歡的語言的最佳實踐將始終幫助您編寫高效,優雅和易讀的代碼。
強烈建議通過解決具有挑戰性的問題進行練習,例如(以下所有問題都可以在SoloLearn上找到):

 - 約瑟夫問題 (The Josephus Problem)
 - 河內塔 (Tower of Hanoi)
 - 字符串壓縮 (String Compression)
 - 平衡括號 (Balanced Parenthesis)
 - 雙素數 ( Twin Prime Numbers)

System Design
了解面向對象編程對現代程序員來說是必須的。
系統設計意味著思考整個系統,能夠設計其體系結構,將其分解為類,定義對象交互。
準備嘗試回答以下問題:
 - 您將如何設計Google搜索?如果每秒有數百萬的同時請求會怎麼樣?
 - 你將如何實施Facebook的朋友搜索?
 - 為什麼要使用關係數據庫管理系統?
 - 為什麼你會使用NoSQL DB?

強烈建議您了解並使用正確的設計模式。例如,你應該知道Composite和Decorator之間的區別。

雖然初級開發人員大多需要具備良好的解決問題的能力,而且您的第一份工作不需要知道上面列出的所有要點,但這份清單對於規劃您的職業生涯會有很大的幫助。

Sunday 29 April 2018

2018 第四本書 斜槓青年 (SLASH)


斜槓青年 (SLASH)


斜槓青年是一個全新的人生價值觀,可以說是對工業時代一個蘿蔔一個坑的工作模式一種反思與挑戰,也是對個人的潛能一種尊重與釋放。

我期許今年年底之前能夠成為一個全職的SLASH

如何成為斜槓青年”?
作者回答是你先問問自己,是否真的想清楚自己要什麼?是否擁有強大的自控力?是否有一項或多項突出的才華與技能?如果沒有,那麼還是先花時間讓自己成為一個有實力的人吧。

沒有自制力與實力做為前提的自由,只能被稱為任性,正如這句話所言:「當你的才華還撐不起你的野心的時候,就應該靜下心來學習;當你的能力還駕馭不了你的目標時,就應該沉住氣來歷練。夢想,不是浮躁,而是沉澱和累積。」

工作樂趣?
你去上班時的感覺是上刑場,還是一去做無比開心的事呢?裡面提出三種驅動力 :
1. 生物性驅動力,即滿足最基本生存需求的動力
2. 外在驅動力,因為外在環境刺激而產生的行為動力 例如:獎懲措施,蘿蔔與棍子
3.主動學習、創造更美好世界的動力

作者主要提出第三項,當我們發自內心地想做一件事時,這件事本身就是目的,例如我寫粉絲頁,沒有目的就是喜歡分享生活中點點滴滴,記錄我的生活而已,並比較不注重多少粉絲、有多少人按讚等等 (還是有點在意的)

其實slash 所提倡的多職人生就是一種主動尋求讓自己生活更快樂的方式,它讓我們在保留一份穩定工作的同時,也能去探索不一樣領域的可能性,從而發掘人生的熱情與意義。

現在企業還能生存多久?
現在是2018年,這個時間討論這個或許是一個好的時間點,因為各企業都在討論AImachine learning等等來取代人力或服務。 所以你的工作職位是否能夠被AI取代或是因為流程改變而被消滅掉呢? 以我個人軟體產業來說,主機的架設與管理是由IT人員來做的,在過去需求量是很大的,但是自從雲端託管主機後很多企業就不需要太多IT人員,由託管公司來管理或是委外來做,這樣情控下就不需要太多IT人員了,所以不僅需求人力減少還被消滅掉了。

斜槓青年的職稱:
桑賈伊。古普塔,神經外科醫生/CNN記者
卡力。萊恩,藝術顧問/皮拉提斯教練
丹。米而斯坦,工程師/戲劇導演
不僅用工作中的職位來定義自己還用工作外的身分體現了你是誰、喜歡什麼、有何特別之處。

斜槓青年是一種策略:
作者提出五種斜槓青年
1.      穩定收入+興趣愛好組合
2.      左腦+右腦組合
3.      大腦+身體組合
4.      寫作+教學+演講+顧問組合
5.      一項工作多項職能型


世界一直在改變中,但是知識與技能就是商品:
媒體去中心化,人人都是自媒體網紅和Youtuber以微博、臉書、IG、微信公眾號來代表新媒體出現


共享經濟、自由職業市場的崛起

You have a choice

只是活著還不夠,怎麼活更重要過去自由與賺錢曾是一種矛盾的對立,但是現在這個矛盾正在逐漸消除中。 是否真的要做slack青年呢? 就如作者所說的當slash 青年只是擁有選擇的權利,也使得他的人生擁有更多可能性。

作者以自己本身為案例來說明slash青年的一些要注意的地方,例如是財務自由、我不夠好怎麼好、你被堅持綁架了嗎?、利己的盤算等等? 這些章節都給我不少想法

成長,請先折磨自己
成長,就是享受大腦超載並與其對抗的過程,這章節中作者提出他如何累積優勢與技能,一開始作者並未發現但是透過與朋友合作發現出他自我的優勢。 另外作者也提出對於自我投資有三個認知
第一,所有的投資都無法立刻產生回報,需要經歷一段投資期。
第二,勤奮比天賦更重要
第三,自我投資的關鍵都在於時間累積,不在於何時開始。


晨間日記- 自我管理的關鍵。
作者透過晨間日記來自我管理,作者晨間日記包含四個部分
1.      年度計畫與成長回顧
2.      每月計畫與成長回顧
3.      每周計畫與成長回顧
4.      每日任務清單
蘇格拉底曾說過 未經審視的生活是不值得過,可見定期回顧的重要性,回顧的意義首先是於溫習目標和確保進度。 目標是我們前進的動力,經常回顧是幫我們避免鬆懈和迷失,並保持合理的進度和有效的執行力。

如何開始讀書?
自從畢業踏入社會後,你讀了多少書呢? 作者跟我一樣已經從偶爾讀書到把讀書變成日常習慣、到型常系統性知識結構,作者依此分三個階段:

第一階段:泛讀,培養讀書習慣
目標:找到自己關注的領域
閱讀量:30~50
時間:1

第二階段:專注你的點
目標:深入了解某個領域,開始思考
閱讀量: 10~20
時間: 半年

第三階段: 打造全面的知識體系。

最後以作者說的 知識結構決定你的生活做結論,剩下留給你去閱讀。

一千個鐵粉理論
一千個鐵粉理論是由科技教父凱文。凱利曾在著作中提出的,他認為任何創作者,只需傭有一千名鐵粉就能餬口。(難怪我還不能靠粉絲專頁餬口阿,相信我很難的,普粉都很難了更何況要鐵粉勒!! 你是我的鐵粉還是普粉呢? )

   讓文字成為思想的血肉之軀,這個是我努力的方向,希望能讓我的文字更讓你們有感覺。
   專注內容,而非推廣” : 這個是我的初衷,透過粉絲頁紀錄我的生活點點滴滴所見所聞
    拒絕為PO文而PO,相信少即是多”: 這個也是我在想的,但是在一路寫來發現一周內都有一個點可以來寫來分享。

斜槓生活
 最後作者提出他的斜槓生活,在他的生活提出平衡,不只是工作和生活間的平衡,更是他在許多的興趣與各方面的平行,如藝術、思考、運動等等不同類型的活動的平衡。 現在他的主要工作內容就是不斷讀書與思考、持續學習與輸入,這樣每天都沉浸在成長的滿足當中。 (我個人很羨慕,也希望能夠做到這樣。)

如果你知道零工經濟(gig economy)或許會想是否跟斜槓青年畫上等號呢? 我個人認為是本質上是不一樣的,斜槓青年是偏向依自己的專長與興趣來發展案子來獲取收入,但是零工經濟(gig economy)是把工作切分到一個個任務外包出去,而人可以透過做這樣許許多多小小任務把善用時間,賺取收入。



how-to-recursively-create-subfolder-in-each-folder-of-a-directory-in-cmd

test.cmd: @echo off setlocal for /f "usebackq tokens=*" %%a in (`dir /b /a:d`) do ( rem enter the directory pushd %%a echo...