お誕生日おめでずう、マむクロ゜フト

聖むシドヌルの日、りェブマスタヌの日、そしおマむクロ゜フトの誕生日など、今日の祝日が屋根を通り過ぎおいるため、404日を攟眮するこずは困難でした。 この蚘事を特別なものにしたかったので、思い出に浞るこずを提案したす。 カットの䞋では、マむクロ゜フトの誕生の歎史ず、テクノロゞヌ゚バンゞェリストおよびマむクロ゜フトデベロッパヌコミュニティのサブスクラむバヌから、プログラミング、システム管理、その他の魔法の道の始たりに぀いおの8぀の短線小説を芋るこずができたす。 コメントであなたが私たちを支持し、あなたがどのようにITを埁服するこずを決めたかに぀いお教えおくれたら玠晎らしいでしょう。







すべおの始たりマむクロ゜フト



1980幎半ば、IBMは倧芏暡なパヌ゜ナルコンピュヌタヌIBM PCの最初のモデルをリリヌスするこずを蚈画し、適切なOSを探しお、 MicrosoftがBASICむンタヌプリタヌを䜜成するこずを提案したした。 トランザクションの䞀郚ずしお、その機胜を実蚌するためにアプリケヌションを送信する必芁がありたした。 その埌、ビル・ゲむツが圌の最初のコンピュヌタヌゲヌムドンキヌ「ドンキヌ」を䜜成したした。このゲヌムでは、車を運転し、道路に出たロバをかわす必芁がありたす。







TechEd 2001で、ビルはゲヌム制䜜の思い出を共有したした 。



プロトタむプのIBM PCに぀いお、ニヌルプログラマヌ、最初のマむクロ゜フト埓業員の1人ず小さな郚屋に座っおいたした。 時蚈は午前4時でした。 IBMは、鍵のかかった郚屋でしか䜜業できないずいう条件を蚭定したため、枩床は38床近くになりたしたが、IBM PCに組み蟌たれたBASICの胜力を瀺すためにアプリケヌションの䜜業を続けたした。 だからDONKEY.BASがありたした。 ずおも刺激的な時間でした。 どのように芋えるかを瀺すために、䞀歩先を行く必芁がありたした。


きっずあなたはこの物語の終わりが䜕であるかを知っおいたす。 昚幎、PC-DOS 1.0MS-DOSオペレヌティングシステムずBASICむンタヌプリタヌを備えた最初のIBM PCモデルのリリヌスから35幎が経過したした。 この頃、ゞェフアトりッドのゲヌムアナログの゜ヌスコヌドがGitHubに登堎したした。



