0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

非計算機專業(yè)程序員的經(jīng)驗分享

深度學(xué)習(xí)自然語言處理 ? 來源:深度學(xué)習(xí)自然語言處理 ? 作者:深度學(xué)習(xí)自然語言 ? 2020-11-02 15:01 ? 次閱讀

適逢程序員佳節(jié),來聊聊自己從無到有成為程序員的歷程以及自己的經(jīng)驗吧。

懶人目錄:

簡單歷程。

入門。

修煉。

小結(jié)。

歷程

高考結(jié)束,確認自己大學(xué)最想學(xué)有兩個,當醫(yī)生和學(xué)計算機,雖然最后陰差陽錯地到了數(shù)學(xué)專業(yè),但考慮到自己的喜好,仍然在考慮往計算機上走,最直接的方式就是拿了計算機專業(yè)的培養(yǎng)計劃,加上自己的計劃開始寫起代碼,大一過了計算機等級考試二級(說起來你們可能不信,VB),除了課程要求的c#、c++、matlab和mathematica,還整了點java,加入了一位老師的項目組,開始了第一個項目。

有意思的是因為項目組的需求我還寫過爬蟲和前端,前端整過jade/less體系,也玩過現(xiàn)在可能還在用的react/redux體系,搭配的是antd UI庫,至于爬蟲就是最經(jīng)典的request或者是urllib,后續(xù)還玩過類似線程池的操作。

雖然有著對計算機的熱愛(可能這就是一種浪漫吧),但是也不想自己的數(shù)學(xué)白學(xué)了,所以一直在探索計算機和數(shù)學(xué)結(jié)合的道路,當時有幾個備選項,運籌、數(shù)值計算,然而有意思的是,16還是17年,發(fā)現(xiàn)了機器學(xué)習(xí)的機會,于是學(xué)習(xí)了當時最新潮的《統(tǒng)計學(xué)習(xí)方法》,也翻閱了可能被聊到更多西瓜書,結(jié)合同一位老師的方向,最后選擇了統(tǒng)計。

后續(xù)就是學(xué)術(shù)和技術(shù)兩條腿走的過程了,還接觸了NLP這個東西,結(jié)合機器學(xué)習(xí)本身依賴的場景,把NLP當做自己研究生期間的主修技能,當然,時間序列、最優(yōu)化方法也是自己的研究方向,所以自己這塊還不錯吧,于是就走上了算法這條路。

在這也借此機會感謝我的這位老師,還有幾位帶我入門的學(xué)長學(xué)姐,還有工作(含實習(xí))過程中的領(lǐng)導(dǎo)、導(dǎo)師和同事。

入門

首先來聊聊入門,寫代碼入門在包括我在內(nèi)的很多人看來是一個非常痛苦的過程,甚至和第一次接觸數(shù)分(大部分人應(yīng)該是高數(shù))其實是類似的,我歸結(jié)的原因是這個東西和我們習(xí)慣的思維是不一樣的,我們可能很容易就能想到、能理解、很顯然的東西,卻偏偏還要從中挖掘出新的東西來,例如一些重復(fù)工作我們照著做就行,卻需要抽象為一個循環(huán),這肯定是非常困難的。

第一門語言,還是非常建議系統(tǒng)地學(xué)一遍,完整地理解下面幾個對新手來說比較陌生的概念,其實但凡是教程,這些東西真的都會有提到:

數(shù)據(jù)類型(Python可能沒有那么明顯,但是其實報錯看多了大家都很容易理解了)

分支(條件)和循環(huán)。計算機能夠理解的最核心邏輯。

面向?qū)ο?,類與對象,甚至到繼承。

完整地學(xué)完這些,其實你會對整個計算機語言體系有非常完整的認識。那么學(xué)習(xí)過程中,還有幾個建議吧。

報錯不可怕,不堅持自己邊查邊改才可怕,久病成醫(yī),是程序員技術(shù)進步的重要體現(xiàn),從報錯中學(xué)習(xí)和定位解決問題的能力必須提升,這也應(yīng)該是你和非程序員對比最鮮明的地方。

自己多動手,只有動手了才知道哪些地方是真的是沒有理解。

多看文檔多查資料,一份材料沒看懂就多看幾份,看看別人的經(jīng)驗。

自認為學(xué)會以后,可以開始復(fù)現(xiàn)別人的東西,哪怕一個小項目也好,論文也行。

