Бағдарламалау мансабы. 1-тарау. Бірінші бағдарлама

Бағдарламалау мансабы. 1-тарау. Бірінші бағдарламаҚұрметті Хабр оқырмандары, мен сіздердің назарларыңызға болашақта кітап етіп біріктіруді жоспарлап отырған посттар топтамасын ұсынамын. Мен өткенге үңіліп, қалай әзірлеуші ​​болғаным және оны қалай жалғастырғаным туралы өз тарихымды айтқым келді.

IT-ға түсудің алғышарттары, сынақтар мен қателіктер жолы, өздігінен білім алу және бала аңғалдығы туралы. Мен ертегімді бала кезімнен бастап, бүгінмен аяқтаймын. Бұл кітап әсіресе IT мамандығын енді ғана оқып жатқандар үшін пайдалы болады деп сенемін.
Ал IT саласында жұмыс істеп жүргендер өз жолымен параллельдер жасайтын шығар.

Бұл кітаптан сіз мен оқыған әдебиеттерге сілтемелерді, оқу, жұмыс және стартап ашу кезінде мен жолым кесілген адамдармен қарым-қатынас тәжірибесін таба аласыз.
Университет оқытушыларынан бастап ірі венчурлық инвесторларға және көп миллион долларлық компаниялардың иелеріне дейін.
Бүгінгі таңда кітаптың мүмкін болатын 3.5-8 тарауының 10-і дайын. Алғашқы тараулар аудиториядан оң пікір тапса, кітапты түгелдей шығарамын.

Өзі жайлы

Мен Джон Кармак, Николай Дуров немесе Ричард Мэттью Сталлман емеспін. Мен Яндекс, ВКонтакте немесе Mail.ru сияқты компанияларда жұмыс істемедім.
Менің үлкен корпорацияда жұмыс істеген тәжірибем болса да, ол туралы мен сізге міндетті түрде айтып беремін. Бірақ менің ойымша, мәселе үлкен атауда емес, әзірлеуші ​​болу жолының тарихында, одан әрі коммерциялық дамудағы 12 жылдық мансабымда болған жеңістер мен жеңілістерде. Әрине, кейбіреулеріңіздің IT саласында тәжірибесі әлдеқайда жоғары. Бірақ менің қазіргі мансабымда болған драмалар мен жеңістерді сипаттауға тұрарлық деп есептеймін. Оқиғалар көп болды, олардың барлығы да алуан түрлі болды.

Мен бүгін әзірлеуші ​​ретінде кіммін
— 70-тен астам коммерциялық жобаларға қатысты, олардың көпшілігін нөлден жазды
— Біздің оншақты жобамызда: ашық бастапқы кодтар, стартаптар
— IT саласында 12 жыл. 17 жыл бұрын - бірінші бағдарламаны жазды
- Microsoft корпорациясының ең құнды адамы 2016
— Microsoft Certified Professional
— Сертификатталған Scrum Master
— Менде C#/C++/Java/Python/JS тілін жақсы меңгерген
— Жалақы — 6000-9000 $/ай. жүктемеге байланысты
— Бүгінгі негізгі жұмыс орным Upwork фрилансерлік биржасы. Ол арқылы мен NLP/AI/ML-мен айналысатын компанияда жұмыс істеймін. 1 миллион қолданушы базасы бар
— AppStore және GooglePlay дүкендерінде 3 қолданбаны шығарды
— Мен қазір жасап жатқан жобаның төңірегінде өзімнің IT-компаниямды құруға дайындалып жатырмын

Дамумен қатар танымал блогтарға мақалалар жазамын, жаңа технологияларды үйретемін, конференцияларда сөйлеймін. Мен фитнес клубта және отбасыммен демаламын.

Кітаптың тақырыбына келетін болсақ, бұл мен туралы болса керек. Келесі менің оқиғам.

Оқиға. Бастау.

