Dan lagi, hari ke-256 tahun ini

Hai Dua ratus lima puluh enam hari dalam setahun berjalan lancar, dan orang-orang dari Avito dan saya ingin mengucapkan selamat kepada semua orang yang membaca blog ini pada hari programmer dan terjun sedikit ke dalam nostalgia.


Di bawah potongan, kami mengingat untuk menghormati hari libur baris kode pertama kami. Dan juga - kode dan program yang paling kita ingat. Dan katakan mengapa. Dan tentu saja, kami menantikan cerita Anda di komentar!



Bahasa pemrograman seperti apa yang ada dalam gambar?

Kami bernostalgia hari ini, jadi kami memilih COBOL untuk selamat. Itu adalah bahasa pemrograman standar pertama (standar pada tahun 1960). Ini berarti bahwa program yang ditulis pada satu komputer dapat dikompilasi dan dieksekusi di komputer lain tanpa modifikasi apa pun. Pada masa itu, ini adalah terobosan besar, bahasa lain membutuhkan penyempurnaan program ketika mencoba menjalankannya di komputer lain, seringkali itu sulit dan lama.


Selamat Hari Programmer di COBOL terlihat persis seperti itu. (Terima kasih atas kunjungan dan kode pik4ez ).


Tentang apa posting ini?


Gagasan tentang pos itu lahir selama pesta perusahaan musim panas, ketika kolega saya dan saya tiba-tiba mulai berbicara tentang langkah pertama dalam pemrograman. Dan iseregin dan saya memutuskan untuk mengumpulkan ingatan mereka dan berbagi dengan publik. Jadi ...


Baris kode pertama


Tampaknya menarik di baris kode pertama? Beberapa juga berpikir begitu pada awalnya.


Dev 1: Saya pikir semua orang memiliki baris kode pertama seperti:


!#/bin/bash echo "Hello World" 

Dev 2: Di daerah kami lebih cepat: MsgBox "Hello World" . Karena Anda masih harus mencoba menemukan disk dengan Linux.


Diskusi, bisa dikatakan, sudah dimulai dari komentar pertama dalam obrolan. Dan kemudian kami mendapat jawaban yang menarik dan terperinci yang ingin kami bagikan. Itulah yang dikatakan kolega dari Avito kepada kami.


gambar

Andrey Shodan Aksyonov, kepala infrastruktur pencarian: “Baris pertama kode yang pada dasarnya saya masukkan ke dalam komputer jelas bukan milik saya. Ini adalah beberapa program dasar aneh yang saya cetak ulang dari majalah (karena masa kecil yang keras, mainan delapan-bit). Tapi saya ingat persis bagaimana orang lain pertama kali menggunakan program saya.

Ini adalah era akhir DOS. Saya menulis program assembler yang menangkap layar dalam mode grafis. Selain itu, berbeda dengan semua yang ada di "pasar", ia mengatasi semua mode video secara umum, termasuk yang benar-benar gila. Misalnya, jika mode operasi VGA standar adalah 320x200 dan 256 warna, maka orang yang menggunakan semacam peretasan keji dan memprogram ulang pengontrol, yang mendorong sinar melalui tabung MDG, mencapai 360x240. Saya berhasil menulis sebuah program yang mengatasi semua ini, menangkap layar (memori video), menyimpannya ke file, dan kemudian dari dump ini Anda dapat dengan cekatan .bmp menyimpannya sebagai utilitas offline terpisah. Saya membawa program ini sampai selesai, mempostingnya di Internet dan berhasil melupakannya.