知其然知其所以然。在做項目過程中效率優(yōu)先所以可以先知道怎么做然后在看背后的原理,但是在事后還是要總結(jié)這么做背后的原理,后續(xù)相似的問題自己就能快速解決。

多做筆記,尤其是一些比較難解的問題,記錄下來,日后就不容易犯了。

另一方面,有關(guān)算法方面的入門,雖然技術(shù)迭代更新地很快,當時word2vector都是一個非常新潮的東西,現(xiàn)在bert都爛大街了,但是時至今日,我仍然建議大家從簡單的開始學(xué)起來,機器學(xué)習(xí)基礎(chǔ)(仍然推薦統(tǒng)計學(xué)習(xí)方法)和基本的深度學(xué)習(xí)幾塊積木(Dense、CNN、RNN等等),nlp領(lǐng)域則基本的word2vector、fasttext之類的還是都要了解,推薦系統(tǒng)則還是要了解協(xié)同過濾等一系列的操作,現(xiàn)在絕大部分的工業(yè)界場景還輪不到這些學(xué)術(shù)界的飛機大炮派上用場,最基本的其實就足夠了,或者說大部分場景其實并不能充分發(fā)揮學(xué)術(shù)界飛機大炮的優(yōu)勢,例如如果這個分類問題可能并不需要注意力機制,則加了注意力其實意義不大。

其實熟練了以后,后續(xù)的學(xué)習(xí)推進起來并不會很難,畢竟自己有了一定程度的學(xué)習(xí)能力,這點能力將會在自己的職業(yè)發(fā)展起到非常重要的作用。

修煉

自己如愿以償?shù)刈呱献约河嬎銠C和數(shù)學(xué)結(jié)合的道路——算法工程師。之前其實聊過自己一年的工作經(jīng)驗:ML&DEV[8] | 算法在崗一年的經(jīng)驗總結(jié)。這里著重聊聊自己怎么提升,這也是自己嘗試突破幾次瓶頸的收獲吧。

算法線技術(shù)修煉

算法方面的修煉,我的理解往往在于兩點——深度和廣度。

深度,我理解是支撐一個人更好地完成任務(wù)的前提條件。在于對一些小領(lǐng)域甚至特定任務(wù)的理解,一方面了解基線方法,能在接到任務(wù)后快速調(diào)集需要的資源就能快速有個基線,然后能快速調(diào)整達到所需目標;另一方面要知道前沿的技術(shù)方案,無論是論文還是業(yè)界分享的方案(這也是我現(xiàn)在把文章類型分成了),一定要堅持看。

廣度,廣度是支撐一個人能完成更多任務(wù)的條件。無論是出于晉升,還是出于自己的能力,都要求自己具備完成更多事情的能力,故步自封或者只求深度會讓自己未來的選擇變得很窄。至于提升的方式,還是多看論文和文章,且要不要設(shè)限,不要覺得與自己無關(guān)所以就不看,可以步步為營地走出舒適區(qū),例如會文本分類了,可以試試NER問題,還有相似度問題,慢慢拓寬自己的知識疆土。

總結(jié)起來就是兩點:

認真學(xué)習(xí),各項前沿的東西都要接觸,同時要扎實好基礎(chǔ)。

工作后要注意總結(jié)和補充,要把因為工作緊急而忽略的知識及時補充總結(jié)起來。

不設(shè)限,定制好學(xué)習(xí)策略,不斷探索未知,這是一個做技術(shù)的人該做的修煉。

技術(shù)線的修煉

算法工程師首先是一個工程師然后才是算法,所以技術(shù)是算法的立命之本,有各種厲害的算法不會落地,就和有腦子沒手一樣,不能產(chǎn)出了。那么技術(shù)線的修煉有哪些:

首先算法設(shè)計的技術(shù)都要了解。常用的python肯定要懂,sklearn、tensorflow、numpy之類的要熟練,尤其是tensorflow,迭代更新很快,對初學(xué)者其實我并不會要求tf2要會,但是如果已經(jīng)入門了,開始工作了,我還是希望能盡快學(xué)會keras這套新生態(tài),如果是不會1,那tf.nn、tf.layers這套也要嘗試了解。

工程和服務(wù)相關(guān),python要自己會包裝一個簡單的服務(wù),理解服務(wù)的是基本原理和運作方式,這是理解整個架構(gòu)的基礎(chǔ),當然,在項目的推進過程,要逐步把java和c++學(xué)起來。