GitHubのJeff AtwoodによるDONKEY.BAS131行
940 REM The IBM Personal Computer Donkey 950 REM Version 1.10 (C)Copyright IBM Corp 1981, 1982 960 REM Licensed Material - Program Property of IBM 975 DEF SEG: POKE 106,0 980 SAMPLES$="NO" 990 GOTO 1010 1000 SAMPLES$="YES" 1010 KEY OFF:SCREEN 0,1:COLOR 15,0,0:WIDTH 40:CLS:LOCATE 5,19:PRINT "IBM" 1020 LOCATE 7,12,0:PRINT "Personal Computer" 1030 COLOR 10,0:LOCATE 10,9,0:PRINT CHR$(213)+STRING$(21,205)+CHR$(184) 1040 LOCATE 11,9,0:PRINT CHR$(179)+" DONKEY "+CHR$(179) 1050 LOCATE 12,9,0:PRINT CHR$(179)+STRING$(21,32)+CHR$(179) 1060 LOCATE 13,9,0:PRINT CHR$(179)+" Version 1.1O "+CHR$(179) 1070 LOCATE 14,9,0:PRINT CHR$(212)+STRING$(21,205)+CHR$(190) 1080 COLOR 15,0:LOCATE 17,4,0:PRINT "(C) Copyright IBM Corp 1981, 1982" 1090 COLOR 14,0:LOCATE 23,7,0:PRINT "Press space bar to continue" 1100 IF INKEY$<>"" THEN GOTO 1100 1110 CMD$ = INKEY$ 1120 IF CMD$ = "" THEN GOTO 1110 1130 IF CMD$ = CHR$(27) THEN GOTO 1298 1140 IF CMD$ = " " THEN GOTO 1160 1150 GOTO 1110 1160 DEF SEG=0 1170 IF (PEEK(&H410) AND &H30)<>&H30 THEN DEF SEG:GOTO 1291 1180 WIDTH 80:CLS:LOCATE 3,1 1190 PRINT "HOLD IT!" 1200 PRINT "YOU'RE NOT USING THE COLOR/GRAPHICS MONITOR ADAPTER!" 1210 PRINT "THIS PROGRAM USES GRAPHICS AND REQUIRES THAT ADAPTER." 1220 PRINT "PRESS THE SPACE BAR TO CONTINUE." 1230 DEF SEG 1240 IF INKEY$<>"" THEN GOTO 1240 1250 CMD$ = INKEY$ 1260 IF CMD$ = "" THEN GOTO 1250 1270 IF CMD$ = CHR$(27) THEN GOTO 1298 1280 IF CMD$ = " " THEN GOTO 1298 1290 GOTO 1250 1291 KEY OFF 1292 ON ERROR GOTO 1295 1293 PLAY "p16" 1294 GOTO 1300 1295 COLOR 31,0,0 1296 PRINT "THIS PROGRAM REQUIRES ADVANCED BASIC -- USE COMMAND 'BASICA'":COLOR 15,0,0:FOR I=1 TO 9000:NEXT: RESUME 1298 1298 ON ERROR GOTO 0 1299 SCREEN 0,1:IF SAMPLES$="YES" THEN CHAIN"samples",1000 ELSE COLOR 7,0,0:CLS:END 1300 REM 1410 COLOR 0 1420 DEFINT AY 1440 SCREEN 1,0:COLOR 8,1 1450 DIM Q%(500) 1460 DIM D1%(150),D2%(150),C1%(200),C2%(200) 1470 DIM DNK%(300) 1480 GOSUB 1940 1490 GOSUB 1780 1500 CLS 1510 DIM B%(300) 1520 FOR I=2 TO 300:B%(I)=-16384+192:NEXT 1530 B%(0)=2:B%(1)=193 1540 REM 1550 CX=110:CLS 1590 LINE (0,0)-(305,199),,B 1600 LINE (6,6)-(97,195),1,BF 1610 LINE (183,6)-(305,195),1,BF 1620 LOCATE 3,5:PRINT "Donkey" 1630 LOCATE 3,29:PRINT "Driver" 1631 LOCATE 19,25:PRINT"Press Space "; 1632 LOCATE 20,25:PRINT"Bar to switch"; 1633 LOCATE 21,25:PRINT"lanes "; 1635 LOCATE 23,25:PRINT"Press ESC "; 1636 LOCATE 24,25:PRINT"to exit "; 1640 FOR Y=4 TO 199 STEP 20:LINE(140,Y)-(140,Y+10):NEXT 1650 CY=105:CX=105 1660 LINE (100,0)-(100,199):LINE(180,0)-(180,199) 1670 LOCATE 5,6:PRINT SD:LOCATE 5,31:PRINT SM 1680 CY=CY-4:IF CY<60 THEN 2230 1690 PUT (CX,CY),CAR%,PRESET 1700 DX=105+42*INT(RND*2) 1710 FOR Y=(RND*-4)*8 TO 124 STEP 6 1720 SOUND 20000,1 1730 A$=INKEY$:IF A$=CHR$(27) THEN 1298 ELSE POKE 106,0:IF LEN(A$)>0 THEN LINE (CX,CY)-(CX+28,CY+44),0,BF:CX=252-CX:PUT (CX,CY),CAR%,PRESET:SOUND 200,1 1740 IF Y=>3 THEN PUT (DX,Y),DNK%,PSET 1750 IF CX=DX AND Y+25>=CY THEN 2060 1760 IF Y AND 3 THEN PUT (140,6),B% 1770 NEXT:LINE (DX,124)-(DX+32,149),0,BF:GOTO 1670 1780 CLS 1790 DRAW "S8C3" 1800 DRAW"BM12,1r3m+1,3d2R1ND2u1r2d4l2u1l1" 1810 DRAW"d7R1nd2u2r3d6l3u2l1d3m-1,1l3" 1820 DRAW"m-1,-1u3l1d2l3u6r3d2nd2r1u7l1d1l2" 1830 DRAW"u4r2d1nd2R1U2" 1840 DRAW"M+1,-3" 1850 DRAW"BD10D2R3U2M-1,-1L1M-1,1" 1860 DRAW"BD3D1R1U1L1BR2R1D1L1U1 1870 DRAW"BD2BL2D1R1U1L1BR2R1D1L1U1 1880 DRAW"BD2BL2D1R1U1L1BR2R1D1L1U1 1890 LINE(0,0)-(40,60),,B 1900 PAINT (1,1) 1910 DIM CAR%(900) 1920 GET(1,1)-(29,45),CAR% 1930 RETURN 1940 CLS 1950 DRAW"S08" 1960 DRAW "BM14,18" 1970 DRAW"M+2,-4R8M+1,-1U1M+1,+1M+2,-1 1980 DRAW"M-1,1M+1,3M-1,1M-1,-2M-1,2" 1990 DRAW"D3L1U3M-1,1D2L1U2L3D2L1U2M-1,-1" 2000 DRAW"D3L1U5M-2,3U1" 2010 PAINT (21,14),3 2020 PRESET (37,10):PRESET (40,10) 2030 PRESET (37,11):PRESET (40,11) 2040 GET (13,0)-(45,25),DNK% 2050 RETURN 2060 SD=SD+1:LOCATE 14,6:PRINT "BOOM!" 2070 GET (DX,Y)-(DX+16,Y+25),D1% 2080 D1X=DX:D1Y=Y:D2X=DX+17 2090 GET (DX+17,Y)-(DX+31,Y+25),D2% 2100 GET (CX,CY)-(CX+14,CY+44),C1% 2110 GET (CX+15,CY)-(CX+28,CY+44),C2% 2120 C1X=CX:C1Y=CY:C2X=CX+15 2130 FOR P=6 TO 0 STEP -1:Z=1/(2^P):Z1=1-Z 2140 PUT (C1X,C1Y),C1%:PUT(C2X,C1Y),C2% 2150 PUT (D1X,D1Y),D1%:PUT(D2X,D1Y),D2% 2160 C1X=CX*Z1:D1Y=Y*Z1:C2X=C2X+(291-C2X)*Z 2170 D1X=DX*Z1:C1Y=C1Y+(155-C1Y)*Z:D2X=D2X+(294-D2X)*Z 2180 PUT (C1X,C1Y),C1%:PUT(C2X,C1Y),C2% 2190 PUT (D1X,D1Y),D1%:PUT(D2X,D1Y),D2% 2200 SOUND 37+RND*200,4:NEXT 2210 FOR Y=1 TO 2000:NEXT 2220 CLS:GOTO 1540 2230 SM=SM+1:LOCATE 7,25:PRINT "Donkey loses!" 2240 FOR Y=1 TO 1000:NEXT 2250 CLS:GOTO 1540
      
      







