Kerjaya pengaturcaraan. Bab 1. Program pertama

Kerjaya pengaturcaraan. Bab 1. Program pertamaPembaca Habr yang dihormati, saya menyampaikan kepada anda beberapa siri jawatan yang pada masa akan datang saya merancang untuk menggabungkan menjadi sebuah buku. Saya ingin menyelidiki masa lalu dan menceritakan kisah saya tentang bagaimana saya menjadi pembangun dan terus menjadi pembangun.

Mengenai prasyarat untuk memasuki IT, laluan percubaan dan kesilapan, pembelajaran kendiri dan kenaifan kebudak-budakan. Saya akan memulakan cerita saya dari awal kanak-kanak dan mengakhirinya dengan hari ini. Saya berharap bahawa buku ini akan berguna terutamanya kepada mereka yang baru belajar untuk kepakaran IT.
Dan mereka yang sudah bekerja dalam IT mungkin akan membuat persamaan dengan laluan mereka sendiri.

Dalam buku ini anda akan menemui rujukan kepada kesusasteraan yang telah saya baca, pengalaman berkomunikasi dengan orang yang saya temui semasa belajar, bekerja dan melancarkan permulaan.
Bermula daripada guru universiti kepada pelabur teroka besar dan pemilik syarikat berjuta-juta dolar.
Setakat hari ini, 3.5 bab buku sudah sedia, daripada kemungkinan 8-10. Jika bab pertama mendapat sambutan positif daripada penonton, saya akan menerbitkan keseluruhan buku.

Mengenai Saya

Saya bukan John Carmack, Nikolai Durov atau Richard Matthew Stallman. Saya tidak bekerja di syarikat seperti Yandex, VKontakte atau Mail.ru.
Walaupun saya mempunyai pengalaman bekerja di sebuah syarikat besar, yang pasti saya akan memberitahu anda. Tetapi saya fikir perkara itu bukan tentang nama besar, tetapi dalam sejarah jalan untuk menjadi pemaju, dan seterusnya, dalam kemenangan dan kekalahan yang berlaku sepanjang kerjaya saya selama 12 tahun dalam pembangunan komersial. Sudah tentu, sesetengah daripada anda mempunyai lebih banyak pengalaman dalam IT. Tetapi saya percaya bahawa drama dan kemenangan yang telah berlaku sepanjang kerjaya saya sekarang adalah wajar untuk digambarkan. Terdapat banyak acara, dan semuanya adalah pelbagai.

Siapalah saya hari ini sebagai pemaju
β€” Mengambil bahagian dalam lebih daripada 70 projek komersial, kebanyakannya dia tulis dari awal
β€” Dalam sedozen projek kami sendiri: sumber terbuka, permulaan
- 12 tahun dalam bidang IT. 17 tahun yang lalu - menulis program pertama
- Orang Paling Berharga Microsoft 2016
β€” Microsoft Certified Professional
- Sarjana Scrum Bertauliah
β€” Saya mempunyai arahan yang baik tentang C#/C++/Java/Python/JS
β€” Gaji β€” 6000-9000 $/bulan. bergantung kepada beban
β€” Tempat kerja utama saya hari ini ialah pertukaran bebas Upwork. Melaluinya saya bekerja untuk sebuah syarikat yang berurusan dengan NLP/AI/ML. Mempunyai asas 1 juta pengguna
β€” Mengeluarkan 3 aplikasi dalam AppStore dan GooglePlay
β€” Saya sedang bersedia untuk mengasaskan syarikat IT saya sendiri di sekitar projek yang sedang saya bangunkan

Selain pembangunan, saya menulis artikel untuk blog popular, mengajar teknologi baharu dan bercakap di persidangan. Saya berehat di kelab kecergasan dan bersama keluarga saya.

Itu mungkin semua tentang saya sejauh tema buku berkenaan. Seterusnya cerita saya.

cerita. Mulakan.

