
Tepat 15 tahun yang lalu, pada hari ini, dengan lutut gemetaran, saya melewati ambang pintu kantor penyedia layanan Internet provinsi kecil. Pekerjaan nyata pertamaku sebagai programmer. Hampir tidak ada pengetahuan. Suara tipis, ketakutan dari suatu tempat di perut menyarankan untuk berbalik dan melarikan diri sampai akhirnya tercela. Menarik napas dalam-dalam, dan di sini sang CEO sudah menuntun saya ke ruang bawah tanah kecil, menunjuk ke komputer yang setengah dibongkar yang telah melihat waktu yang lebih baik: “Ini adalah tempat kerja Anda. Bersiaplah. " Maka dimulailah karir saya.
Tapi maju cepat ke masa sekarang. Sekarang saya sedang menulis kalimat-kalimat ini, duduk di kantor nyaman pusat bisnis bergengsi di pusat Moskow. Di belakang bekerja dengan merek internasional besar dan pengembangan aplikasi fintech yang kompleks. Ratusan buku telah dibaca dan puluhan artikel telah ditulis. Mania kebesaran telah lama disembuhkan. Posisi manajerial diuji dan ditolak. Ketenangan pikiran ditemukan. Cinta akan profesi tetap terjaga. Namun, ini bukan artikel dari seri “Betapa aku ini sesama. Lakukan seperti Anda juga, akan dilakukan dengan baik. " Artikel ini adalah tentang kesalahan apa yang saya buat dan apa yang bisa dilakukan dengan lebih baik. Artikel ini adalah retrospektif dari karir saya.
Ubah perusahaan jika tidak ada pengembangan
Dari waktu ke waktu, saya terjebak di perusahaan yang jelas-jelas melebihi level tersebut. Tampaknya mereka membayar uang yang baik, dan semua yang ada di sini akrab dan nyaman. Anda datang di pagi hari, pilih mode biasa di mesin kopi. Anda bertukar lelucon dengan Katya dari akuntansi. Anda duduk di kursi Anda, yang telah lama mengambil bentuk titik lunak Anda. Anda membuka laptop dan terjun ke dalam rutinitas harian tugas-tugas tipikal yang diketahui oleh Anda. Perhatian! Ini jebakan!
Pekerjaan seharusnya tidak menjadi pekerjaan rumah. Pasti ada tantangan. Tidak setiap hari, mungkin tidak setiap bulan, tetapi jika itu terlalu mudah bagi Anda - saatnya untuk pergi. Tidak perlu takut kesulitan. Jika pada saat wawancara tampak bagi Anda bahwa di sini orang-orang menyelesaikan masalah yang terlalu rumit, dan Anda yakin akan mengacaukannya pada hari pertama - penawaran ini adalah untuk Anda. Carilah tugas yang paling sulit, satu-satunya cara Anda dapat meningkatkan, dan tidak menurunkan di dapur perusahaan favorit Anda selama 4 jam sehari
Jadilah pemrogram, bukan pembuat kode
Tulis kodenya! = Selesaikan masalahnya. Kode hanyalah salah satu alat untuk menyelesaikan masalah. Oh, sudah berapa lama jalan untuk mewujudkan pernyataan sederhana ini. Berapa banyak waktu yang terbuang. Kami programmer tertarik oleh kode dengan kekuatan yang mengerikan. Melihat tugas berikutnya di Jira, kami menjalankan matanya secara diagonal dan lebih tepatnya, menulis kode! Begitu kode ini ditulis, kami kehilangan minat pada tugas dan mengambil yang baru.
Sayangnya, kami sangat jarang berpose dengan tugas yang transparan dan mudah dimengerti. Sebelum saya membuka IDE, saya harus 100% yakin bahwa saya mengerti masalah yang akan saya selesaikan. Penanda yang baik di sini adalah dekomposisi. Jika saya bisa melukis solusi dalam langkah-langkah dan tahu hasil apa yang akan dihasilkan setiap langkah, maka saya membuka editor dan menulis kode.
Ingat: nilai Anda sebagai programmer tidak dalam kode elegan dengan geng empat pola eksotis. Belum ada perusahaan yang berhasil karena keindahan kode (dalam hal apa pun, saya tidak ingat contoh-contoh seperti itu). Selalu ingat hasil akhirnya.
Jangan takut untuk bereksperimen
Setiap kali memulai proyek hewan peliharaan baru, saya memulainya dengan teknologi terkenal, atau beralih ke mereka setelah beberapa minggu. Jauh lebih cepat. Apa gunanya menyiksa Kafka jika Anda memiliki Kelinci favorit? Mengapa cocok dengan struktur data ke dalam dokumen jika mudah masuk ke dalam model relasional? Setiap kali, pemikiran bahwa saya harus cepat pergi ke prod mencegah saya untuk tidak berkembang. Akibatnya, sebagian besar proyek saya sangat berat di github, tidak hanya memberi saya ketenaran dunia, tetapi bahkan pengetahuan baru. Mencoba mengikuti tenggat waktu yang saya tentukan sendiri, saya hanya membuang waktu.
Eksperimen. Tidak ada terburu-buru. Kembangkan cakrawala Anda. Jika Anda ahli dalam suatu teknologi, gunakan pengetahuan ini di tempat kerja, tetapi gunakan alat yang tidak Anda kenal di luar pekerjaan Anda. Ini sulit secara psikologis, karena Anda akan mengerti bahwa menggunakan bahasa pemrograman yang terkenal, Anda sudah akan mendapatkan manfaat dari ketenaran dari proyek Anda di Maladewa. Dan Anda harus mencari tahu mengapa mengonversi mantra ke int memberikan kode karakter, bukan angka.
Luncurkan proyek kesayangan
Saya sudah lama mengerti: untuk menjadi programmer yang sukses, tidak cukup untuk menjadi programmer yang baik. Anda perlu memahami pengembangan suatu produk yang jauh lebih luas daripada spesialisasinya. Tetapi bagaimana cara mencapai ini? Saya bisa membaca ratusan buku tentang pemasaran dan mereka tidak akan berguna jika saya tidak menerapkan pengetahuan ini. Saya dapat berlangganan saluran telegram dari pakar produk terbaik di negara ini, tetapi bagaimana jika saya tidak memiliki produk untuk dicoba?
Sejak saya memulai proyek hewan peliharaan pertama saya, menjadi lebih mudah bagi saya untuk menemukan bahasa yang sama dengan front, qa, produk, pemasar, dan anggota tim lainnya. Bagaimanapun, saya mulai memahami pekerjaan mereka dengan lebih baik. Pemrograman modern sangat berbasis tim, dan pengalaman bekerja pada proyek saya sendiri membantu saya menemukan kesamaan dengan anggota tim lainnya.
Belajar membusuk
Saya selalu memiliki masalah dengan perhatian. Saya membuat kesalahan yang sangat bodoh dalam kode. Bukan karena saya tidak mengerti sesuatu atau tidak tahu bagaimana melakukannya. Saya hanya lalai. Saya berjuang dengan masalah ini dalam berbagai cara yang membosankan (misalnya, saya menonton jarum menit), tetapi tidak ada yang membantu. Secara alami, setelah setiap kesalahan seperti itu, harga diriku jatuh tajam. Perkembangan seperti apa yang bisa kita bicarakan jika harga diri nol?
Solusinya datang dalam bentuk dekomposisi. Tugas kurang = kode kurang = lebih kecil kemungkinannya untuk melakukan kesalahan. Saya sering mendengar ungkapan "tugas ini tidak dapat diuraikan," tetapi saya pribadi berpikir bahwa tugas apa pun dapat diuraikan tanpa batas waktu. Jika Anda tidak dapat berhasil, kemungkinan besar Anda tidak sepenuhnya memahami tugas tersebut.
Pelajari alat
Untuk waktu yang lama saya menggunakan IDE sebagai editor kode biasa dengan navigasi yang mudah. Dan saya juga punya bos yang diprogram secara eksklusif dalam mcedit dan sering kali secara teatrik bertanya: "Siapa kamu tanpa IDE?" Atau saya memiliki terminal yang buka 24/7, tetapi saya tidak tahu bagaimana cara menggunakannya. Untuk waktu yang lama saya hidup tanpa analisis statis dan pemecah gaya. Mengabaikan hotkey. Dan saya tidak melihat ada masalah dalam hal ini.
Sekarang saya berlangganan semua saluran youtube resmi alat saya. Sungguh menakjubkan betapa banyak yang dapat Anda pelajari dari mereka. Saya dengan cermat melihat proses kerja rekan-rekan saya dan sering mengadopsi apa yang tampak menarik bagi saya. Juga, beberapa alat menunjukkan kepada kami munculan di mana mereka memberi tahu Anda cara meningkatkan proses interaksi. Jangan abaikan ini.
Berpartisipasilah dalam opensource
Opensource - sakit. Masing-masing PR Anda akan diperiksa di bawah mikroskop. Setiap variabel, setiap karakter. Setiap tes akan dipertanyakan. Dan ini bukan pemimpin tim Anda, yang: "Oh, baiklah, mari kita terobsesi." Anda tidak akan mencapai kesepakatan dengan orang-orang ini, Anda tidak akan mengeluh tentang mereka, Anda tidak akan menghancurkan mereka dengan otoritas. Dan mereka bahkan tidak membayar Anda. Pada sekitar komentar dua puluh lima saya benar-benar ingin mengirim semuanya nafig.
Bersabarlah! Opensource adalah peluang besar untuk meningkatkan keterampilan Anda, bekerja dengan programmer terbaik di dunia (walaupun itu tergantung pada proyek). Mulai dari yang kecil. Pilih beberapa alat atau pustaka sederhana. Buka bagian masalah dan lihat apa yang bisa Anda perbaiki. Saya harus mengatakan bahwa biasanya tidak ada toksisitas pada github. Jika PR Anda tercabik-cabik, maka mereka akan melakukannya dengan sangat konstruktif. Bagaimanapun, dalam pengalaman saya.
Percayalah pada diri sendiri
Dari waktu ke waktu, saya mengalami situasi ketika saya ingin meninggalkan semuanya dan mulai bekerja di lokasi konstruksi. Bawa batu bata. Situasi ini bisa menjadi tugas yang tidak berakhir dengan cara apa pun. Yang telah mengubah persyaratan harian. Atau teknologi yang tidak ingin saya pelajari. Atau integrasi layanan pihak ketiga, yang sama sekali tidak memiliki dokumentasi. Atau hanya fungsionalitas, untuk memahami mana yang memerlukan pendidikan pemodal, dan semua ahli produk berbicara bahasa Inggris secara eksklusif. Saya ketakutan, menunda-nunda, berhenti, dan membuat marah si kucing.
Ada satu trik yang sekarang banyak membantu saya dengan tugas-tugas seperti itu. Saya selalu ingat bahwa pada akhirnya saya bisa mengatasinya. Selalu diatasi. Dan akan selalu begitu. Anda hanya perlu duduk, belajar, berpikir, memilah-milah, mengajukan pertanyaan yang tepat kepada orang yang tepat. Yang utama adalah percaya pada diri sendiri dan tetap tenang. Secara umum, mungkin ini adalah saran paling penting yang akan saya gunakan untuk mengakhiri artikel ini. Tetap tenang dan percaya diri. Anda bisa mengatasinya.