Haruskah saya menjadi programmer yang baik segera setelah lulus?

28

Kemungkinan Gandakan:
Saya telah lulus dengan gelar Ilmu Komputer tetapi saya tidak merasa menjadi seorang programmer ahli

Saya baru saja lulus dari universitas, dan sejak itu saya bergabung dengan tim pengembangan di mana saya sejauh ini merupakan pengembang yang paling tidak berpengalaman dengan mungkin memiliki beberapa persyaratan kerja di bawah ikat pinggang saya. Sementara itu, anggota tim lainnya mengalami 5-10 tahun pengalaman.

Saya adalah seorang siswa yang sangat baik dan seorang programmer yang cukup baik ketika datang untuk tugas botol dan tes. Saya telah bekerja pada beberapa proyek dengan sukses, tetapi sekarang saya bekerja dengan basis kode yang jauh lebih besar, dan kurva belajarnya jauh lebih tinggi.

Saya bertanya-tanya berapa banyak pengembang lain memulai karir mereka dalam tim dan pergi seperti mereka tersedot. Kapan ini berubah? Bagaimana saya bisa mempercepat prosesnya? Para senior saya membantu saya tetapi saya ingin menjadi hebat dan menunjukkan nilai saya sekarang.

dustyprogrammer
sumber

Jawaban:

50

Hal yang menarik tentang pengembangan perangkat lunak adalah bahwa tidak masalah seberapa baik Anda - selalu ada seseorang yang lebih baik atau setidaknya cukup berbeda untuk tetap mengajarkan Anda sesuatu. Juga tidak jarang melihat kode yang ditulis beberapa bulan yang lalu dan menganggapnya payah, terlepas dari tingkat pengalaman Anda.

Bagi saya, begitu saya menyadari kesenjangan antara keterampilan saya dan keterampilan rekan kerja saya, saya mulai belajar seperti yang belum pernah saya pelajari sebelumnya - membaca kode orang lain, posting blog, buku, memperhatikan bagaimana rekan kerja saya menyelesaikan banyak hal, dll. Universitas mempersiapkan saya untuk ilmu komputer, tetapi tidak benar-benar untuk pengembangan perangkat lunak. Ini hampir 4 tahun kemudian, dan saya adalah seorang pengembang perangkat lunak yang jauh lebih kuat daripada sebelumnya. Jadi, tetaplah di sana dan pelajari sebanyak mungkin dari orang-orang di sekitar Anda. Itu akan menjadi lebih baik.

Adam Lear
sumber
+1. Saya juga sangat suka menjadi orang yang mengisap sesuatu dalam tim, dan itu memaksa saya untuk menyesuaikan pengetahuan saya.
27
+1University prepared me for computer science, but not really for software development.
George Marian
1
Saya harap saya memiliki pengalaman yang sama ketika saya menyelesaikan uni dan mendapatkan pekerjaan pertama saya (oh tunggu, kedua) dalam bisnis pemrograman.
gablin
4
@ George: Apa yang lebih buruk adalah bahwa banyak pengembangan perangkat lunak di dunia nyata jatuh di bawah payung "IT", yang biasanya bermuara menampar antarmuka pengguna yang jelek ke tabel database. :( Bukan sesuatu yang bisa disiapkan universitas untuk Anda.
Adam Paynter
@adam Tentu Saja. Meskipun saya memahami perlunya kadang-kadang, pendekatan "cukup baik" hanya membuat saya gila.
George Marian
23

Tidak. Saya belajar lebih banyak tentang pemrograman / rekayasa perangkat lunak dalam 6 bulan pertama bekerja setelah meninggalkan universitas daripada pada tahun-tahun sebelumnya. Namun, itu tidak berarti universitas hanya membuang-buang waktu, itu mempersiapkan pikiran saya dan memberikan latar belakang pengetahuan untuk membangun.

Kemudian lagi, melihat ke belakang sekarang, saya masih tidak benar-benar tahu apa yang saya lakukan selama 6 bulan.

Dan Dyer
sumber
4
Kata baik, profesor saya selalu berkata, "Ada perbedaan besar antara industri dan akademisi." Sulit dipercaya sampai Anda keluar ke dunia nyata dan menyadari ada sebenarnya!
Chris
Ini. Inilah sebabnya mengapa magang, tidak dibayar atau apa pun yang Anda dapatkan, sangat berharga. Sial, bahkan magang non-pemrograman jauh lebih berharga dalam pengalaman daripada kelas tunggal apa pun bisa, karena Anda belajar beberapa perangkap dari -bekerja-dengan-orang-.
Kzqai
10

Pendidikan memberi Anda dasar untuk membangun, tetapi itu tidak akan mempersiapkan Anda untuk pengembangan perangkat lunak dalam kehidupan nyata. Itu datang dengan pengalaman. Saya jelas berada dalam situasi yang sama dengan Anda ketika saya pertama kali memulai pemrograman untuk suatu pekerjaan. Selama Anda terus belajar, membaca buku, posting blog, dan menerapkan apa yang Anda pelajari dalam pekerjaan Anda, Anda akan meningkat. Kuncinya adalah menerapkan apa yang Anda pelajari. Hanya membaca tidak akan membantu, Anda harus secara aktif menerapkan pengetahuan baru.

ysolik
sumber
+1 untuk menerapkan apa yang Anda pelajari. Saya lupa menyebutkan bagian itu. :)
Adam Lear
7

