上古時期的程式設計師都有哪些當今普通程式設計師無法想象的神級操作?

時間 2021-05-06 20:14:43

1樓:

真正的上古時期,那應該是幾百年以前到七八十年前電子計算機誕生為止的階段吧?那時的機械工程師也可以說是『程式設計師』,利用各種機械結構來實現機械計算機的計算過程,實現邏輯判斷,實現微分,積分,濾波,甚至傅利葉變換。這才是現代程式設計師嘆為觀止的神級操作。

另外,看了很多答案,裡面描述所謂『上古』『大神』程式設計師用手撥動開關輸入二進位制編寫程式。

任何學過編譯原理這門課的人應該都有過下面的經歷吧:

1。編寫匯程式設計序。

2。手工轉換成二進位制。

3。在實驗用的微控制器上面用直接輸入二進位制。

打孔帶,撥動開關,磁芯等等和這個有任何區別嗎?

所有類似的答案其實都沒有意義,這本來就是乙個正常的計算機專業學生該懂的。

甚至這個還是很多普通嵌入式程式設計師的日常工作內容,完全算不上『神級』,覺得神秘的人,只不過是把原本的知識忘掉了而已。

語言學裡面有所謂『詞義弱化』,現在人們為了恭維別人到處拜神,什麼『大神』,『女神』之類稱呼氾濫,實在令人感到說不出的彆扭。

2樓:蘭紅起

以前的計算器有房子那麼大

特別費電,本身就機時特別貴即使是科研人員不用自己掏腰包

傳說那時候程式設計是語句越少越好所以特別難看懂那時候的程式

3樓:假藥郎中

說乙個不是什麼神級操作,但也是現在的程式設計師難以想象的事,是當年我的老師說的他學計算機程式設計時的「上機」過程。

程式語言是機器碼,自己先在宿舍裡花好幾天在紙上手寫程式,然後跟機房預約上機時間,比如下周二下午兩點半。那麼一般要帶著自己的手寫程式提前兩三個小時去,在機房外面用紙帶打孔機把手寫程式打成紙帶,檢查確認沒錯,卷好,然後等著。輪到自己的時候,把這捲紙帶交給管理員,看著他裝到機器上,開動機器。

紙帶刷刷地走過,幾秒鐘後出結果。最常見的結果就是Error,悲催地記下出錯的指令位址及錯誤編號,帶著紙帶回去修改程式。而輪到下次上機一般要等一兩周之後。

所以,一般在上機之前,程式都已經在腦子裡人肉執行N多遍了,否則恐怕乙個學期都完不成乙個程式。

4樓:tensorspace

我係不是計算機相關,但是很多研究牽涉到數值模擬,所以給我們開了門組合語言的課程。任課老師說當年我係有老師愣是用老式中國產小型機幾k的記憶體搞出一套有限元計算軟體

5樓:黃黃

los Alamos national lab,二戰時期匯聚了幾乎全世界最優秀的科學家和大腦(除了納粹那邊的…),曼哈頓計畫的主力研究機構。在那個年代,好像還是打孔的年代,計算機的使用者大部分都是物理學家,數學家,還有一些自己都不認為自己應該稱為計算機科學家的計算機科學家。許多至今仍然作為現代科學發展基石的流弊理論產生出來,當時僅僅用以指導模擬核爆實驗,現在則在訊號處理,人工智慧等領域產生著持續的影響。

對於費公尺等人來說,計算機和程式設計語具體是什麼形態並不是問題的根本,只是工具而已,儘管這些工具也是他們自己一板一斧做的。現代社會程式開發的需求多了,程式開發的工作擴充套件到了普通人身上,於是一些事情,比如什麼裸寫編譯器之類的事情,在普通人看起來覺得近乎神技的事情,不過是習得性技能的一種而已,有些人較刻苦或腦子好點因此做得較好而已。

6樓:海涅心理

因為是上古,所以也就有很多傳說。

我聽說的是艾倫在下飛機前寫完了DOS的引導程式。

因為環境不同,所以人們的行為也就不同。

那個時候能夠接觸到計算機的都是少數聰明人,加上他們面對的問題比較單一,所以有著良好的基本功和成功的產品。

現代社會裡每個人都可以學習計算機,他們面對高層次問題,導致忽略了對於底層知識的研究,所以基本功很差。各種傻瓜工具的流行,也讓他們不必記憶必要的知識。