Компьютердің не екенін алғаш рет 7 жасымда білдім. Мен бірінші сыныпты енді бастадым, сурет сабағында бізге картоннан, пенопласттан және фломастерден компьютер жасауға үй тапсырмасы берілді. Әрине, ата-анам көмектесті. Анам 80-жылдардың басында техникалық университетте оқыды және компьютердің не екенін білді. Жаттығу кезінде ол перфокарталарды соғып, оларды жаттығу залының негізгі бөлігін алатын алып кеңестік машинаға тиеп үлгерді.

Біз үй тапсырмасын 5 деген бағамен орындадық, өйткені біз бәрін мұқият орындадық. Біз А4 картонының қалың парағын таптық. Көбік резеңкеден жасалған ескі ойыншықтардан шеңберлер кесіліп, пайдаланушы интерфейсі фломастермен сызылған. Біздің құрылғыда бірнеше түймелер ғана болды, бірақ мен анам екеуміз оларға қажетті функцияларды тағайындадық, сабақ барысында мен мұғалімге «Қосу» түймесін басқанда, «экранның бұрышында шам жанып тұратынын көрсеттім. ” бір мезгілде фломастермен қызыл шеңбер сызу кезінде.

Менің компьютерлік технологиямен келесі кездесуім сол жаста болды. Демалыс күндері мен ата-әжемнің үйіне жиі баратынмын, олар өз кезегінде әртүрлі керексіз заттарды сататын және оны тиынға сатып алатын. Ескі сағаттар, самоварлар, қазандықтар, белгілер, 13 ғасыр жауынгерлерінің қылыштары және т.б. Осы сан алуан заттардың арасында біреу оған теледидар мен аудиомагнитофоннан жұмыс істейтін компьютерді әкелді. Бақытымызға орай, әжемде екеуі де болды. Әрине, кеңестік. Арналарды өзгертуге арналған сегіз түймесі бар TV Electron. Ал Vega екі кассеталық магнитофон, ол тіпті аудио таспаларды қайта жаза алады.
Бағдарламалау мансабы. 1-тарау. Бірінші бағдарлама
Кеңестік компьютер «Poisk» және перифериялық құрылғылар: «Электрон» теледидары, «Вега» магнитофоны және BASIC тіліндегі аудио кассета

Біз бұл жүйенің қалай жұмыс істейтінін анықтай бастадық. Компьютермен бірге бірнеше аудио кассеталар, әбден тозған нұсқаулық және «НЕГІЗГІ бағдарламалау тілі» тақырыбы бар басқа брошюра болды. Бала кезіме қарамастан магнитофон мен теледидарға сымдарды қосу процесіне белсене қатысуға тырыстым. Содан кейін біз кассеталардың бірін магнитофон бөліміне салып, «Алға» түймесін басып (яғни ойнатуды бастаймыз) және теледидар экранында мәтін мен сызықтардың түсініксіз псевдографиясы пайда болды.

Бас бөлігінің өзі жазу машинкасына ұқсайды, тек сарғайған және айтарлықтай салмағы бар. Баланың толқуымен барлық пернелерді басып, нақты нәтиже көрмей, жүгіріп, қыдырдым. Тіпті сол кездің өзінде менің алдымда жасыма байланысты қайта жаза алмайтын бағдарламалардың мысалдары бар BASIC тілі бойынша нұсқаулық болды.

Балалық шағымнан ата-анам басқа туыстарыммен бірге жұмыс істеп, маған сатып алған барлық гаджеттер есімде. Алғашқы сылдырмақ әйгілі «Қасқыр жұмыртқаны ұстайды» ойыны болды. Мен оны тез бітірдім, соңында көптен күткен мультфильмді көрдім және тағы бір нәрсені қаладым. Содан кейін Тетрис болды. Ол кезде оның құны 1,000,000 90 XNUMX купон болатын. Иә, бұл XNUMX-шы жылдардың басында Украинада болды, мен оқудағы жетістігім үшін миллион берді. Өзімді миллионер сияқты сезіне отырып, мен ата-анама жоғарыдан түсетін әртүрлі пішіндегі фигураларды дұрыс орналастыруға тура келетін күрделі ойынға тапсырыс бердім. Сатып алған күні ата-анам Тетристі қолымнан бақылаусыз алып кетті, олар екі күн бойы одан құтыла алмады.

