來源:嘀嗒嘀嗒 作者:朱赟 2018-06-14 11:16:47
但是用 Scala 寫 Spark 相關(guān)的代碼,邏輯正確是不夠的,一定要對代碼執(zhí)行的性能有所考慮。比如需要知道一些常見函數(shù)大概的時間代價,例如 group by 和 order by 其實都是比較昂貴的,應(yīng)該避免一些不必要的頻繁使用。而有些操作又是相當(dāng)?shù)痛鷥r,可以隨意使用。另一個就是 Lambda 嵌套使用過程中語言的一些局限性等。好在組里當(dāng)時有幾個 Scala 比較熟的,所以一些不規(guī)范或者低效的使用方式,在 Code Review 中也會被指出。所以,幾個月后,雖然用 Scala 也寫了不少代碼,過程中也了解了很多這樣的易出錯的地方,但是感覺如果不是因為是在一個協(xié)作的過程中有人幫忙,這種裸上寫代碼的方式還是可能引起一些性能上自己沒有意識到的問題。
再說說 Ruby 以及 Rails。Ruby 是語言,Rails 是框架,但是實際工作中極大多數(shù)時候 Ruby 都是在 Rails 下使用的。因此放到一起說。Ruby 語言語法簡單、使用靈活,看似好學(xué),其實又是最難學(xué)的語言之一。因為總和其配對的 Rails 中的 Magic 太多。很多在別的語言上挺有造詣的朋友,對這門語言/框架自學(xué)和速成都遇到一些困難。Ruby / Rails 其實是我最精通的語言/框架之一,卻也是我學(xué)習(xí)的時間最長的語言/框架之一。一來在 Square 的時候 Rails 就是主要(語言)架構(gòu),且公司有很多 Rails 的專家大牛,所以給了我一個極好的學(xué)習(xí)氛圍。且 Airbnb 也是重度使用 Rails。二來因為常用,所以自己也愿意額外下功夫,整個 RailsCast 幾百段教學(xué)錄像,當(dāng)時借用每天上下班坐車的時間都看完了。一些 Rails 的論壇也常常關(guān)注。所以對于 Rails,雖然坑很多,但是自己還是有信心能避開大部分常見的問題。之前的一篇《聊聊 Ruby on Rails》也寫過一些心得體會。
最后說說幾種前端語言、框架、和庫的學(xué)習(xí),例如 JavaScript,Ember,React 等。我在學(xué)校的時候其實從來沒有碰過前端。后來因為工作需要才去學(xué)的這幾種。前端語言和后端語言差異還是蠻大的,尤其是語法上。如果一點底子都沒有,加上 Html,CSS 等,其實有時候讀懂代碼都費(fèi)勁。所以直接上手寫幾乎是沒有可能了。
當(dāng)時一開始是找的 W3School 上的一些教程類文檔,完整地過了一篇,不算很長,看起來倒也挺快?赐曜x代碼問題就不算太大。然后白天看看公司的代碼庫,寫一些簡單的代碼練手。一有空,就拿語言的官方文檔邊看邊抄。什么意思呢?就是從頭細(xì)讀,遇到能立馬理解體會的,根據(jù)熟悉程度,或快或慢,一帶而過。遇到有點不知其所以然,或者雖然理解了,但是覺得自己沒有深刻體會的的,就做筆記摘錄下來。這樣有一些在實踐的過程中慢慢又會遇到,通過實際場景就會更深刻地理解。不時再溫習(xí)一遍自己的筆記,覺得已經(jīng)熟悉掌握的就劃掉。學(xué)和練交替,等到筆記上半懂不懂的內(nèi)容全部被 Mark 了,基本也算學(xué)的差不離了。
大致就是如此吧。
最后說一下,語言畢竟只是工具。精通一門語言最多算是優(yōu)勢,從長久的職業(yè)生涯來說,只能算技能之一。簡歷上多列幾門語言也不見得就在找工作的時候一定有優(yōu)勢。有一定的語言功底,每種典型的語言類型都能熟悉或精通一門。然后在需要的時候再去學(xué),學(xué)習(xí)的過程中能做到不想當(dāng)然,不套用定式。
其實沒有絕對好或者絕對不好的語言,因為每種語言都是為了一些特定場景設(shè)計的。脫離了這些場景,就總有用起來比較尷尬的情況。多了解語言的特性,在使用過程中能做到揚(yáng)長避短,大部分時候就足夠了。當(dāng)然,如果是項目里負(fù)責(zé)語言架構(gòu)的技術(shù)人員,那又另說了。
因為是極客邦老大霍泰穩(wěn)的親妹妹,年底了,不給我發(fā)紅包,卻被感情綁架發(fā)免費(fèi)廣告。也不知道有幾個妹妹能這么好使喚的。不過話說回來,極客邦的活動和產(chǎn)品確實是高品位、高品質(zhì)的。所以推薦起來,也算是良心推薦了。技術(shù)人的未來沒準(zhǔn)就在這里。
相關(guān)推薦:
小升初試題、期中期末題、小學(xué)奧數(shù)題
盡在奧數(shù)網(wǎng)公眾號
歡迎使用手機(jī)、平板等移動設(shè)備訪問幼教網(wǎng),幼兒教育我們一路陪伴同行!>>點擊查看