Kiat Belajar untuk Para Software Engineer Pemula! - IDS Digital College

Kiat Belajar untuk Para Software Engineer Pemula!

Kiat Belajar untuk Para Software Engineer Pemula!


Untuk kamu yang masih baru banget mendalami dunia software engineering, tenang, di sini kita akan mengenal perspektif dari salah satu ahli software engineer, nih. Yang pastinya dapat membantu para pemula menjadi lebih baik lagi. Menurut sang ahli, pada awalnya beliau berpendapat bahwa software engineer itu hanya menyelesaikan ‘masalah’ dengan coding. Namun, ternyata tidak hanya itu, software engineering itu lekat sekali kaitannya dengan evaluasi suatu produk software, seperti menerapkan fitur baru sesuai request customer, meningkatkan kinerja fitur yang tersedia, menggali dan solve the problem dengan coding yang tepat dan efektif, serta menyesuaikan implementasi dengan tujuan produk itu dibuat. 

Software Engineer

Pengalaman Sang Ahli Saat Mendalami Software Engineering

  • Mengikuti programming summer class di Upperline Code sebelum memulai perkuliahan. Info mengenai ini didapat dari program persiapan kuliah dan karir ‘The Opportunity Network’. 
  • Pindah jurusan ke Computer Science (CS) di College of Arts and Letters to the College of Engineering. Tentunya diisi dengan mata kuliah terkait seperti Desain/Analisis Algoritma, Cloud Computing, dan Tantangan Pemrograman, yang disajikan dengan ide dan konsep baru.
  • Sebelum menginjak semester akhir, beliau mendapat kesempatan magang dan pair-program sebagai software feature engineer di Kantata. 
  • Dengan beberapa pengalaman, mulai melamar pekerjaan di perkantoran.
  • Lulus pada tahun 2021 dengan gelar CS dan menerima tawaran untuk menjadi Associate Software Engineer di Sprout Social.

Pengalaman Kerja di Sprout Social

Dengan posisi software engineer baru di sana, tentunya beliau perlu untuk semakin meningkatkan basic skills dan pengetahuan mengenai rekayasa perangkat lunak dan domain khusus Sprout Social. Task yang paling mudah diselesaikan adalah yang memerlukan basic programming. Namun, tugas yang membutuhkan pengetahuan tentang arsitektur Sprout membutuhkan waktu dan bantuan tim untuk menyelesaikannya. Dokumentasi online dari pengembangan sebelumnya itu cukup membantu walaupun terkadang sulit menemukan informasi yang relevan dengan pekerjaan yang sedang dilakukan.

Menurut beliau, proses pengembangan di Sprout Social sangat kolaboratif, hal ini membuatnya menyadari bahwa untuk merilis fitur yang sukses membutuhkan kerja sama banyak orang dengan perannya masing-masing, mulai dari manajer produk yang menentukan requirement proyek, desainer yang membuat maket dan engineer yang mengimplementasikan fitur. Rekan kerjanya juga banyak membantu seperti memberikan saran, mengenalkannya pada pattern baru, code base yang relevan, dan dokumentasi pull request engineer lain.

Mempelajari cara menavigasi melalui berbagai codebase dan membangun mental model interaksi antar layanan yang berbeda termasuk tahap pembelajaran yang cukup sulit karena bisnis yang ditawarkan Sprout adalah software dengan arsitektur yang sesuai dengan requirement bisnisnya. Melalui berbagai proses, sang ahli juga berkembang dalam menemukan alasan dibuatnya keputusan arsitektur pada pengembangan yang sebelumnya. Beliau juga belajar bahwa code review sebelum menggabungkannya ke codebase itu penting agar tiap pemegang jobdesk bisa berbagi pengetahuan dan dapat memelihara code standard. Tahapan code review inilah yang mempertajam keterampilan teknis dan kualitas pull request beliau.

Software Engineer

Sekilas Info untuk Mahasiswa dan Pemula

Pengalaman, pengetahuan, dan kebiasaan kita sebelum dan bahkan saat masuk dunia kerja itu sangatlah penting dan memiliki efek yang berkelanjutan. Bahkan, beliau beserta tim nya bisa semakin berkembang saat mengerjakan proyek baru dan menghadapi tantangan karena pengalaman di pekerjaan sebelumnya. Menurut beliau, ilmu perkuliahan malah lebih berimpact lagi pada pekerjaannya seperti mata kuliah Tantangan Programming dan Konsep Database yang sangat membantu dalam memecahkan masalah besar menjadi potongan kecil untuk diselesaikan secara efisien. Problem solving yang efisien juga membantunya dalam menyusun kode dan meningkatkan keterbacaan kode. Dia juga diajari desain skema database dan SQL, serta cara menulis query yang berguna untuk menanyakan ataupun memecahkan permasalahan terkait database. Selain perkuliahan, kegiatan luar kuliah juga penting, seperti mengerjakan proyek bisnis bersama profesor yang bisa menambah pengalaman dalam Java writing, bekerja langsung menggunakan database MySQL, dan membuat gambar Docker. 

Kalau hanya melihat dan mempelajari sekilas mata kuliah terkait programming dan hal-hal terkait, pasti ada beberapa yang dianggap tidak terlalu penting karena diajarkan secara teoritis. Namun, saat kamu sudah terjun ke dunia software engineering, hal remeh sekalipun merupakan ilmu yang berguna dan penting dalam tiap pengerjaan proyek, karena kamu akan langsung mempraktekkan teori tersebut. Mungkin kalau kamu berkuliah di jurusan seperti computer science, kamu tidak akan langsung tahu mau dibawa kemana nih karir kedepannya, bisa jadi kamu belum berpikir untuk meniti karir di software engineering. Maka dari itu, jika kamu sedang di semester akhir atau bahkan sudah menjadi fresh graduate, segera ikuti proyek pengembangan proyek ataupun software tertentu, atau bahkan melamar pekerjaan yang sekiranya sesuai minatmu, dari sana kamu bisa mengeksplorasi spesialisasi apa yang cocok untuk karirmu.

Sumber : sproutsocial.com

Posted in: News