Бағдарламалау мансабы. 1-тарау. Бірінші бағдарлама
Әйгілі «Қасқыр жұмыртқа мен тетристі ұстайды»

Содан кейін ойын консольдері болды. Біздің отбасы шағын үйде тұратын, оның көрші бөлмесінде ағам мен апам да тұратын. Менің ағам әскери ұшқыш болды, ол ыстық нүктелерден өтті, сондықтан қарапайымдылығына қарамастан, ол өте табанды және аздан қорқатын.
әскери операциялар. 90-шы жылдардағы көптеген адамдар сияқты менің ағам да бизнеспен айналысып, жақсы табысқа ие болды. Осылайша оның бөлмесінде импорттық теледидар, бейнемагнитофон, содан кейін Subor приставкасы (Дендиге ұқсас) пайда болды. Оның Super Mario, TopGun, Terminator және басқа да ойындарын ойнағанын көргенде тынысым тарылды. Ол джойстикті қолыма бергенде, қуанышымда шек болмады.

Бағдарламалау мансабы. 1-тарау. Бірінші бағдарлама
Сегіз разрядты «Сюбор» консолі және аты аңызға айналған «Супер Марио»

Иә, тоқсаныншы жылдары өскен қарапайым балалар сияқты мен де күні бойы аулада өттім. Не пионербол ойнау, не бадминтон ойнау, не түрлі жемістер өсетін бақшадағы ағаштарға өрмелеу.
Бірақ бұл жаңа өнім, сіз Марионды басқара аласыз, кедергілерден секіре аласыз және ханшайымды құтқара аласыз, бұл кез келген соқыр ер адамның баффы, ладушка және классикадан бірнеше есе қызықты болды. Сондықтан префикстерге деген шынайы қызығушылығымды көрген ата-анам маған көбейту кестесін үйрену тапсырмасын берді. Сонда олар менің арманымды орындайды. Олар оны екінші сыныпта оқытады, мен бірінші сыныпты жаңа ғана бітірдім. Бірақ, айтты және жасады.

Жеке ойын консоліне қарағанда күшті мотивацияны ойлау мүмкін емес еді. Бір апта ішінде мен «жеті тоғыз», «алты үш» және т.б. сұрақтарға оңай жауап бердім. Сынақтан өтті және олар маған ұнаған сыйлықты сатып алды. Әрі қарай білетіндей, консольдер мен компьютерлік ойындар мені бағдарламалауға қызықтыруда маңызды рөл атқарды.

Жылдан-жылға осылай өтті. Ойын консольдерінің келесі буыны шықты. Алдымен Sega 16-бит, содан кейін Panasonic, содан кейін Sony PlayStation. Мен жақсы кезімде ойындар менің көңіл көтеруім болды. Мектепте немесе үйде қандай да бір мәселе туындағанда, олар менің джойстикімді алып кетті, мен, әрине, ойнай алмадым. Әрине, сенің мектептен қайтып келе жатқан, ал әкең жұмыстан теледидарды алып үлгермеген кезді түсіру де бір сәт болды. Сондықтан мен құмар ойынға құмар болдым немесе күні бойы ойын ойнадым деп айту мүмкін емес. Ондай мүмкіндік болған жоқ. Мен күні бойы аулада болдым, сонда мен бірдеңе таба аламын
қызықты. Мысалы, толығымен жабайы ойын - әуе атыстары. Қазір аулада мұндайды көрмейсің, бірақ ол кезде нағыз соғыс болатын. Пейнтбол - біз жасаған қанды қырғынмен салыстырғанда жай ғана балалардың ойыны. Әуе шарлары болды
тығыз пластик оқтармен толтырылған. Тағы бір жігітті оқтұмсық қашықтықта атып тастап, оның қолының немесе ішінің жартысы көгерген. Біз осылай өмір сүрдік.

Бағдарламалау мансабы. 1-тарау. Бірінші бағдарлама
Бала кезінен ойыншық мылтық