希望大家還是能了解數(shù)據(jù)領(lǐng)域的操作了。巧婦難為無米之炊,對算法而言米就是數(shù)據(jù),數(shù)據(jù)怎么來,希望大家要了解,數(shù)據(jù)工程方面的技術(shù)希望大家能盡可能懂,技術(shù)點上就是hadoop、spark、hive之類的,架構(gòu)上就是了解數(shù)據(jù)的流轉(zhuǎn)過程,在線數(shù)據(jù)怎么到算法模塊,離線自己需要的特征能不能落到自己的特征表。

數(shù)據(jù)結(jié)構(gòu)可以說是技術(shù)的能量,缺了事情就推進地很慢。

總結(jié)

說實話,上面說的很多,其實上面我能想到這么多,個人認為最重要的一個點就是——主動。主動溝通獲得學(xué)習(xí)進步的機會,主動總結(jié)找到自己的問題所在,主動學(xué)習(xí)自己的不足,主動為自己的學(xué)習(xí)和進步進行規(guī)劃。很多時候,主動能為自己獲取更多主動權(quán),而不要把主導(dǎo)權(quán)交給別人,其實不主動拿主動權(quán)就是再把這個東西交給別人了。換個角度反思下,自己是不是在嗷嗷待哺等導(dǎo)師給你方向給你論文,自己是不是在等著有人告訴你該學(xué)什么,自己是不是在等著老大給你活干。

就聊到這吧,大家共勉。

責(zé)任編輯:xj

原文標題:【經(jīng)驗】聊自己非計算機專業(yè)做程序員的經(jīng)驗

文章出處:【微信公眾號:深度學(xué)習(xí)自然語言處理】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • JAVA
    +關(guān)注

    關(guān)注

    19

    文章

    2946

    瀏覽量

    104372
  • 程序員
    +關(guān)注

    關(guān)注

    4

    文章

    946

    瀏覽量

    29732
  • 計算機語言
    +關(guān)注

    關(guān)注

    1

    文章

    15

    瀏覽量

    9375

原文標題:【經(jīng)驗】聊自己非計算機專業(yè)做程序員的經(jīng)驗

