作者: procapitalist 時間: 2018-4-14 05:16 標題: 學過少少multithreading,香港有冇相關既工種呢?
我之前大學學過少少java multithreading,覺得locks, callable, thread pool幾有趣下,想搵下相關既工種
除左ibank既front office electronic trading或證卷交易平台,有冇相關既工種係接觸到multithreading既呢?
作者: 556556bt 時間: 2018-4-14 08:00
我之前大學學過少少java multithreading,覺得locks, callable, thread pool幾有趣下,想搵下相關既工種
...
procapitalist 發表於 2018-4-14 05:16
作者: rkkc 時間: 2018-4-14 08:35
樓主好似提過英國留學,當地 buy side 投資行做 programming...
你計劃回港發展?
作者: procapitalist 時間: 2018-4-14 14:34
無錯,我目前係d大行做front office electronic trading做左junior dev 1年咁,用過少少multi-threading,深d既知識通常都係師傅(senior developer)做。不過覺得學識multithreading好似都係做金融圈既IT工多,如hedge fund,buy-side,HFT,不過對金融圈外既工接觸唔多...
作者: 燕飛 時間: 2018-4-14 14:47
我之前大學學過少少java multithreading,覺得locks, callable, thread pool幾有趣下,想搵下相關既工種
...
procapitalist 發表於 2018-4-14 05:16
via HKEPC Reader for Android
作者: snoopy11hk 時間: 2018-4-14 22:35
其實無咩係 multiple thread 就真
多數 都只係會係 scheduled task 做 multithreading, 又或者比較多的會係 web
一般的 係唔會有
因為 multithreading 係幾難去 implement.... 你寫過 java 的 Future/ 同 Go 的 go-routine 就知個分別
作者: hihihi123hk 時間: 2018-4-14 22:49
本帖最後由 hihihi123hk 於 2018-4-14 23:08 編輯
回覆 4# procapitalist
呢個年代寫 Retail Application 好多時都唔需要 ultra low latency, 能足夠活用到 multiple-core CPU 已經足夠,所以根本無需要好 low level 咁接觸 "Threads"
現時基本上寫一個 "Future" Submit 去 Thread pool 等佢自己 execute 比起自己 manage threading 更 efficient 及更少機會出錯及更容易 Maintain;所以一般 Retail 嘅 Application dev 好少情況會用到你用緊嘅野
仲有其它 highly concurrent 嘅 pattern,例如 Co-routine, actor model 等等都可以好 efficient 咁活用 multiple-core CPU 而完全唔需要接觸 "Threads"
老土咁講,Thread 係一個龐然大物,唔正確咁用設計及 Implement 出黎嘅 program 會好唔 efficient,錯誤咁用 Thread (例如乜都開支 Thread 做野以為會快啲/ 有 IO Block 住支 Thread),Threading 入面嘅 Context switching 及 Task Scheduling 或 Write Contention 會帶黎更高 latency。
簡單一個問題,你有無 Benchmark 過你寫嘅 Application ?假設你所有野都係 in-memory 咁做,普通落個 Order (唔計 Network latency),如果你嘅正常 Use case Average latency > 10 µs ,可能已經中咗上述講嘅問題(當然都有機會係其它問題)
設計一個 ultra-low latency 嘅 Application,終極目標係能夠做到 Mechanical Sympathy,例如 LMAX 設計嘅 Disruptor 所用到嘅 Ring Buffer 係一個好好嘅例子去參考下
另外其實 Data structures 比起 Threading 更加重要
作者: hihihi123hk 時間: 2018-4-14 23:20
金融圈既IT工多,如hedge fund,buy-side,HFT
不過呢類工種好多時係不斷轉 strategy、Back testing、Paper trade 最後就上 production,但求 Work 行到及「唔會太慢」已經足夠,好少會做 Benchmark 及接觸到 Software Engineering 範疇
所以樓主首先自己要搞清楚係「對 Software Engineering 有興趣」定係「對寫呢啲野賺到錢有興趣」
話就話都係寫 Code,但絕對係兩回事
作者: chi251155 時間: 2018-4-15 00:31
本帖最後由 chi251155 於 2018-4-15 00:37 編輯
仲thread乜鬼,好多application係distributed咁行。
除非你寫啲low-level少少既tool,例如你寫db之類,或者game engine之類。
寫吓web app既話,client-side worker幫你wrap咗,back-end node 你只會見到single-thread。
好多computation做parallelism都好少自己call thread,CPU就用OpenMP,GPU就CUDA or OpenCL,distributed就spark/hadoop。
threading concept重要但只係冰山一角。
基本上進程係咁:concurrent -> parallel -> distributed。
作者: peter88625 時間: 2018-4-15 00:31
回覆 procapitalist
呢個年代寫 Retail Application 好多時都唔需要 ultra low latency, 能足夠活 ...
hihihi123hk 發表於 14-4-2018 22:49
原來而家multithread已經簡單咗咁多
我對multithread既記憶重停留喺要自己砌好條function, call CreateThread(), 儲起啲handles, 同埋諗點分配啲task如果唔係會撞或者唔同步...
作者: toylet 時間: 2018-4-15 00:57
提示: 作者被禁止或刪除 內容自動屏蔽
作者: snoopy11hk 時間: 2018-4-15 01:31
一般公司自己寫的 MIS/ERP 未必需要理 multi-threading 的!
真的要特別用途的 programs 先會.... 例如 炒 ...
toylet 發表於 2018-4-15 00:57
自家 high availability 的 system就會, 例如 twitch, spotify, whatsapp 果類
作者: procapitalist 時間: 2018-4-15 14:02
回覆 procapitalist
呢個年代寫 Retail Application 好多時都唔需要 ultra low latency, 能足夠活 ...
hihihi123hk 發表於 2018-4-14 14:49
正!師兄d content真係好詳盡
現時基本上寫一個 "Future" Submit 去 Thread pool 等佢自己 execute 比起自己 manage threading 更 efficient 及更少機會出錯及更容易 Maintain;所以一般 Retail 嘅 Application dev 好少情況會用到你用緊嘅野
仲有其它 highly concurrent 嘅 pattern,例如 Co-routine, actor model 等等都可以好 efficient 咁活用 multiple-core CPU 而完全唔需要接觸 "Threads"
我都想就咁用"future"去Submit一個runnable task
簡單一個問題,你有無 Benchmark 過你寫嘅 Application ?假設你所有野都係 in-memory 咁做,普通落個 Order (唔計 Network latency),如果你嘅正常 Use case Average latency > 10 µs ,可能已經中咗上述講嘅問題(當然都有機會係其它問題)
做過benchmark下,我條team最主要唔係做execution,係做pricing,execution留返第二條team搞。latency方面,我哋仲系用milliseconds計算
,所以d trader/quant都想我哋降低latency另外其實 Data structures 比起 Threading 更加重要 ,O(N) 同 O(logN) 已經係兩個世界,唔好錯重點
我同意data structure重要,而且都可以幾詳細下,正如bubblesort同merge sort既速度已經係兩個世界。另外data structure係咪thread safe都好重要,e.g. concurrenthashmap vs. hashmap
好奇問下-師兄係咪都係做金融界既developer?
作者: procapitalist 時間: 2018-4-15 14:08
仲thread乜鬼,好多application係distributed咁行。
除非你寫啲low-level少少既tool,例如你寫db之類,或者 ...
chi251155 發表於 2018-4-14 16:31
我都好同意依家既low-level concurrency/threading既code都係encapsulated左,但係始終我都接觸過d low level野。而我去趁d第一回合面試時候都會至少問五六條concurrency既問題。
問deadlock/race condition基本上係例牌,其餘回問explicit lock vs. implicit lock,有d咩唔同lock,future vs. callable, what is a thread pool,有d咩data structure係thread safe咁 etc...
作者: procapitalist 時間: 2018-4-15 17:25
本帖最後由 procapitalist 於 2018-4-15 09:30 編輯
講真,係呢個帖入面大部分人(除左兩三個之外)都覺得唔洗學咁多low-level既concurrency syntax and concurrency principles既時候。
我都認同呢個方向係無錯既,因為除住科技進步,我哋好多現代既程式編碼語言既low level details都被abstract/encapsulate左,根本唔洗點理low level野。
我幾個月前都有咁既想法,但係我而家終於知道學low level野既重要性(當然未去到assembly code既層面):個code quality係點,同埋個performance係點,好多時候都係取決於你可唔可以運用你low level既知識。有錯請指正:我覺得砌一個cryptocurrency exchange既backend都要識好多threading同埋performance既野
但係面試時候始終都要問呢d low level野,唔系就咁sai下你之前寫過乜app乜app,做過d咩大project,就過倒關,programmer interview唔同sales interview,係會被問得好詳細(初級工程師既面試都係咁),你唔識果d野時候,你個裂縫(crack)就會露出黎。例如,你參加java developer面試時候,你會被問到garbage collection係乜,也都會問到不同GC既運作,例如minor GC vs. major GC既運作。我其實之前都係以為略懂garbage collection係乜就可以算數。咁既話其實一開始學C/C++會更加有效,因為會接觸到low level concept。
不過我當然認為學俾多d時間學high level野都重要既,所以我並非強調只係學concurrency既low level implementation既野,都要考慮埋大層面。
作者: snoopy11hk 時間: 2018-4-15 18:25
本帖最後由 snoopy11hk 於 2018-4-15 18:30 編輯
講真,係呢個帖入面大部分人(除左兩三個之外)都覺得唔洗學咁多low-level既concurrency syntax and concur ...
procapitalist 發表於 2018-4-15 17:25
"但係我而家終於知道學low level野既重要性(當然未去到assembly code既層面):個code quality係點,同埋個performance係點,好多時候都係取決於你可唔可以運用你low level既知識。"
leaking abstraction.......
我唔太清楚你點解咁諗.... 但係我唔覺得係呢樣野
好多時都只係要 meet requirement... 而 D 野其實無咩太 technical, 大多 Stackoverflow 都會有
只要你識整合, 利用, 就已經好 ok
反而 problem solving skill 就係一個好 real factor...
作者: hihihi123hk 時間: 2018-4-15 19:04
我都好同意依家既low-level concurrency/threading既code都係encapsulated左,但係始終我都接觸過d low le ...
procapitalist 發表於 2018-4-15 14:08
知識我相信冇人會嫌多
但始終學海無涯,時間有限
太廣太淺無意思
太窄太深亦未必係一件好事
我自己取態係先廣後深,拓寬自己視野之後再判斷喺邊一方面再 dig deep,太早 dig deep 反而好難抽身,好容易變成 HKNOIT
我相信各種工具總有共通點,起步階段學識點學野先係重點之重
樓主先岩岩開始咗一年,睇多啲野先唔係一件壞事
via HKEPC IR Pro 3.0.0 - iOS(2.2.0)
作者: ROM 時間: 2018-4-16 12:27
本帖最後由 ROM 於 2018-4-17 14:05 編輯
講真,係呢個帖入面大部分人(除左兩三個之外)都覺得唔洗學咁多low-level既concurrency syntax and concur ...
procapitalist 發表於 2018-4-15 17:25
我覺得你所講既野 其實都係有關你對個encapsulation 認識有幾深
正如background worker 同 thread pool 基本上係相同功能既encapsulation 但用途及特點都好唔同
認識Low level 野對認識個encapsulation有少少幫助
但係唔係必須? 我覺得唔係
作者: chi251155 時間: 2018-4-17 00:54
本帖最後由 chi251155 於 2018-4-17 01:06 編輯
回覆 14# procapitalist
有個knowledge打底係好。但knowledge同有冇工作係兩回事。你問有無咩相關工種,只可以講工作往往唔係比你試你學識既野,係真係production ready,要concurrency既程度去到好critical,自然會搵啲expert去搞。點成為expert?通常係你做嗰範要經常analyse concurrency,人地又知道你做得好,而且其他人做唔到、比你慢、比你差。不過老老實實,undergrad都學到既野,出黎做野既veteran點都有個底。problem solving skill高啲嘅,1個星期都搞清晒。concurrency好fundamental,好少話有咩特別工種,好睇個domain係咩,例如有處理開db既concurrency問題既engineer,唔會識搞game engine既concurrency,亦唔會識搞video streaming既concurrency。
你問個問題就好似,學過少少algorithm analysis,香港有無相關工種。基本上好多工都相關,但你係咪只係做algorithm analysis同呢?明顯唔係。你係咪要精到去design新algorithm呢?unlikely
真係要搵有機會用到你啲knowledge既公司,應該係馬會、八達通、地鐵之類,多人用,performance critical既application。
作者: sapphire4890 時間: 2018-4-17 13:21
off topic一問,有無咩方法學好algo
下個sem要讀

