自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

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

開發(fā) 開發(fā)工具 機(jī)器學(xué)習(xí)
本文介紹培養(yǎng)和提高我的編程能力的方法。這里將提供5種可以用來提高編程技能的策略。

[[379310]]

大數(shù)據(jù)文摘出品

來源:medium

編譯:Hippo

我討厭編程!

這是我七年前在實習(xí)期間告訴同齡人的話。千真萬確。我不想像公交上那些面無表情的人那樣成為沒有感情的編程機(jī)器。

時至今日,我已經(jīng)獲得了2個編程相關(guān)專業(yè)的研究生學(xué)位,先后在5家不同公司中擔(dān)任網(wǎng)絡(luò)開發(fā)人員,目前擔(dān)任計算機(jī)視覺工程師職位。

我熱愛編程!

這是我告訴所有問我為何如此熱衷技術(shù)的人的話。我對編程的熱愛源于這樣一個認(rèn)識:使用代碼實現(xiàn)的應(yīng)用確實為如今這個技術(shù)驅(qū)動的社會帶來了機(jī)遇。

本文介紹培養(yǎng)和提高我的編程能力的方法。這里將提供5種可以用來提高編程技能的策略。

算法練習(xí)

算法常常會嚇跑很多機(jī)器學(xué)習(xí)從業(yè)者,我自己也不例外。機(jī)器學(xué)習(xí)領(lǐng)域的興起使得通過啟發(fā)式算法來檢測模式的傳統(tǒng)方法不再成為必須,我們將特征檢測留給了神經(jīng)網(wǎng)絡(luò)。

盡管如此,算法仍在軟件和計算領(lǐng)域中占有一席之地,并且肯定在機(jī)器學(xué)習(xí)領(lǐng)域中也不可或缺。算法練習(xí)是提高編程技能的利器之一。

除了在提高代碼內(nèi)存效率的靈感方面具有顯而易見的好處,研究算法的另一個 好處是能很好的培養(yǎng)解決問題的思維方式。

用你所選擇的編程語言實現(xiàn)探索各種數(shù)據(jù)結(jié)構(gòu)和數(shù)據(jù)修改方法的算法。了解如何利用數(shù)據(jù)對象、方法和其他有用的函數(shù)提高編程效率。

數(shù)據(jù)科學(xué)家經(jīng)常使用數(shù)據(jù)挖掘和網(wǎng)絡(luò)爬蟲算法。充分了解算法和數(shù)據(jù)結(jié)構(gòu)有助于生成高效的代碼,在實踐中執(zhí)行速度更快,進(jìn)一步減少項目交付時間。

不同算法的復(fù)雜程度也不盡相同,這里有一個供你熱身的簡單算法說明。相關(guān)鏈接可以參考這里:

https://towardsdatascience.com/algorithms-for-data-scientists-insertion-sort-6caa69f906b3

個人經(jīng)驗:

作為移動計算機(jī)視覺工程師(Mobile Computer Vision Engineer),我將許多深度學(xué)習(xí)模型用于常見的計算機(jī)視覺(CV)任務(wù)中,例如姿勢評估、對象檢測等。

盡管PyTorch、TensorFlow和Keras等平臺轉(zhuǎn)移了模型實現(xiàn)的復(fù)雜性,但我發(fā)現(xiàn)有必要針對特定用例實現(xiàn)自定義算法。

例如,創(chuàng)建基于余弦相似度的姿態(tài)匹配算法或有效地遍歷作為機(jī)器學(xué)習(xí)模型輸出的數(shù)據(jù)結(jié)構(gòu)。

為了確保我對各種算法的風(fēng)險有足夠的了解,我買了一本很好的教材——《Introduction to Algorithm(第三版)》。不過這本教材可能對初學(xué)者并不是特別友好,在這種情況下,特別推薦諸如HackerRank這樣的平臺。

技術(shù)書籍

書本學(xué)習(xí)讓我感到自己回到了校園,沒有什么能比語言生動、內(nèi)容詳實的書籍更讓人受益匪淺。