Saya mula belajar apa itu komputer semasa saya berumur 7 tahun. Saya baru memulakan darjah satu dan dalam kelas seni kami diberi kerja rumah untuk membuat komputer daripada kadbod, getah buih dan pen felt-tip. Sudah tentu ibu bapa saya membantu saya. Ibu belajar di universiti teknikal pada awal 80-an dan tahu secara langsung apa itu komputer. Semasa latihan, dia juga berjaya menumbuk kad tebuk dan memasukkannya ke dalam mesin gergasi Soviet yang menduduki bahagian terbesar dalam bilik latihan.

Kami menyiapkan kerja rumah kami dengan gred 5 kerana kami melakukan semuanya dengan tekun. Kami menjumpai sehelai kadbod A4 yang tebal. Bulatan telah dipotong daripada mainan lama daripada getah buih, dan antara muka pengguna dilukis dengan pen petua. Peranti kami hanya mempunyai beberapa butang, tetapi ibu saya dan saya memberikannya fungsi yang diperlukan, dan semasa pelajaran saya menunjukkan kepada guru bagaimana dengan menekan butang "Hidup", mentol lampu akan menyala di sudut "skrin, ” sambil serentak melukis bulatan merah dengan pen felt-tip.

Pertemuan seterusnya saya dengan teknologi komputer berlaku pada usia yang sama. Pada hujung minggu, saya sering melawat datuk dan nenek saya, yang pada gilirannya, menjual pelbagai sampah dan juga rela membelinya dengan harga sen. Jam tangan lama, samovar, dandang, lencana, pedang pahlawan abad ke-13 dan banyak lagi. Di antara semua kepelbagaian perkara ini, seseorang membawakannya komputer yang dijalankan dari TV dan perakam audio. Nasib baik nenek saya ada kedua-duanya. Buatan Soviet, sudah tentu. TV Electron dengan lapan butang untuk menukar saluran. Dan perakam pita dua kaset Vega, yang juga boleh merakam semula pita audio.
Kerjaya pengaturcaraan. Bab 1. Program pertama
Komputer Soviet "Poisk" dan peranti: TV "Electron", perakam pita "Vega" dan kaset audio dengan bahasa ASAS

Kami mula memikirkan bagaimana keseluruhan sistem ini berfungsi. Disertakan bersama komputer adalah beberapa kaset audio, manual arahan yang sangat usang dan satu lagi brosur dengan tajuk "Bahasa Pengaturcaraan ASAS". Walaupun zaman kanak-kanak saya, saya cuba mengambil bahagian secara aktif dalam proses menyambungkan kord ke perakam pita dan TV. Kemudian kami memasukkan salah satu kaset ke dalam petak perakam pita, menekan butang "Maju" (iaitu, mulakan main balik), dan pseudo-grafik teks dan sengkang yang tidak dapat difahami muncul pada skrin TV.

Unit kepala itu sendiri kelihatan seperti mesin taip, hanya agak kuning dan berat yang ketara. Dengan keterujaan seorang kanak-kanak, saya menekan semua kekunci, tidak melihat apa-apa hasil yang ketara, dan berlari dan pergi berjalan-jalan. Walaupun pada masa itu saya ada di hadapan saya manual tentang bahasa ASAS dengan contoh program yang, disebabkan usia saya, saya tidak dapat menulis semula.

Dari kenangan zaman kanak-kanak, saya pasti ingat semua gajet yang ibu bapa saya belikan untuk saya, setelah bersenam dengan saudara-mara yang lain. Rattle pertama ialah permainan terkenal "Wolf Catches Eggs". Saya menghabiskannya dengan cepat, melihat kartun yang ditunggu-tunggu di penghujung dan mahukan sesuatu yang lebih. Kemudian ada Tetris. Pada masa itu ia bernilai 1,000,000 kupon. Ya, ia berada di Ukraine pada awal 90-an, dan saya diberikan satu juta untuk kejayaan akademik saya. Sewajarnya berasa seperti seorang jutawan, saya memesan permainan yang lebih kompleks ini untuk ibu bapa saya, di mana mereka perlu menyusun dengan betul figura pelbagai bentuk yang jatuh dari atas. Pada hari pembelian, Tetris telah diambil secara tidak terkawal daripada saya oleh ibu bapa saya, yang sendiri tidak dapat menyingkirkannya selama dua hari.