Saya benar-benar mengira begitu, tetapi ternyata tidak.

Percayalah, pada titik tertentu dalam karir Anda, Anda akan kembali dan mengerjakan beberapa kode yang Anda tulis, tetapi belum menyentuh selama bertahun-tahun dan sangat ingin bahwa tidak ada pengembang profesional lain yang pernah melihat kode itu atau tahu Anda menulisnya. Itu berarti Anda sedang tumbuh.

JohnFx
sumber
4

Dalam beberapa hal, mengambil bahasa pemrograman sama seperti mengambil bahasa alami. Anda dapat mempelajari teori dalam jumlah cukup di sekolah. Anda belajar tata bahasa dan elemen dasar kosa kata, dan Anda pikir Anda cukup baik, sampai Anda menemukan diri Anda dalam percakapan nyata dengan penutur asli, dan kemudian Anda benar-benar tersesat.

Cara Anda benar-benar mempelajari bahasa tersebut, sampai pada titik di mana Anda dapat berbicara sendiri dengan penutur asli, adalah dengan benar-benar berbicara dalam bahasa tersebut, setiap jam setiap hari. Ini biasanya berarti pergi ke suatu tempat di mana itu diucapkan. Dan saat itulah hal yang menarik terjadi. Meskipun apa yang Anda pelajari di sekolah tidak berharga, di dalam dan dari dirinya sendiri, di jalan-jalan di negara asing, itu memberi Anda landasan teori yang bagus dan solid yang membuat belajar bahasa yang sebenarnya jauh lebih mudah. (Setidaknya itu adalah pengalaman saya dengan bahasa Spanyol.)

Pemrogramannya juga sama. Apa yang Anda pelajari di sekolah tidak mempersiapkan Anda untuk pekerjaan yang harus Anda lakukan sebagai programmer sejati, tetapi (dengan asumsi Anda berada di sekolah yang kompeten yang tidak membodohi semuanya demi kepentingan popularitas) itu membantu mempersiapkan pikiran Anda sehingga ketika tiba saatnya untuk benar-benar belajar menjadi pembuat kode yang baik, konsep dasar yang Anda butuhkan sudah ada. (Setidaknya itu adalah pengalaman saya dengan pemrograman.) :-)

Mason Wheeler
sumber
2
Jawaban yang bagus, tetapi saya tidak akan mengatakan bahwa "apa yang [saya] pelajari di sekolah tidak berharga". Namun saya tahu apa yang Anda tuju.
gablin
4

Banyak programmer yang baik keluar dari gelar ilmu komputer universitas, kebanyakan yang sama yang masuk ke dalamnya.

Hal tentang ilmu komputer adalah bahwa, seperti yang telah dibahas orang di atas, tidak sama dengan pemrograman. Banyak hal yang saya pelajari di universitas saya pada dasarnya tidak siap untuk-ada banyak hal yang tampak seperti omong kosong akademik pai di langit ketika saya mendengar kuliah tentang hal itu, tetapi beberapa tahun kemudian saya berharap saya telah lebih memperhatikan hal itu karena saya akhirnya belajar banyak hal lagi yang saya anggap tidak berguna. Saya benar-benar berpikir bahwa seseorang dapat menggunakan melakukan beberapa tahun pemrograman di lingkungan komersial sebelum memulai gelar dalam ilmu komputer jika itu yang ingin Anda lakukan.

Juga saya pikir sering di universitas Anda tidak perlu tahu cara belajar. Banyak hal yang saya pelajari secara tidak sengaja atau dengan belajar dari pengembang lain adalah hal-hal yang diketahui oleh dosen dan mahasiswa pascasarjana saya di universitas, tetapi saya tidak tahu akan berguna untuk memahami mereka. Bertanya kepada orang-orang tentang masalah yang Anda hadapi saat Anda belajar melakukan sesuatu (dan ini berlaku untuk apa pun juga) membuat proses belajar lebih lancar dan tidak terlalu menyakitkan. Sebagian besar hal yang dapat Anda pelajari untuk diri sendiri atau dari orang lain - mengingat bahwa banyak pelajaran yang telah saya pelajari untuk diri sendiri telah dipelajari dari kesalahan menyakitkan saya, saya akan memilih untuk belajar dari orang lain ketika saya dapat ...

