We were sitting in a small room with Neil (a programmer, one of the first employees of Microsoft) over an IBM PC prototype. The clock was 4 in the morning. IBM set the condition that we can work only in a locked room, so the temperature there was close to 38 degrees, but we continued to work on the application to show what BASIC built into the IBM PC is capable of. This is how DONKEY.BAS appeared. It was a very exciting time. We needed to be one step ahead to show them how it would look.
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
I started at 15 with the first Perl program, buying a recipe book on the market. Having written and running all the examples, I switched to HTML and CSS, where I tried to apply the knowledge gained from Perl in practice. It did not work ... And the next two years he lived a life in which from experiments there was a study of the registry in Windows 98 and higher, followed by reinstallation.
At the age of 18 he returned to work: he gained knowledge and practice in Java at the university, and also understood why Perl knowledge did not help with HTML / CSS. Somewhere between 18 and 25 was Haskell. At 25 I finished active work with Java and switched to .NET, in parallel, having received many years of experience in administering a supercomputer cluster under SLES. At the moment, I continue researching as a developer, I like to experiment with all sorts of cool things like Project Orleans, Service Fabric, Akka and others like them, and I also have my cozy home SLES.
# When I was a 9th grade student, I didn’t have a computer, or even a school subject called “informatics”, but there was a “drawing” subject that was taught by the same teacher. And so, after the lessons under the pretext of “improving drawing skills,” I came to the computer science office and, in between drawing lines, looked into an old 286th monitor, where Wolfenstein 3D flashed at the time.
But my interest, unlike many, was not limited to games only. I was interested in such trivial things as typing and printing, and this earned the teacher’s location and special access to the PC. Ironically, when I moved to the 10th grade and finally could officially be at the computer in computer science classes, the teacher was dismissed and the subject was canceled.
I decided to take the bull by the horns and descended the director about my super skills and the desire to carry out instructions for typing texts. The verification work, although it took me several hours, still convinced the director of my usefulness. So I got full access for the next two years both to the computer science office, and to his entire book collection.
The most interesting, in my opinion, was also a Soviet book about programming in QBasic. I got so carried away with this book that I wrote programs at home in a notebook, without being able to immediately verify the correctness of my code. Very soon, my rural school was overtaken by a civilization in the face of a Pentium with Windows 2000. But, the most interesting was MS Office with a built-in Visual Basic editor. Having appreciated the beauty of visual programming, I finally fell in love with both the language and the Microsoft technology.
In 2003, my first working day at Microsoft took place. In the Moscow office, I was photographed, loaded with information, given prezu, which I had to read the next day, and sent back to St. Petersburg. We sit in the office. Suddenly, a colleague next starts to choke with laughter. Shows me the main page of the website of one of the leading partners of MS in St. Petersburg. In the center of the page is a beautiful banner and information on joint promotions. And to the right is a column with the “Anecdote of the Day” column: “Announcement:“ I am looking for Microsoft fans. I’ll find and kill you! ””
So I realized that partners are our everything. :) And this is one of the souvenirs from a partner for the New Year.
The most encyclopedia of Professor Fortran, in 5 years, was the most fascinating book. :)
But # once in the 10th grade, I liked to solve problems on Pascal for infinite amounts. Then it took a year to convince parents that being a programmer is better than an economist. :) The university had to explain that I came to the specialty consciously, and not by accident.
Now, at each interview, it takes about 10 minutes to explain that yes, I am a developer, yes, definitely not a tester, yes, I definitely like programming. :) And no, I was not mistaken with a vacancy. :) But in about 10 minutes almost everyone gets used.
I always had a pronounced predisposition to the humanities. The decision to go in the opposite sphere was deliberate. I wanted to shake up the other, “dark side” of my capabilities, I went to study, and then work in IT. Despite the widespread stereotype, it is the experience of the first work in support that I remember fondly so far. Although at the very beginning it was hard, and I will not say that it became easier here at Microsoft. :) But I really like to reach out for the best, bite into the wall of my own misunderstanding, although sometimes I have to balance on the edge.
# When I was 14-15 years old, I really liked to drive into the Mechanoids. But I did not want to go through the whole company, and then I wanted to hack the game. After a couple of months of stubbornly studying Turbo Pascal on old school library books, I did succeed.
6 years have passed since then, I studied other languages, wrote many lines of code, and my passion for programming has only increased. But I still like to sit down at Pascal and write something perverted. :)
The beginning of the way? At all it is innocuous and strange ... Looking at the first experience, I want to hit myself. But, in general, as for me, if you want to hit yourself a year ago, then you are fine. :)
My programming experience began when I was at university and automated my calculations for Electrical Engineering in Excel. In the manual, an algorithm was presented for a person where you need to rearrange the cells in the table (I don’t remember already) according to certain rules and get the result. My script mixed these cells according to the algorithm and back. Variables were with standard names, like a, b, c. Code noodles, no comment ... It was terrible.
Then it all overgrown passion. I almost completely automated electrical engineering calculations: where the formulas were too heavy to read in Excel, I wrote them in VBA. I was very proud, because my classmates used it. Some, inspired by such automation, also began to automate some calculations for other disciplines. After even interested in C ++. We started not to solve coursework, but to automate. It was fascinating. We pumped, had fun and at the same time did not lag behind the main educational process. As a result, they even started to overtake others, because we didn’t need to rewrite tons of calculations with our hands. It was enough to change some data and click the button "Read".
Then I began to participate in research and development as a programmer, worked in the Institute of Space Studies, RAS, after trying out for startups in fintech, I started to get involved in Deep Learning. A project has begun in MAI, where image analysis is used / will be used and I will be doing this. Currently working in Synhro, doing an archive. I am a Full Stack Web programmer (essentially so), writing services using ASP.NET Core (SignalR is badly enough). I actively use Microsoft tools and regret only that. that in the day just 24 hours, you have to choose the direction of your activity and sometimes sleep ... Who invented such nonsense?
I understood that I like to be engaged in the development of programs when I was in practice at a training center at GC-shkah and UK NC. There I wrote my first program in BASIC and realized that I like it.
Then there were workshops at the university in Fortran and C ++, and little experience in developing custom programs and, finally, my first job as a programmer at the online store Biblion.
Source: https://habr.com/ru/post/322396/
All Articles