程式設計生涯。 第 1 章 第一個程序

程式設計生涯。 第 1 章 第一個程序親愛的哈布爾讀者,我向你們展示了一系列帖子,我計劃將來將它們合併成一本書。 我想深入研究過去,講述我如何成為開發人員並繼續成為開發人員的故事。

關於進入IT的先決條件、試錯之路、自學和幼稚的天真。 我的故事將從童年開始,到今天結束。 我希望這本書對那些剛學習IT專業的人特別有用。
那些已經從事 IT 工作的人可能會與自己的道路進行比較。

在這本書中,你會找到我讀過的文獻的參考資料,以及與我在學習、工作和創業時遇到的人交流的經驗。
從大學教師到大型風險投資者和數百萬美元公司的所有者。
截至今天,本書的 3.5 章已經準備就緒,原本可能有 8-10 章。 如果第一章得到讀者的正面回應,我將出版整本書。

關於我

我不是約翰·卡馬克、尼古拉·杜羅夫或理查德·馬修·斯托曼。 我沒有在 Yandex、VKontakte 或 Mail.ru 等公司工作。
雖然我有在大公司工作的經驗,但我一定會告訴你。 但我認為重點不在於大名鼎鼎,而是成為開發者的歷史,更進一步在於我12年的商業開發生涯中所發生的勝利與失敗。 當然,你們中的一些人在 IT 方面擁有更多的經驗。 但我相信,在我目前的職業生涯中發生的戲劇性事件和勝利是值得描述的。 發生了很多事件,而且都是多樣化的。

作為一名開發人員,我今天是誰
— 參與了 70 多個商業項目,其中許多是他從頭開始編寫的
— 在我們自己的十幾個專案中:開源、新創公司
— 從事 IT 工作 12 年。 17年前-寫了第一個程序
- 微軟最有價值人物 2016
— 微軟認證專家
— 認證 Scrum Master
— 我精通 C#/C++/Java/Python/JS
— 薪資 — 6000-9000 美元/月。 取決於負載
— 我今天主要的工作地點是自由工作交易所 Upwork。 透過它,我在一家處理 NLP/AI/ML 的公司工作。 擁有1萬用戶群
— 在AppStore和GooglePlay發佈3款應用
— 我正準備圍繞我目前正在開發的專案創建自己的 IT 公司

除了開發之外,我還為熱門部落格撰寫文章、教授新技術並在會議上發言。 我和家人一起在健身俱樂部放鬆身心。

就這本書的主題而言,這可能就是我的全部內容。 接下來是我的故事。

故事。 開始。

我第一次知道什麼是計算機是在我7歲的時候。 我剛上一年級,在美術課上我們被佈置了作業,用紙板、泡棉橡膠和氈尖筆製作一台電腦。 當然,我的父母也幫助了我。 媽媽在 80 年代初在一所技術大學學習,直接了解什麼是電腦。 在訓練過程中,她甚至成功地打孔卡並將其裝入佔據訓練室大部分空間的巨型蘇聯機器中。

我們以5分的成績完成了作業,因為我們做的每一件事都很勤奮。 我們找到了一張厚厚的A4紙板。 我們用泡棉從舊玩具上剪出圓圈,並使用氈尖筆繪製使用者介面。 我們的設備只有幾個按鈕,但我和我的母親為它們分配了必要的功能,在課堂上我向老師展示瞭如何通過按下“打開”按鈕,“屏幕”一角的燈泡會亮起, ”同時用氈尖筆畫一個紅色圓圈。

我下一次接觸電腦科技大約是在同一年齡。 週末,我經常去看我的祖父母,他們反過來出售各種垃圾,也願意花幾分錢買下來。 舊手錶、茶炊、鍋爐、徽章、13 世紀武士的劍等。 在所有這些東西中,有人為他帶來了一台由電視和錄音機運作的電腦。 幸運的是,我的祖母兩者都有。 當然是蘇聯製造的。 TV Electron 有八個按鈕可以切換頻道。 還有一台 Vega 兩盒式錄音帶錄音機,甚至可以重新錄製錄音帶。
程式設計生涯。 第 1 章 第一個程序
蘇聯電腦「Poisk」及週邊設備:電視「Electron」、錄音機「Vega」和帶有 BASIC 語言的錄音帶

