Habitat alami pengembang perangkat lunak penuh dengan peluang pembelajaran, kami berbagi beberapa wawasan kami.

Kami telah membuat kode sebagai sebuah tim selama 10 tahun sekarang. Ketika kita melihat ke belakang pada dekade terakhir, ini adalah perpaduan luar biasa dari apa yang telah kita lakukan sebagai sebuah “tim”, hal-hal yang telah kita temukan, pelajaran yang telah kita pelajari — dan yang paling penting — kenangan yang telah kita buat.

Penting bagi kita untuk menyelesaikan semuanya. Sama pentingnya bagi kita untuk menghabiskan waktu membangun hubungan.

Dalam pemrograman, ada yang disebut pendekatan Agile - yaitu, Anda harus adaptif. Kami mencoba menerjemahkan hal ini ke dalam cara kami mengatur perusahaan kami. Kita mencoba hal-hal baru, menolak hal-hal yang tidak berhasil, dan mengembangkan lebih jauh hal-hal yang terbukti efektif.

Tidak ada yang diatur dalam batu. Cari tahu apa yang kami temukan dalam perjalanan kami.

Ingin membuat kode untuk bersenang-senang? Bergabunglah dalam Petualangan Coding dengan Party Parrot dan pecahkanteka-teki pemrograman. 🎒 Mainkan: https://sml.io/play🏆 dan bergabunglah dengan wisatawan lain di Discord untuk mendiskusikan tugas dan mengklaim hadiah setelah menyelesaikan perjalanan: https://discord. gg/BuqjuKnKpU

Saran dari pengembang SoftwareMill

Jacek Kunicki - Pengembang Perangkat Lunak Senior



Jangan melakukan program pemujaan kargo.

Jika Anda memutuskan untuk menggunakan bahasa/kerangka/perpustakaan, pastikan Anda memahami masalah sebenarnya yang ingin Anda selesaikan, dan bahwa Anda memilih alat yang tepat untuk pekerjaan tersebut. Dengan kata lain, cobalah untuk benar-benar memahami apa yang Anda lakukan dan mengapa Anda melakukannya dengan cara tertentu dan bukan dengan cara lain. Menggunakan alat hanya karena banyak orang menggunakannya bukanlah cara yang tepat.

Andrzej Ludwikowski - Ahli Perjalanan Perangkat Lunak



Kerangka kerja, alat, bahasa datang dan pergi.

Mempelajari sesuatu yang baru dan menarik dari waktu ke waktu adalah hal yang baik. Meskipun Anda harus ingat bahwa jauh lebih bijaksana untuk menginvestasikan waktu Anda yang berharga untuk mempelajari secara mendalam hukum umum pemrograman komputer.

Desain basis data, desain sistem terdistribusi, dan konsep dasar lainnya tidak banyak berubah selama beberapa dekade. Jika Anda memahami teori dan aturan umum, Anda akan dapat mempelajari sesuatu yang baru (mungkin kecuali komputasi kuantum :)) dan pengetahuan tersebut tidak akan kedaluwarsa.

Tomasz Dziurko - Pengembang Perangkat Lunak Senior



Proyek jangka panjang tidaklah jahat.

Dalam proyek yang singkat, keputusan Anda bahkan tidak akan memiliki peluang untuk menghasilkan pelajaran yang berarti. Dalam proyek yang lebih panjang, Anda akan dapat melihat bagaimana pilihan Anda membentuk sistem. Keputusan mana yang baik, mana yang buruk, dan apa alasannya. Dengan cara ini Anda dapat belajar sepanjang prosesnya.

Selain itu, proyek yang lebih panjang sering kali berarti domain yang lebih besar untuk dipahami, arsitektur yang lebih kompleks untuk dirancang, dan, setelah diluncurkan ke produksi, masalah yang lebih rumit untuk dipecahkan. Segala sesuatu yang memaksa Anda melenturkan otot otak baik untuk pengembangan keterampilan pemrograman Anda.

Tomasz Szymański - CEO



Jangan menulis ulang semuanya dari awal setiap kali Anda mengerjakan proyek baru.

Kemungkinan besar Anda akan gagal.

Jika proyek telah dikembangkan selama 10 tahun dan Anda memiliki waktu 6 bulan, tidak mungkin Anda dapat menulis ulang semua fungsi, membuatnya lebih baik, ditambah lagi ingat tentang bagian yang “salah berfungsi” yang pasti digunakan dalam banyak situasi. kamu tidak tahu tentangnya.

