PHIL

盤點一下給有這個目標的人做參考

托福 / GRE

考一個大概都需要 500 小時 (兩個都考合計約 750 小時),當然花的時間跟目標分數有關,如果不求高分可能就不用那麼多,相對衝高分的人可能會念更多。但一般來說不建議考太多次,這個考試的能力在未來生活求職很有用,但讀得更多所帶來的幫助就慢慢變有限了。

修大學部資工的課程

我是在美國念 Certificate Program of Computer Science,在台灣念的話就是去大學裡隨班附讀,以下的時間是用美國大學來估計。一堂課因難易不同所需時間也不一樣,通常每週約各需要 10 ~ 40 小時 ((一學期 14 週),要投碩士一般會要修 4–5 門課來說服學校你具備基本專業的能力,如 程式設計(C)、物件導向程式 (Java)、演算法或資料結構、作業系統、一門進階選修(資料庫/資安/雲端/網路….)。總體來說會在一年內花 1500~2000 小時來修完這些課。

在台灣修的話以聽到的經驗來說,可能只需要一半或更少的時間,不過扎實度有差別(學費也少了很多)。

p.s. 我大學念商科的經驗,一堂課每週大約花 3–5小時 (一學期 16 週),系定必修算 12 堂,大概花 750 小時在唸書?工科跟商科所需要投注的時間心力差距實在是太大了

申請學校

寫 SOP、跟教授要推薦信、到各家學校網站閱讀申請重點與流程、申請到學校之後弄簽證流程,有的沒的大概會需要 250 小時

刷題

通常 300 題左右是比較合算的選擇,刷少了有些題型沒有看過,更多的當然大有人在不過題目的設計通常是類似。ㄧ題需要的時間依難易度可能是 5 分鐘到 8 小時,很多題是要 go through 好幾次的,第一遍不會做去看題解,看完後寫成為代碼算第二遍,自己寫出來算第三遍,用另個語言二刷實際上是第四遍了,mock interview 在別人面前一邊講一邊寫出來是第五遍。通常比較重要的題目才會重複做多遍,總體來說,完成這個數量會需要 2000 ~ 2500 小時。

注意刷題所需理解的演算法及資料結構是刷題前就要懂的,通常是大學部的課程中會教到,不知道的話可能題解也看不懂,而這部分要花的時間成本不在這裡的估計中。

碩士課程

通常要修滿 30 個學分才讓你畢業,這部分修好過的課是種選擇,畢竟這階段修的課跟找工作的相關性就不高了,GPA 稍低也無妨(但不能比公司要求的標準低)。如果一堂課時間用隨班附讀一半的時間來估計,時間少但要修更多的課,算下來大概也是要 1500~2000 小時左右。

總計

把以上加總算一算,準備申請的各項考試抓半年,隨班附讀採用全職的模式用一年算,念完碩士需要1.5 年,中間有時會因其他因素花額外的時間,大概要 3–4 年,約 7000 個小時

潮爽的啦

--

--

Consider the pair attribute as the requirement of designing DFS.

Description

Given n pairs of parentheses, write a function to generate all combinations of well-formed parentheses.

Examples

Example 1:

Input: n = 3
Output: ["((()))","(()())","(())()","()(())","()()()"]

Example 2:

Input: n = 1
Output: ["()"]

Solution

Use a container to store added parentheses and pass it across DFS. There are always 2 choises when forwarding this DFS, adding left or adding right. The backtracking is after going one path, remove the added paremtheses and then go another path. This is necessary because for 2 paths, the state should be the same before adding. While left can be freely added, the constraint is right can only be added when number of existing left in temporary < number of existing right.

#        arr
# / \
# add "(" ")" (only when more "(" in arr)
  • code

ref: https://blog.csdn.net/fuxuemingzhu/article/details/79392195

--

--

搭訕是打破生活圈認識異性的一種手段,但不同於常識性的社交,搭訕的結果是非常因人而異的,每次搭訕都有一定的機率會帶來衝突或不快,極端的例子會讓搭訕者覺得被騷擾,並將過程發到網路上使搭訕者社會性死亡。作為社會演進下誕生的產物,我想搭訕仍會作為次文化存在,而對於搭訕的前提及認知是需要被知道的

外貌

一般社交聚會的情境是你微笑說你好,對方通常就會跟著說你好,搭訕的情況下你微笑說你好,對方完全有可能說你給我滾,而且這沒什麼不對。被搭訕者並不知道搭訕者是不是變態,或搭訕者的形象讓人非常厭惡,通常在談話開始的 5 秒內,被搭訕者如果感覺到繼續跟這個人說話有危險或感到噁心,這個搭訕就結束了。

搭訕並不存在平等。造成搭訕結束的原因最通常的是外貌,你長得醜並不仿礙你做人,但搭訕異性你是會造成人厭惡的。有篇文章簡潔的解釋了這個現象 https://www.ptt.cc/bbs/Boy-Girl/M.1648559221.A.484.html

--

--

A short version from How to identify which Data Structure to use with additional observation.

  • Common

Sorted array → Binary Search

Linked List O(1)→ Slow Fast Pointers

Top / Least K → Heap

Tree / Graph → DFS / BFS

Frequency / Duplicates → Hash

Max / Min Subarray / Subset → Sliding Window / Dynamic Programming

Local solution not altering computation of other elms → Greedy

Local solution altering computation of other elms (Permutations / Combinations / Subsets) → Backtracking

Need adding / retrieving elms with specific sequence → Stack / Queue

In place array modification → Two Pointers / View array as linked list and use index as next

--

--