在我職業(yè)生涯的早期,我一直以為自己最終會停止觀看YouTube教程或是購買編程書籍,因為我已經(jīng)獲得了“忍者級”的編程技能。

然而幾年來,我意識到無論已經(jīng)到了哪個程度,都能了解到更多關(guān)于編程語言的知識。盡管我喜歡通過YouTube編程教程進(jìn)行學(xué)習(xí),但沒有什么能取代經(jīng)典編程技術(shù)書籍中豐富而簡潔的知識。

例如,Python對于數(shù)據(jù)科學(xué)家來說算是一種易于掌握的標(biāo)準(zhǔn)編程語言。經(jīng)過幾周的語法、數(shù)據(jù)結(jié)構(gòu)和通用函數(shù)的學(xué)習(xí),可以輕松實現(xiàn)和運行自定義python腳本。你可以進(jìn)一步通過視頻學(xué)習(xí)具備Python的中級技能。

但是,Python中可以探索的內(nèi)容還有很多,而且都可以提高你的編程技能。我學(xué)習(xí)有關(guān)Python語言的更深入內(nèi)容的方式之一就是通過技術(shù)書籍,更具體地說是《Fluent Python》。本書并不適合初學(xué)者使用,而是主要針對中等以上水平的程序員提高編程熟練程度。

總之,技術(shù)書籍可以通過對編程語言簡單清晰的介紹來提高數(shù)據(jù)科學(xué)家的編程水平,也可以通過對編程語言的深入闡述,提高數(shù)據(jù)科學(xué)家的現(xiàn)有編程技能。

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

[[379311]]

最近,我嘗試實現(xiàn)深度學(xué)習(xí)卷積神經(jīng)網(wǎng)絡(luò)Inception Network。

盡管我已經(jīng)有利用Python和TensorFlow庫實現(xiàn)的方法,但我對其他機(jī)器學(xué)習(xí)從業(yè)人員如何實現(xiàn)很是好奇。

我探索性的瀏覽了幾個GitHub庫,研究了其他開發(fā)人員的代碼,毋庸置疑,我學(xué)會了改進(jìn)已有方案的方法,并且更好的應(yīng)用了我現(xiàn)有的編程技能。

有大量的公共GitHub庫可供研究和學(xué)習(xí)。你不需要在Google或Facebook之類的技術(shù)公司工作就可以向他們的開發(fā)人員學(xué)習(xí)。只需瀏覽其工程師開發(fā)的項目的公共庫。對于數(shù)據(jù)科學(xué)家來說,這可能意味著探索諸如最近發(fā)布的Detectron2或其他開源機(jī)器學(xué)習(xí)工具之類的代碼庫。

在工作場所的內(nèi)部開發(fā)團(tuán)隊中進(jìn)行代碼審查也是一種合適的學(xué)習(xí)方法。通過了解其他開發(fā)人員實現(xiàn)方法背后的理由和思路,你可以間接擴(kuò)展自己的視野和編程知識。

學(xué)習(xí)不同的編程語言

致力于編程語言多樣性是提高編程水平的不二之法。程序員用代碼來解決問題,多種編程語言的知識擴(kuò)展了可用于解決問題的工具。

掌握Python可能會幫助您學(xué)習(xí)數(shù)據(jù)科學(xué)核心的實際應(yīng)用。但在專業(yè)和實踐環(huán)境中,軟件開發(fā)包含不同的平臺,每個平臺都有用于訪問和實現(xiàn)功能的特定語言。

專業(yè)的機(jī)器學(xué)習(xí)從業(yè)人員可能會在以下所示的方法中應(yīng)用不同的編程語言:

  • JavaScript從互聯(lián)網(wǎng)上抓取數(shù)據(jù)
  • SQL修改和查詢數(shù)據(jù)庫
  • Python實現(xiàn)算法和機(jī)器學(xué)習(xí)模型
  • Swift / Kotlin / Java開發(fā)具有集成機(jī)器學(xué)習(xí)模型的移動設(shè)備應(yīng)用程序
  • 其他工具和方法