Alih-alih memotong monster warisan lama menjadi beberapa bagian, tulis ulang sebagian darinya. Ini akan memberi Anda kesempatan untuk memantau apakah komponen baru berfungsi sesuai harapan, dibandingkan dengan komponen lama. Anda akan memiliki waktu yang lebih cepat untuk memasarkan dan Anda dapat memberi klien Anda kemenangan yang lebih cepat dan mudah, sesuai anggaran.

Juga, bersikaplah rendah hati.

Anda tidak dapat memulai hal yang lebih buruk daripada memulai proyek baru dan mulai mengomel sejak hari pertama tentang betapa buruknya penulisan perangkat lunak tersebut — Anda tidak tahu alasan mengapa hal tersebut terjadi ;-) Sikap seperti itu hanya akan menguntungkan Anda musuh.

Marcin Kubala - Penjaga Keamanan Jenis



Pemrograman itu seperti bermain dengan balok lego yang jumlahnya tak terbatas dan membawa banyak kegembiraan, namun ingatlah tentang keseimbangan kehidupan kerja.

Bertemu dengan orang-orang (tidak harus mereka yang membuat kode), temukan minat lain dan jangan biarkan kecanduan Anda pada pemecahan masalah merusak kesehatan Anda atau membahayakan keterampilan sosial Anda.

Jadilah seorang programmer tetapi tetaplah manusia.

Adam Warski - CTO, Pengembang Scala



Hal utama yang saya hargai, dan yang juga mendasari pendekatan saya terhadap blogging, adalah selalu menelusuri teknologi yang “baru” dan “modis”.

Hal ini harus dilakukan kapan saja Anda ingin memasukkannya ke dalam aplikasi Anda, atau bahkan ketika mempertimbangkan untuk melakukannya. Tugas utama di sini adalah memahami dan mengekstrak “esensi” dari pendekatan/database/perpustakaan tertentu. Anda tidak hanya akan belajar banyak tentang bidang tertentu, namun Anda juga akan dapat membedakan antara sesuatu yang benar-benar inovatif, dan sesuatu yang hanya bersifat pemasaran. Dan terlepas dari segalanya, itulah cara kerja rekayasa yang jujur.

Magda Stożek - Insinyur Perangkat Lunak



Jangan biarkan sindrom penipu Anda menghalangi Anda.

Hal ini sangat normal, dan nyatanya banyak orang yang mengalaminya dari waktu ke waktu, bahkan mereka yang sangat Anda kagumi (lihat di sini). Jangan takut untuk menunjukkan bahwa Anda tidak mengetahui sesuatu.

Jika Anda ikut serta dalam peninjauan kode atau sesi perencanaan tetapi Anda tidak tahu banyak tentang subjeknya — alih-alih berpura-pura tidak ada di sana, ajukan pertanyaan. Dalam kasus terburuk — Anda akan mendapatkan jawaban sederhana. Paling-paling, mereka akan memicu diskusi yang hebat, Anda akan memberi nilai tambah, dan akan mempelajari sesuatu dalam prosesnya.

Jika Anda terjebak pada sesuatu dalam pekerjaan sehari-hari — alih-alih mencoba menyelesaikannya sendiri selama berhari-hari, tanyakan pada rekan kerja. Dalam kasus terburuk – mereka akan memberi tahu Anda bahwa mereka tidak punya waktu. Dalam kasus yang baik - Anda akan menyelesaikan masalah Anda dalam setengah jam pemrograman berpasangan dan Anda berdua akan mempelajari sesuatu yang baru.

Krzysztof Grajek - Insinyur Perangkat Lunak Senior



Cobalah paradigma dan bahasa pemrograman yang berbeda.

Tantang diri Anda setiap hari dengan upaya untuk melakukan perbaikan — dalam kotak peralatan Anda, proyek klien, organisasi meja, dan sebagainya. Dengan cara ini tidak ada proyek yang membosankan dan Anda tidak terjebak dalam teknologi yang sama untuk melakukan hal yang sama setiap hari, bulan, dan tahun.

Saya sangat percaya pada “duduk adalah kebiasaan merokok yang baru” jadi kecuali untuk tantangan mental dan peningkatan, Anda harus melakukan aktivitas fisik setiap hari.

Mikołaj Koziarkiewicz - Insinyur Perangkat Lunak Senior



Jangan kehilangan hutan demi pepohonan.