glenatron
sumber
2

Saya akan mengutip posting Brian Hurt

Ilmu dan pemrograman komputer adalah hal yang terpisah

yang juga merujuk pada pemrograman Sarjana Joel Spolsky dan artikel brilian berjudul Who Killed the Software Engineer

Semua diskusi ini menggambarkan realitas dengan cukup baik dan, menurut saya, jawab pertanyaan Anda sebagai "Tidak", karena universitas tidak akan menjadikan Anda seorang programmer yang baik. Anda harus menjadikan diri Anda seorang programmer yang baik sendiri.

Saya tidak memiliki gelar CS, tetapi saya telah memprogram dan mengembangkan perangkat lunak secara profesional selama 8 tahun sekarang. Semua keterampilan pemrograman yang saya miliki, saya telah belajar sendiri.

mloskot
sumber
1

Tidak sama sekali, saya berpura-pura menjadi programmer dan mempelajarinya dengan cara yang sulit. Saya mendapatkan pelanggan pertama saya sebagai freelancer dan berjuang sangat buruk dengan C / C ++, dan akhirnya menang. Saya ingat butuh beberapa jam untuk memahami bahwa melakukan malloc pada sebuah struct tidak cukup untuk mengalokasikan juga memori untuk pointer dalam struct.

martjno
sumber
Apa gelar awal Anda? Apakah kerja keras Anda akhirnya terbayar?
rwong
Saya seorang insinyur elektronik, saya cukup bagus di Matalb, tetapi dengan sedikit pengetahuan tentang C / C ++ dan Java. Percaya atau tidak, pekerjaan pemrograman nyata saya yang pertama adalah menulis driver untuk Windows CE dan mengirimkannya ke perangkat ini: eurotech.com/EN/innovation.aspx?pg=wearable . Saya mendapat sedikit bantuan dari perusahaan, tetapi pada dasarnya saya bekerja sendirian di rumah, kehilangan banyak waktu untuk hal-hal yang sangat kecil. Tetapi Anda bertaruh saya tidak melupakan apa pun! Saya masih belajar tetapi sekarang saya memiliki startup yang melakukan program yang sangat besar ... jadi terbayar.
martjno
1

Saya adalah seorang programmer yang cukup baik ketika saya lulus universitas. Saya juga memiliki tawaran pekerjaan yang bagus berbulan-bulan sebelum saya lulus (yang saya bisa menolaknya untuk pekerjaan yang lebih keren).

Kuncinya adalah bahwa saya telah melakukan banyak pekerjaan sebagai penghobi, dengan pekerjaan pengembangan web selama tahun sekolah, dan melakukan magang musim panas yang berkualitas dengan IBM ("tim kecepatan ExtremeBlue" dan program ExtremeBlue yang tepat). Pengalaman preprofesional yang baik akan membuat Anda melewatkan sedikit hal entry-level setelah Anda lulus.

(Yang mengatakan, saya masih jauh lebih baik dalam pemrograman dalam enam bulan pertama saya atau lebih di Pekerjaan Nyata (tm). Bukan berarti saya selesai setelah itu, tetapi saat itulah ia benar-benar menunjukkan banyak.)

pengguna2348
sumber
1

Saya bisa memberi Anda jawaban terbalik, karena saya langsung dari sekolah menengah ke tempat kerja. Saya mulai bekerja sebagai programmer yang berpikir sendiri, dan saya hampir segera menjadi produktif dalam proyek yang diberikan majikan saya kepada saya. Saya memiliki beberapa rekan kerja yang memiliki gelar ilmu komputer baru, dan mereka tidak produktif sama sekali.

Seiring waktu, beberapa rekan kerja yang telah lulus meningkatkan keterampilan mereka dengan sangat, sementara yang lain tidak, dan itu tidak terkait dengan IPK mereka.

Wizard79
sumber
1

Universitas tidak mengajarkan Anda untuk menjadi programmer dunia nyata. Saya kira ini mirip dengan banyak pekerjaan dibandingkan dengan program gelar mereka. Saya tidak akan mengatakan bahwa saya tidak mendapatkan apa - apa dari gelar saya, tetapi itu jauh lebih tidak berguna daripada menghabiskan 4 tahun benar-benar bekerja.

Tapi tidak apa-apa. Setiap pekerjaan yang saya mulai saya mungkin kurang memenuhi syarat untuk. Jika Anda yakin dengan kemampuan Anda dan berdedikasi untuk belajar maka Anda dapat meningkatkan dan melakukan pekerjaan itu.

RasionalGeek
sumber
1

Saya tidak berpikir saya telah mempelajari fakta tentang pemrograman secara umum yang saya tidak setidaknya terkena di perguruan tinggi. Tentu, saya telah mengambil bahasa pemrograman baru di sana-sini, mempelajari API baru, basis kode baru, dan alat-alat baru, tetapi semua konsep umum ada di luar sekolah.