Hampir 12-15 tahun telah berlalu sejak saat itu. Saya menerima email. Lembar seperti itu, seolah-olah Leo Tolstoy menulis, di atas tiga lembar - dan ini hanya kalimat pertama. “Halo, saya sopir truk dari Kanada. Pengguna aktif program Anda. Saya tidak punya uang, tetapi saya punya lima anak. Dan saya menemukan komputer ke-486 di tempat sampah, ditambah lagi saya mencuri beberapa game lama di Internet, dan sekarang anak-anak saya dengan liar memainkan berbagai permainan di komputer ini. Pada saat yang sama, permainan favorit mereka tidak dapat menyelamatkan apa pun: tidak mungkin untuk menyelamatkan dewan kehormatan umum, bahkan tidak ada skor tertinggi, dan bahkan tangkapan layar tidak dapat diambil, karena beberapa jenis mode kecanduan narkoba digunakan. Dan utilitas Anda melakukan pekerjaan ini dengan sangat baik, dan anak-anak terus menggunakannya. Ya, saya sendiri, itu terjadi, di antara penerbangan ... Jadi, karena kami adalah pengguna aktif program kuno Anda, saya memutuskan untuk mendorong Anda. Ini kode transfer Western Union senilai $ 20. " Saya praktis menangis dan memutuskan bahwa pada hari yang paling gelap, ketika akhirnya tiba dan saya akan kelaparan, di sini saya akan mengambil MTCN ini (kode transfer), menguangkannya, dan membuka pintu. Sayangnya, bertahun-tahun telah berlalu sejak itu, jadi tidak diketahui di mana MTCN sekarang. Mungkin ada di arsip surat lama, jika saya belum kehilangan mereka selama ini. Saya mengenali pada hari paling gelap. "

gambar

Artyom Razinov, pengembang iOS terkemuka: “Di kelas lima, saya menulis kode sendiri di program anak-anak Logo Mira, sementara semua orang yang lebih sukses lainnya bermain game. Saya membuat program dan berhasil. Hari itu saya memutuskan untuk menjadi seorang programmer. "



gambar

Daniil Popov, pengembang android senior: s := width * height; “Itu adalah garis pada Pascal yang menghitung luas persegi panjang. Kasus ini dalam kursus pemrograman untuk siswa di kelas delapan. Yang paling mengesankan bagi saya adalah saya bisa memberikan perintah komputer, dan secara implisit mengeksekusinya. Semacam master mesin. Sejak itu, saya benar-benar menyukainya ketika urutan tindakan (algoritma) bawaan mengarah ke hasilnya. ”

gambar

Dmitry Belov, pengembang backend senior: “Ini adalah urutan pertama freelance asing. Murid-murid yang lapar, saya ingin mendapatkan setidaknya sedikit uang, dan tidak begitu penting apa yang harus ditulis: hampir tidak ada pengetahuan, untuk tetap belajar dari awal.

Saya mendapat pesanan untuk membuat kartu flash animasi. Saya harus belajar sedikit Action Script. Stackoverflow belum ada di sana, saya harus membaca dokumentasi.

Pelanggan puas, saya berhasil menyelesaikan proyek segera. Dia mendapatkan lima belas dolar pertamanya dengan freelance. "

gambar

Ilya Gribov, pengembang front-end: “Saya tertarik pada pemrograman dari kelas 8 sekolah (Basic, Pascal), tetapi kemudian ada istirahat panjang. Dia kembali ke bisnis ini hanya setelah universitas, dan harus banyak mengingat!
Musim dingin, pukul 6 pagi, kopi kental, sebelum mulai bekerja (kemudian saya bekerja di bidang TI)

 static void main(String[] args) { System.out.println("!"); } 


Emosi: APA ITU String [] args ??? ”.

gambar

Vladimir Akimov, pengembang senior front-end: “Baris kode pertama saya ditulis karena saya benar-benar ingin masuk ke hangout rap. Saya berumur sekitar 17 tahun, saya tidak tahu bagaimana cara rap dan menulis musik, dan memutuskan untuk masuk tim keren melalui desain.

Kemudian tidak ada yang terlibat dalam mempromosikan seniman independen di Internet. Jadi, teman-teman akan menggambar sampul, melepaskan cakram, dan membagikannya kepada teman-teman. Dan ada situs MySpace di mana Anda bisa dengan keren mendesain halaman musisi. Saya menyaksikan bagaimana orang-orang di luar negeri melakukannya. Pada titik tertentu, saya menemukan seorang pria yang tinggal di Jerman dan membuat halaman untuk Seryoga. Orang yang menyanyikan "Black Boomer, Remember"? Saya memutuskan untuk memata-matai cara melakukan ini. MySpace diletakkan di atas meja, saya mengambil seluruh halaman ini, memahami idenya dan meminjamnya.