Rekayasa perangkat lunak adalah sebuah disiplin di mana setiap masalah non-sepele mempunyai banyak bagian yang bergerak — dan, yang lebih mengerikan lagi, banyak dari bagian yang bergerak ini harus ada di kepala Anda pada saat yang bersamaan. Maka, sangat mudah untuk mengaitkannya pada aspek-aspek yang kurang penting, namun lebih “pasti”. Inilah sebabnya mengapa orang-orang terlibat dalam "bikeshedding" mengenai perpustakaan penguraian konfigurasi mana yang akan digunakan, dan mengapa "efek sistem kedua" ada.

Dengan kata lain, selalu ingat masalah “gambaran besar” — apa, kapan, dan mengapa Anda mengkodekan sistem atau aplikasi spesifik ini.

Apakah Anda sedang menulis sistem yang kompleks untuk klien komersial? Kebutuhan klien didahulukan – cobalah untuk mengidentifikasinya, membicarakannya dengan orang-orang yang relevan, dan berusaha menemukan solusi yang paling sesuai dalam kasus ini.

Mungkin Anda sedang membuat kode, di waktu luang, semacam program mainan yang dimaksudkan sebagai kesempatan untuk mempelajari perpustakaan, teknologi, atau pendekatan baru? Maka jangan menghabiskan waktu berhari-hari memikirkan lekukan yang “tepat” — kesenangan Anda dan nilai pendidikan yang Anda peroleh dari benar-benar menerapkan apa yang Anda bayangkan adalah yang paling penting di sini.

Setiap proyek berbeda, sangat halus. Kabar buruknya adalah — fokus seperti ini memerlukan pembangunan dan pemeliharaan kebiasaan secara sadar. Kabar baiknya adalah — hal ini sepenuhnya dapat dicapai.

Sebastian Rabiej - Insinyur Perangkat Lunak



Tidak ada waktu untuk menyesali mawar ketika hutan terbakar.

Seringkali sebagai pengembang, kami berfokus pada Hukum, Peraturan, dan Teknologi. Kita melupakan hal yang paling penting – Nilai Bisnis. Saya tahu, kami ingin melakukan hal-hal baru yang mewah, untuk membuat CV kami menjadi lebih baik. Namun untuk menjadi insinyur yang berharga, pertama-tama kita harus bertanya pada diri sendiri“mengapa kita menginginkan ini” dan “apakah hal itu akan menjadikan proyek kita lebih baik”.

Łukasz Żuchowski - Insinyur Perangkat Lunak Senior



Tidak masalah jika Anda mengakui bahwa Anda tidak mengetahui teknologi, perpustakaan, atau kerangka kerja tertentu.

Anda juga boleh memilih solusi yang Anda ketahui dan pahami daripada solusi yang tidak Anda ketahui, meskipun solusi tersebut sedang ramai dibicarakan.

Saya tidak mendorong pengembang untuk hanya berpegang pada apa yang mereka ketahui dan gunakan selamanya, namun proyek perusahaan adalah tempat pengujian yang sangat sulitdan mahal. Terdapat pengecualian terhadap aturan tersebut, namun pelanggan/bisnis harus menyadari risiko dan biaya mempelajari teknologi baru serta manfaat yang dibawanya.

Saat saya merekomendasikan tumpukan teknologi, fakta bahwa tim mengetahui teknologi tersebut sangatlah penting, kami akan memberikan alternatif juga, namun pelanggan harus menyadari biaya pembelajarannya.

Jika Anda ingin mempelajari sesuatu yang baru, cobalah proyek kesayangan (mungkin open source — inilah mengapa kontribusi itu layak untuk dilakukan), postingan blog atau tutorial, baca tentangnya, kumpulkan informasi tentang praktik baik dan proyek kehidupan nyata. Ingat contoh “halo dunia” terlihat bagus dalam setiap bahasa dan teknologi, jebakan muncul saat Anda menggunakannya untuk memecahkan masalah nyata.

Tomek Łuczak - CFO, Pengembang Senior Scala



Tinggalkan zona nyaman Anda dan berhentilah membuang-buang waktu untuk proyek yang tidak mengembangkan Anda.

Sangatlah mudah untuk menemukan diri Anda setelah 5 tahun melakukan hal yang sama berulang kali. Ini juga sangat menggoda bagi majikan Anda. Di dunia yang segala sesuatunya berkembang begitu cepat, stagnasi adalah kemunduran. Pertanyaannya adalah: apakah Anda setuju dengan hal tersebut?

Tidak ingin berkumpul bersama kami dan membicarakan hal-hal pemrograman? Anda dipersilakan untuk bergabung dengan AMA Slack Channel kami.