我們開始弄清楚整個系統是如何運作的。 計算機中包含一些錄音帶、一本非常破舊的說明手冊和另一本標題為「BASIC 程式語言」的小冊子。 儘管我還是個孩子,但我還是嘗試積極參與將電線連接到錄音機和電視的過程。 然後我們將其中一盒磁帶插入錄音機艙,按下「前進」按鈕(即開始播放),電視螢幕上出現了難以理解的文字和破折號的偽圖形。

主機本身看起來就像一台打字機,只是相當泛黃且重量明顯。 我帶著孩子般的興奮,按下了所有的鍵,沒有看到任何明顯的效果,就跑去散步了。 儘管那時我面前就有一本 BASIC 語言手冊,其中包含程式範例,但由於我的年齡,我根本無法重寫這些程式。

從童年的記憶中,我當然記得父母為我購買的所有小玩意,這些小玩意是與其他親戚一起運動的。 第一款撥浪鼓是大家熟知的「狼抓蛋」遊戲。 我很快就看完了,看到最後期待已久的漫畫,還想要更多。 然後是俄羅斯方塊。 當時價值1,000,000張優惠券。 是的,那是在九十年代初的烏克蘭,我因為學業上的成功而獲得了一百萬美元。 當我感覺自己像個百萬富翁時,我為父母訂購了這個更複雜的遊戲,他們必須正確排列從上面落下的不同形狀的人物。 購買那天,俄羅斯方塊就被我的父母失控地從我身邊奪走了,他們自己兩天都無法擺脫它。

程式設計生涯。 第 1 章 第一個程序
著名的“狼叼雞蛋和俄羅斯方塊”

然後是遊戲機。 我們家住在一個小房子裡,隔壁房間也住著叔叔和嬸嬸。 我叔叔是一名軍事飛行員,他經歷過熱點地區,所以儘管他很謙虛,但他非常頑強,無所畏懼,在真正的情況下
軍事行動。 和很多90後一樣,我叔叔也開始做生意,收入也不錯。 於是他的房間裡出現了一台進口電視、一台錄影機,然後是一台Subor機上盒(類似Dendy)。 看著他玩《超級瑪利歐》、《壯志凌雲》、《魔鬼終結者》和其他遊戲,我驚呆了。 當他把操縱桿交到我手上時,我的幸福感無邊無際。

程式設計生涯。 第 1 章 第一個程序
八位主機“Syubor”和傳奇的“超級瑪利歐”

是的,就像所有九零年代長大的普通孩子一樣,我整天都在院子裡度過。 要嘛打先鋒球,要嘛打羽毛球,要嘛在花園裡爬樹,花園裡長著許多不同的水果。
但這款新產品,當你可以控制馬裡奧,跳過障礙並拯救公主時,比任何盲人的buff、ladushka和經典遊戲有趣很多倍。 因此,看到我對前綴的真正興趣,我的父母給了我學習九九乘法表的任務。 然後他們就會實現我的夢想。 他們教她二年級,而我剛讀完一年級。 但是,說到做到。

不可能想像出比擁有自己的遊戲機更強烈的動機了。 一週之內我就輕鬆地回答了「七九」、「六三」之類的問題。 測試通過了,他們買了夢寐以求的禮物給我。 正如您將進一步了解的那樣,遊戲機和電腦遊戲在讓我對程式設計產生興趣方面發揮了重要作用。

就這樣年復一年地過去了。 下一代遊戲機即將問世。 首先是世嘉 16 位,然後是松下,然後是索尼 PlayStation。 當我心情好的時候,遊戲就是我的娛樂。 當學校或家裡出現問題時,他們拿走了我的操縱桿,當然,我不能玩。 當然,抓住自己放學回來,爸爸還沒下班回來的瞬間霸佔電視,也是一種幸運。 所以不可能說我是一個賭博成癮者或整天玩遊戲。 沒有這樣的機會。 我寧願在院子裡待一整天,在那裡我也可以找到一些東西
有趣的。 例如一款完全狂野的遊戲——空中槍戰。 現在你在庭院裡看不到這樣的東西了,但當時那是一場真正的戰爭。 與我們造成的大屠殺相比,彩彈射擊只是小孩的遊戲。 那裡有氣球
裝有緻密的塑膠子彈。 他近距離射殺了另一個人,在他的半隻手臂或腹部留下了瘀傷。 我們就是這樣生活的。