一旦您精通某種編程語言,掌握一種新的編程語言會容易很多。如果您了解常規(guī)的軟件開發(fā)范例,例如面向?qū)ο蟮木幊?、功能編程等,你將更加容易進(jìn)入狀態(tài)。軟件開發(fā)范例知識適用于各種編程語言。

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

擁抱簡單,避免重復(fù)并提高可讀性。

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

[[379312]]

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

(1) KISS原則

去繁就簡(Keep It Simple Stupid,KISS)在開發(fā)軟件時強(qiáng)調(diào)了簡潔這個概念。解決問題的方法不必太復(fù)雜,在軟件開發(fā)的設(shè)計和實現(xiàn)階段采用簡潔原則可以確保代碼容易理解和便于維護(hù)。

 是的,技術(shù)人員往往喜歡炫技,但為了便于閱讀,請保持簡單

——美劇you are not MR.Robot

(2) SOLID原則

Solid原則包含一組旨在確保面向?qū)ο蟮拈_發(fā)人員構(gòu)建可復(fù)用、可擴(kuò)展、可維護(hù)和高效的程序的原則。要了解有關(guān)SOLID中涵蓋的原理的使用和實踐的更多信息,請查看Katerina Trajchevska視頻中的內(nèi)容。

相關(guān)鏈接:https://www.youtube.com/watch?v=rtmFCcjEgEw&ab_channel=LaraconEU

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

(3) DRY原則

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

特別提及

(1) 個人項目

開展個人項目可以將數(shù)位機(jī)器學(xué)習(xí)從業(yè)者帶入新的領(lǐng)域、庫、平臺、框架和編程語言。

開展個人項目來提高你的編程技能的主要優(yōu)勢在于開發(fā)軟件產(chǎn)品時會遇到各種問題。編程解決的每個問題都會增加你的整體技術(shù)水平。

(2) 分享經(jīng)驗

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

結(jié)論

提升編程技能是一次沒有終點的旅程。您總是可以在編程方面學(xué)習(xí)或改進(jìn)。

嘗試著享受學(xué)習(xí)過程。

有時情況確實很棘手,StackOverflow可能無法解決所有問題,但請記住磨練你的技巧所花費的每一分努力都是最終融會貫通所必需的。

相關(guān)報道:

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

【本文是51CTO專欄機(jī)構(gòu)大數(shù)據(jù)文摘的原創(chuàng)譯文,微信公眾號“大數(shù)據(jù)文摘( id: BigDataDigest)”】

戳這里,看該作者更多好文

 

責(zé)任編輯:趙寧寧 來源: 51CTO專欄
相關(guān)推薦

2021-01-24 08:42:39

人工智能AI

2017-11-24 14:32:29

反向傳播遷移學(xué)習(xí)人工智能

2016-12-02 19:34:26

數(shù)據(jù)科學(xué)大數(shù)據(jù)

2019-08-29 10:20:13

大數(shù)據(jù)IT互聯(lián)網(wǎng)

2016-11-11 20:46:01

數(shù)據(jù)科學(xué)大數(shù)據(jù)Python

2010-12-01 11:44:56

IT從業(yè)者

2022-06-08 10:29:28

人工智能機(jī)器人

2022-07-01 13:40:39

5G人工智能數(shù)據(jù)

2023-08-18 10:24:07

人工智能AI

2020-03-04 14:16:45

安全從業(yè)者甲方乙方

2022-03-14 22:55:54

人工智能數(shù)據(jù)機(jī)器學(xué)習(xí)

2011-06-13 20:44:06

SEO

2022-02-08 14:03:11

區(qū)塊鏈人工智能物聯(lián)網(wǎng)

2018-02-25 05:23:11

區(qū)塊鏈求職招聘

2021-02-25 10:23:01

人工智能科技機(jī)器學(xué)習(xí)

2024-09-06 15:36:56

2022-03-28 13:17:25

區(qū)塊鏈人工智能金融危機(jī)

2023-12-19 16:55:18

人工智能科學(xué)研究

2012-04-23 10:00:14

虛擬化虛擬化從業(yè)者

2020-10-29 10:27:29

人工智能技術(shù)數(shù)據(jù)
點贊
收藏

51CTO技術(shù)棧公眾號