
Saya sering mengkritik teknologi yang kelihatannya salah bagi saya, dan sebagai imbalannya saya tidak hanya mendapatkan argumen, tetapi juga kebencian langsung, kebencian, dan bahkan di wajah.
Suntikan yang ditujukan untuk teknologi dikembangkan oleh pengembang dengan biaya sendiri. Alat kultus adalah hal yang sangat aneh yang tidak dapat dijelaskan secara logis. Ada yang mengatakan bahwa setiap orang memiliki aliran sesat, karena pemikiran terjalin erat dengan yap. Yang lain mengatakan itu adalah penyakit yunior - Anda menulis sesuatu untuk pertama kalinya, itu terjadi, karena senang Anda mengira yap Anda adalah keajaiban Tuhan.
Apa pun itu, saya tidak pernah mengerti sampah ini.
Pendukung pemujaan bagi saya tampaknya tolol. Dan saya selalu berusaha memahami bagaimana dumbass menjadi dumbass, dan mengapa saya tidak menjadi dumbass. Mulai berpikir dan bam! - Saya menyadari bahwa saya melakukannya. Saya seorang pemuja bodoh yang memuji F #. Dan tentu saja ada cerita di balik ini.
Saya memulai karir saya sebagai junior C # dev. Mentah lalu Xamarin, pengembangan untuk android. Langkah pertama dalam pekerjaan pertama dipenuhi dengan rasa sakit. Saya sendiri yang membuat aplikasi menggunakan screenshot dan gif dari versi iOS. Semuanya berhasil sekali, ada banyak masalah, dan satu-satunya umpan balik yang saya terima adalah "mengapa tidak suka dalam gambar?". Itu adalah mimpi buruk, dan aku cepat-cepat pergi.
Dia belajar di rumah selama enam bulan, lalu mendapat pekerjaan di tenaga luar yang besar. Semuanya ada di sana seperti pada orang - tim, mentor, ujian, pola, codreviews, linter ketat, persyaratan tertinggi untuk kualitas, keterbacaan dan kinerja kode. Singkatnya - pendekatan orang dewasa. Saya pasti memutuskan untuk diri saya sendiri - inilah yang perlu dilakukan. Tapi ternyata mimpi buruk ini bahkan lebih buruk.
Selama lebih dari setahun, kami telah membuat seluruh tim modul untuk alat yang bekerja dengan alat yang dirancang untuk mengembangkan alat. Mungkin yang paling kita butuhkan untuk membuat modul. Setiap hari kami dipaksa untuk memanggil orang India atau Amerika, dan tidak jelas apa yang harus dilaporkan.
Pada titik tertentu, saya perhatikan bahwa saya semakin jarang melakukannya, tetapi tidak ada yang berubah. Dalam bahasa Inggris yang terpatah-patah, saya terus terang berbohong: “Aku melewati vik ay serch untuk bug. Steele tahu saksofon. Benua Ville »
"Ok Phil, kedengarannya bagus," kata di luar negeri.
Suatu kali, dalam rasa malu dan putus asa karena ketidakberdayaan saya, saya pergi ke atasan saya dan meminta saya untuk dipecat, tetapi karena suatu alasan mereka menaikkan gaji saya.
Tentang ini saya sudah katakan . Saya tidak lucu atau gembira - itu adalah sur bunuh diri, seolah-olah dunia tidak berharga telah mengalahkan dunia logika.
Kontradiksi yang aneh, tetapi pada saat yang sama karena bosan dan super-ambisius, saya memutuskan untuk memainkan pengembang yang keren di rumah. Banyak ide selalu berkerumun di kepala saya bagaimana membuat dunia dan dompet Anda lebih baik dengan bantuan proyek perangkat lunak. Saya melakukan segalanya dengan benar. TK, arsitektur, persyaratan sistem, proyek dalam VSTS. Semuanya dengan cara dewasa, seperti perusahaan.
Nikher tidak bekerja.
Memutuskan - idenya adalah omong kosong. Kode sampah, saya ambil ide baru, berhenti, semuanya berulang beberapa kali. Saya memberi tahu rekan-rekan saya, mereka bingung. Bagaimana bisa begitu? Lagipula, aku melakukan semuanya persis sama dengan mereka yang telah merebut bagian mereka.
Seseorang dengan harga diri saya biasanya lebih mudah untuk hidup daripada yang lain, tetapi itu harus dibayar mahal. Anda perlu penipuan diri berkualitas tinggi untuk menghadapi kegagalan Anda. Dan saya berkata pada diri saya sendiri: setiap pengembang dapat melakukan apa saja. Seluruh pertanyaannya adalah bagaimana ini akan dilakukan. Dan persyaratan saya untuk "bagaimana" ini terlalu tinggi. Mereka tidak cocok untuk "startup" rumahan dan mereka tidak layak untuk tugas bisnis yang tidak berguna. Pikiran berikut: "Saya tidak siap untuk meninggalkan standar kualitas saya." Bahkan jika Anda perlu membuat aplikasi yang kentut tapu ke layar, saya akan membuatnya berkualitas tinggi dan bijaksana seperti yang bisa saya lakukan.
Akibatnya, saya mengatur pemujaan bisnis kargo lokal di rumah. Dia membawa ritual, proses, perintah, tetapi tidak puas. Saya baru saja memainkan pengembang bisnis tanpa bisnis, seperti orang Papua yang membutakan landasan pacu dan menara dari jerami, dan sekarang dia mengharapkan burung besi duduk di sana, seperti orang asing di pulau tetangga.
Saya menulis banyak sekali kode formal yang tidak membawa saya lebih dekat dengan hasilnya, tetapi sebaliknya, saya berkeliaran di sekitar dan di sekitar. Karir saya, sialnya, kisah kegagalan dan kekecewaan. Aku meludahi segalanya, mengakhiri diriku sendiri dan hanya menonton acara TV di tempat kerja, minum 16 cangkir kopi dan merokok selama setengah hari.
Setelah datang ke bawah, benar-benar secara tidak sengaja saya membaca sebuah artikel di Habré tentang F #, saya mencoba, dan seperti: "Hm! Tidak buruk. " Majikan saya dengan senang hati membayar saya satu bulan pelatihan (dia, bagaimanapun, tidak tahu tentang ini).
F # tidak sulit untuk dipelajari, ia memiliki runtime yang sama dengan C #, dan saya menerapkan pendekatan fungsional untuk pemrograman setiap hari dalam TypeScript. Jadi saya menyadari bahwa saya dapat mentransfer salah satu proyek saya ke F #. Biarkan keahlian teknis saya di luar tanda kurung, karena keterampilan adalah hal yang relatif. Di tim tempat saya bekerja sekarang, saya keren, dan di tim, katakanlah, pengembang F #, saya bisa mengklaim, paling banyak, posisi asisten pembersih.
Tetapi pada level saya, saya sudah bisa menyelesaikan masalah. Meskipun jauh di lubuk hati saya tahu - saya tidak akan memutuskan apa pun. Putar saja otakku dan terus buang ilmu ke tempat sampah. Saya benar-benar kehilangan kepercayaan pada pembangunan.
Dan suatu hari aku memutuskan bahwa aku akan melepaskan semua ini. Itu musim dingin, dingin dan gelap. Saya meninggalkan kantor di jalan, naik gerobak dorong - itu tidak akan dimulai. Akhirnya mesinnya berderak. Saya tidak tahu apa yang terjadi sebelumnya - apakah saya merasakan bau terbakar, atau saya melihat asap. Kemudian nyala api meletus dari bawah kap. Sedetik lagi, dan aku, seperti orang gila, berlari-lari di tempat parkir dan berteriak kepada semua orang untuk mengusir mobilku dari mobilku.
Setelah lima menit kepanikan dan kekacauan, hanya ada sepotong sampah tua yang terbakar dan vidyushka dari semua jenis orang bodoh yang kemudian mendapatkan ribuan pandangan di "pendengaran" setempat. Minus 30, aku di jaket musim gugur dari seorang pria yang akan pulang dengan mobil yang hangat. Diisi sampai akhir, benar-benar rusak secara moral. Tidak ada uang taksi, angkutan umum untuk ponsel. Saya pulang dengan berjalan kaki, sepuluh kilometer. Di rumah, Anda perlu membantu istri dan anak Anda, makan, menidurkannya, melakukan ribuan hal. Tapi malam tiba, hal-hal yang mengganggu berakhir, alasan juga, dan aku dibiarkan sendirian dengan kekecewaan dan insomnia - aku baik untuk apa-apa, tidak ada yang akan berhasil.
Pada malam terburuk dalam hidupku ini, belum benar-benar memanas, aku memutuskan untuk mencoba sekali lagi.