Halaman pertama saya mirip dengan halamannya. Saya melakukan satu demi satu, mencoba mempromosikannya. Jadi saya berteman dengan satu tim. Ada seorang desainer yang mengundang saya untuk menulis kode, dan mengambil gambarnya sendiri. Kami mulai membuat halaman MySpace untuk semua artis rap Rusia populer kami. Dan kemudian saya diundang untuk bekerja di kantor MySpace St. Petersburg untuk bekerja.
Lalu saya menulis banyak baris kode di sana - dari jenis yang sama, tabular: itu CSS dan tata letak, tidak ada yang rumit. Sekarang setiap junior akan mencari tahu dan membuatnya lebih dingin. Tapi kemudian itu adalah "wow", karena kami bekerja dengan IE5 dan browser lain, yang karenanya kami harus melakukan banyak keajaiban.

Jika bukan karena cerita ini, saya tidak akan mengambil pemrograman, tidak akan datang ke desain, tidak akan mengerti apa itu.

gambar

Konstantin Seleznev, pengembang backend: “Teman sekelas saya“ mengaitkan ”saya dalam pemrograman kembali di kelas tujuh (benar-benar, seperti narkoba):
- Pss, man, apakah Anda ingin pemrograman? - sesuatu seperti ini katanya, memberi saya sebuah disk dengan Borland Development Studio dan banyak koleksi artikel tentang Delphi.

Belakangan, di salah satu artikel ini, saya menemukan yang berikut: “Ayo kenali pengguna. Misalnya, kami tiba-tiba menampilkan pesan "Sudah waktunya tidur" dan ... kurangi monitor! Engkol tidak akan dapat menyalakannya ... ". Saya mencoba kode yang diberikan dalam artikel dan semuanya berhasil bagi saya! Saya merasa seperti seorang hacker sejati!

Namun, setelah itu saya harus me-restart komputer, karena saya benar-benar gagal menghidupkan kembali monitor. "

 procedure TForm1.Button1Click(Sender: TObject); begin MessageDlg(' .   .     !', mtInformation, [mbOk], 0); SendMessage(Application.Handle, WM_SYSCOMMAND, SC_MONITORPOWER, 0); end; 



Dan di sini ada cerita dari podlodka podcast terkemuka.


gambar

Stas Tsyganov, Kepala Pengembangan Seluler, Tutu.ru: “Ibu saya bekerja sebagai guru ilmu komputer, dan saya mendapat akses ke komputer cukup awal. Dan pengalaman pemrograman pertama saya adalah Cucaracha untuk MS-DOS. Saya belajar dengan penuh minat bahwa dia masih hidup dan bahkan dipindahkan ke Windows.

    5   


Dan kode pertama yang saya miliki adalah sesuatu seperti ini. "

gambar

Egor Tolstoy, Manajer Pengembangan Platform Aplikasi, Avito: “Sekitar sepuluh tahun saya datang untuk mengunjungi kakak saya, yang kemudian memiliki komputer pertamanya, pada MS-DOS. Selain torehan yang merajalela di GTA pertama (dalam pelokalan Rusia itu disebut nama cantik "Avtovor") dan Duke Nukem kami temukan pemrograman untuk diri kita sendiri. Matematika saat itu tidak terlalu menarik bagi saya, tetapi percabangan dan menggambar yang logis benar! Jadi program pertama adalah generasi komposisi suprematis dari lingkaran dan garis: CIRCLE(10, 10), 50 ".

gambar

Katya Petrova, Kepala Pengembangan, Frontend Architecture, Avito: "Memaksa kura-kura di dunia logo untuk menggambar lingkaran dan menulis" Halo dunia "dalam Pascal di pelajaran ilmu komputer, tentu saja, menghibur dan informatif. Tapi itu bahkan lebih menyenangkan di kelas 8 untuk mendorong bos di WoW Classic (saat itu masih belum mainstream). Jadi, inilah baris kode pertama saya yang SANGAT BERMANFAAT. "

 #showtooltip Regrowth /cast [@mouseover,exists,help][@player] Regrowth(Rank 5) 