Apa yang Anda lakukan dengan pengalaman adalah semacam naluri yang mempercepat cara Anda mempersempit bug yang dilaporkan, atau mengarahkan Anda langsung ke cara paling kuat untuk menulis kode baru. Ketika Anda baru, Anda masih dapat memperbaiki bug yang sama, atau mengimplementasikan fitur yang sama, tetapi itu membutuhkan waktu lebih lama dan Anda lebih mungkin harus kembali dan memperbaikinya untuk masalah yang tidak terduga.

Itulah mengapa penting untuk mendapatkan kolega yang lebih berpengalaman untuk membimbing Anda. Pergi ke mereka dan berkata, "Ini adalah bagaimana saya pikir ini harus ditangani. Bisakah Anda memikirkan cara yang lebih baik?" Itu memberi Anda manfaat dari pengalaman mencari tahu sendiri, dan belajar dari pengalaman orang lain.

Karl Bielefeldt
sumber
0

Saya adalah programmer yang lebih baik daripada guru saya di universitas.

Kemudian saya belajar praktik pemrograman yang bagus ketika saya mulai bekerja.

mouviciel
sumber
0

Seorang programmer yang baik selalu belajar ... belajar cara yang berbeda untuk melakukan ini atau cara yang lebih baik untuk melakukannya. Apa pun yang harus diajarkan oleh rekan programmer Anda, saya akan mendengarkan.

Jeremy
sumber
0

Salah satu hal yang tidak ada yang disebutkan adalah bahwa masalah yang Anda berikan untuk dipecahkan di sekolah sengaja dibuat bodoh untuk membuatnya mudah untuk melihat bagaimana menggunakan teknik khusus yang sedang Anda pelajari. Anda biasanya tahu teknik apa yang seharusnya Anda gunakan untuk masalah khusus itu karena itu adalah yang baru saja Anda bahas di kelas. Proyek semester penuh sedikit b, tetapi masih terbatas dalam ruang lingkup dan kompleksitas dibandingkan dengan dunia nyata.

Proyek kehidupan nyata berantakan dan berkembang selama bertahun-tahun (perangkat lunak kami berusia lebih dari sepuluh tahun dan telah berubah terus-menerus untuk saat itu) dan tersentuh oleh banyak orang yang berbeda dengan berbagai tingkat keterampilan. Anda mungkin masih menyentuh versi database 10 tahun dan tidak dapat menggunakan teknik SQL yang lebih baru sama sekali. Anda mungkin menggunakan alat yang hebat 8 ​​tahun yang lalu, tetapi Anda tidak belajar di sekolah karena itu digantikan oleh sesuatu yang lain. Tetapi perusahaan tidak mau membayar selama berbulan-bulan upaya pengembangan untuk benar-benar menggantinya.

Anda terjebak di dunia di mana waktu untuk berkembang sangat dibatasi oleh apa yang akan dibayar oleh klien dan apa, tenggat waktu kadang-kadang (oke biasanya).

Anda mungkin dibatasi untuk menggunakan alat yang diminta klien secara khusus. Anda mungkin memiliki persyaratan yang tidak jelas atau yang tidak masuk akal. Anda mungkin berurusan dengan domain bisnis yang sangat kompleks yang tidak Anda ketahui dan dengan demikian bahkan tidak dapat menilai jika persyaratannya masuk akal.

Masalah dunia nyata sama sekali tidak sebanding dengan masalah bersih bagus yang mereka berikan di sekolah. Jika Anda tidak bingung dan merasa tidak cocok untuk sebagian besar tahun pertama, saya akan mengkhawatirkan Anda.

HLGEM
sumber
0

Lebih buruk dari itu ... setelah beberapa tahun di pekerjaan ini, Anda akan merasa cukup baik tentang apa yang telah Anda pelajari. Tetapi kemudian Anda akan berganti pekerjaan, dan perusahaan baru Anda (atau mungkin bahkan grup baru dalam perusahaan yang sama) akan melakukan hal-hal yang berbeda, dan Anda akan merasa seperti Anda kembali ke titik awal. Akan ada kode yang berbeda, standar pengkodean yang berbeda, alat yang berbeda, dan proses yang berbeda, dan setelah dua hari Anda akan bertanya-tanya apakah Anda benar-benar mempelajari sesuatu di pekerjaan terakhir Anda. Anda akan mendapatkan perasaan ikan-keluar-air lebih cepat kali ini, tetapi masih akan memakan waktu lebih lama dari yang Anda inginkan.

Ada periode adaptasi setiap kali Anda berganti pekerjaan. Semakin pendek saat Anda mendapatkan pengalaman, tetapi selalu ada.

Caleb
sumber