作者: 大有仔 時間: 2018-4-17 20:20
回復 20 #sapphire4890
Algo 咩先?
via HKEPC Reader for Android
作者: evec 時間: 2018-4-17 21:59
本帖最後由 evec 於 2018-4-17 22:01 編輯
其實Threading 同 Asynchronous 等處理係好基本既野,唔識好限制軟件開發既思路,例如要做一些網絡相關軟件竟有垃圾軟件係坐係到等唔識開另外一條Thread去做,連做H5 網站都要想到點樣行幾條線,連攪UI都係要想啲樣野點樣去加快顯示速度,其實重要係Logic大過技術思想:
單線程=自己駕的士行單程路
多線程=同時用幾十部電話指揮一堆的士行三線高速公路
作者: procapitalist 時間: 2018-4-17 22:53
回覆 procapitalist
有個knowledge打底係好。但knowledge同有冇工作係兩回事。你問有無咩相關工種,只可以講工作往往唔係比你試你學識既野,係真係production ready,要concurrency既程度去到好critical,自然會搵啲expert去搞。點成為expert?通常係你做嗰範要經常analyse concurrency,人地又知道你做得好,而且其他人做唔到、比你慢、比你差。不過老老實實,undergrad都學到既野,出黎做野既veteran點都有個底。problem solving skill高啲嘅,1個星期都搞清晒。concurrency好fundamental,好少話有咩特別工種,好睇個domain係咩,例如有處理開db既concurrency問題既engineer,唔會識搞game engine既concurrency,亦唔會識搞video streaming既concurrency。
你問個問題就好似,學過少少algorithm analysis,香港有無相關工種。基本上好多工都相關,但你係咪只係做algorithm analysis同呢?明顯唔係。你係咪要精到去design新algorithm呢?unlikely
真係要搵有機會用到你啲knowledge既公司,應該係馬會、八達通、地鐵之類,多人用,performance critical既application。
chi251155 發表於 2018-4-16 16:54
唔該sai有詳細既回復,
睇完多篇回復後,似乎software dev打工仔最好賺都係做金融機構/Silicon Valley tech/大陸上市既科技公司,而我都係體中係金融圈(特別係front office electronic trading)内做multithreading幾年後做contractor daily rate有至少HKD4000....
所以都係體定d好...香港既software dev係米得中環既金融機構同外資startup先好穩?
作者: louis3412 時間: 2018-4-17 23:15
識low level明顯人工會高好多
所以唔認為ching有問題
對一般人:
async做到既野太多
簡簡單單chok個web app(後面有DB)咁計 single-thread唔係問題亦足以落production(當然客戶不能太多...)
作者: chi251155 時間: 2018-4-17 23:40
回覆 23# procapitalist
Software Dev係香港好搵極有限。個個做到咁上下就轉SA,跟住software dev外判比大陸仔。
金融圈外,50K一個月既software developer空缺有限。silicon valley tech係sillicon valley咪出150K USD一年囉,黎到香港請個senior dev咪又係出32K一個月。大陸公司仲死,華為11-13K,其他做R&D例如DJI、商湯,只請PhD,都係請返大陸人多,人工亦係麻麻。contractor daily rate 4K都係貼近SAP 、Analyst consultant等。不過金融有度唔好,就係冧市實執包伏,啲技術去第個domain又無乜用。03、08大家都經歷過啦。start-up就好唔穩陣,同埋其實出唔到幾多錢比你,因為佢都未有一個可以吸金又不斷重複既business model。
作者: procapitalist 時間: 2018-4-19 05:52
回覆 procapitalist
Software Dev係香港好搵極有限。個個做到咁上下就轉SA,跟住software dev外判比大陸仔。
金融圈外,50K一個月既software developer空缺有限。silicon valley tech係sillicon valley咪出150K USD一年囉,黎到香港請個senior dev咪又係出32K一個月。大陸公司仲死,華為11-13K,其他做R&D例如DJI、商湯,只請PhD,都係請返大陸人多,人工亦係麻麻。contractor daily rate 4K都係貼近SAP 、Analyst consultant等。不過金融有度唔好,就係冧市實執包伏,啲技術去第個domain又無乜用。03、08大家都經歷過啦。start-up就好唔穩陣,同埋其實出唔到幾多錢比你,因為佢都未有一個可以吸金又不斷重複既business model。
chi251155 發表於 2018-4-17 15:40
同意,金融圈經濟唔好好易裁員,就算經濟好個headcount年年都轉,年年都有redundancy。
不過咁,我有大陸朋友(英國讀書識,非名校)讀完個一年英國master返大陸北京中關村做百度machine learning 仔畢業生月入都有¥18K,下一級就有>¥30K
另外有d大陸朋友master畢業後入Lenovo,京東購物做dev,月入都有至少¥14K....
似乎香港既"碼農群"都要向外發展。。。。
作者: chi251155 時間: 2018-4-19 13:11
本帖最後由 chi251155 於 2018-4-19 13:12 編輯
回覆 26# procapitalist
暫時software developer香港undergrad fresh grad 都有17-18K HKD。醒目啲做三年左右28-32K。之後就好難突破40K。老實講,30K係香港都好難生活。供車加養車去左10K,供樓20K,又會有小朋友,兩公婆冇至少60-70K都好難搞。
一係就直接去美國讀個master再搵嘢做,但H1B而家好難攞,市場競爭又激烈。
作者: 大有仔 時間: 2018-4-19 18:28
回復 27 #chi251155
Dev 咩先, HTML 點比20k 你
via HKEPC Reader for Android
作者: chi251155 時間: 2018-4-19 18:42
回覆 28# 大有仔
web app developer寫angular react呢類framework 20K唔係難呀。oursky, onesky, shopline, 9gag, aftership呢啲startup都過20K。