不過他們的很多人還是通過協作完成了更加複雜的軟體。

機器的智慧型化伴隨著人的智力退化,大概是乙個表現很強的現象。

7樓:付費使用者專屬暱稱

難道不是大神去妹子家修電腦找不到window安裝盤,用針在空白光碟上扎出了乙個win7作業系統,順便紮出了PS和美圖秀秀安裝程式的故事?

8樓:孟德爾

最逆天的程式設計師據說是NAMCO的某位主程,用68000的組合語言寫了乙個3D遊戲引擎

之前我提到這件事,知乎上有程式設計師堅決不信。

不信我也沒辦法。

當時CPU的主頻才12MHZ,比80286還低,不用這種方法怎麼做3D遊戲。

想起個好玩的事,《勇者鬥惡龍1》製作的時候是8位遊戲機,8位CPU支援的最大定址空間是64K,當時還沒有擴充套件記憶體技術(遊戲卡屬於記憶體的一種),所以遊戲大小就被限制到60K左右。遊戲做好了,不出意外超容量了。製作組開始瘋狂刪內容,極端到什麼程度呢?

他們只保留了角色的正面影象,其他方向的都刪了,遊戲裡角色無論是往左還是往右,都是正對玩家,跟螃蟹一樣。但是角色影象還是太多,怎麼辦?主角和看門的小兵共用同一套影象!

怪物也刪得就剩下幾種,然後同乙個怪物變個顏色(利用調色盤技術的話只要幾位元組容量)起個新名字就是另一種怪物了。

當然,容量還是超,這時候發售日期臨近,再也拖不起了,製作人使出了終極大招——重新發明了一遍日語

在DQ裡使用的日語與正常日語不一樣,有一些不常用的字母被刪了,然後把劇本用這個縮水版日語重新寫了一遍(只刪了片假名,平假名沒敢動)。到現在DQ系列也保持著這個傳統,片假名單詞不使用某些字母。

(後來發售美版的時候容量翻倍,製作人狠狠出了一口惡氣,把刪的素材全加回來了)

打個比方,所有拼音有N的漢字都不能用,這樣漢字數量就大大減少對不對?

這樣寫出來就是:

「打個比方,所有讀法有N的Z國字都不可,於是字型檔就大大少掉了對不對?」

9樓:Li Andy

幾位答主說,程式設計師人肉執行,人肉debug,自己編譯成機器碼,打孔基本不出錯,一遍就過。確實是熟練程度令人佩服。但要說是神一樣的存在就有點過分了。

確實是時代不同,需要的技術不同。但你要讓現代乙個優秀數量的程式設計師,練習做這些上古程式設計師的事情,用不了多少時間,也沒問題的。

90年代,我初中時候從家裡翻出過一套Z80微控制器的教材,80年代初的。我覺得很有意思,我寫了很多Z80的程式,都翻成機器碼,人肉執行,人肉糾錯。很多基本的演算法,排序,遞迴啊,什麼的也是那時候接觸到的。

當然我是從來沒見過Z80的那個東西了。那些都停留在紙上而已。

上高中以後,住校,用不了電腦,自己拿著彙編和C的書,也是紙上寫程式,人肉執行,人肉糾錯。偶爾我會拋開MASM,直接用機器碼寫.com檔案(我只會寫.

com;.exe比較複雜,我一直沒完全搞懂)。這些事情都不需要多少特技,熟能生巧的問題。

而且如果說神一樣的存在,我從小就生爐子,幾分鐘就能點著蜂窩煤。但是,現在城市裡的孩子恐怕沒幾個會的。給他們乙個爐子,兩個蜂窩煤,一捆木頭,幾張報紙,一盒火柴,搗鼓一上午也不一定能弄著爐子。

但不能說我幾分鐘把蜂窩煤點著了,我就是神一樣的存在。因為生爐子是很簡單的技能,隨便找個孩子,讓他練習幾天,肯定也都能學會的。

10樓:zpan

依稀記得DOS下的TSR技術。DOS是單任務作業系統。程式設計師們想出乙個辦法,讓程式駐留在記憶體裡,把系統中斷改寫了,有點像現在的API Hook,於是通過相應中斷就能調出駐留程式,變相實現多工效果。