Kerjaya pengaturcaraan. Bab 1. Program pertama
Terkenal "Serigala Tangkap Telur dan Tetris"

Kemudian terdapat konsol permainan. Kami sekeluarga tinggal di sebuah rumah kecil, di mana pakcik dan makcik juga tinggal di bilik sebelah. Bapa saudara saya adalah seorang juruterbang tentera, dia melalui tempat yang panas, jadi walaupun sederhana dia sangat tabah dan takut kepada sedikit, selepas sebenar
operasi ketenteraan. Sama seperti kebanyakan orang pada tahun 90-an, pakcik saya berniaga dan mempunyai pendapatan yang cukup lumayan. Jadi TV import, VCR, dan kemudian kotak set-top Subor (bersamaan dengan Dendy) muncul di dalam biliknya. Sesak nafas saya melihat dia bermain Super Mario, TopGun, Terminator dan permainan lain. Dan apabila dia menyerahkan kayu bedik itu ke tangan saya, kebahagiaan saya tiada batasan.

Kerjaya pengaturcaraan. Bab 1. Program pertama
Konsol lapan bit "Syubor" dan "Super Mario" legenda

Ya, seperti semua kanak-kanak biasa yang dibesarkan pada tahun sembilan puluhan, saya menghabiskan sepanjang hari di halaman rumah. Sama ada bermain bola perintis, atau badminton, atau memanjat pokok di taman, di mana banyak buah-buahan yang berbeza tumbuh.
Tetapi produk baharu ini, apabila anda boleh mengawal Mario, melompat melepasi halangan dan menyelamatkan puteri, adalah berkali-kali lebih menarik daripada peminat, ladushka dan klasik orang buta. Oleh itu, melihat minat sebenar saya terhadap awalan, ibu bapa saya memberi saya tugas untuk mempelajari jadual pendaraban. Kemudian mereka akan memenuhi impian saya. Mereka mengajarnya di gred kedua, dan saya baru sahaja menamatkan gred pertama. Tetapi, kata dan dilakukan.

Adalah mustahil untuk memikirkan motivasi yang lebih kuat daripada memiliki konsol permainan anda sendiri. Dan dalam masa seminggu saya dengan mudah menjawab soalan "tujuh sembilan", "enam tiga" dan seumpamanya. Ujian telah lulus dan mereka membelikan saya hadiah yang diidamkan. Seperti yang anda akan pelajari lebih lanjut, konsol dan permainan komputer memainkan peranan penting dalam menarik minat saya dalam pengaturcaraan.

Ini adalah bagaimana ia berlaku tahun demi tahun. Konsol permainan generasi seterusnya akan keluar. Mula-mula Sega 16-bit, kemudian Panasonic, kemudian Sony PlayStation. Permainan adalah hiburan saya semasa saya bagus. Apabila terdapat beberapa jenis masalah di sekolah atau di rumah, mereka mengambil kayu bedik saya dan, sudah tentu, saya tidak boleh bermain. Dan sudah tentu, menangkap momen apabila anda pulang dari sekolah, dan bapa anda belum pulang dari kerja untuk menduduki TV, juga merupakan satu nasib. Jadi mustahil untuk mengatakan bahawa saya seorang penagih judi atau menghabiskan sepanjang hari bermain permainan. Tidak ada peluang seperti itu. Saya lebih suka menghabiskan sepanjang hari di halaman, di mana saya juga boleh mencari sesuatu
menarik. Sebagai contoh, permainan yang benar-benar liar - menembak udara. Pada masa kini anda tidak akan melihat sesuatu seperti ini di halaman rumah, tetapi pada masa itu ia adalah perang sebenar. Paintball hanyalah permainan kanak-kanak berbanding dengan pembunuhan beramai-ramai yang kita lakukan. Terdapat belon udara
sarat dengan peluru plastik padat. Dan setelah menembak lelaki lain dari jarak dekat, dia meninggalkan lebam pada separuh lengan atau perutnya. Begitulah kami hidup.