程式設計生涯。 第 1 章 第一個程序
小時候的玩具槍

提到《駭客》這部電影就不能不提。 該片於 1995 年上映,由 20 歲的安潔莉娜裘莉主演。 要說這部電影給我留下了深刻的印象,那是毫無意義的。 畢竟,孩子的思維從表面上看待一切。
這些人如何清理 ATM 機、關掉交通燈以及在整個城市玩弄電力 - 對我來說這很神奇。 然後我想到,如果能像駭客一樣無所不能,那就太酷了。
幾年後,我買了每一期《駭客》雜誌,並嘗試入侵五角大廈,儘管當時我還沒有網路。

程式設計生涯。 第 1 章 第一個程序
我的電影《駭客》中的英雄

對我來說,真正的發現是一台真正的 PC,配備 15 吋燈監視器和基於 Intel Pentium II 處理器的系統單元。 當然,它是他叔叔買的,到九十年代末,他的叔叔已經升到了可以負擔得起的水平。
這樣的玩具。 他們第一次為我打開遊戲時,並不太令人興奮。 但有一天,審判日到來了,星星排成一行,我們去探望不在家的叔叔。 我問:
— 我可以開啟電腦嗎?
「是的,你想怎麼處置他就怎麼處置吧。」慈愛的阿姨回答。

當然,我對他做了我想做的事。 Windows 98 桌面上有不同的圖示。 WinRar、Word、FAR、Klondike、遊戲。 點擊所有圖示後,我的注意力集中在 FAR Manager 上。 它看起來像一個難以理解的藍屏,但有一個可以啟動的長列表(文件)。 透過依序點擊每一個,我了解了正在發生的事情的效果。 有些有效,有些則無效。 一段時間後,我意識到以“.exe”結尾的檔案是最有趣的。 他們推出了不同的很酷的圖片,您也可以點擊它們。 所以我可能在叔叔的電腦上啟動了所有可用的exe文件,然後他們勉強把我的耳朵從超級有趣的玩具中拉出來,帶我回家。

程式設計生涯。 第 1 章 第一個程序
相同的 FAR 經理

然後還有計算機俱樂部。 我和我的朋友經常去那裡玩《反恐精英》和《雷神之鎚》線上遊戲,這是我們在家裡做不到的。 我經常向父母求零錢,這樣我就可以在俱樂部玩半小時。 看到我的眼睛,就像史瑞克裡的貓一樣,他們給了我另一份利潤豐厚的合約。 我以 C 的成績完成了學年,他們買了一台電腦給我。 該合約於今年年初 XNUMX 月簽署,如果遵守協議,令人垂涎的 PC 最早應該在 XNUMX 月到達。
我已經盡力了。 我甚至出於情感而賣掉了我心愛的索尼遊戲機,以減少對學習的干擾。 雖然我是馬馬虎虎的學生,但九年級對我來說意義重大。 流鼻血,我只需要取得好成績。

春天已經到了,我正期待著購買一台電腦,這可能是我一生中最重要的事件發生了。 我試著提前思考,所以在一個晴朗的一天,我告訴父親:
- 爸爸,我不會使用電腦。 我們來報名參加課程吧

說到做到。 父親打開登有廣告的報紙,發現了一塊小字寫著的標題: 「電腦課程」。 我打電話給老師,幾天後我就已經參加這些課程了。 課程在城市的另一邊,一座古老的赫魯雪夫鑲板大樓的三樓舉行。 一個房間裡一排三台電腦,那些想學習的人實際上是在它們上面訓練的。

我記得我的第一堂課。 Windows 98需要很長時間才能加載,然後老師發言:
- 所以。 擺在你面前的是 Windows 桌面。 它包含程式圖標。 底部是開始按鈕。 記住! 所有工作都從「開始」按鈕開始。 用滑鼠左鍵點選它。
他繼續。
- 在這裡 - 您可以看到已安裝的程式。 計算機、記事本、Word、Excel。 您也可以透過點擊「關機」按鈕來關閉電腦。 嘗試一下。
最後他轉向了當時對我來說更困難的部分。
「在桌面上,」老師說,還可以看到可以雙擊啟動的程式。
- 雙倍的!? - 一般情況如何?
- 咱們試試看。 用滑鼠左鍵雙擊記事本啟動它。

