讓梁實誠生氣的原因是這樣,任何一段程序都不能孤立的執(zhí)行,而需要有一個對應(yīng)的庫文件。
打一個形象的比方,庫文件就是一個執(zhí)行任務(wù)的工人,程序就是我們寫在紙上給他安排的工作,程序員就是安排工作的老板。
庫文件之間可以有很大差別,不同庫文件之間的智力,工作效率,以及語言之間的差別。
如果庫文件足夠聰明,那么安排工作的老板也就是程序員可以比較省心,只需要用一些簡單通俗的話,就可以命令這個工人,剩下的他自己都懂要怎么做。
如果庫文件比較笨,那么這個工人就是屬于一問三不知的那種,想要給他安排任務(wù),老板可就得多費一番口舌了,基本是間間事都得詳細說明。
也就是對于不同水平的工人,需要用不同方式的語言下達命令。
如果工人足夠聰明,甚至老板和工人之間與暗語交流也不是問題。
同時為了表達同樣的意思,下達同樣的命令,不同使用不同庫文件的時候,編程的規(guī)則是不一樣的。
簡而言之一句話,想要運行一段程序,必須有對應(yīng)的庫文件。萬能編輯器捕捉到的程序不能直接給其他電子設(shè)備安裝使用。
一段程序必須有對應(yīng)的庫文件,兩個明明要放在一起使用的東西竟然拆開賣!
當(dāng)然他還有另一個選擇,就是在沒有庫文件的情況下,去猜程序的含義與邏輯,然后自己手動轉(zhuǎn)換。
這就是讓梁實誠感到郁悶的地方,雖然極不情愿,他還是查看了任務(wù)。
【隱藏任務(wù)-童心未眠
目標(biāo)讓一萬名不滿十二歲的小孩獲得他們想要的禮物。
時限兩年之內(nèi)
進度0/10000】
看起來不是一個簡單的任務(wù)。
現(xiàn)在梁實誠的第一目標(biāo)是,通過萬能編輯器的幫助來開發(fā)無人駕駛的程序。
他退出了界面,開始權(quán)衡利弊的盤算起,自己接下來的路線。
首先把之前拍攝與捕捉到的司機駕駛汽車的程序,復(fù)制到電腦里進行研究,這次生成的程序量并不小,達到了200MB左右。
然后逐個打開,并手動解讀起來,嘗試了一段時間后,發(fā)現(xiàn)想要完全解讀其中的含義,對于自己一個人來說是不可能完成的任務(wù)了。
這時候梁實誠才發(fā)現(xiàn)自己能力有限,數(shù)據(jù)量太大。
不僅這次數(shù)據(jù)量極大,而且程序內(nèi)容的復(fù)雜度也更高,解讀同樣的數(shù)據(jù)需要花更長時間。
解讀過程就是聯(lián)系上下文,以及部分能直接看懂的內(nèi)容,猜測全文的意思,不僅不可能用電腦來完成這份工作,這樣的事情即便交給普通的程序員也是不行的,公司中只有幾位像梁實誠這樣的有獨立開發(fā)解決方案的人才有這個能力。
那么接下來的選擇只有兩個。
方法一,雇傭一大群和自己水平相當(dāng)?shù)能浖こ處?,一起研究整個這200MB的數(shù)據(jù)的含義,并消耗大量時間,最終徹底搞懂,這些文件講了什么意思,獲得知識,然后根據(jù)這些知識去開發(fā)程序。
方法二,要么只能想辦法搞到對應(yīng)的庫文件,完成系統(tǒng)給定的任務(wù),再根據(jù)庫文件開發(fā)對應(yīng)的編輯程序,然后就可以直接把這200MB的程序用電腦轉(zhuǎn)換后,直接刷給自動汽車的固件里,并正常運行。
梁實誠重新反思了下,系統(tǒng)給的那個任務(wù),幫助一萬個小孩獲得他們想要的禮物??!這是一個天書級別的難題,就算自己變成圣誕老人都搞不定,別說是挨個搞清楚他們的愿望,這年頭哪怕是給個機會讓自己接觸到一萬名小孩都很困難,真執(zhí)行下去指不定什么時候被警察叔叔盯上。
雖然還是厚著年皮,去了最近的一家幼兒園,有小孩200多名,和校長商量后,以打廣告為幌子,親自了解了每一個孩子的愿望,記錄在冊,挨個購買,落實到位。
但明明自己給200多個小孩一人一個禮物,系統(tǒng)任務(wù)的進度條上卻顯示28/10000。
也就是說這幫小孩真不好伺候,明明按照他們自己說出來的愿望購買的禮物,送到他們手里的時候已經(jīng)不是他們想要獲得的禮物了。
最終梁實誠認為這個任務(wù)在這個時代是不可能完成的,再這樣繼續(xù)下去指不定出什么亂子,于是果斷放棄了系統(tǒng)給的這條路。
現(xiàn)在他還剩第三條路可以走,無視系統(tǒng)的任務(wù)獎勵,自己強行開發(fā)對應(yīng)的庫文件。
通過這些已有的200MB程序進行逆向工程,反推出它們使用的庫文件。
他覺得可以嘗試一下。
打開代理軟件,進入GitHub網(wǎng)站,雖然自己并沒有頭緒,但他知道這里高手如云。
想要引起高手的注意,并誘使他們對于這個復(fù)雜的過程給與詳細說明是不容易的。
不過他有一個好辦法,這是一個以前百試不爽的招數(shù)。
首先他拿出了之前那個萬能編輯器捕捉到的一些程序,發(fā)到了貼子里。
然后故意裝傻,說出幾個容易得到新手支持的錯誤觀點,若是能看懂這些程序的高手,可能就會果斷指出問題。
再等到新手圍觀的時候,大量新手們表示不理解,支持貼主。
這時候那個高手就不得不詳細講解,更多的事情。
這一招對其他程序員特別有效,這就是程序員的性格,這招有一個專門的名字坎寧漢姆定律。
于是梁實誠曬出了自己的貓用手洗臉的樣子,并且把捕捉到的貓走路的程序也發(fā)了上去,并寫到。
“有一位高人給我了一段程序,據(jù)說輸入到Mega2560單片機里,就可以讓用舵機帶動的機器小貓,也做出用手洗臉的動作。”
接下來他等待著真正高手的出現(xiàn),等待有人指出他犯下的基本錯誤,指出這段程序不可能在Arduino中執(zhí)行。
最好是有人能看懂這段程序的含義,并說明這段程序其實會讓機器小貓走貓步,而不是洗臉。
但是盼望了很久以后,并沒有得到有效回應(yīng),只有一群人在那里留言表示不明覺厲,以及各種表情包。
似乎這次失算了,沒有人明白那段程序是在干什么,就在梁實誠打算放棄的時候,突然看到了一個簡短的留言,
“你的MSN號是多少?我有話想要和你說?!?