那些DOS光碟機驅動、中文輸入系統(天匯、UCDOS等)之類的都要依靠這個技術實現。

11樓:Linkman

使用debug查殺引導區和檔案型病毒,這個算不算?

使用debug修改顯示器模式,讓學生們可以在basic下使用畫圖指令,這個算不算?

使用debug分析計算機故障,最後分析出硬碟介面線的某一位線斷了,這個算不算?

使用debug實現開機口令,這個算不算?

12樓:Belleve

手撥十三條

事情是這樣的:1970 年代國內出了一款小型機叫做 DJS-130,山寨 DG Nova 的,在當時算是比較先進的機器。然後,沒錯,這機器是沒有 BIOS 的,想開機引導進系統用終端操作就必須用手通過撥開關的方式輸入 13 條指令……就是用底下的開關來撥,一位一位地寫入記憶體進去。

這段原始碼是這樣的(我總算找到了帶注釋的版本)

13樓:蔡司

說上古程式設計師。不能避開的一位人物,周文王姬昌。

太極生兩儀,兩儀生四象,四象生八卦。

大巧藏於拙。

宇宙時間,就是在這個樸素的六十四中實現了二進位制,八進位制,十六進製制。

盤古開天地,姬昌是咱程式設計師的祖師爺。

14樓:漆鵬

最近在看linux0.11核心,linus從開機開始一點一點倒騰os 從加電到載入第乙個扇區,自己規劃記憶體空間,乙個位元組乙個位元組的摳,一邊跑程式一邊把程式本身覆蓋掉,16mb裡來回倒騰,慢慢建立了整個現代作業系統。

看著乙個作業系統的建立就是一種享受

計算機三大浪漫輪子哥誠不欺我啊~~

15樓:

在 鞏朋 的 微博 上看到的,這應該神的操作,而不是神級操作了

TEX的第一版是Knuth用鉛筆在筆記本上完成的——紙質筆記本,他花了大概半年在紙上「寫」好程式,然後「謄寫」到計算機上

16樓:馮東

基本上那時候的程式設計師都有人肉 IDE 和 debugging 的功能。空間想象力和短期記憶力驚人。Word 的主程說他年輕時可以想象乙個幾十個房間的房子,再在裡面擺上家具物品,然後移動。

《人肉 …… 哦,《人月神話》裡管這個叫做 accidental complexity。可以用工具彌補。也就是如今我們的 IDE 和 debugger 了(還有越來越多的 monitor)。

上古時代,連 version-control 也是大多靠人腦來管理。你們 branch 來 branch 去的怎麼能想象管理兩三個 temp version 的痛苦呢?

雖然 accidental complexity 的比例在下降,但是隨著 inherent complexity 的增加,accidental complexity 的絕對值並沒有減少。比如說,三四年前的 GPU 開發工具還很少,除錯 pipeline 也主要靠想。所以「上古」程式設計師的神秘操作沒什麼特別的,就是「想」。

這東西也不是上古才用到,計算機的任何乙個缺乏成熟工具的前沿都用得上。

程式設計師都有哪些強迫行為?

來個桔子吧 大家都在說程式設計師極客的一面 當然現在我的認知是,程式設計師 極客,兩碼事 我說個負面的,程式設計師還有乙個最大最不能容忍的,就是沒有時間觀念,拖活,死拖,做事虎頭蛇尾,責任感很差,不知是強迫症還是自由慣了,但私以為,自由的背後是散漫,技術不是唯一的人生,別因為技術忘記了信任,責任,誠...

程式設計師都有哪些邏輯神操作?

琅琅琅琅阿 其他地方看到的 老婆 下班回來買乙個西紅柿,如果看到土豆,就買兩個 正常人會帶回來乙個西紅柿和兩個土豆,程式設計師會帶回來兩個西紅柿 燙燙燙的錕斤拷 程式設計師 我有三個問題能不能只用 能 和 不能 來回答?老闆 能 程式設計師 我現在告訴你第三個問題要問你能不能給我漲工資,那麼我第二個...

有關程式設計師的經典名言都有哪些?

如果你想動手開發什麼全新技術,你不需要幾百萬美元的資金,你只需要在冰箱裡面放滿比薩和可樂,再有一台便宜的計算機,和為之獻身的決心。卡馬克 曾嶸 Good judgment comes from experience.Experience comes from bad judgment.Jim Hor...