是的,沙斯。 那一刻最困難的就是將滑鼠固定在一處,同時快速點擊兩次。 第二次單擊時,滑鼠輕微抽搐,快捷方式也隨之抽搐。 但儘管如此,我還是在課堂上克服了這個難以克服的任務。
然後是Word和Excel的訓練。 有一天,他們只是讓我瀏覽自然和建築古蹟的圖片。 這是我記憶中最有趣的活動。 比學習如何在 Word 中設定文字格式有趣得多。

在我的電腦旁邊,其他學生正在學習。 有幾次我遇到了一些正在編寫程式的人,同時熱烈討論了這個過程。 這也讓我感興趣。 記得電影《駭客》,厭倦了 MS Office,我要求轉學到課程
程式設計. 就像生活中所有重大事件一樣,這一切都是出於興趣而自發性的。

我和媽媽一起上了第一堂程式設計課。 我不記得為什麼。 顯然她必須協商新課程並付款。 外面已經是春天了,天色已經黑了。 我們乘坐小巴Gazelle穿越了整個城市到了郊區,到達了臭名昭著的地方
赫魯雪夫小組走到地板上讓我們進去。
他們讓我坐在最後一台電腦前,打開一個程序,螢幕完全是藍色的,字母是黃色的。
- 這是渦輪帕斯卡。 老師對他的行為進行了評論。
- 看,我在這裡寫了關於它如何工作的文檔。 閱讀並看一下。
我面前是一張黃色的畫布,上面寫滿了完全無法理解的文字。 我試著為自己找出一些東西,但我做不到。 漢語文法就是這樣。
終於,過了一段時間,課程領導遞給我一張列印好的A4紙。 上面寫著一些奇怪的東西,我之前在程式設計課程的人的顯示器上看過。
- 重寫這裡寫的內容。 老師吩咐一聲就離開了。
我開始寫:
節目摘要;

我邊寫邊在鍵盤上尋找英文字母。 在Word中,至少我接受了俄語訓練,但在這裡我必須學習其他字母。 程序是用一根手指敲出來的,但是非常小心。
開始、結束、變數、整數 - 這是什麼? 雖然我從一年級開始學習英語,知道很多單字的意思,但我無法將它們連接在一起。 我就像一隻訓練有素的騎自行車的熊一樣,繼續踩踏板。 終於看到熟悉的事物了:
writeln('請輸入第一個數字');
然後 - writeln('輸入第二個數字');
然後 - writeln('結果=',c);
程式設計生涯。 第 1 章 第一個程序
第一個 Turbo Pascal 程序

唷,我寫的。 我將手從鍵盤上移開,等待大師出現以獲取進一步的指示。 最後他走過來,掃視螢幕並告訴我按 F9 鍵。
「現在程式已編譯並檢查錯誤,」大師說
沒有錯誤。 然後他說按Ctrl+F9,我也是第一次一步步解釋。 您需要做的就是按住 Ctrl,然後按 F9。 螢幕一黑,上面終於出現了一條我能看懂的訊息:“請輸入第一個數字。”
在老師的命令下,我輸入了7。然後是第二個數字。 我輸入 3 並按 Enter 鍵。

「結果 = 10」這一行以閃電般的速度出現在螢幕上。 那是一種欣快感,我一生中從未經歷過類似的事情。 就好像整個宇宙在我面前敞開,我發現自己進入了某種入口。 一股溫暖傳遍我的全身,我的臉上浮現出微笑,我潛意識深處的某個地方意識到—— 這是我的。 非常直觀地,在情感層面上,我開始感受到桌子下方這個嗡嗡作響的盒子裡的巨大潛力。 有很多事情是你可以親手做的,她都會做!
這是某種魔法。 我完全無法理解藍色螢幕上那些黃色的、難以理解的文字是如何變成一個方便易懂的程式的。 這也算它自己! 讓我驚訝的不是計算本身,而是書寫的象形文字變成了計算器。 當時這兩個事件之間存在著差距。 但直覺上我覺得這個硬體幾乎可以做任何事。

幾乎在小巴回家的路上,我感覺自己就像在太空中一樣。 這張寫有「結果」的圖片在我的腦海中旋轉,這是怎麼發生的,這台機器還能做什麼,我可以不用一張紙自己寫點東西嗎? 一千個問題讓我感興趣,同時讓我興奮和啟發。 那年我14歲。 那天,這個職業選擇了我。

待續...

來源: www.habr.com

添加評論