欧美一区二区三区,国内熟女精品熟女A片视频小说,日本av网,小鲜肉男男GAY做受XXX网站

mysql正則模糊查詢,初學(xué)者如何高效學(xué)習(xí)一門編程語言

錢艷冰2年前18瀏覽0評論
mysql正則模糊查詢,初學(xué)者如何高效學(xué)習(xí)一門編程語言?首先謝邀。既然是為初學(xué)者所寫,那么,我們首先需要進行的一個分辨是:TA是怎樣的初學(xué)者?沒有任何編程經(jīng)驗?有其他語言方面的編程經(jīng)驗,但沒有接觸過這門語言?針對不同類型的初學(xué)者,顯然其學(xué)習(xí)的途徑和側(cè)重點,還是會略有所不同的。這篇文章所針對的,主要是一些共性的方法和技巧。

亮獨觀其大略

《魏略》記載,諸葛亮在荊州,與石廣元、徐元直、孟公威俱游學(xué),“三人務(wù)于精熟,而亮獨觀其大略。”

簡簡單單的一句話,其實正是在學(xué)習(xí)方法上,諸葛亮比其他人的高明所在。那回到編程語言,什么又是編程語言的“大略”呢?我個人覺得,其核心就是:

了解清楚這個語言“當(dāng)前”的應(yīng)用生態(tài)

一門語言能不能用在很多不同的領(lǐng)域?除了極少數(shù)專有化語言外,很多語言都可堪此任。

但“能不能用在”,和“是不是已經(jīng)用在”,卻是兩個截然不同的問題。比如說,能不能用C++來寫機器學(xué)習(xí)中所需要用的各種程序(腳本)?答案當(dāng)然是可以的,但業(yè)界是不是在大面積的用?情況并不樂觀,Python仍然是這個領(lǐng)域的“第一語言”。為什么?這其實就是一個生態(tài)的問題。在Python下,機器學(xué)習(xí)所需要的各種類庫,成熟而完整,因此,無論是學(xué)習(xí)者,還是應(yīng)用者,可以快速的進入到狀態(tài),并完成手頭的工作。甚至于,因為Python2所構(gòu)建的這個生態(tài)太成熟了,從而導(dǎo)致了整個業(yè)界,從Python2切換到Python3的過程,痛苦而又漫長。所以,作為一個初學(xué)者,在學(xué)習(xí)的一開始,就去“打聽”一下(事實上,我覺得老師的作用,也應(yīng)該在這里),你所要學(xué)習(xí)的這門語言,現(xiàn)在一般都拿來干什么,并且是不是和你想學(xué)習(xí)的方向(哪怕只有一個模糊的概念),在目標上高度契合,我覺得是最緊要和事半功倍的事情了,能為你的后期學(xué)習(xí),節(jié)約太多的時間,從而少走很多的彎路。

工欲善其事,必先利其器

人類似乎總是很欣賞那些在公眾中,表演用記事本,在沒有任何代碼提示情況下,“手寫”代碼的大神。

其實要實現(xiàn)這些并不難,萬事無他,唯手熟爾!哪怕你要用的那個函數(shù),參變量再多,你這天天寫,總有熟到可以信手拈來的地步。但向觀眾,尤其是初學(xué)者表演,甚至是傳達這樣的理念,我覺得就是一種“罪惡”。恰恰相反,我覺得,作為一個經(jīng)驗豐富的老手,我們最應(yīng)該向初學(xué)者推薦的,應(yīng)該是一款經(jīng)過精心調(diào)教的“工具”。還是以Python和數(shù)據(jù)分析的學(xué)習(xí)為例,怎樣開始學(xué)習(xí)最好?上手就開始來學(xué)怎樣擼代碼?如果你問我,那我一定會告訴你:> 先去裝個Anaconda再說

為什么?

省時省心啊

從此,近千個數(shù)據(jù)科學(xué)相關(guān)的開源包,你再也不用擔(dān)心你應(yīng)該去哪里找到他們,并且是不是和你現(xiàn)在用的版本會有沖突,等等等等這樣一些聽上去很瑣碎,但絕對會浪費你大量時間的事情了,而是能專注于學(xué)習(xí)。

因為一切都已經(jīng)在那里了!

實際上,在真正的軟件生產(chǎn)過程中,可以說絕大多數(shù)的開發(fā),都是嚴重依賴于工具的,你想想,為什么類似Docker這樣的工具會盛行?拋開在虛擬化等方面的具體技術(shù)不談,這東西對于開發(fā)和運維人員而言,一個巨大的好處,其實不就在于它的:幾乎零配置么?

我要搭一個LAMP的Web的開發(fā)環(huán)境,我不需要自己勞心費力的去一個個的裝Apache + MySQL + PHP,還不能保證能不能裝上,一個image即可。

編程學(xué)習(xí)也一樣,尤其是針對初學(xué)者而言,不要因為看到“大神”們,都是手寫代碼,就覺得:把時間分配在掌握一個好的IDE工具上,是在浪費時間!