2012 幎に、ゲヌムの類䌌物がiOS向けにリリヌスされ、 Johnny IxeによるDONKEY.APPの最新バヌゞョンが2017幎1月13日に登堎したした。



それがすべお始たった方法の8぀の物語



Bill Gatesのストヌリヌを読んでそれに觊発された埌、人々が自分の人生をITに぀なげようずする動機がおもしろくなったので、Microsoft Developerグルヌプに小さなフラッシュモブがいお、tagでハッシュタグを付けおストヌリヌを語るように頌みたした。 以䞋に、Microsoftテクノロゞヌ゚バンゞェリストのストヌリヌず同様に、最も興味深いものを玹介したす。



Alexander Belotserkovsky、マむクロ゜フト、テクノロゞヌ゚バンゞェリスト

私は15歳で最初のPerlプログラムで始め、垂堎でレシピ本を賌入したした。 すべおの䟋を曞いお実行した埌、圌はHTMLずCSSに切り替え、Perlから埗た知識を実践に移そうずしたした。 それはうたくいきたせんでした...そしお、その埌の2幎間は、Windows 98以降でレゞストリを調べ、その埌再むンストヌルするずいう実隓をするこずになりたした。



18歳で圌は職務に戻りたした。圌は倧孊でJavaの知識ず実践を受け、たたPerlの知識がHTML / CSSで圹に立たなかった理由を理解したした。 18から25の間のどこかにHaskellがいたした。 25歳で、圌はJavaでのアクティブな仕事を完了し、.NETに切り替えたず同時に、SLESの䞋でスヌパヌコンピュヌタヌクラスタヌを管理する長幎の経隓を積みたした。 珟時点では、私は開発者ずしお研究を続けおいたす。ProjectOrleans、Service Fabric、Akka、およびそれらに類するものなど、あらゆる皮類のクヌルなものを詊しおみたいです。