Saya duduk dan memutuskan untuk menulis bioma digital kecil di F #, di mana unit pembelajaran mesin akan berinteraksi dengan diri mereka sendiri, mengembangkan, dan saya akan memutar parameter dan melihat bagaimana mereka mengubah dunia ini menjadi.
Dan ya, mungkin saat itu saya sedikit berpikir.
Biasanya saya menggunakan campuran pendekatan desain top-down dan bottom-up. Saya menjelaskan solusinya secara umum menggunakan pseudocode. Kemudian saya mulai mengimplementasikan detail yang paling penting, yang, sebagai modul independen, saya melakukan yang sebaliknya. Dari detail hingga umum.
Sudah tanpa pseudo-code, saya menerapkan beberapa tiga modul besar, dan melihat apakah ini akan berhasil. Biasanya, itu tidak berhasil, dan saya mulai menggunakan iterasi, mengulangi proses ini dari awal hingga akhir hingga dimulai. Tetapi lebih sering saya hanya melemparkan iterasi pada kelima atau keenam.
Dengan F #, saya menerapkan pendekatan yang sama. Saya memiliki visi proyek, secara umum. Di kepala, bata demi bata, realisasi sedang dibangun. Anda memikirkan satu per satu kasus, dan pada titik tertentu Anda mengerti - semuanya, Anda sudah tahu bagaimana kode itu. Dan kemudian Anda duduk untuk kode, dan Anda mengerti bahwa tidak. Pikiran tidak ditransfer ke YP, meskipun menurut Anda Anda berpikir seolah-olah di atasnya. Saya memilikinya terus-menerus.
Tetapi ternyata berbeda. Saya membuat file txt dalam VSCode, dan menulis pseudo-code untuk fungsi yang menggambarkan siklus hidup aplikasi saya. Dan saya menyadari bahwa kode pseudo saya valid F #. Tidak ada yang perlu diubah, saya hanya menulis fungsi utama proyek. Oke, ubah ekstensi file, tambahkan ke solusi bersih. Inilah fungsi siklus hidup. Dibutuhkan keadaan dunia saat ini, hal yang memprosesnya (sebenarnya dunia itu sendiri) dan memuntahkan keadaan yang diperbarui, hal yang mengubah keadaan menjadi seperangkat parameter untuk AI dan sebaliknya, dan AI itu sendiri, yang menerima parameternya, meludahkan keputusan.
Maka semuanya sederhana. Mereka mengambil status, mengubahnya menjadi parameter AI, mengumpankan fungsi AI, mengubah hasilnya kembali menjadi keadaan, pada gilirannya mereka memberikannya ke fungsi permainan, dan hasilnya diberikan ke fungsi siklus hidup yang sama. Rekursi ilahi, algoritme sederhana, kode cantik, semuanya keluar dari kotak. Tetap menerapkan semua fungsi ini.
Tapi intinya di sini adalah saya tidak perlu lagi berpikir tentang arsitektur. Saya menulis apa yang disebut oleh tajam-javists sebagai istilah keren Pembalikan wadah kontrol - fungsi yang mengambil fungsi siklus-hidup dan melemparkannya ke parameter fungsi dari modul saya (II, Game). VScode menggarisbawahi warna merah, karena belum ada modul atau fungsi di dalamnya. Tetapi saya mendapatkan hal utama - segera setelah garis bawah merah menghilang dan proyek dapat dibangun, solusinya sudah siap.
Saya hanya mengambil dan mengimplementasikan modul-modul ini satu per satu, bekerja dengan cara yang sama. Seluruh proyek adalah lima file. File AI - 500 baris, banyak, tetapi idiomatis. Keindahan dari pendekatan ini adalah saya dapat menulis fungsi siklus hidup yang berfungsi - jantung dari aplikasi saya - tanpa menjelaskan hal lain.
Seluruh arsitektur adalah 10 baris kode yang ditulis dalam satu menit. Tidak ada antarmuka, pabrik abstrak, Iocs, semua DefaultInterfaceNameClass ini dan omong kosong lain yang perlu saya lakukan di C # sebelum saya bahkan mengerti apa yang ingin saya lakukan. Anda mengambil dan menulis kode bodoh yang hanya memecahkan masalah, dan Anda mendapatkannya lebih baik daripada penderitaan perusahaan Anda di java sharps ini.
Saya melakukan ini dengan hanya mengarahkan pikiran saya ke editor, seolah-olah saya sedang berpikir dalam F #. Di tempat-tempat di mana saya akan menulis rencana kerja di C # di komentar untuk kode, saya menemukan fungsi kerja. Alih-alih mendeskripsikan lusinan, dan kemudian ratusan antarmuka, satu file kecil dengan model domain aplikasi. Bangun itu. Punya solusi yang berfungsi. Untuk malam ini. Dengan kode yang baik, yang nantinya tidak takut untuk ditampilkan pada anjing. Sangat sederhana.
Di pagi hari saya menulis untuk bekerja bahwa saya sakit, dan terjun langsung ke proyek selama seminggu, sampai saya menyadari bahwa ide saya terealisasi untuk waktu yang lama dan tidak ada yang membutuhkannya. Tetapi saya mendapatkan kembali iman saya, dan itu adalah hal utama.

