1. <strong id="7actg"></strong>
    2. <table id="7actg"></table>

    3. <address id="7actg"></address>
      <address id="7actg"></address>
      1. <object id="7actg"><tt id="7actg"></tt></object>

        數(shù)據(jù)科學與人工智能從業(yè)者如何提升編程能力

        共 3637字,需瀏覽 8分鐘

         ·

        2021-01-28 13:25

        大數(shù)據(jù)文摘出品
        來源:medium
        編譯:Hippo

        我討厭編程!
        ?
        這是我七年前在實習期間告訴同齡人的話。千真萬確。我不想像公交上那些面無表情的人那樣成為沒有感情的編程機器。
        ?
        時至今日,我已經(jīng)獲得了2個編程相關專業(yè)的研究生學位,先后在5家不同公司中擔任網(wǎng)絡開發(fā)人員,目前擔任計算機視覺工程師職位。
        ?
        我熱愛編程!
        ?
        這是我告訴所有問我為何如此熱衷技術的人的話。我對編程的熱愛源于這樣一個認識:使用代碼實現(xiàn)的應用確實為如今這個技術驅動的社會帶來了機遇。
        ?
        本文介紹培養(yǎng)和提高我的編程能力的方法。這里將提供5種可以用來提高編程技能的策略。
        ?

        算法練習


        算法常常會嚇跑很多機器學習從業(yè)者,我自己也不例外。機器學習領域的興起使得通過啟發(fā)式算法來檢測模式的傳統(tǒng)方法不再成為必須,我們將特征檢測留給了神經(jīng)網(wǎng)絡。
        ?
        盡管如此,算法仍在軟件和計算領域中占有一席之地,并且肯定在機器學習領域中也不可或缺。算法練習是提高編程技能的利器之一。
        ?

        除了在提高代碼內存效率的靈感方面具有顯而易見的好處,研究算法的另一個 好處是能很好的培養(yǎng)解決問題的思維方式。
        ?
        用你所選擇的編程語言實現(xiàn)探索各種數(shù)據(jù)結構和數(shù)據(jù)修改方法的算法。了解如何利用數(shù)據(jù)對象、方法和其他有用的函數(shù)提高編程效率。
        ?
        數(shù)據(jù)科學家經(jīng)常使用數(shù)據(jù)挖掘和網(wǎng)絡爬蟲算法。充分了解算法和數(shù)據(jù)結構有助于生成高效的代碼,在實踐中執(zhí)行速度更快,進一步減少項目交付時間。
        ?
        不同算法的復雜程度也不盡相同,這里有一個供你熱身的簡單算法說明。相關鏈接可以參考這里:
        https://towardsdatascience.com/algorithms-for-data-scientists-insertion-sort-6caa69f906b3
        ?
        個人經(jīng)驗
        ?
        作為移動計算機視覺工程師(Mobile Computer Vision Engineer),我將許多深度學習模型用于常見的計算機視覺(CV)任務中,例如姿勢評估、對象檢測等。
        ?
        盡管PyTorch、TensorFlow和Keras等平臺轉移了模型實現(xiàn)的復雜性,但我發(fā)現(xiàn)有必要針對特定用例實現(xiàn)自定義算法。
        ?
        例如,創(chuàng)建基于余弦相似度的姿態(tài)匹配算法或有效地遍歷作為機器學習模型輸出的數(shù)據(jù)結構。
        ?
        為了確保我對各種算法的風險有足夠的了解,我買了一本很好的教材——《Introduction to Algorithm(第三版)》。不過這本教材可能對初學者并不是特別友好,在這種情況下,特別推薦諸如HackerRank這樣的平臺。


        技術書籍


        書本學習讓我感到自己回到了校園,沒有什么能比語言生動、內容詳實的書籍更讓人受益匪淺。
        ?
        在我職業(yè)生涯的早期,我一直以為自己最終會停止觀看YouTube教程或是購買編程書籍,因為我已經(jīng)獲得了“忍者級”的編程技能。
        ?
        然而幾年來,我意識到無論已經(jīng)到了哪個程度,都能了解到更多關于編程語言的知識。盡管我喜歡通過YouTube編程教程進行學習,但沒有什么能取代經(jīng)典編程技術書籍中豐富而簡潔的知識。
        ?
        例如,Python對于數(shù)據(jù)科學家來說算是一種易于掌握的標準編程語言。經(jīng)過幾周的語法、數(shù)據(jù)結構和通用函數(shù)的學習,可以輕松實現(xiàn)和運行自定義python腳本。你可以進一步通過視頻學習具備Python的中級技能。
        ?
        但是,Python中可以探索的內容還有很多,而且都可以提高你的編程技能。我學習有關Python語言的更深入內容的方式之一就是通過技術書籍,更具體地說是《Fluent Python》。本書并不適合初學者使用,而是主要針對中等以上水平的程序員提高編程熟練程度。
        ?
        總之,技術書籍可以通過對編程語言簡單清晰的介紹來提高數(shù)據(jù)科學家的編程水平,也可以通過對編程語言的深入闡述,提高數(shù)據(jù)科學家的現(xiàn)有編程技能。


        閱讀其他開發(fā)者的代碼



        最近,我嘗試實現(xiàn)深度學習卷積神經(jīng)網(wǎng)絡Inception Network。
        ?
        盡管我已經(jīng)有利用Python和TensorFlow庫實現(xiàn)的方法,但我對其他機器學習從業(yè)人員如何實現(xiàn)很是好奇。
        ?
        我探索性的瀏覽了幾個GitHub庫,研究了其他開發(fā)人員的代碼,毋庸置疑,我學會了改進已有方案的方法,并且更好的應用了我現(xiàn)有的編程技能。
        ?
        有大量的公共GitHub庫可供研究和學習。你不需要在Google或Facebook之類的技術公司工作就可以向他們的開發(fā)人員學習。只需瀏覽其工程師開發(fā)的項目的公共庫。對于數(shù)據(jù)科學家來說,這可能意味著探索諸如最近發(fā)布的Detectron2或其他開源機器學習工具之類的代碼庫。
        ?
        在工作場所的內部開發(fā)團隊中進行代碼審查也是一種合適的學習方法。通過了解其他開發(fā)人員實現(xiàn)方法背后的理由和思路,你可以間接擴展自己的視野和編程知識。

        學習不同的編程語言


        致力于編程語言多樣性是提高編程水平的不二之法。程序員用代碼來解決問題,多種編程語言的知識擴展了可用于解決問題的工具。
        ?
        掌握Python可能會幫助您學習數(shù)據(jù)科學核心的實際應用。但在專業(yè)和實踐環(huán)境中,軟件開發(fā)包含不同的平臺,每個平臺都有用于訪問和實現(xiàn)功能的特定語言。
        ?
        專業(yè)的機器學習從業(yè)人員可能會在以下所示的方法中應用不同的編程語言:
        • JavaScript從互聯(lián)網(wǎng)上抓取數(shù)據(jù)
        • SQL修改和查詢數(shù)據(jù)庫
        • Python實現(xiàn)算法和機器學習模型
        • Swift / Kotlin / Java開發(fā)具有集成機器學習模型的移動設備應用程序
        • 其他工具和方法
        ?
        一旦您精通某種編程語言,掌握一種新的編程語言會容易很多。如果您了解常規(guī)的軟件開發(fā)范例,例如面向對象的編程、功能編程等,你將更加容易進入狀態(tài)。軟件開發(fā)范例知識適用于各種編程語言。


        遵守軟件開發(fā)原則


        擁抱簡單,避免重復并提高可讀性。
        ?
        這些是我多年編程后積累的經(jīng)驗。它們聽起來很簡單,但是大多數(shù)開發(fā)人員都沒有遵守,我自己有時也會忘記這些原則。
        ?

        因此,在軟件工程業(yè)內,一些準則被反復提倡和強制實施,以確保開發(fā)人員進行簡潔有效的軟件開發(fā)。一些列出其中的一部分。

        KISS原則
        ?
        去繁就簡(Keep It Simple Stupid,KISS)在開發(fā)軟件時強調了簡潔這個概念。解決問題的方法不必太復雜,在軟件開發(fā)的設計和實現(xiàn)階段采用簡潔原則可以確保代碼容易理解和便于維護。
        ?
        是的,技術人員往往喜歡炫技,但為了便于閱讀,請保持簡單——美劇you are?not MR.Robot

        ?

        SOLID原則
        ?
        Solid原則包含一組旨在確保面向對象的開發(fā)人員構建可復用、可擴展、可維護和高效的程序的原則。要了解有關SOLID中涵蓋的原理的使用和實踐的更多信息,請查看Katerina Trajchevska視頻中的內容。
        ?
        相關鏈接:
        https://www.youtube.com/watch?v=rtmFCcjEgEw&ab_channel=LaraconEU

        單一責任原則(Single responsibility principle)
        開閉原則(Open-Closed principle)
        里氏替換原則(Liskov Substitution principle)
        接口分離原理(Interface segregation principle)
        依賴倒置原則(Dependency inversion principle)

        DRY原則
        ?
        不要重復自己(Don’t Repeat Yourself)。在編寫程序時,編寫執(zhí)行已有功能的代碼會浪費你的開發(fā)時間。避免重復的一個好習慣是利用項目文件夾中的實用程序文件。實用程序文件包含在源代碼中經(jīng)常執(zhí)行的常見任務。


        特別提及


        個人項目
        ?
        開展個人項目可以將數(shù)位機器學習從業(yè)者帶入新的領域、庫、平臺、框架和編程語言。
        ?
        開展個人項目來提高你的編程技能的主要優(yōu)勢在于開發(fā)軟件產(chǎn)品時會遇到各種問題。編程解決的每個問題都會增加你的整體技術水平。

        ?

        分享經(jīng)驗
        ?
        教他人如何應用你擅長的語言編寫程序是一種行之有效的方法,可以提高編程技能并展示你的專業(yè)知識。
        ?
        你可以通過YouTube視頻、在線課程或我最喜歡的媒體博文等多種方式分享經(jīng)驗。

        結論


        提升編程技能是一次沒有終點的旅程。您總是可以在編程方面學習或改進。
        ?
        嘗試著享受學習過程。
        ?
        有時情況確實很棘手,StackOverflow可能無法解決所有問題,但請記住磨練你的技巧所花費的每一分努力都是最終融會貫通所必需的。
        ?
        相關報道:

        https://towardsdatascience.com/how-to-improve-programming-skills-for-data-scientists-and-machine-learning-practitioners-d865d8aadab1


        志愿者介紹
        后臺回復志愿者”加入我們


        點「在看」的人都變好看了哦!
        瀏覽 53
        點贊
        評論
        收藏
        分享

        手機掃一掃分享

        分享
        舉報
        評論
        圖片
        表情
        推薦
        點贊
        評論
        收藏
        分享

        手機掃一掃分享

        分享
        舉報
        1. <strong id="7actg"></strong>
        2. <table id="7actg"></table>

        3. <address id="7actg"></address>
          <address id="7actg"></address>
          1. <object id="7actg"><tt id="7actg"></tt></object>
            日本黄色电影一区 | 人人爱人人艹 | 日韩欧美国产激情在线播放 | 日韩激情一区二区 | asso1d老妇肉体pics 少妇玉梅高潮久久久 | 日韩欧美一级特黄段视频女人区 | 总裁开会呻吟双腿大开h | 九色丨porny丨国产 | 国产系列在线播放 | 搓光美女衣服羞羞漫画入口 |