ドキュメントファクトリヌ管理者、アレクセむ・プロトニコフ

9幎生のずき、私はコンピュヌタヌを持っおいなかったし、「コンピュヌタヌサむ゚ンス」ず呌ばれる孊校の科目さえ持っおいたせんでしたが、同じ教垫によっお教えられた「描画」科目がありたした。 そしお、「描画スキルを向䞊させる」ずいう口実の䞋でのレッスンの埌、コンピュヌタヌサむ゚ンスオフィスに行き、描画ラむンの間に、圓時の掟手なWolfenstein 3Dが点滅した叀い286thのモニタヌを芋たした。



しかし、私の興味は、倚くずは異なり、ゲヌムだけに限定されおいたせんでした。 たた、タむピングや印刷などのありふれたこずに興味がありたした。これにより、教垫の堎所が埗られ、PCに特別にアクセスできるようになりたした。 皮肉なこずに、私が10幎生になり、぀いにコンピュヌタヌサむ゚ンスの授業で正匏にコンピュヌタヌを䜿甚できるようになったずき、教垫は解雇され、科目はキャンセルされたした。



私は角で雄牛を連れお行くこずを決め、私のスヌパヌスキルずタむピングのための割り圓おを実行したいずいう願望に぀いお監督にscりたした。 怜蚌䜜業には数時間かかりたしたが、それでもディレクタヌに私の有甚性を確信させたした。 そのため、私は今埌2幎間、コンピュヌタヌサむ゚ンスキャビネットず圌の曞籍コレクション党䜓の䞡方にアクセスできたした。



最も興味深いのは、私の意芋では、QBasicでのプログラミングに関する゜ビ゚トの本でした。 私はこの本に倢䞭になり、自宅でノヌトブックでプログラムを曞いたのですが、コヌドの正確さをすぐに確認するこずはできたせんでした。 すぐに、私の田舎の孊校は、Windows 2000を搭茉したPentiumに代衚される文明に取っお代わられたした。しかし、最も興味深いのは、組み蟌みのVisual Basic゚ディタヌを備えたMS Officeでした。 ビゞュアルプログラミングの魅力をすべお理解した埌、私はようやく蚀語ずマむクロ゜フトのテクノロゞヌの䞡方に倢䞭になりたした。


アレクサンダヌシャポノァル、マむクロ゜フト、テクノロゞヌ゚バンゞェリスト

2003幎に、マむクロ゜フトでの最初の就業日が開催されたした。 私はモスクワのオフィスで写真を撮り、情報を満茉し、翌日読む予定のプレザを䞎えられ、サンクトペテルブルクに送り返されたした。 私たちはオフィスに座っおいたす。 突然、近くの同僚が笑い声で窒息し始めたす。 サンクトペテルブルクの倧手MSパヌトナヌの1぀のりェブサむトのメむンペヌゞを衚瀺したす。 ペヌゞの䞭倮には、矎しいバナヌず共同プロモヌションに関する情報がありたす。 そしお、右偎には「今日の議事録」ずいう芋出しの列がありたす。 「お知らせ」マむクロ゜フトのファンを探しおいたす。あなたを芋぀けお殺したす」



だから、パヌトナヌは私たちのすべおだずいうこずに気づきたした。 :)そしお、これは新幎のパヌトナヌからの莈り物の䞀぀です。





Anastasia Kontselgoger、.Net開発者、Arsis

結局、Fortran教授の癟科事兞は、5幎埌には魅力的な本になりたした。 :)



しかし、10幎生のずき、私はパスカルパズルを無限の量で解くのが奜きでした。 それから、プログラマヌであるこずは経枈孊者よりも優れおいるず䞡芪に玍埗させるのに1幎かかりたした。 :)倧孊では、偶然ではなく、故意に専門に来たこずを説明する必芁がありたした。



今、玄10分のすべおのむンタビュヌで、はい、私は開発者です、はい、間違いなくテスタヌではありたせん、はい、間違いなくプログラミングが奜きです。 :)いいえ、空宀に぀いお誀解しおいたせんでした。 :)しかし、玄10分埌、ほが党員がそれに慣れたす。


マむクロ゜フト、テクノロゞヌ゚バンゞェリスト、Maria Gorelkina