«Хакерлер» фильмін айтпай кетуге болмайды. Ол 1995 жастағы Анджелина Джоли ойнаған 20 жылы ғана шығарылды. Фильм маған қатты әсер етті деу – ештеңе айтпау. Өйткені, балалардың ойлауы барлығын өз бағасымен қабылдайды.
Бұл жігіттердің банкоматтарды тазалап, бағдаршамды өшіріп, бүкіл қалада электрмен ойнағаны - мен үшін бұл сиқыр болды. Сонда хакерлер сияқты құдіретті болу керемет болар еді деген ой келді.
Бірнеше жылдан кейін мен Hacker журналының әрбір санын сатып алдым және менде әлі интернет болмаса да, Пентагонды бұзуға тырыстым.

Бағдарламалау мансабы. 1-тарау. Бірінші бағдарлама
«Хакерлер» фильміндегі менің кейіпкерлерім

Мен үшін нағыз жаңалық 15 дюймдік шам мониторы және Intel Pentium II процессоры негізіндегі жүйелік блогы бар нақты компьютер болды. Әрине, оны тоқсаныншы жылдардың аяғына дейін көтере алатындай биікке көтерілген ағасы сатып алды.
мұндай ойыншықтар. Олар мен үшін ойынды бірінші рет қосқанда, бұл өте қызықты болған жоқ. Бірақ бір күні қиямет күні келіп, жұлдыздар тізіліп, үйде жоқ ағамызға қонаққа келдік. Мен сұрадым:
— Компьютерді қосуға болады ма?
«Иә, онымен қалағаныңды істе», - деп жауап берді аяулы апай.

Әрине, мен онымен қалағанымды жасадым. Windows 98 жұмыс үстелінде әртүрлі белгішелер болды. WinRar, Word, FAR, Klondike, ойындар. Барлық белгішелерді басқаннан кейін менің назарым FAR менеджеріне аударылды. Бұл түсініксіз көк экранға ұқсайды, бірақ іске қосуға болатын ұзын тізімі (файлдардың) бар. Әрқайсысын кезек-кезек басу арқылы мен не болып жатқанын түсіндім. Кейбіреулер жұмыс істеді, кейбіреулері істемеді. Біраз уақыттан кейін мен «.exe» -мен аяқталатын файлдар ең қызықты екенін түсіндім. Олар әртүрлі керемет суреттерді іске қосады, оларды басуға болады. Сондықтан мен ағамның компьютеріндегі барлық қол жетімді exe файлдарын іске қосқан шығармын, содан кейін олар мені өте қызықты ойыншықтан құлағымнан әрең тартып, үйге алып кетті.

Бағдарламалау мансабы. 1-тарау. Бірінші бағдарлама
Сол FAR менеджері

Содан кейін компьютерлік клубтар болды. Менің досым екеуміз Counter Strike және Quake ойындарын онлайн ойнау үшін жиі баратынбыз, біз оны үйде жасай алмадық. Клубта жарты сағат ойнау үшін ата-анамнан ақша сұрайтынмын. Шректегі мысық сияқты менің көзімді көріп, олар маған тағы бір тиімді келісім-шарт ұсынды. Мен оқу жылын С деген бағасыз бітіремін, олар маған компьютер сатып алады. Келісім-шартқа жылдың басында, қыркүйекте қол қойылды, ал қалаған ДК келісімдерге сәйкес келген жағдайда маусымның басында келуі керек еді.
Мен барынша тырыстым. Мен тіпті оқуымнан алшақ кетпеу үшін өзімнің сүйікті Sony Playstation-ды эмоционалды түрде саттым. Мен сондай оқушы болсам да, мен үшін 9-сыныптың маңызы зор болды. Мұрын қанды, маған жақсы баға алу керек болды.

Көктемде ДК сатып алуды күтумен, менің өмірімдегі ең маңызды оқиға болды. Мен алдын ала ойлануға тырысамын, сондықтан бір күні әкеме айттым:
- Әке, мен компьютерді қалай пайдалану керектігін білмеймін. Курстарға жазылайық