Saya tidak tahu apa masalahnya di sini - apakah F # teknologi yang paling hebat, atau hanya cocok untuk saya, atau diciptakan khusus untuk tugas-tugas seperti itu - apa bedanya? Yang penting adalah pada saat itu saya sedang tenggelam, dan saya membutuhkan pelampung. Hidup melemparkan saya F # dan saya keluar. Sekarang ini bukan hanya teknologi tanpa jiwa bagi saya - ini adalah lingkup emosional yang sangat besar.
Ketika seseorang menertawakan saya F #: “Teknologi lahir mati! Sebuah mainan untuk kutu buku ... ”- Saya langsung ingat kegelapan musim dingin, sebuah mobil yang terbakar, sebatang rokok membeku di bibir saya, keadaan tertekan dan F # yang menarik saya keluar dari situ. Artinya, mereka sepertinya mengerjai sahabatku. Reaksi saya jelas - saya tersinggung, dan saya marah.
Terlihat aneh dari luar, tetapi jika Anda hidup hari itu dan bukan saya, Anda akan bereaksi juga. Saya pikir itulah yang terjadi dengan semua pemuja teknologi. Mereka jatuh cinta dengan yapis mereka, karena keadaan di mana mereka bertemu mereka sangat akut bagi mereka secara pribadi. Dan di sini saya datang, dan meludahi jiwa mereka. Nah, dan siapa yang idiot? Saya seorang idiot. Semoga saya tidak akan.
Jika ada, tentang F # di
sini .