私は垞に人文科孊に察しお顕著な傟向を持っおいたす。 反察の領域に入るずいう決定は意識的なものでした。 私は自分の胜力の「ダヌクサむド」であるもう䞀方を揺るがしたかったので、勉匷に行っおからITで働きたした。 ステレオタむプが広たっおいるにもかかわらず、枩かさをサポヌトする最初の䜜品の経隓を今でも芚えおいたす。 圓初は困難でしたが、ここマむクロ゜フトでは簡単になったずは蚀いたせん。 :)しかし、私は本圓に自分自身の誀解の壁に食い蟌んで最善を尜くすのが奜きです。


Georgy Perevozchikov、゜フト開発者、フリヌランス

14〜15歳のずき、私はメカノむドに連れお行っおくれたした。 しかし、私は䌚瀟党䜓を行きたくなかったので、ゲヌムをハックしたかったのです。 Turbo Pascalを叀い孊校の図曞通の本から数か月懞呜に勉匷した埌、私はただ成功を収めたした。



それから6幎が経ち、私は他の蚀語を勉匷し、倚くのコヌド行を曞き、プログラミングに察する私の情熱は高たりたした。 しかし、私は今でもパスカルの埌ろに座っお䜕か倉なものを曞くのが倧奜きです。 :)


Artyom、フルスタックWebプログラマヌ、Synhro

道の始たり それは誰にずっおも無害で奇劙です...最初の経隓を芋お、私は自分自身を打ちたいです。 しかし、䞀般的に、私に関しおは、1幎前に自分自身を攻撃したい堎合は、すべおが順調です。 :)



私のプログラミングの経隓は、私が倧孊にいたずきに始たり、Excelで電気工孊の蚈算を自動化したした。 トレヌニングマニュアルでは、特定のルヌルに埓っおテヌブル内のセルを再配眮する必芁がある人既に芚えおいないに察しおアルゎリズムが提瀺され、結果を取埗したす。 私のスクリプトは、アルゎリズムに埓っおこれらのセルをシャッフルし、逆も同様です。 倉数は、a、b、cなどの暙準名でした。 コヌド麺、コメントなし...それはひどかった。



それからそれはすべお趣味に成長したした。 私は電気工孊の蚈算をほが完党に自動化したした。匏がExcelで読むには重すぎたため、VBAで曞きたした。 クラスメヌトがこれを䜿ったので、私はずおも誇りに思いたした。 そのような自動化に觊発された䞀郚は、他の分野の蚈算を自動化し始めたした。 C ++にさえ興味を持った埌。 孊期論文の解決ではなく、自動化を始めたした。 ずおも面癜かったです。 私たちは興奮し、楜しみながら、同時に䞻芁な教育プロセスに遅れをずるこずはありたせんでした。 その結果、倧量の蚈算を手で曞き盎す必芁がなかったため、圌らは他の人を匷く远い越し始めたした。 䞀郚のデヌタを倉曎し、「読み取り」ボタンをクリックするだけで十分でした。



その埌、プログラマヌずしお研究に参加し始め、IKI RASで働き、その埌、フィンテックのスタヌトアップに挑戊し、ディヌプラヌニングに参加し始めたした。 MAIでプロゞェクトが開始されおおり、画像分析が䜿甚されおいる/䜿甚される予定で、これを行いたす。 私がSynhroで働いおいるずき、私たちはアヌカむブを䜜成しおいたす。 私は実際のずころフルスタックWebプログラマヌであり、ASP.NET Coreを䜿甚しおサヌビスを䜜成しおいたすSignalRは非垞に䞍足しおいたす。 マむクロ゜フトのツヌルを積極的に䜿甚しおいたすが、それだけを埌悔しおいたす。 その日は24時間しかない、あなたはあなたの掻動の方向を遞択し、時には眠らなければならない...誰がそのような愚かさを発明したしたか


Stas Pavlov、マむクロ゜フト、テクノロゞヌ゚バンゞェリスト

プログラムの開発に取り組みたいずいう事実は、BC-shkahずCC NTのトレヌニングセンタヌでむンタヌンシップを行ったずきに、孊校に戻っお気づきたした。 そこで最初のBASICプログラムを䜜成し、自分が気に入っおいるこずに気付きたした。



その埌、Fortran倧孊ずC ++でワヌクショップがあり、カスタムプログラムの開発に少し経隓があり、最埌にBiblionオンラむンストアのプログラマヌずしおの最初の仕事がありたした。


ディスカッションに参加しお、コメントであなたのストヌリヌを共有しおください。 :)



All Articles