Kerjaya pengaturcaraan. Bab 1. Program pertama
Pistol mainan dari zaman kanak-kanak

Tidak salah untuk menyebut filem "Penggodam". Ia dikeluarkan hanya pada tahun 1995, dibintangi oleh Angelina Jolie yang berusia 20 tahun. Untuk mengatakan bahawa filem itu memberi kesan yang kuat kepada saya adalah untuk mengatakan apa-apa. Lagipun, pemikiran kanak-kanak melihat segala-galanya pada nilai muka.
Dan bagaimana lelaki ini terkenal membersihkan ATM, mematikan lampu isyarat dan bermain dengan elektrik di seluruh bandar - bagi saya ia adalah sihir. Kemudian saya terfikir bahawa ia akan menjadi hebat untuk menjadi mahakuasa seperti Penggodam.
Beberapa tahun kemudian, saya membeli setiap keluaran majalah Hacker dan cuba menggodam Pentagon, walaupun saya belum mempunyai Internet.

Kerjaya pengaturcaraan. Bab 1. Program pertama
Wira saya dari filem "Penggodam"

Penemuan sebenar bagi saya ialah PC sebenar, dengan monitor lampu 15 inci dan unit sistem berdasarkan pemproses Intel Pentium II. Sudah tentu, ia dibeli oleh bapa saudaranya, yang pada akhir tahun sembilan puluhan telah meningkat cukup tinggi untuk mampu
mainan sebegitu. Kali pertama mereka menghidupkan permainan untuk saya, ia tidak terlalu mengujakan. Tetapi suatu hari, hari penghakiman tiba, bintang-bintang sejajar dan kami datang melawat bapa saudara kami, yang tiada di rumah. Saya bertanya:
β€” Bolehkah saya menghidupkan komputer?
"Ya, lakukan apa sahaja yang anda mahu dengannya," jawab ibu saudara yang penyayang.

Sudah tentu, saya melakukan apa yang saya mahu dengannya. Terdapat ikon yang berbeza pada desktop Windows 98. WinRar, Word, FAR, Klondike, permainan. Selepas mengklik pada semua ikon, perhatian saya tertumpu pada FAR Manager. Ia kelihatan seperti skrin biru yang tidak dapat difahami, tetapi dengan senarai panjang (fail) yang boleh dilancarkan. Dengan mengklik pada setiap satu secara bergilir, saya menangkap kesan daripada apa yang berlaku. Ada yang bekerja, ada yang tidak. Selepas beberapa ketika, saya menyedari bahawa fail yang berakhir dengan ".exe" adalah yang paling menarik. Mereka melancarkan gambar menarik yang berbeza yang anda juga boleh klik. Jadi saya mungkin melancarkan semua fail exe yang tersedia pada komputer bapa saudara saya, dan kemudian mereka hampir tidak menarik telinga saya dari mainan yang sangat menarik dan membawa saya pulang.

Kerjaya pengaturcaraan. Bab 1. Program pertama
Pengurus FAR yang sama

Kemudian terdapat kelab komputer. Rakan saya dan saya sering pergi ke sana untuk bermain Counter Strike dan Quake dalam talian, yang tidak dapat kami lakukan di rumah. Saya sering meminta ibu bapa saya untuk menukar supaya saya boleh bermain di kelab selama setengah jam. Melihat mata saya, seperti kucing dari Shrek, mereka menawarkan saya satu lagi kontrak yang menguntungkan. Saya menamatkan tahun persekolahan tanpa gred C, dan mereka membelikan saya komputer. Kontrak itu ditandatangani pada awal tahun, pada bulan September, dan PC yang diidam-idamkan sepatutnya tiba seawal Jun, tertakluk kepada pematuhan perjanjian.
Saya telah cuba yang terbaik. Saya juga menjual Sony Playstation kesayangan saya kerana emosi supaya tidak terganggu dengan pelajaran saya. Walaupun saya seorang pelajar yang sangat-sangat, gred 9 adalah penting bagi saya. Hidung berdarah, saya hanya perlu mendapat gred yang baik.