Айтылды орындалды. Жарнамалары бар газетті ашқан әкесі шағын әріппен жазылған, айдары бар блокты тапты «Компьютерлік курстар». Мен мұғалімдерге қоңырау шалдым, бірнеше күннен кейін мен бұл курстарда болдым. Курстар қаланың арғы жағында, ескі Хрущев ғимаратының үшінші қабатында өтті. Бір бөлмеде қатарынан үш ДК болды, оқуды қалайтындар шын мәнінде соларда жаттықты.

Алғашқы сабағым есімде. Windows 98 жүктеуге көп уақыт кетті, содан кейін мұғалім сөз алды:
- Сонымен. Сіз Windows жұмыс үстелі алдында. Онда бағдарлама белгішелері бар. Төменгі жағында «Бастау» түймесі орналасқан. Есіңізде болсын! Барлық жұмыс «Бастау» түймесінен басталады. Оны тінтуірдің сол жақ түймешігімен басыңыз.
Ол жалғастырды.
- Мұнда - орнатылған бағдарламаларды көресіз. Калькулятор, блокнот, Word, Excel. Сондай-ақ, «Өшіру» түймесін басу арқылы компьютерді өшіруге болады. Байқап көріңіз.
Ақырында ол сол кезде мен үшін қиынырақ бөлікке көшті.
«Жұмыс үстелінде», - деді мұғалім, сіз екі рет басу арқылы іске қосылатын бағдарламаларды көре аласыз.
- Қос!? – Жалпы бұл қалай?
- Бәлкім байқап көрерміз. Блокнотты тінтуірдің сол жақ түймешігімен екі рет басу арқылы іске қосыңыз.

Иә, сұмдық. Сол кездегі ең қиыны тінтуірді бір жерде ұстап тұрып, бір уақытта екі рет жылдам шертуді болды. Екінші рет басқанда, тінтуір және онымен бірге төте жол аздап дірілдейді. Соған қарамастан, мен сабақ барысында мұндай шешілмейтін тапсырманы жеңе білдім.
Одан кейін Word және Excel бағдарламаларында оқыту болды. Бір күні олар маған табиғат суреттері мен сәулет ескерткіштерін қарауға мүмкіндік берді. Бұл менің жадымдағы ең қызықты әрекет болды. Word бағдарламасында мәтінді пішімдеуді үйренуден әлдеқайда қызықты.

Менің компьютерімнің қасында басқа студенттер оқитын болды. Осы процесті қызу талқылап жатқанда бағдарлама жазып жүрген жігіттерді бір-екі рет кездестірдім. Бұл мені де қызықтырды. Хакерлер фильмі есіме түсіп, MS Office бағдарламасынан шаршағандықтан, мен курстарға ауысуымды өтіндім
бағдарламалау. Өмірдегі барлық маңызды оқиғалар сияқты, бұл өздігінен, қызығушылықтан туындады.

Мен анаммен бірге бірінші бағдарламалау сабағына келдім. Неге екені есімде жоқ. Ол жаңа курстар үшін келіссөздер жүргізіп, төлем жасауы керек еді. Сыртта көктем еді, қараңғы түсіп кеткен. Біз «Газель» микроавтобусымен бүкіл қаланы аралап, шет жаққа, атышулыға жеттік
Хрущев еденге көтеріліп, бізді ішке кіргізді.
Олар мені соңғы компьютерге отырғызып, толығымен көгілдір экраны мен сары әріптері бар бағдарламаны ашты.
- Бұл Турбо Паскаль. Мұғалім оның әрекетіне түсініктеме берді.
- Міне, мен оның қалай жұмыс істейтіні туралы құжаттаманы жаздым. Оқыңыз және қараңыз.
Менің алдымда сары түсті, мүлдем түсініксіз мәтін болды. Мен өзім үшін бірдеңе білуге ​​тырыстым, бірақ алмадым. Қытай грамматикасы және бұл.
Ақырында, біраз уақыттан кейін курс жетекшісі маған А4 форматында басылған қағазды берді. Онда біртүрлі нәрсе жазылған, мен оны бұрын бағдарламалау курсының жігіттерінің мониторларынан көргенмін.
– Мұнда жазылғанды ​​қайта жаз. Мұғалім бұйырды да кетіп қалды.
Мен жаза бастадым:
бағдарламаның жиыны;