gambar

Zhenya Catella, kepala pengembangan ponsel, Yandex.Transport: “Di suatu tempat di kelas 8 atau 9 saya menjadi tertarik dalam pemrograman, jadi orang tua saya membelikan saya buku tentang Turbo Pascal. Saya masih ingat bahwa dia merah. Dan pada awalnya ada hal-hal sederhana, seperti siklus dan kondisi. Dan kemudian, tampaknya, bab pertama berakhir dengan cerita tentang apa itu rekursi. Dan itu perlu untuk memecahkan teka-teki tentang menara Hanoi. Karena itu, kecuali untuk Hello Worlds, ini dapat dianggap sebagai program pertama saya. "

Baris kode yang paling berkesan


Tentu saja, diskusi tidak terbatas pada baris kode pertama. Dan kami juga berbicara tentang kode, yang karena berbagai alasan kami sangat ingat.


gambar

Andrey Shodan Aksyonov, kepala infrastruktur pencarian: “Suatu ketika, ketika saya bekerja di game dev, kami dengan bodohnya menulis mesin kami sendiri dengan tangan kami. Secara umum, ini tidak dapat dilakukan, itu tidak mungkin, tetapi tidak ada yang memberi tahu kami. Oleh karena itu, kami menulis dari awal mesin kami sendiri, dan semua alat untuk mengembangkan game, dan dibangun di atas game ini, dan berhasil melakukan semua ini dalam tiga tahun. Ya, dan khususnya selama igrostroy ini, saya membuat dan membuat tipuan pintar ini dengan telinga saya. Pada generasi pertama dari akselerator yang dapat diprogram secara grafis, di mana shader hanya terpasang, ada periode singkat ketika GPU dapat diprogram dalam bahasa assembly dan memberikan instruksi untuk slot dengan tangan Anda. Kemudian fitur ini dinonaktifkan, hanya HLSL yang tersisa, tetapi pada awalnya itu mungkin. Di sini kami berhasil menggunakan empat tekstur sekaligus dalam satu pass (ini sepele), dan pada saat yang sama menghitung pencahayaan, peta benjolan, bayangan untuk diterapkan, dan sesuatu yang lain (tetapi tidak ada yang tahu bagaimana). Perusahaan kami kemudian memiliki, jika bukan 3 know-how, maka 2 know-how, hal ini adalah hal utama. Kemudian, setelah satu atau dua tahun, ketika teknologi bergerak maju dan agak kehilangan relevansinya, dengan izin pihak berwenang, saya menerbitkan sebuah artikel di buku ShaderX4 tentang hal ini. Itu adalah solusi rekayasa jujur ​​yang sangat indah, yang sampai sekarang saya belum merasa malu. Tapi ini bukan satu baris kode, tapi sepuluh keseluruhan! "

  Listing 5. #define POW c3 // c3.b=B, c3.a=A, for m=2. see [Beaudoin02] dp3_sat r1.rgb, t1_bx2, t2_bx2 // (1) (NH) dp3_sat r0.rgb, t1_bx2, v1_bx2 // (2) (NL) +mad_x4_sat r0.a, r1.b, POW.a, POW.b // (2) (NH)*A+B mul_x4_sat r1.rgb, r0.a, r0.a // (3) (NH)^n +mad r1.a, t0.b, SPECK.b, SPECK.a // (3) specshadow mul_sat r0.rgb, r0, r1_bx2.a // (4) (NL)*diffshadow +mul_sat r0.a, r1.b, r1.a // (4) ((NH)^n)*specshadow mad_sat r0.rgb, r0, DIFF, v0 // (5) (NL)*shadow*diffcol+ambi +mul_sat r0.a, r0.a, t1.a // (5) ((NH)^n)*shadow*specmap mul_sat r0.rgb, r0, t3 // (6) diffmap*difflighting mad_sat r0.rgb, r0.a, SPEC, r0 // (7) result +mov r0.a, t3.a // (7) diffuse map alpha 