Sudah pada musim bunga, menjangkakan pembelian PC, mungkin peristiwa paling penting dalam hidup saya berlaku. Saya cuba berfikir ke hadapan, dan pada suatu hari yang baik saya memberitahu ayah saya:
- Ayah, saya tidak tahu menggunakan komputer. Jom daftar kursus

Tidak lama berkata daripada selesai. Setelah membuka surat khabar dengan iklan, si bapa mendapati satu blok yang ditulis dalam cetakan kecil dengan tajuk "Kursus komputer". Saya menelefon guru-guru dan beberapa hari kemudian saya sudah mengikuti kursus ini. Kursus-kursus itu berlangsung di seberang bandar, di sebuah bangunan panel lama Khrushchev, di tingkat tiga. Dalam satu bilik terdapat tiga PC berturut-turut, dan mereka yang ingin belajar sebenarnya telah dilatih mengenainya.

Saya masih ingat pelajaran pertama saya. Windows 98 mengambil masa yang lama untuk dimuatkan, kemudian guru mengambil lantai:
- Jadi. Sebelum anda adalah desktop Windows. Ia mengandungi ikon program. Di bahagian bawah ialah butang Mula. Ingat! Semua kerja bermula dengan butang Mula. Klik dengan butang kiri tetikus.
Dia menyambung.
- Di sini - anda melihat program yang dipasang. Kalkulator, Notepad, Word, Excel. Anda juga boleh mematikan komputer anda dengan mengklik pada butang "Matikan". Cuba ia.
Akhirnya dia berpindah ke bahagian yang lebih sukar bagi saya ketika itu.
"Pada desktop," kata guru itu, anda juga boleh melihat program yang boleh dilancarkan dengan mengklik dua kali.
- Berganda!? - Bagaimanakah ini secara umum?
- Mari kita cuba. Lancarkan Notepad dengan mengklik dua kali padanya dengan butang kiri tetikus.

Ya, schaass. Perkara yang paling sukar pada masa itu ialah memegang tetikus di satu tempat dan pada masa yang sama dengan cepat mengklik dua kali. Pada klik kedua, tetikus berkedut sedikit dan jalan pintas bersama-sama dengannya. Namun begitu, saya berjaya mengatasi tugas yang sukar diatasi semasa pelajaran.
Kemudian ada latihan dalam Word dan Excel. Suatu hari, mereka hanya membenarkan saya melihat gambar alam semula jadi dan monumen seni bina. Ia adalah aktiviti yang paling menarik dalam ingatan saya. Jauh lebih seronok daripada belajar cara memformat teks dalam Word.

Di sebelah PC saya, pelajar lain sedang belajar. Beberapa kali saya terserempak dengan lelaki yang sedang menulis program, sambil hangat membincangkan proses ini. Ini menarik minat saya juga. Teringat filem Hackers dan bosan dengan MS Office, saya meminta untuk dipindahkan ke kursus
pengaturcaraan. Seperti semua peristiwa penting dalam hidup, ini berlaku secara spontan, kerana minat.

Saya tiba di pelajaran pengaturcaraan pertama saya dengan ibu saya. Saya tidak ingat mengapa. Nampaknya dia terpaksa berunding untuk kursus baru dan membuat pembayaran. Musim bunga di luar, hari sudah gelap. Kami mengembara melalui seluruh bandar dengan bas mini-Gazelle ke pinggir, sampai ke tempat yang terkenal
panel Khrushchev, naik ke lantai dan membenarkan kami masuk.
Mereka duduk saya di hujung komputer dan membuka program dengan skrin biru sepenuhnya dan huruf kuning.
- Ini ialah Turbo Pascal. Guru itu mengulas tindakannya.
- Lihat, di sini saya menulis dokumentasi tentang cara ia berfungsi. Baca dan lihat.
Di hadapan saya adalah kanvas teks kuning yang tidak dapat difahami sama sekali. Saya cuba mencari sesuatu untuk diri saya sendiri, tetapi saya tidak dapat. Tatabahasa Cina dan itu sahaja.
Akhirnya, selepas beberapa lama, ketua kursus menghulurkan saya sehelai kertas bercetak A4. Beberapa perkara pelik tertulis di atasnya, yang sebelum ini saya lihat pada monitor lelaki dari kursus pengaturcaraan.
- Tulis semula apa yang tertulis di sini. Guru memberi arahan dan pergi.
Saya mula menulis:
program Summa;

