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