實際上,這反而是能夠讓你學(xué)的更快的利器!

這里有一個小小的推薦,就是Visual Studio Code,微軟的這款產(chǎn)品,經(jīng)過這幾年的大力發(fā)展,其擴展的豐富程度,真心足堪大任了,如果不是很特別的語言需求,基本上都可以在其應(yīng)用商店中,找到對應(yīng)的開發(fā)擴展。

最后才是語言學(xué)習(xí)本身,但只40%

在充分了解了所需要學(xué)習(xí)的語言本身,現(xiàn)在主要拿來干什么,并且也用上了“高大上”的工具以后,整個學(xué)習(xí)的旅程,就算可以正式開始了。

這里,有一個小小的建議,叫“只40%”。我覺得,這是所有高效學(xué)習(xí)的關(guān)鍵所在!

什么意思?

舉一個例子,比如在很多語言中,提供了各種各樣的處理字符串的方法(或函數(shù)),以Python為例,哪怕比如就是一個簡簡單單的,從“Hello World!”中,截取相應(yīng)的子字符串,也有很多的技巧,比如:

林林總總,好吧,作為初學(xué)者,面對這些東西怎么辦?我就看到有很多的“大部頭”的號稱面向初學(xué)者的書,會洋洋灑灑的為此大書特書一番,好像,不把所有的可能性窮盡,初學(xué)者不算學(xué)完一樣。

但在我看來,這恰恰是最“糟糕”的一種寫法和學(xué)法了。兩個字:

沒用!因為有習(xí)慣和遺忘曲線的存在。

所以,即便是你當(dāng)時花了大把的時間,去學(xué)習(xí)了這種種的技巧,今后,隨著你自己編程風(fēng)格的形成,你還是會逐步趨向于用一種固定的方式,去處理問題,當(dāng)然,我不是說這個例子,畢竟它太簡單了,簡單到這么多風(fēng)格,完全可以讓人接受 :),但我也不是沒有看到過,就是有人愿意在他/她的代碼的某個地方,先聲明一個類似這樣的函數(shù):

為什么他/她要這么做?這不等于是為開發(fā)增加了一種“方言”么?其實無他,就是因為這可能是他/她在另外的語言環(huán)境(比如JavaScript)下,已經(jīng)用熟了的一種方式而已,這是人的天性使然。

這也就提醒初學(xué)者,當(dāng)你在學(xué)習(xí)一門計算機語言的過程中,下面的兩個“經(jīng)驗”,可能能幫助到你,更為高效的進行學(xué)習(xí),那就是:

1. 克制自己,不要試圖去了解這門語言的全部,只學(xué)自己當(dāng)前需要和能明白的

比如說,你就是準備用Ren'Py做一個可視小說的游戲出來,里面只是需要一點點的Python知識,那你也捧一本大部頭,然后費勁吧啦的去看那些你根本用不上的函數(shù)的用法,并試圖去“深入”的理解OOP和函數(shù)式,這兩種不同的范式,在Python下的實現(xiàn)(這可能是很多教程非常引以為傲的“高級”貨),何苦來哉?

等你這一切都完成,人家可能早就做出來了好幾個游戲了,并且竟然發(fā)現(xiàn):語法要求從來可能就沒超過大部分Python教程頂多第三章的要求(一般的教程,到第三章,從最基本的變量定義,到函數(shù)應(yīng)用等等,一般都會寫完了)。

當(dāng)然,我這樣講,不是在鼓吹說,深入系統(tǒng)的學(xué)習(xí)不重要,但我能保證,那絕不高效!

2. 在一開始,就要培養(yǎng)形成在線查閱文檔的能力

我們已經(jīng)處在了網(wǎng)絡(luò)高度發(fā)達的時代,這是一個沒有辦法改變的事實!這個時代,最鮮明的特點之一是什么?我覺得就是:

知識開始也一定會經(jīng)常以索引的形式存在!

當(dāng)然,你也可以說成是人類的整體記憶能力在退化,但我個人不這樣認為,實際上,索引式的好處,反而是人類可以記住更多東西了。

回到編程的學(xué)習(xí),最高效的方式也應(yīng)該是這樣,學(xué)習(xí)的目標,應(yīng)該從“完全記住”,轉(zhuǎn)變?yōu)樵谀X子里大概留個印象,然后可以在遇到問題時,能快速的根據(jù)這個印象,通過在線的文檔查找,迅速定位到問題的清晰的解決方案。

40%,足矣~

最后借此風(fēng)水寶地,插播一個小廣告,本人正在準備著進行編程教育自媒體方面的創(chuàng)業(yè)中,當(dāng)前主要的想法,是針對K12年齡階段,并主要和初等數(shù)學(xué)和物理,以及主流的一些算法等結(jié)合在一起,提供難易程度不同的,各種或好玩、或?qū)嵱玫木幊探坛毯团嘤?xùn),同時,也會逐步的開講一些整個計算機和軟件發(fā)展歷程中的故事,以及我自己的一些小小的思考,歡迎大家多多關(guān)注哈。