Saya menulis, serentak mencari huruf Inggeris di papan kekunci. Dalam Word, sekurang-kurangnya saya berlatih dalam bahasa Rusia, tetapi di sini saya perlu belajar huruf lain. Program ini ditaip dengan satu jari, tetapi sangat berhati-hati.
mula, tamat, var, integer - Apakah ini? Walaupun saya belajar bahasa Inggeris dari darjah satu dan tahu makna banyak perkataan, saya tidak dapat menghubungkan semuanya bersama-sama. Seperti beruang terlatih menaiki basikal, saya terus mengayuh. Akhirnya sesuatu yang biasa:
writeln('Masukkan nombor pertama');
Kemudian - writeln('Masukkan nombor kedua');
Kemudian - writeln('Hasil = ',c);
Kerjaya pengaturcaraan. Bab 1. Program pertama
Program Turbo Pascal yang pertama itu

Fuh, saya menulisnya. Saya mengambil tangan saya dari papan kekunci dan menunggu guru muncul untuk arahan selanjutnya. Akhirnya dia datang, mengimbas skrin dan menyuruh saya menekan kekunci F9.
"Sekarang program ini disusun dan diperiksa untuk ralat," kata guru itu
Tidak ada kesilapan. Kemudian dia berkata untuk menekan Ctrl+F9, yang saya juga perlu menerangkan langkah demi langkah untuk kali pertama. Apa yang anda perlu lakukan ialah tahan Ctrl, kemudian tekan F9. Skrin menjadi hitam dan mesej yang saya faham akhirnya muncul padanya: "Masukkan nombor pertama."
Atas arahan cikgu, saya masukkan 7. Kemudian nombor kedua. Saya masukkan 3 dan tekan Enter.

Baris 'Result = 10' muncul pada skrin pada kelajuan kilat. Ia adalah euforia dan saya tidak pernah mengalami perkara seperti itu sebelum ini dalam hidup saya. Ia seolah-olah seluruh Alam Semesta terbuka di hadapan saya dan saya mendapati diri saya berada dalam beberapa jenis portal. Kehangatan melewati tubuh saya, senyuman muncul di wajah saya, dan di suatu tempat yang sangat dalam di bawah sedar saya menyedari - bahawa ini adalah milik saya. Secara intuitif, pada tahap emosi, saya mula merasakan potensi besar dalam kotak berdengung di bawah meja ini. Terdapat begitu banyak perkara yang boleh anda lakukan dengan tangan anda sendiri, dan dia akan melakukannya!
Bahawa ini adalah sejenis sihir. Ia benar-benar di luar pemahaman saya bagaimana teks kuning yang tidak dapat difahami pada skrin biru itu bertukar menjadi program yang mudah dan boleh difahami. Yang juga dikira sendiri! Apa yang mengejutkan saya bukanlah pengiraan itu sendiri, tetapi hakikat bahawa hieroglif bertulis bertukar menjadi kalkulator. Terdapat jurang antara dua peristiwa ini pada masa itu. Tetapi secara intuitif saya merasakan bahawa perkakasan ini boleh melakukan hampir semua perkara.

Hampir sepanjang perjalanan pulang dengan bas mini, saya rasa seperti berada di angkasa lepas. Gambar ini dengan tulisan "Hasil" berputar di kepala saya, bagaimana ia berlaku, apa lagi yang boleh dilakukan oleh mesin ini, bolehkah saya menulis sesuatu sendiri tanpa sehelai kertas. Seribu persoalan yang menarik minat saya, teruja dan memberi inspirasi pada masa yang sama. Saya berumur 14 tahun. Hari itu profesion memilih saya.

Perlu diteruskan ...

Sumber: www.habr.com

Tambah komen