Мен бір уақытта пернетақтадан ағылшын әріптерін іздеп жаздым. Word бағдарламасында кем дегенде орысша жаттығатынмын, бірақ бұл жерде басқа әріптерді үйренуім керек. Бағдарлама бір саусақпен терілген, бірақ өте мұқият.
бастау, аяқтау, var, бүтін - Бұл не? Ағылшын тілін бірінші сыныптан бастап оқып, көп сөздің мағынасын білсем де, бәрін біріктіре алмадым. Велосипедтегі үйретілген аю сияқты мен педальмен жүре бердім. Ақырында таныс нәрсе:
writeln('Бірінші санды енгізіңіз');
Содан кейін - writeln('Екінші санды енгізіңіз');
Содан кейін - writeln('Нәтиже = ',c);
Бағдарламалау мансабы. 1-тарау. Бірінші бағдарлама
Турбо Паскальдың ең бірінші бағдарламасы

Уф, мен жаздым. Мен қолдарымды пернетақтадан алып, одан әрі нұсқаулар алу үшін гурудың пайда болуын күттім. Ақыры ол келіп, экранды сканерлеп, F9 пернесін басу керектігін айтты.
«Қазір бағдарлама құрастырылды және қателер бар-жоғы тексерілді», - деді гуру
Қателер болған жоқ. Содан кейін ол Ctrl+F9 пернелерін басу керектігін айтты, мен де бірінші рет кезең-кезеңімен түсіндіруге тура келді. Сізге Ctrl пернесін басып тұрып, F9 пернесін басыңыз. Экран қара түсті және мен түсінген хабарлама пайда болды: «Бірінші нөмірді енгізіңіз».
Мұғалімнің бұйрығымен 7-ні енгіздім.Сосын екінші санды. Мен 3 енгізіп, Enter пернесін басыңыз.

Экранда найзағай жылдамдығымен «Нәтиже = 10» жолы пайда болады. Бұл эйфория болды, мен өмірімде мұндайды ешқашан бастан өткерген емеспін. Менің алдымда бүкіл Әлем ашылғандай болды және мен өзімді қандай да бір порталда таптым. Денемнен жылу өтті, бетімде күлімсіреу пайда болды, мен санадан тыс терең бір жерде түсіндім - бұл менікі деп. Өте интуитивті, эмоционалды деңгейде мен үстелдің астындағы ызылдаған қораптың орасан зор әлеуетін сезіне бастадым. Сіз өз қолыңызбен жасай алатын көптеген нәрселер бар және ол мұны жасайды!
Бұл сиқырдың бір түрі екенін. Көгілдір экрандағы әлгі сарғайған, түсініксіз мәтіннің қалай ыңғайлы, түсінікті бағдарламаға айналғаны менің түсінігімнен тыс еді. Бұл өзі де есептеледі! Мені таң қалдырғаны есептің өзі емес, жазылған иероглифтердің калькуляторға айналуы болды. Ол кезде бұл екі оқиғаның арасында алшақтық болды. Бірақ интуитивті түрде мен бұл жабдықтың барлығын дерлік жасай алатынын сезіндім.

Шағын автобуспен үйге барар жолдың бәрінде мен ғарышта жүргендей болдым. «Нәтиже» деген жазуы бар мына сурет менің басыма айналды, бұл қалай болды, бұл машина тағы не істей алады, мен қағазсыз бірдеңе жаза аламын ба? Мені қызықтырған, бір мезгілде мені толғандырып, шабыттандырған мың сұрақ. Мен 14 жаста едім. Сол күні мамандық мені таңдады.

Жалғасы бар…

Ақпарат көзі: www.habr.com

пікір қалдыру