Re: [請益] 大家會為了面試學新東西嗎?

作者: sxy67230 (charlesgg)   2019-04-26 09:16:05
※ 引述《s77485p (快樂豬)》之銘言:
: 大家好
: 近期在面試新的機會,也發現了一些問題
: 小弟目前是工作一年多的小菜鳥
: 主要做後端跟電腦視覺應用
: 我想請教各位前輩,大家會為了面試去特別學新技術嗎?
: 例如我看到一間公司的JD,他們是用Java寫後端,但是我本身是用Python
: 理論上我自己私心認為設計API或是cloud的原理應該差不多
: 只是差異在用什麼語言實作
: 但是好像還是有一些公司會在意沒有該語言的基礎
: (當然更有可能是我太淺看不出其中差異XD)
: 可能是上手時間的差異,畢竟junior還是碼農的工作XD
: ....
不太懂為什麼一堆Java擁護者會覺得Python 沒有OO的概念一樣,Python 一樣可以做封裝
、繼承、抽象化,
抽象化(介面、抽象類)可以import abc類的lib實現,
封裝python 也有自己getter setter的方式,
繼承就不用說了,一樣也有。
而且我自己Java、python 都有寫,個人認為差異沒到需要重學的概念。
就像我上份工作的SA一直跟我說Python 動態型別很爛啊,我說如果動態那麼糟,那Java1
0加入var的概念要幹嘛。而且現在的Python 也不算是真正的動態,3.5你可以用typing l
ibrary 引入型別檢查,3.6以後就可以 變數:[型別],這樣去指定了,反而所有語言
動態跟靜態的概念越來越模糊了,支援性越來越多。
至於Spring ,我之前用Flask一樣能做出仿Spring 的框架(會說仿的原因是我專案沒用
到的功能,我就懶得實現了)而且Flask一樣能實踐大型網站框架,flask真正的概念是輕
量化,但不代表他沒辦法實現大型網站框架,就是你要自己寫,自己定架構而已。之前去
面試,竟然有主管直接跟我說Flask沒辦法實現大型網站,真心覺得他可以砍掉重練了。
Python 跟Java目前唯一的差異就是規範性的強弱而已,Python 不太管你的規範,他的核
心概念就是你自己定義你的風格就好,相反的就是Java比較怕你不照規矩來,所以才有這
樣強烈的規範在。
我自己是Python 跟Java兩個都有寫的人,我不認為語言的特性真的有差異到需要重學的
概念,基本核心觀念有,反而很多語言是可以互相借鏡參考的。但是我不認為需要為公司
重學新東西,除非你真的想學。
作者: x246libra (楓)   2019-04-26 09:18:00
想請教一下 想更加搞設計模式 或 物件導向學py來了解上面這些概念OK嗎? 還是說學java比較可以抓到上述的精隨?
作者: abccbaandy (敏)   2019-04-26 09:37:00
你文章中寫的"唯一的差異"就差很多了,每個人都有自己的風格,你要怎麼維護別人的code?
作者: y2468101216 (芸)   2019-04-26 09:44:00
各大 linter 表示:
作者: alihue (wanda wanda)   2019-04-26 10:11:00
java var 是強型別吧,只是方便簡寫。py 可以寫OO,但沒人會拿py這樣寫好嗎?寫出來也超難維護py是寫很快啦,但如果遇到效能很重要的應用,根本沒人選py
作者: plsmaop (plsmaop)   2019-04-26 10:14:00
原來 py 沒人寫 OO,可能我平常不太寫 py,跟少讀 py,我讀過的都是 OO的 py QQ
作者: vi000246 (Vi)   2019-04-26 10:15:00
python沒什麼規範 private的變數外面也能存取遇到多人合作 有人不照規範hard code的就GG了
作者: sxy67230 (charlesgg)   2019-04-26 10:28:00
這些風格的東西本來就是公司內部自己定義就好啦,Python有pylint是很好用的東西,比較新式的語言都有這種概念,沒必要糾結在護航哪個語言上,所以我才一直強調語言的基本概念才是每個軟工應該琢磨的東西。
作者: superpai (超級白)   2019-04-26 10:28:00
所以你自己出錢的話,你會不會雇只寫過Py的人來寫Java?
作者: legendmtg (CLANNAD)   2019-04-26 10:38:00
最近在改一堆寫java出身的人寫的python code一堆多餘的糞code....
作者: weinine32 (隨意)   2019-04-26 10:45:00
認同你的觀點,但你的“唯一差異“原因,讓我認為想當後端工程師,不適合從Python開始,因為會養成壞習慣,很多人就是這樣走歪。何況很多公司還在用python2
作者: legendmtg (CLANNAD)   2019-04-26 10:48:00
什麼壞習慣XD 寫Java那套OO就是好習慣嗎XD像我寫C++ python出身的 才覺得Java出身的人一堆壞習慣
作者: weinine32 (隨意)   2019-04-26 11:15:00
Java我不懂,沒辦法提供建議 XD
作者: sxy67230 (charlesgg)   2019-04-26 11:23:00
Google自己的最新風格指南可是很強調OO的概念喔,我不覺得Py寫OO會很難維護,習慣性的問題而已不過我承認Python 易學難精,他可以寫得很簡單,也可以封裝的很漂亮,確實不適合初學者,但是我不同意一直護航某語言而貶低別人的概念
作者: ripple0129 (perry tsai)   2019-04-26 11:32:00
Py沒人寫OO?真的有用py寫過專案嗎?
作者: thefattiger (LT)   2019-04-26 11:43:00
py已經很適合初學者了,語言只有易學難精跟難學難精
作者: alihue (wanda wanda)   2019-04-26 11:52:00
說 java 引入 var 是動態型別,就知道沒有熟 java。
作者: YahooTaiwan (超可愛南西我老婆)   2019-04-26 12:12:00
Java 的 var 也是強型別吧
作者: shps951015 (寶寶QQ)   2019-04-26 12:26:00
C# dynamic才是動態型別,Java還沒有動態型別功能
作者: iiiii (I take 5)   2019-04-26 12:32:00
SDK啥語言就寫啥啊
作者: peter9s3b   2019-04-26 13:08:00
說沒看過用py寫oo的是真的有看過嗎...
作者: vi000246 (Vi)   2019-04-26 13:14:00
python可以寫OO 只是跟強型別的比起來 是半殘的OO
作者: moonblack   2019-04-26 13:24:00
python真的易學難精... 不過每套語言要精通都很難啦
作者: ZAXUS (YehSeafood)   2019-04-26 13:30:00
自己寫可能沒感覺 但我讀別人的code最討厭看到auto跟var
作者: thefattiger (LT)   2019-04-26 14:07:00
寫C++不用auto我會想殺人
作者: mdkn35 (53nkdm)   2019-04-26 18:14:00
python不用OO 是要堆def喔?
作者: Sunal (SSSSSSSSSSSSSSSSSSSSSSS)   2019-04-26 19:07:00
go才是沒OO吧很多人在說的py很可能只是打開jupyter notebook下指令在用的到底寫py會有什麼壞習慣?
作者: brianhsu (墳墓)   2019-04-26 19:48:00
Var 只是 type inference ,不是動態型別,差很多滴。
作者: iwami (吃)   2019-04-26 23:10:00
python有OO啊 但是半殘 入門還是JAVA簡單一點
作者: ericwang1017 (Eric)   2019-04-26 23:23:00
說動態型別差的遇到(研究compiler)強的的會被電到飛天 / OO是種態度
作者: twilighthook (嚕嘟)   2019-04-27 01:04:00
就大家寫的領域和看的方向不同使用方式都會有差異罷了
作者: red0210 (My Name Is Red)   2019-04-27 04:54:00
Python 的 OO 哪裡半殘?
作者: okd (...)   2019-04-27 08:10:00
python不適合初學者 我還真想不到哪個語言比python適合
作者: brianhsu (墳墓)   2019-04-27 08:18:00
Ruby 啊!我個人私心認為 Ruby 比較漂亮,雖然我沒在寫。XD
作者: okd (...)   2019-04-27 08:21:00
OO應該也沒半殘 但開interface語法就已經不直接了吧
作者: sean50301 ( (づ′・ω・)づ)   2019-04-27 09:33:00
python寫oo哪裡難維護...
作者: doranako (真愛無限)   2019-04-27 10:08:00
我覺得這兩個語言有很大不同,深入理解真的需要花時間
作者: sxy67230 (charlesgg)   2019-04-27 10:26:00
Python Interface 用久了也沒那麼不直接啦,可以看看py成熟的libary他們有很多實作介面的思考方式,很值得學習。
作者: brandyjohn (hailcpp)   2019-04-27 10:28:00
我會雇寫cpp的人
作者: sxy67230 (charlesgg)   2019-04-27 10:29:00
對Java var的理解我可能還不熟,這一塊我確實應該重新思考加強,謝謝Java前輩的指教。至於有人提Java Python 哪一種學OO比較適合的問題,我個人認為沒有太大差異,你應該是要重新思考OO,回到OO的本質。我看過一堆新手為OO而OO的就有點本末倒置了。Python 學OO的話,去看人家的Library (我很喜歡看別人大神的code,看哪些思想值得學習),看看各大Python 使用的大廠的coding Style guide 。最後,有人提到關於雇用哪一種人,我自己是企業主的話,我會雇用語言概念正確,自主學習速度快,邏輯調理清晰的人。如果他是寫Python 就問他Coding style的概念是否正確,是會著墨自己的Coding能力的人,還是隨便的人。這樣的人才會自我思考進步。
作者: Mchord (Mchord)   2019-04-27 11:32:00
寫出來東西爛是人的問題不是語言,Python的原罪只是沒那麼嚴格所以比較多習慣不好的能靠它吃飯而已
作者: iven00000000 (Iven CJ7)   2019-04-27 12:02:00
OO只是概念,我最開始是學Java的,我認為Java為了完善它想要的OO架構,存在一堆冗餘的元件,對新手來說反而很難懂。Python沒有private,public關鍵字,但是有用命名規則跟porperty做到一樣的概念。OO本來就不是依賴編譯器報錯來判斷有沒有寫錯。
作者: Argos (Big doge is watching u)   2019-04-27 14:14:00
OOP的好處 其實是要團隊奉行良好的「規範」才能體現出來的程式語言作者考量的點不同 就會影響語言本身對於OOP規範的盛行與否 但是 能否享受到OO的好處 跟語言本身其實沒多大關係 主要還是在於團隊是否有「照規矩來寫code」這個規矩可以自己訂 但訂了大家就是要遵守 你不屌規矩 再怎麼嚴謹的語言也是寫得亂七八糟但通常人們都把寫爛掉的OOP怪罪於程式語言上 講這個語言OO很難寫 殊不知都是自己的問題 你就是個不合群不專業的碼農不照規定乖乖努力寫code 硬要用一堆奇怪的慣例和架構來表現自己聰明過人 能想出別人想不出的精妙玻璃城堡 但華而不實老實講 95%的軟體工程 根本不需要「聰明人」 尤其是那些自以為聰明但實際上根本是個智障的 軟工需要的是嚴謹努力認真的工匠
作者: jack529 (Jack)   2019-04-27 14:25:00
Python寫不好真的會醜到有剩XD
作者: goldflower (金色小黃花)   2019-04-27 15:08:00
原來沒人用python寫OO也很難維護 算是開了眼界
作者: Masakiad (Masaki)   2019-04-27 17:28:00
會說軟體架構不需要聰明只需要努力認真,肯定不知道一個好架構造成的產值是可以1抵10以上的。這不是死幹活幹這麼單純的問題
作者: thefattiger (LT)   2019-04-27 18:19:00
好架構是建立在經驗上,聰明還真的幫不太上忙
作者: Masakiad (Masaki)   2019-04-27 18:48:00
努力認真跟經驗又是兩回事,而經驗也是運用腦力經過時間後內化堆積的。不是什麼努力認真就可以達成這麼單純,也因此才會有10年經驗的高手與10個1年經驗的新手。不要小看架構這回事
作者: nova06091   2019-04-27 18:49:00
就是一群農夫在比誰的鋤頭比較潮
作者: brianhsu (墳墓)   2019-04-27 19:41:00
醜到有剩是人的問題,之前經手過比醜到有剩的 Python 還要醜的 Java...沒有一致的縮排,函式的參數型別是 Object, 一個函式四五百行,而且還有另一個跟他幾乎一模一樣的 copy paste 分身函數。命名 camel case 和底線挑順眼的用,當然也少不了大家最喜歡的用加號組出來的 SQL injection。看的我都不好意思說 Python 醜,人家可是規規矩矩地把程式縮排好了呢。
作者: leave10123 (五月)   2019-04-28 15:12:00
型別的動態靜態與強弱是不一樣的東西吧
作者: zebraseven (Die walkuere)   2019-04-29 16:06:00
Python 就也能做到 OO 沒錯就算沒人想把它這麼寫 他還是OO別跟半桶水的吵了
作者: tsao1211 (Sunday)   2019-04-29 20:56:00
都有OO 別爭了
作者: oscar90702   2019-04-30 17:55:00
就個人實務經驗,Python相較Java真的是殘缺的OO
作者: meowyih (meowyih)   2019-04-30 18:24:00
就算用ansi c也一樣可以做封裝繼承抽象(認真)
作者: mew109 (喵!?)   2019-05-02 09:39:00
想知道什麼是殘缺的oo+1
作者: pig2014 (Rocking Man)   2019-05-04 00:24:00
py最大的問題是效率以及GIL,門檻低的東西一定有毛病真男人都寫C++,Java跟C#也都不錯,有自己的完整架構。py其實就是拿來快速開發做不追求效率的垃圾事,做抽象設計比Java廢太多。會說很好用大概你常常也沒去管design pattern

Links booklink

Contact Us: admin [ a t ] ucptt.com