文章出處:【微信號:zenRRan,微信公眾號:深度學(xué)習(xí)自然語言處理】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    計算機接口位于什么之間

    計算機接口是計算機硬件和軟件之間、計算機與外部設(shè)備之間以及計算機各部件之間傳輸數(shù)據(jù)、控制信息和狀態(tài)信息的硬件設(shè)備和軟件程序。它在
    的頭像 發(fā)表于 10-14 14:02 ?108次閱讀

    計算機存儲系統(tǒng)的構(gòu)成

    計算機存儲系統(tǒng)是計算機中用于存放程序和數(shù)據(jù)的設(shè)備或部件的集合,它構(gòu)成了計算機信息處理的基礎(chǔ)。一個完整的計算機存儲系統(tǒng)通常包括多個層次的存儲器
    的頭像 發(fā)表于 09-26 15:25 ?253次閱讀

    計算機進行程序控制工作的基本原理是怎樣的

    計算機程序控制是計算機科學(xué)中的一個核心概念,它涉及到計算機如何根據(jù)預(yù)設(shè)的指令序列執(zhí)行任務(wù)。 1. 計算機硬件基礎(chǔ) 在深入
    的頭像 發(fā)表于 09-04 16:57 ?225次閱讀

    程序員節(jié)視頻創(chuàng)意大賽,用串口屏贏取千元大獎

    10月24日,程序員專屬的節(jié)日里,我們盛大開啟“程序員節(jié)視頻創(chuàng)意大賽”特別活動!這不僅是一場視覺的盛宴,更是智慧與創(chuàng)意的璀璨碰撞。我們誠摯邀請每一位程序員及編程愛好者,拿起你的鏡頭,記錄下那些平凡日子中的不凡瞬間,讓編程的魅力與
    的頭像 發(fā)表于 07-08 10:38 ?72次閱讀
    <b class='flag-5'>程序員</b>節(jié)視頻創(chuàng)意大賽,用串口屏贏取千元大獎

    計算機控制器的結(jié)構(gòu)和功能

    隨著信息技術(shù)的迅猛發(fā)展,計算機已經(jīng)深入我們生活的方方面面。而計算機控制器,作為計算機系統(tǒng)的核心部件之一,承擔(dān)著協(xié)調(diào)各部件工作、指揮整個計算機程序
    的頭像 發(fā)表于 06-17 15:47 ?1145次閱讀

    工業(yè)計算機與普通計算機的區(qū)別

    在信息化和自動化日益發(fā)展的今天,計算機已經(jīng)成為了我們?nèi)粘I詈凸ぷ髦胁豢苫蛉钡墓ぞ?。然而,?b class='flag-5'>計算機領(lǐng)域中,工業(yè)計算機和普通計算機雖然都具備基本的計算
    的頭像 發(fā)表于 06-06 16:45 ?929次閱讀

    適者生存,程序員最終會流向哪……

    程序員沒有永遠的護城河??!就目前的互聯(lián)網(wǎng)大環(huán)境來看,it行業(yè)已經(jīng)是……
    的頭像 發(fā)表于 03-11 17:11 ?333次閱讀
    適者生存,<b class='flag-5'>程序員</b>最終會流向哪……

    【量子計算機重構(gòu)未來 | 閱讀體驗】+ 初識量子計算機

    分介紹了量子計算機的工作原理、計算能力、研發(fā)現(xiàn)狀等專業(yè)知識點;第二部分介紹了量子計算機的應(yīng)用場景,比如工廠、物流、智慧交通、自動駕駛等等;正好適合我這樣的量子小白閱讀。 開始第一部分
    發(fā)表于 03-05 17:37

    2024程序員的未來方向如何走?還看今朝

    這幾年的IT行業(yè)想必大家已經(jīng)感受到了,Android、Java、前端等等程序員都經(jīng)歷了大廠……
    的頭像 發(fā)表于 02-02 09:45 ?730次閱讀
    2024<b class='flag-5'>程序員</b>的未來方向如何走?還看今朝

    工業(yè)計算機與商用計算機的區(qū)別

    工業(yè)計算機與商用計算機的區(qū)別? 工業(yè)計算機和商用計算機是兩種應(yīng)用于不同領(lǐng)域的計算機系統(tǒng)。雖然它們在技術(shù)方面存在一些共性,但在功能、設(shè)計、可靠
    的頭像 發(fā)表于 12-27 10:50 ?558次閱讀

    什么是后量子密碼學(xué)?量子計算機vs經(jīng)典計算機

    后量子密碼學(xué)(Post-Quantum Cryptography,PQC)是在經(jīng)典計算機上定義和執(zhí)行算法,研究量子計算機和經(jīng)典計算機都無法破解的新密碼系統(tǒng)。后量子密碼學(xué)的提出是為了抵抗量子計算
    的頭像 發(fā)表于 12-19 11:42 ?1460次閱讀

    NOR FLASH對計算機存儲有何作用?

    NOR FLASH是一種易失性存儲技術(shù),對計算機存儲具有重大影響,閃存其獨特的特性和功能影響著計算機存儲系統(tǒng)的各個方面
    的頭像 發(fā)表于 12-05 10:32 ?742次閱讀

    程序員表白程序

    電子發(fā)燒友網(wǎng)站提供《程序員表白程序.rar》資料免費下載
    發(fā)表于 11-21 10:41 ?8次下載
    <b class='flag-5'>程序員</b>表白<b class='flag-5'>程序</b>

    嵌入式程序員應(yīng)知道的幾個基本問題

    電子發(fā)燒友網(wǎng)站提供《嵌入式程序員應(yīng)知道的幾個基本問題.pdf》資料免費下載
    發(fā)表于 11-20 11:21 ?0次下載
    嵌入式<b class='flag-5'>程序員</b>應(yīng)知道的幾個基本問題

    智能低代碼洪流涌動程序員節(jié),華為云 Astro 觸發(fā) 1024 的乘法效應(yīng)!

    ? 從人工智能至量子計算,再到最新的云原生技術(shù),越來越多的榮耀被程序員斬獲。今年 1024 程序員節(jié),華為云 Astro 向全民致敬:「低代碼高產(chǎn)出?拓荒數(shù)字化版圖——人人皆是程序員
    的頭像 發(fā)表于 11-13 09:39 ?410次閱讀
    智能低代碼洪流涌動<b class='flag-5'>程序員</b>節(jié),華為云 Astro 觸發(fā) 1024 的乘法效應(yīng)!