Baru-baru ini, semakin banyak orang mulai bermimpi tentang bagaimana mereka akan tinggal di rumah, menulis proyek keren di tim terdistribusi, memelihara kucing di bawah secangkir kopi rumah dan menjarah uang banyak untuk itu. Dan sebenarnya tidak ada yang salah dengan itu, ribuan pengembang bekerja dengan cara ini. Namun, orang-orang yang tidak memiliki pengalaman yang cukup sering mulai membicarakan hal ini, dan pada kenyataannya tidak mungkin untuk mendapatkan pekerjaan seperti itu tanpa mendapatkan pengalaman tempur di kantor.

Jones pada remote tidak diperlukan
Seperti yang dikatakan orang-orang dari Toaster, khususnya para kurator di sebagian besar bagian, mereka tidak memerlukan jones di situs terpencil, seperti halnya kemungkinan mendapatkan sesuatu dari gim freelance. Dan memang benar. Tetapi juga semua orang tahu bahwa akan selalu ada orang yang akan melakukan apa yang dianggap hampir mustahil.
Jadi, nama saya Sergey, saya adalah pengembang perusahaan, saya tinggal di kota Ussuriysk (Primorsky Krai, populasi 200k, +7 jam dengan Moskow), saya tidak memiliki pendidikan khusus, dan saya belum bekerja di kantor sebagai pengembang selama sehari. Dan kisah ini adalah tentang bagaimana saya sampai pada kehidupan seperti itu.
Saya tidak menetapkan sebagai tujuan saya untuk menginspirasi orang-orang dari provinsi sehingga mereka semua bergegas bersama dan mulai mencoba untuk mendapatkan pekerjaan di situs terpencil. Saya ingin menunjukkan sejumlah besar waktu yang saya habiskan untuk tumbuh menjadi pengembang (tanpa ragu, jika ada "kantor" di kota saya, saya akan melakukannya lebih cepat).
Setelah universitas
Awalnya, saya berencana untuk bekerja di sektor perjudian, jadi setelah sekolah saya pergi ke "layanan sosial-budaya dan pariwisata", tetapi hukum Federasi Rusia tentang larangan aktivitas perjudian keluar pada tahun ke-2. Meskipun saya tinggal di Wilayah Primorsky, tempat mereka seharusnya membangun kasino pada 2012, semua tenggat waktu telah dilanggar, dan pada kenyataannya, pada saat pembebasan saya tidak ada apa-apa. Lebih tepatnya, ada kasino bawah tanah, tetapi ini adalah tempat di mana Anda pasti tidak ingin bekerja.
Sebagai hasilnya, saya pertama kali mendapat pekerjaan di perusahaan beras grosir, kemudian meninggalkan tempat itu sebagai pemasang koneksi Internet, dan kemudian mendukung 1C-Franchisee. Itu semua memakan waktu sekitar satu setengah tahun. Seperti yang mereka katakan, di tangan ijazah merah dari universitas, dan semua pintu terbuka di depan Anda.
Dukungan teknis
Selama ini saya melihat sesuatu yang lebih cocok, dan suatu hari di My Circle saya melihat lowongan di dukungan teknis malam. Saya pikir, dengan mempertimbangkan zona waktu saya, jam 7 pagi di Vladivostok, itu jam 0:00 di Moskow, saya bisa bekerja shift malam praktis di siang hari. Saya merespons, berbicara, dan mendapat pekerjaan.
Secara alami, begitu saja, orang kiri tidak akan diterima mendukung. Saya sangat menyukai pembangunan situs sejak sekolah dan membuat berbagai situs untuk tim dotka saya dan klub permainan lokal. Plus, karena pendidikan saya, saya memiliki bahasa Inggris yang cukup baik, yang memungkinkan saya untuk juga memberikan dukungan kepada klien dari Australia, Selandia Baru dan Amerika Serikat. Saya sebenarnya memiliki tingkat webmaster yang baik dengan bahasa Inggris, ditambah pengalaman dukungan dari 1C.
Pindah
Di salah satu kongres korporat, saya berbicara dengan orang-orang dari departemen pengembangan, dan saya menyadari bahwa topik yang dibicarakan bukanlah semacam "ilmu roket", dan bahwa saya bisa mencobanya juga. Ditambah lagi, pendidikan formal adalah kemanusiaan, tetapi kami masih memiliki matematika, statistik, ekonomi, akuntansi dan pemrograman, jadi saya tidak terlalu takut dengan formula dan angka.
Itu tahun 2014, di mana-mana mereka meneriakkan bahwa php menyebalkan, bahwa python adalah masa depan dan seterusnya (Betapa naif dan bodohnya aku!). Jadi saya mulai belajar pemrograman darinya. Bagaimana saya melakukannya:
1) Saya mengunduh buku-buku oleh Mark Lutz "Learning Python", "Programming in Python". Buku-buku itu cukup sulit, karena membacanya sangat membosankan, namun, mereka memberikan dasar yang sangat bagus. Jika Anda memiliki pilihan untuk memulai dengan cepat atau membaca beberapa buku mendasar tentang pemrograman, maka saya sangat menyarankan mulai dengan yang kedua untuk mendapatkan basis yang diperlukan. Penting untuk dipahami, tidak hanya "Bagaimana," tetapi juga "Mengapa" dan "Mengapa."
Setelah buku, saya memutuskan untuk bermain sedikit dan mulai menulis berbagai parser untuk portal game (Brablay / GoodGame) untuk mengumpulkan statistik tentang topik-topik tertentu. Secara khusus, menarik untuk melihat bagaimana orang-orang tertentu meninggalkan komentar, khususnya jumlah mereka yang sangat besar.
2) Kemudian saya memutuskan untuk melakukan sesuatu yang lebih bermakna dan menyusun portal artikel dengan Python. Saya membaca buku tentang Django (Sejujurnya, saya tidak terlalu memahaminya - informasi itu diberikan terlalu cepat dan terlalu "hampa"). Jadi saya menonton beberapa video pengantar tentang Django dari ITVDN dan beralih ke dokumentasi resmi.
Selama 4 bulan pengembangan, saya terbiasa dengan tata letak, saya mengerti cara bekerja dengan database, menulis migrasi, mengatur SSL dan sebagainya. Akibatnya, tahun berikutnya saya habiskan untuk meluncurkan sejumlah proyek saya sendiri dan mengembangkan situs kecil untuk anak-anak lokal (situs drop-shippig, toko sepeda, toko nutrisi olahraga, dan sebagainya).
3) Setelah satu tahun, saya bosan mengembangkan proyek di Django. Saya mulai mencari apa lagi yang bisa dipikirkan dengan Python. Saya mungkin membaca semua buku Python yang ada di situs Ozon. Mulai dari buku tentang Devops, berakhir dengan visi komputer dan pembelajaran mesin. Topik-topik ini tidak benar-benar mengilhami saya (saya tidak melihat nilai yang diterapkan pada skala saya, yang dapat saya gunakan di sini dan sekarang), tetapi istilah-istilah ini telah berubah dari sihir dan "skynet" yang tidak diketahui menjadi formula dan pustaka biasa.
4) Pada akhirnya, saya memutuskan untuk sedikit meningkatkan tingkat melek komputer saya dan mulai membaca buku tentang C / C ++ / Java / Jaringan Komputer / PostgreSQL / TDD dan Pola Perusahaan. Jujur saja, pengalaman yang menarik ketika Anda memahami bagaimana teknologi lain bekerja, apa yang diandalkannya, apa tantangannya, dan bagaimana itu memecahkan "masalah kompleks" dari tumpukan Anda.
Secara terpisah, kita dapat menyebutkan buku tentang Spring, yang menunjukkan betapa jauh lebih kompleksnya aplikasi perusahaan daripada proyek "santai" di Django.
Pengujian dan Pengujian Otomatis
Setelah tiga tahun bekerja mendukung, saya, sayangnya, tidak diberi akses ke departemen pengembangan, tetapi ada peluang untuk mendapatkan posisi di departemen pengujian. Pada saat itu, saya tahu Python bebas dan bisa di Jawa, jadi bodoh jika tidak setuju.
Departemen pengujian memberikan pemahaman yang cukup baik tentang bagaimana sistem yang kompleks sedang dikembangkan, bagaimana tim berinteraksi dalam diri mereka sendiri dan satu sama lain. Konfigurasi berbagai lingkungan pengujian, penentuan prioritas tugas dan banyak lagi.
Secara alami, ini adalah otomatisasi pengujian pada selenium dengan tes menyentak melalui jenkins ketika merilis build baru.
Saya juga menyukai topik desain tes. Perusahaan memiliki sejumlah besar kursus pengujian, sehingga Anda bisa belajar banyak hal keren dengan mereka yang belum pernah Anda pikirkan dari bidang desain pengujian sebelumnya. Misalnya, merancang jumlah kasus uji minimum untuk mencakup varian sistem dengan menggunakan generator berpasangan (http://www.pairwise.org/) terbanyak. Ini adalah hal-hal keren dari pekerjaan QA-Engineer, yang bahkan tidak dipikirkan oleh banyak pengembang.
Transisi menuju pembangunan
Setelah satu setengah tahun di departemen pengujian, saya mendapat persetujuan bahwa jika saya memberikan prototipe kerja pada tumpukan php, saya akan mendapatkan kesempatan untuk magang di departemen pengembangan.
Satu bulan saya habiskan untuk buku-buku di PHP. Setelah Python dan Java, menguasai PHP ternyata cukup mudah, meskipun dari waktu ke waktu pertanyaan "Kenapa tidak di sini seperti itu" muncul.
Dan saya menghabiskan tiga bulan di layanan Symfony API (moncong web, akun pribadi, logika bisnis, pemberitahuan email, generator pdf, mengurai struktur json kompleks dan banyak lagi). Tiba-tiba, ternyata Symfony adalah sejenis hibrida dari Django dan Spring, jadi tidak ada masalah pemahaman sama sekali.
Sebagai hasilnya, saya menunjukkan proyek saya dan mendapat magang di departemen pengembangan, dari mana saya sudah dipindahkan ke pengembang penuh.
Bulan-bulan awal sebagai pengembang
Saya diberi seorang mentor yang benar-benar meninjau kode saya dan menyarankan mengapa saya harus melakukan ini dan bukan sebaliknya. Kadang-kadang panggilan berlangsung selama satu setengah hingga dua jam, ketika kode dianalisis secara rinci pada bola dan rekomendasi diberikan tentang cara memperbaikinya. Faktanya, ternyata saya mengambil keputusan pada waktu yang tepat dengan logika yang benar, tetapi karena saya tidak memiliki pengalaman dalam pengembangan perusahaan, mereka ternyata terlalu membingungkan dan rumit. Ditambah lagi dari waktu ke waktu ada pertanyaan tentang karya Redis / RabbitMQ / Elastic, dll. Namun tetap saja, pekerjaan utama dilakukan di lapangan untuk menyederhanakan kode dan membuatnya dapat diuji (ketika Anda menulis kode untuk diri sendiri, Anda bahkan tidak berpikir bahwa orang lain tidak akan dapat membacanya). Akibatnya, dalam 4 bulan kode saya berhenti dengan gaya sesuai standar perusahaan.
Sebenarnya, ketika Anda menulis kode sendiri, Anda bahkan tidak berpikir tentang bagaimana orang lain akan memahaminya, dan apakah benar untuk mengekspresikan pikiran Anda dengan cara ini. Pengalaman kerja tim sulit untuk diganti.
Total pengalaman untuk mendapatkan pekerjaan pengembang di situs jarak jauh dari awal -
4 tahun, 9 bulan.Sebagai hasil kerja jarak jauh dari awal:
- Peluang mendapatkan pekerjaan sebagai pengembang di situs jarak jauh, setelah menyelesaikan kursus dan membaca beberapa tutorial, cenderung nol.
- Probabilitas untuk mengatasi pekerjaan Juni di tempat terpencil tanpa pengalaman pengembangan komersial, atau proyek sendiri, cenderung nol.
- Kemungkinan bahwa tanpa rekomendasi apa pun, perusahaan akan menghabiskan waktu untuk Anda mengajarkan sesuatu - cenderung nol.
- Kemungkinan bahwa setelah membaca beberapa buku, dan mendapatkan pekerjaan di situs terpencil, Anda akan menerima "uang besar" - cenderung nol.
- Membuat keputusan di awal karirnya untuk meninggalkan kantor dan mencari tempat yang jauh adalah omong kosong.
- Menolak pekerjaan TI lainnya, karena Anda hanya ingin menjadi pengembang di situs jarak jauh sejak awal karir Anda, tidak lain hanyalah kebodohan.