gambar

Daniil Popov, pengembang senior android:

 i = 0x5f3759df - ( i >> 1 ); // what the fuck? 


Ini adalah potongan dari fungsi yang menghitung root invers cepat x. Perhitungan semacam itu diperlukan di mesin gim untuk menghitung pencahayaan panggung. Kode yang tidak dapat dibaca ini menjadi dikenal luas setelah rilis Quake III: Arena.

Ketika saya melihat kode ini, untuk pertama kalinya saya dengan jelas menyadari kesenjangan besar antara kode yang dapat dibaca dan yang optimal.

gambar

Ilya Gribov, pengembang front-end: “Saya ingat kode ini. Saya berpikir: "Betapa sederhana dan ringkasnya!)" ".
 >>> comp_list = [x ** 2 for x in range(7) if x % 2 == 0] >>> print(comp_list) // [4, 16, 36] 



gambar

Mikhail Yudin, pengembang android senior: “Saya menulis pohon merah-hitam sebagai siswa tahun kedua di acm.timus.ru menggunakan buku Corman, dan ada yang tidak beres, dan saya memeriksanya untuk kesetaraan nol. Situasi ini tidak mungkin. Mereka menulis kepada saya bahwa saya Kommersant (seperti benar, keras). "

 if (this == null) 



gambar

Nikolai Ryabov, pengembang front-end senior: “Entah bagaimana, pada pekerjaan pertama saya terkait dengan front-end, di mana saya masih seorang junior yang sangat, sangat hijau, pengembang pemula yang sama melempar baris ini untuk dipikirkan oleh saya, dengan kata-kata: "Teman, aku sudah mencoba memahami apa itu dan bagaimana cara kerjanya - mari kita menderita bersama!" Akibatnya, kepala saya hanya sibuk dengan ini dan setelah beberapa jam saya masih menyadari apa itu dan apa yang akan kita dapatkan di foo sebagai hasilnya. Tapi saya tidak bisa menjelaskannya.

 const foo = Function.prototype.call.bind(Array.prototype.slice) 


Sudah lama kemudian, saya mulai menggunakan cuplikan ini untuk wawancara, dan itu menunjukkan hasil yang sangat baik: begitu saya punya masalah menemukan pengembang yang baik untuk mentransfer kepadanya semua kompetensi saya dalam pekerjaan saya sebelumnya, dan di salah satu konferensi saya bertemu dengan satu orang terkenal dan di antara kafe mengundangnya untuk menceritakan bagaimana kode ini bekerja. Dia berhasil, tidak seperti banyak kandidat yang saya wawancarai sebelumnya. Akibatnya, ia sepenuhnya memenuhi harapan ketika saya mengatur pekerjaannya saat itu. Dan sampai hari ini saya suka melempar puzzle ini dan melihat ekspresi wajah, meskipun kode ini tidak lagi relevan sehubungan dengan pelepasan standar ECMAScript baru. ”

Dan bukan hanya kodenya


Saya ingin mengakhiri posting ini dengan mengutip rekan Andrei Shodan Aksyonov:


“Secara umum, sebuah cerita biasanya tidak terbatas pada satu baris kode. Dan bahkan potongan kecil pada sepuluh baris sangat jarang. Dan cerita yang paling mempesona, mereka mungkin tidak pernah tentang kode, tetapi terutama tentang orang-orang, tentang bagaimana kode ini mempengaruhi mereka. Dan jenis baris kode apa yang ada di sana, atau kesalahan khusus dua karakter yang konyol - tidak masalah.

Beberapa kisah yang diceritakan di sini, iseregin direkam dalam video dan diposting di saluran YouTube kami. Mampir jika Anda suka video.


Sekali lagi, selamat untuk semua programmer (dan pada saat yang sama mereka yang bekerja sama dengan mereka). Habiskan hari ini dengan menyenangkan dan menarik.
Dan bagikan dalam komentar, garis dan cerita yang paling Anda ingat!

Source: https://habr.com/ru/post/id467339/


All Articles