[爆卦]python刷題網站是什麼?優點缺點精華區懶人包

雖然這篇python刷題網站鄉民發文沒有被收入到精華區:在python刷題網站這個話題中,我們另外找到其它相關的精選爆讚文章

在 python刷題網站產品中有3篇Facebook貼文,粉絲數超過44萬的網紅李開復 Kai-Fu Lee,也在其Facebook貼文中提到, 分享好文,中學生要學電腦嗎? 作者:創新工場CTO、人工智慧工程院執行院長 王詠剛 文章来自半轻人微信公众号(ban-qing-ren) ……………………………… 朋友的孩子高中剛畢業,已拿到美國頂尖大學(非電腦專業)的錄取通知。疫情影響,不知何時才能去學校報到。孩子想抓緊學習一下程式設計,為大...

  • python刷題網站 在 李開復 Kai-Fu Lee Facebook 的最佳解答

    2020-07-02 15:56:45
    有 475 人按讚

    分享好文,中學生要學電腦嗎?
    作者:創新工場CTO、人工智慧工程院執行院長 王詠剛

    文章来自半轻人微信公众号(ban-qing-ren)
    ………………………………

    朋友的孩子高中剛畢業,已拿到美國頂尖大學(非電腦專業)的錄取通知。疫情影響,不知何時才能去學校報到。孩子想抓緊學習一下程式設計,為大學打好基礎。這孩子找我聊了一個多小時,從如何學程式設計,聊到非電腦專業和電腦專業的路徑差異,又聊到如何從不同角度認識電腦與程式設計。聊得比較寬泛,不知是否對這孩子有用。

    回想我自己的高中時代:那時雖迷戀程式設計,卻完全沒有懂行的人指導。在我們那個四線城市的廠礦中學裡,開設電腦興趣課的老師知道的資訊還沒我多。我高一時跑到北京中關村逛街,卻完全沒意識到中國第一代頂尖程式師當時就在我身邊的低矮辦公樓裡寫代碼(這話說得並不準確,比如求伯君那年就主要是在珠海做開發),鼎鼎大名的UCDOS、WPS、CCED就出自他們之手……我在當時街邊的一家書店(位置似乎就在今天的鼎好大廈對面)買到了許多種印刷品質極低劣的電腦圖書。用今天的標準看,那就是一批盜版影印或未授權翻譯的國外圖書。可那批書竟成了我高中時代最寶貴的程式設計知識來源。

    顯然,我在高中時根本就是野路子學電腦。現在後悔也沒用,當時我的眼界或能觸及的資源就那麼多。如果能穿越回30年前,我該對喜歡程式設計的自己說些什麼呢?這些年,我與世界上最好的一批程式師合作過,也參與過世界上最有價值的軟體系統研發——我所積累的一些粗淺經驗裡,有哪些可以分享給一個愛程式設計的中學生?

    【問題1】中學生要不要學電腦?

    當然要!

    每個中學生都要學。只不過——建議大部分中學生使用“休閒模式”,小部分(不超過10%)中學生使用“探險模式”。

    啊?兩個模式?那我該進入哪個模式?⟹請跳轉至【問題2】

    【問題2】選哪個模式?

    你癡迷電腦嗎?比如,你玩遊戲時會特別想知道這遊戲背後的代碼是如何編寫的嗎?再比如,就算老師家長不同意你學電腦,甚至當著你的面把電腦砸了,你也要堅持學電腦嗎?如果是,恭喜你進入“探險模式”⟹請跳轉至【問題200】

    你對數學有興趣嗎?比如,你看到街邊建築的曲線,就會在腦子裡琢磨曲線對應的函數或方程嗎?每當手裡攥著幾粒骰子,你就會不由自主地計算概率嗎?如果是,歡迎進入“探險模式”⟹請跳轉至【問題200】;當然,如果有些猶豫,也可以先進入“休閒模式”⟹請跳轉至【問題100】

    即便你對電腦和數學興趣不大,家長、老師還是強烈建議你學電腦嗎?就算你一百個沒時間一千個不願意,家長、老師還是會逼著你學電腦嗎?如果是,建議你主動進入“休閒模式”並向家長、老師彙報說“我已經按照前谷歌資深軟體工程師的專業建議在認真學程式設計了”⟹請跳轉至【問題100】

    其他情況,一律進入“休閒模式”。⟹請跳轉至【問題100】

    【問題100】休閒模式 | 主要學什麼?

    “休閒模式”將電腦視為我們生活、工作中的必備工具,主要學習如何聰明、高效、優雅地使用計算設備。這裡說的計算設備,包括所有形式的電腦、手機、遊戲機、智慧家電以及未來一定會進入生活的自動駕駛汽車。

    什麼什麼?你已經會用電腦、會玩手機、會打遊戲了?別著急,慢慢往下看。

    【問題101】休閒模式 | 我會用搜尋引擎嗎?

    我知道你會用百度搜習題答案。但,習題答案不是知識。你會用搜尋引擎來搜索和梳理知識嗎?請試著用電腦和你喜歡的搜尋引擎來解決如下兩個問題:

    (1)圓周率𝜋的計算方法有多少種?每種不同的計算方法分別是由什麼人在什麼時代提出的?借助電腦,今天人們可以將圓周率𝜋計算到小數點後多少位?將圓周率𝜋計算到小數點這麼多位元,一次大概需要花掉多少度電?

    (2)全球大約有多少個廁所?在發展程度不同的國家,分別有多少比例的人可以享用安裝了抽水馬桶的衛生廁所?為什麼比爾·蓋茨曾大力推動一個設計新型馬桶的研發專案?比爾·蓋茨的公益組織在這個專案上大約花費了多少資金,最終收到了多大的效果?

    如果你沒法快速得到上述問題的全部答案,那就給自己設一個小目標:一個月內,學會用搜尋引擎系統地獲取、梳理一組知識點的全部技巧。

    【問題102】休閒模式 | 接下來學什麼?

    建議學好典型的工具軟體。比如,我知道你會用Office了,但用Office和用Office是很不一樣的。對生活、學習、工作來說,學好、學透一個工具軟體比鑽研程式設計技巧更實用。

     你會用Excel來管理班級公益基金的預算和實際收支情況嗎?
     你會用Excel做出過去20年裡全球大學排名的演變趨勢圖嗎?
     你會用Word排版一篇中學生論文嗎?論文中的圖表和最後的參考文獻部分該如何排版?
     你會用Word編排一份班級刊物,包含封面、扉頁、目錄、插圖頁、附錄、封底等部分,可以在列印後直接裝訂成冊嗎?
     PowerPoint呢?你有沒有研究過蘋果公司發佈會上那些幻燈片的設計?當約伯斯(多年以前)或蒂姆·庫克站在幻燈片前的時候,他們的演講思路是如何與幻燈片完美結合的?

    還有哦,別忘了學學如何為數碼照片做後期,如何用電腦或手機剪視頻,如何為剪輯好的視頻配字幕,如何將照片、音樂、視頻等素材結合起來,做出一段吸引人的快手/抖音短視頻。

    最後,抽空玩玩那些設計精妙的遊戲吧,比如《紀念碑穀》、《塞爾達傳說:曠野之息》之類;同時,遠離那些滿屏廣告,或者一心騙你在遊戲裡充值花錢的垃圾。

    【問題103】休閒模式 | 不學學知識嗎?

    當然要學知識。下面每種實用的電腦知識都夠大家學一陣子了。

    (1)色彩知識:你知道同一張數碼照片在不同品牌的手機螢幕上、不同的電腦螢幕上、不同的智慧電視上顯示時,為什麼經常有較大色差嗎?你知道有一些色彩只適合螢幕顯示,不適合列印輸出嗎?你知道軟體工具裡常用的RGB、HSL之類的色彩空間都是什麼意思嗎?如何在設計PowerPoint幻燈片時選擇一組和諧美觀的色彩?

    (2)字體知識:你知道什麼是襯線字體,什麼是無襯線字體嗎?你知道網頁中常用的英文字體都有哪些嗎?你知道商務演講時最適用于幻燈片的英文字體有哪些嗎?你知道電腦和手機常用的黑體、宋體、仿宋體、楷體等中文字體分別適合哪些實際應用場合嗎?你會將不同字體混排成一個美觀的頁面嗎?

    (3)網路知識:你知道5G是什麼嗎?你知道5G和4G在通信頻寬、通信距離上的具體區別嗎?你知道什麼是路由器,什麼是防火牆嗎?你知道如何配置路由器,如何配置防火牆嗎?微信或QQ聊天時,對方發的文字、語音或視頻是如何傳送到你的手機上的?

    (4)應用知識:淘寶中搜索得到的商品資訊是從哪裡來的?商品是按什麼方式排序的?為什麼購物APP經常會推薦給你一些曾經買過、看過的商品?你知道如何為自己建立個人網站嗎?你知道如何管理微信公眾號嗎?

    (5)安全知識:你知道網路上的釣魚攻擊是怎麼回事兒嗎?你知道什麼是電腦漏洞嗎?你知道駭客為什麼想把一大批受攻擊的電腦變成可以遠端操控的傀儡機嗎?你知道為什麼現在很多手機APP都要通過短信發送驗證碼嗎?如果驗證碼被壞人截獲,你會面臨哪些風險?

    這裡只是舉例。實用的電腦知識還有很多。大家可以自己發掘。

    【問題104】休閒模式 | 我需要學程式設計嗎?

    可以學,但不是必須。即便學,也只需要根據自己的需要,學那些最能幫你解決現實問題的部分。

    【問題105】休閒模式 | 我該學什麼程式設計語言?

    在“休閒模式”裡,電腦就是工具,程式設計也是工具,夠用就好。學什麼程式設計語言,完全看你想要電腦幫你做什麼。

    • 如果你想對資料處理有更多自主權,那不妨學學Python;
    • 如果你想做簡單的交互演示程式,那就先把JavaScript學起來;
    • 如果你想更好、更快地寫論文,那不妨學學LaTeX(什麼什麼,LaTeX不是程式設計語言?你太小看LaTeX了);
    • 如果你想學做簡單的手機APP,那麼,Android手機就學Java,蘋果手機就學Swift好了;
    • 如果你只想知道程式設計是怎麼回事,那……從Python或JavaScript開始就行。其實,跟五六歲的小朋友一起學學Scratch圖形程式設計也不錯。

    【問題106】休閒模式 | 我需要學人工智慧嗎?

    在“休閒模式”裡,最需要學的不是“人工智慧的實現原理”,而是“什麼是人工智慧”,以及“人工智慧能做什麼,不能做什麼”。

    • 在手機上試一試,人工智慧做語音辨識時能做到什麼水準?哪些話容易識別,哪些話不容易識別?
    • 打開機器翻譯軟體,試一試哪些資訊翻譯得好,哪些資訊翻譯得不好?
    • 手機上的拍照軟體一般都有人臉識別功能。試一試人臉識別在什麼場景下做得好,什麼場景下做得不好?
    • 找一部講人工智慧的科幻電影,用自己的判斷解讀一下,電影裡哪些技術有可能成為現實,哪些技術存在邏輯矛盾。

    【問題107】休閒模式 | 推薦什麼參考書、參考文獻?

    書不重要,豆瓣評分7分以上的電腦應用、程式設計甚至科普類圖書都可以拿來翻翻。

    直接在知乎裡搜索你想瞭解或學習的知識點可能更有效率。

    如果你意猶未盡,覺得自己剛活動開筋骨,還想挑戰更高層次,歡迎進入“探險模式”。⟹請跳轉至【問題200】

    否則,“休閒模式”到此結束。⟹請離開此問答

    【問題200】探險模式 | 主要學什麼?

    “探險模式”需要有挑戰精神。電腦科學的世界技術演進快,脈絡複雜,要想在探索時不迷路,你得通過有順序、有系統地學習電腦知識,慢慢構建出一張可以在未來幫你走得更遠的思維地圖來。

    在“探險模式”裡,電腦就不止是一件能快速計算的工具了。電腦更像是我們大腦的一種延伸。這既包括認知能力的延伸,也包括認知邏輯的延伸。隨著學習深入,大家會逐漸體會到電腦所具有的多維度能力:

     電腦是一種可以表示不同類型資訊(數、符號、文字、語音、圖像、視頻、虛擬空間、抽象邏輯)的“資訊管理機”;
     同時,電腦也是一種可以連續執行指令以完成特定的資訊處理任務的“指令處理機”;
     同時,電腦還是一種可以在知識與邏輯層面完成特定推理任務的“知識推理機”;
     同時,電腦也是一種可以從人類給定的資料或自我生成的資料中總結規律,建立模型,自主完成某些決策的“智慧學習機”。

    “探險模式”的目標就是盡可能準確地認識電腦,掌握有關電腦運行的最基本規律。有了這些基礎。未來在大學期間或工作中,你就能更容易地設計電腦軟硬體系統,或是設計出碳基大腦(人類)與矽基大腦(機器智慧)之間的最佳協作方案。

    【問題201】探險模式 | 我的英語水準足夠嗎?

    蘋果每年秋季的新品發佈會,不加字幕的話,你能聽懂多少?

     能聽懂大部分:建議在學習電腦的過程中,盡可能使用英文教材、英文文檔。
     能聽懂小部分:建議將原來準備學電腦的時間,分出一部分來學英語。
     只能聽懂“你好”“再見”之類:⟹請離開此問答。然後,把原來準備學電腦的時間用於學英語,六個月後再回來。

    【問題202】探險模式 | 我的數學水準足夠嗎?

     如果你是數學和數學應用小能手——較複雜的數學問題總能快速找到核心思路,或快速簡化為簡單問題;很容易就能將抽象概念映射到具體的數學圖形,或將數學問題與相應的現實問題關聯在一起:請繼續探險之旅。
     如果你應付正常數學課程感到吃力:建議將原來準備學電腦的時間,分出一部分來學數學。
     如果你還搞不清楚什麼是方程、函數、集合、概率……:⟹請離開此問答。然後,把原來準備學電腦的時間用於學數學,六個月後再回來。

    【問題203】探險模式 | 為什麼強調英語和數學?

    (1)統計上說,最好的電腦參考資料大都是英文寫的,最好的電腦課程大都是用英文講的,最新的電腦論文大都是用英文發表的。

    (2)函數、方程、坐標系、標量、向量、排列組合、概率這些中學數學裡會初步學習到的數學知識,是電腦科學的基礎。

    【問題204】探險模式 | 電腦知識那麼多,正確的學習順序是什麼?

    最重要的順序有兩個。建議先從順序一開始,學有餘力時兼顧兩個順序。

    順序一:自底向上,即,自底層原理向上層應用拓展的順序。

     電腦原理的基礎知識:
     為什麼每台電腦(包括手機)都有CPU、記憶體和外部設備?
     (馮·諾依曼體系結構的)記憶體中為什麼既可以存儲資料,也可以存儲指令?
     CPU是如何完成一次加法運算的?
     程式設計語言的基礎知識:
     資料類型,值,變數,作用域……
     語句,流程控制語句……
     過程、方法或函數,類,模組,程式,服務……
     編譯系統的基本概念:
     電腦程式是如何被解釋或編譯成目標代碼的?
     演算法和資料結構的基礎知識:
     陣列,向量,鏈表,堆,棧,二叉樹,樹和圖……
     遞迴演算法,排序演算法,二叉樹搜索演算法,圖搜索演算法……
     應用層的基礎知識:
     為什麼電腦需要作業系統?設備驅動程式是做什麼的?
     網路通信的基本原理是什麼?流覽器是怎麼找到並顯示一個網頁的?
     資料庫是做什麼用的?
     虛擬機器是怎麼回事?
     人工智慧系統的基礎知識:
     先熟悉些線性代數、概率和數學優化的基礎知識。
     什麼是機器學習?從簡單的線性回歸中體會機器學習的基本概念、基本思路。
     什麼是神經網路?什麼是深度神經網路?為什麼神經網路可以完成機器學習任務?
     如何使用PyTorch或TensorFlow實現簡單的深度學習功能?

    順序二:自頂向下,即,自頂層抽象邏輯向下層具體邏輯拓展的順序。

    • 電腦的本質是什麼?
    • 什麼是圖靈機?什麼是通用圖靈機?
    • 什麼是讀取﹣求值﹣輸出迴圈(Read–eval–print Loop,REPL)?
     如何用自頂向下的方式理解(解析、解釋、編譯)一段程式碼?
    • 靜態語言和動態語言的區別?
     如何理解變數與資料類型之間的綁定關係?
    • 什麼是函數式程式設計?
     程式設計語言中,函數的本質是什麼?
     函數為什麼可以像一個值一樣被表示、存儲、傳遞和處理?

    • 什麼是物件導向?
     類的本質是什麼?
     如何用物件導向的方式定義個功能介面?
     如何依據介面實現具體功能?
    • 什麼是事件驅動?
     什麼是事件?事件如何分發到接收者?
     如何在事件驅動的環境中理解代碼的狀態和執行順序?

    【問題205】探險模式 | 如何提高程式設計水準?

    在掌握基本知識體系的基礎上,學好程式設計只有一條路:多程式設計,多參加程式設計比賽,多做程式設計題,多做實驗項目,多找實習機會——其中,能參與真實專案是最有價值的。

    【問題206】探險模式 | 該從哪一門程式設計語言學起?

     我個人推薦的程式設計入門語言(可根據情況任選):
     Python
     Java
     Swift
     C#
     JavaScript / TypeScript
     Ruby
     ……
     可能不適合入門,但適合後續深入學習的語言:
     C
     C++
     Go

     Objective-C
     組合語言
     機器語言(CPU指令集)
     Shell Script
     Lua
     Haskell
     OCaml
     R
     Julia
     Erlang
     MATLAB
     ……

    【問題207】探險模式 | 如何選參考書和參考資料?

    (1)強烈推薦的參考書和參考資料:

    • MIT、Stanford、CMU、UC Berkeley這四所大學中任何一個電腦專業方向使用的教學參考書或參考資料。網上可以查到這些學校電腦專業方向的課程體系,有的學校甚至公開了課程視頻。其中往往會列舉參考書和參考資料連結。
    • 維琪百科(英文)上的數學、電腦科學相關條目。
    • Github上star數在1000以上的開原始程式碼和開來源文件。

    (2)強烈推薦但須小心辨別的參考資料:

     知乎上的數學、電腦科學相關條目。使用時需要格外注意三件事:
     儘量只看高贊答案或高贊文章;
     辨別並避開廣告軟文;
     辨別並避開純抖機靈的故事或段子。
     Stack Overflow上的程式設計問題解答:
     自己動手實驗,辨別解答是否有效。
     CSDN上的程式設計問題解答:
     自己動手實驗,辨別解答是否有效。

    (3)其他推薦的參考書和參考資料:

     國內專業作者寫作的專業技術書籍(豆瓣評分7分以上的)。
     大廠(Google、Facebook、Microsoft、Amazon、阿裡、騰訊、百度、頭條等)資深工程師的技術公號、專欄、博客等。

     著名圖書系列:如O’Reilly的動物封面的系列圖書(請注意最新版本和時效性)。
     國內翻譯的著名技術圖書(譯本在豆瓣評分7分以上的)。

    (4)儘量避免的參考書和參考資料:

    • 已經過時的圖書或參考資料。
    • 作者或譯者人數比章節數還多的專業圖書。
    • 百度百科上的數學或電腦科學相關資料。

    什麼什麼?你這篇問答居然沒有推薦一本具體的圖書?是,沒錯。如果你覺得即便有了上面的線索,自己還是找不到好書好資料,那也許你還是適合“休閒模式”⟹請跳轉至【問題100】

  • python刷題網站 在 小吃貨的英國生活日記 Facebook 的精選貼文

    2020-06-05 05:52:37
    有 46 人按讚

    #軟體工程師面試 #文長慎入

    面試問題好像一直以來都是一個很多人關切的環節,在各大版上也一直有人會詢問。因為之前有幫公司面試一些人,還有加上從朋友那邊搜刮來的經驗,概括分享一下。

    這邊感覺可以分成幾個部分:

    1. 面試的題目是否都是演算法相關題目?

    2. 是為什麼實際工作內容通常都和面試考的沒有相關?

    3. 我現在學的東西對找工作是否有幫助?

    4. 公司招募看的到底是這個人的學經歷,能力,個性,還是什麼,為什麼有些人很感覺很厲害卻一直無法拿到offer?

    其實用FB排版不太容易,但因為懶得登入部落格,想說快速地打一打,所以也請各位見諒。

    #面試的題目是否都是演算法相關題目

    如果是投FANG之類的,Facebook Amazon, Neflix, Google (沒記錯應該是這幾間),反正就是這些有名的大廠,除了Netflix目前沒有遇到認識的聊過,其他都是考演算法沒錯。

    當然也不只有會考演算法,根據你申請的職缺,可能也會加考一些其他的東西。

    那其公司是怎樣呢?其實還是有很多公司會考演算法相關的,尤其是線上面試。

    雖然在疫情下全都是線上,但一般來說,還是會有分兩種,一種是沒有真人的狀況下,就是給你像是HackRank這種網站,你點開可能有六十分鐘讓你做兩題。

    做完以後你提交,你也不會知道你的分數跟分析結果之類的,看公司怎麼做設定,而且除了演算法相關題目,也可以設定選擇題之類的。

    另一種就是真人面試,通常電腦自動面完以後,你可能會跟真人線上面試,真人也是會給你類似所謂的白板題,就是出一個題目讓你現場解題,然後中間可能有的會要你跟他討論,當然看面試官拉!

    比較加分的還是,你編寫的時候可以邊闡述自己的想法,而不是低頭默默寫完,這樣也是有點尷尬。如果你編寫邊闡述的話,或者是少有點互動,也是展現你的溝通能力以及你對於題目的掌握能力,就像是你看到一個很簡單的題目 (2+3)*5 之類的,你可以很有自信的說,喔因為2+3在括弧裡面,所以要先算,然後再乘以5,展現底是真的有理解,而不是就是背題目之類的。

    有些公司也可能是給你回家作業,叫你做一個小專案之類的,看你應徵的職缺,可能是叫你做一個UI 或者叫你建一個API 也可能叫你做一整個比較完整的東西出來。如果你是面試架構師的話,可能會叫你建一個架構,或設計一個架構出來。

    然後也有的公司(像我們公司)就是需要pair programming 所以在線上面試的階段就是會有,真人跟你一起寫程式這樣。

    #為什麼實際工作內容通常都和面試考的沒有相關

    這個部分一直以來都是一個難解的謎題。像是Google Facebook這種大公司其實不難理解,畢竟他們是比較類似General 的招募,不是一開始就決定好你就是要去某個Team然後永遠讓你待在那個Team。就他們招募的是他們覺得,有潛力的人才,這樣不管需要做什麼都可以自由移動他們,給他們training就可以變得很好用。加上他們一次招募的數量也是相當龐大,考演算法相關的話,可以快速篩選,也更有機會找到他們需要的人才。

    因為像是Facebook或Google這種有自己開發框架,開發技術的公司,他們的確有很多時候需要寫演算法或者系統優化的工作。

    那像是普通的中小企業或新創,說真的,其實就是跟風。因為覺得人家Google Facebook都是這樣找到優秀人才,那我們也要依樣畫葫蘆,這樣鐵定也能找到厲害的人。

    可是這樣找到的人進去以後,發現公司好像也是不知道在幹嘛,最後可能也會待不下去。所以這個部分,近年來也越來越多公司開始改進,開始思考什麼樣的招募流程最適合自己公司。

    像是pair programming也開始成為近年來的一個流行的面試,有的公司並不是真的pair 但就是你要跟他們一起工作,了解他們公司的文化,或者跟他們的工程師進行一些深度討論。或者會問你說,假設給你設計一個系統,你要怎麼做之類的。

    當然,面試問題跟流程都是每間公司各有不同,不是說你現在準備一種就萬無一失。所以說最好還是盡可能的,提升自己的基礎能力。

    如果真的就是打算以FANG為目標的話,就可以從刷題開始,像是Leetcode, Hackrank, codewars之類的都不錯。之前有看到一篇文章,他刷了幾百題,而且每題刷了三次以上,真的很有毅力。刷題的重點就是在於熟練那些題目,可是也不要硬背,你練習是要練那個速度感。可是該理解的還是要理解。

    因為你進公司以後,你還是需要使用那些東西來工作,不是只是為了刷題而刷題,而且面試官可能也會考你變形題之類的,或者問你一些記憶體相關的問題,或者是系統設計的問題,或者單純想知道,你是怎麼想出解法的,所以硬背題目跟答案其實也是不太行。

    目前我的了解是,大部分中小型企業或者新創,很多時候你學習新東西的能力是比演算法更重要的,尤其是新創你什麼都要會,假設公司是剛起步的新創,你就要變成公司主要的技術專家,什麼東西不太會也要馬上現學現賣,也不要期望公司可能會給你什麼Training 或者有人給你依靠,可能同事還要依靠你。

    中型或者普通大型企業,假設公司已經有產品的話,大部分的時候可能是既有產品維護,除非你剛好很幸運地在新產品開發的Team,這樣就有機會學到很多東西,不然維護的話,很多時候只是在了解產品本身是否有Bug,改善code品質之類,也要看公司是否有想花成本在維護上面。如果公司就是打算一個產品,改一點東西就繼續賣錢,那樣好像也不太需要一直去migrate 或者搞新東西上去。

    如果你剛好很幸運在獨角獸新創,那你不但可以學到很多東西,還可以用最新科技,可能還有機會遇到大神帶你。

    所以說選公司其實也是有點重要,面試的時候,可以問問他們說,那你平常的daily work是怎麼樣的,公司有沒有走敏捷開發,公司有沒有用雲端,公司一個Team的規模之類,以及公司會不會提供訓練。

    #我現在學的東西對找工作是否有幫助

    其實這個就要看你的未來三年五年十年規劃。

    假設你就是都在寫前端,你也覺得我要寫前端寫一輩子,那好像就可以繼續一直focus在前端。如果你擔心自己會丟飯碗,是不是要學點後端,其實也是可以學,可是學了以後,你打算學得多專精?後端的東西也是會一直更新,一直進步。可能Restful API 也可能不是,DB也有好多種DB, 後端語言也很多種,所以你是想要學個大概,還是是希望,後端也問題的時候,自己可以去看code也看得懂?

    前一個專案,公司有一個前端,他就是因為自己做的ticket幾乎都會碰到後端,就乾脆把整個後端也寫一寫,就變成fullstack,雖然他主要還是算前端。但也因為是.NET 所以前端跟後端可能沒有太明顯的分界,至少我相信他本來就會寫.NET了,因為幾乎有一半以上的controller都是他寫的。

    如果你是寫react SPA,就是跟後端完全分開,你就只要寫到send http request 那邊的話,那好像也不太需要去了解到後端的架構,就是大概知道後端的endpoint 長什麼樣子就好,他們需要提供的文件就是需要提供。

    如果說你是怕以後失業,怕公司可能覺得請全端比較划算,那的確還是多學一點好,反正多學也是投資自己。還能順便展現自己的上進心以及學習能力。

    以consultancy來說好了,感覺是什麼都要學,像是公司可能就會說,啊最近我們的客人都要求要會什麼什麼,那你就趕快學一下。當然公司也不是很壞心的就叫你要馬上學會,公司最近也是有開始提供一大堆Training 之類的,還給你錢讓你去考一些證照。

    目前我使用的語言主要還是Javascript 和 C#這樣,然後公司有希望我可以好好學學Java。其實也不是不會寫Java,如果有發漏我其他文章的話就知道,其實我最一開始學的時候,第一個語言就是Java。

    在台大資訊系統訓練班的時候,我就上了Java和PHP的課程,為自己來英國念研究所做準備,一年的master course也都是Java 跟PHP為主,然後有用了一點Python這樣。可是工作以後就只有使用C#和Javascript 而已,所以說,學校學了也不一定會用到。

    很多東西都是工作以後才學的,然後Python是平常自己刷題的時候會用,因為覺得不錯用。

    其他的話,我覺得雲端相關的東西滿實用的,像是AWS或Azure 或GCP 有機會的話是可以自己摸摸。我自己是滿幸運的在工作上一直都有用到雲端產品,主要是AWS,前一個專案有用Azure 這樣。

    DB的話,就是SQL和NoSQL可以個學一個,應該就滿好用的了,目前最流行的應該就是PostgreSQL和MongoDB 。如果對於Graphic Database有興趣也可以稍微看一下像是Neo4J之類的吧!

    前端框架的話,就是React, Angular, Vue.js選一個吧!學會一個以後再去學其他的也不難,這三個我是剛好工作上都有用到,我自己是覺得Vue和React應該是比較好上手的,入門門檻比較低,Angular就一定要寫Typescript.

    後端框架的話,看你用什麼語言,Java就學spring boot,
    C#就是.NET,JS的話應該是Express,Python就Django,PHP就Laravel 。

    Mobile的話我沒有寫過也不知道。

    如果是平常想要補充知識的話,可以多念一些像是security 相關的東西,或者是Oauth那類的,也可以看一下架構之類的。像是Microservices, microfrontend, Domain Driven Development 這些概念性的東西。

    也可以看一些像是Clean Code相關的書,怎樣重構原本的爛Code或者TDD相關的書。

    反正前一篇文章就說了,這個職業就是要一直學,活到老學到老,如果打算做到老的話。

    #公司招募看的到底是這個人的什麼

    其實每個公司應該都不太相同。有的公司就是要招募他們覺得最聰明的人,所以就是一直問你一些很難的東西。或者就是只要找那種名校出來的人,最好有什麼數學物理奧林匹亞的。

    有些公司看的是你的個性,符不符合公司文化,或者同事喜不喜歡你之類的。

    有些公司就是很缺人,看你能不能馬上上工之類的。能的話就馬上錄取你之類。但通常那個可能是很雷的缺,例如公司找人找很久都找不到,終於看到一線希望。然後為什麼找不到人,可能是薪水開的偏低,或者公司名聲不好,上Glassdoor就可以查看公司的評價。也可能是職缺本身很雷,例如看起來就是個打雜缺。或者是前人都做不久就離開,所以需要一直找人。

    有些公司是看你寫的code 例如看你的code乾不乾淨,可能你寫出來的code都很乾淨,設計也很好,思路也很清晰,他們就會錄取你。

    有些公司看的是你有沒有某些特定的經驗,例如公司開那個缺剛好就是要找有AWS經驗的人,所以可能就是會錄取他們覺得AWS經驗比較多的人。或者是剛好想找之前有做過Serverless架構的人,或者是有碰過Kubernetes的人,這個時候真的就是靠經驗了。

    也有的公司就是,他們也懶得找人,HR給他們面試的第一個人就會錄取,這個完全靠運氣。這件事情真的發生在我第一間公司的另外一個Team,主管非常不喜歡面試人,也覺得我工作都沒時間還要面試。所以就是隨便問問之類的,然後就跟HR說好。

    --------------------------------------

    以上就是我目前經歷過以及別人分享給我的經驗。我覺得面試的話,運氣真的也是佔滿大的比例,尤其是遇到像第一間公司那種狀況的。

    當然年輕的時候可能會比較急躁,也很擔心自己找不到工作,考量到的還有金錢跟公司名聲,所以學不學得到東西也可能是其次。

    選offer的時候,也可能就是可以分析一下,自己想要的到底是什麼,是金錢,是做得開心,還是想要可以做的久(這個也要看公司可以活多久),除了看Glassdoor也可以上網看一下公司財報。

    最近的疫情衝擊下,有很多新創或中小企業也開始裁員跟減薪,所以公司平常的財務狀況和經營方針也是很重要的。即使公司可能一直都有收入,也可能因為現金管理問題,導致沒有足夠現金需要裁員。

  • python刷題網站 在 李開復 Kai-Fu Lee Facebook 的精選貼文

    2019-02-18 11:02:18
    有 872 人按讚


    刷新一次,生成一張逼真假臉:用英偉達StyleGAN做的網站,生出了靈異事件

    很有意思,試試看:http://thispersondoesnotexist.com
    本文來自量子位微信公眾號
    ……………………………………

    一個新網站在國外火了。

    玩法很簡單,每次刷新這個網站的頁面,都能出現一張人臉。大多數情況下,都是一張眉目清晰、面含微笑的和善人臉。

    不過,這個網站卻被一眾國外媒體,集體以“可怕”兩個字來形容。

    為什麼?

    來,大家先仔細看看這些笑臉。

    不知你能否看出可怕之處?

    其實,這些人臉都是假的。

    每次刷新這個網站,出現的那張高清笑臉,儘管看起來無比真實,但都是從來不曾在世界上出現過的。這些笑臉不是真人的笑臉。

    都是AI生成的。

    ▍光榮歸屬英偉達

    之所以能生成人臉,是因為背後有一個針對人臉進行預訓練的模型。每次你刷新網站時,一個神經網路就會基於512維向量,從零生成一個全新的人臉。

    而這個網站的創建者,名叫Philip Wang。社交網站的資料顯示,他是一位Uber的軟體工程師。住在三藩市。

    他在Facebook上解釋了為什麼要建這樣一個網站。

    最近一群天才的英偉達研究員,發佈了最先進的生成對抗網路StyleGAN。我決定自己動手搞個事情,提高大眾對這個技術的認知。

    顯然,Philip Wang的目的達到了。

    他搭建的這個網站,用一種超級簡單的方式,展示了StyleGAN能生成多逼真的假人臉。再給幾個示例,大家一起看看。

    什麼是StyleGAN?

    這是英偉達2018年底發佈的最新研究成果。十天前,英偉達正式給這個模型命名為StyleGAN。顧名思義,GAN的生成器,是借用風格遷移的思路重新發明的。
    而且英偉達官方還開源了代碼。

    這個實現可以用Linux跑,也可以用Windows跑,但牆裂推薦大家用Linux跑,為性能和相容性著想。此外還需要Python 3.6和TensorFlow 1.10以上 (支持GPU) 。

    和官方代碼實現一起發佈的,還有Flickr高清人臉數據集。那些幾可亂真的人臉,就是StyleGAN吃了這個數據集,才生成的。

    數據集裏包含7萬張1024×1024高清人像。英偉達說,這些照片在年齡、種族、以及圖片背景上,都有很強的多樣性。
    當然,StyleGAN不止能生成人臉,英偉達還提供了貓、汽車、臥室的預訓練模型。

    如果你也想自己動手試一下,下麵是傳送門。

    代碼實現:
    https://github.com/NVlabs/stylegan

    FFHQ數據集:
    https://github.com/NVlabs/ffhq-dataset

    論文:
    https://arxiv.org/abs/1812.04948

    ▍“可怕”

    不過,媒體紛紛用“可怕”“毛骨悚然”“最毛骨悚然”,來描述網站的畫風。

    一方面,是不敢相信這些細節豐富、表情逼真的人臉,竟然全部都是假的。另一方面,這些生成的假臉,並不是每一次都看起來那麼完美。

    每次有明顯的問題出現時,確實讓人感覺有點可怕。

    網站上線之後,許多小夥伴也都欣賞到了奇怪的圖景:
    少只耳朵,算是很常見的缺陷了。

    妹子微笑著,可能沒發現旁邊有只幽靈。

    少年仿佛被不明力量攻擊了。

    當然,看起來奇奇怪怪,還不是最可怕的地方。
    這一張張並不存在的假臉,甚至讓人浮想聯翩。

    ▍神展開

    有個叫Darwindemon (達爾文惡魔)的 reddit網友講了一個更驚悚的故事,說是發生在自己身上。故事是這樣的:

    2月14日那天,她閑來無事,就在房間裏不停地刷這個網站。看著一張一張逼真的臉,也不知道是不是真的不存在,想著說不定有人剛好長這樣,誰說得清呢。

    刷著刷著,突然發現螢幕裏的臉和自己一模一樣,臉頰上的痣都一樣。她嚇呆了,不停地說服自己,這一定是巧合。

    然後,她跑去客廳沙發,靠在男票肩上找安慰。卻發現男票還是玩手機,對她的出現毫無反應。這時有人敲門,男票去開門,一個妹子走進來,男票還親了她。完全當她不存在。
    不管怎樣試圖引起男票的注意,都是失敗。不可能的,男票怎麼會在情人節開這種玩笑?

    再後來,她發現想不起自己是誰了。
    手機裏已經沒有一條消息了,相冊空了,郵箱空了,Facebook也沒有登錄痕跡了。
    她真的不存在了。

    找來找去,只有Reddit登錄著,但也沒有身份資訊。於是,達爾文就在那裏發帖,希望觀眾們幫她找回自己。
    這則求助帖的人氣急速上漲,18小時已有4.4k熱度。
    關於這個不存在的人,大家都有很多話想說。

    有人問:你有沒有再刷新一下?
    Darwin_demon:當下就刷了,生成了不認識的臉。
    有人回:那你又把一個人給抹殺了。
    這也是她唯一的回復。
    不過,樓下觀眾的討論沒有停,大膽的想法一浪一浪。

    有人說:反正你也不存在了,把找到的個人資訊都發到Reddit上,說不定系統就掛掉了呢。
    有人附和:是啊是啊,社會安全碼 (SSN) ,信用卡資訊之類的都來點吧。
    有人說:反正你也不存在了,去搶銀行吧,然後就有錢了。
    有人反對:沒法跟別人互動的話,錢就沒用了,還不如去搶商店,搶來的東西還能用。
    有人說:
    我剛才看到我表弟了。
    二次編輯:我怎麼不記得我有個表弟了,他叫什麼來著?
    有人回:
    你表弟去世五年了。
    然後,表弟真的來了:
    怪不得我有座墳。

    ▍One More Thing

    為什麼會有這種故事?

    因為這個網站的名稱叫:
    https://thispersondoesnotexist.com/
    (意思是:http://xn--ihq4ps6ag2pesfbp6g.com/)

    親測手機也能打開刷新。
    誰要不小心刷到了自己,可以留言求助……