Haruskah saya fokus pada yang dalam atau luas [tertutup]

10

Saya telah menjadi pengembang profesional selama lebih dari setengah tahun dan telah kagum pada seberapa besar dunia ini benar-benar keluar dari perguruan tinggi. Saya terus belajar di waktu luang, tetapi saya bertanya-tanya di mana saya harus fokus?

FOKUS 1) Tumpukan pengembangan yang digunakan oleh perusahaan saya. Hasil tercepat dalam perkembangan saya sehari-hari. #Terus

FOKUS 2) Bahasa yang berbeda dengan paradigma yang sama. Lihat apakah saya dapat menggeneralisasi pengetahuan dan cara berpikir saya.

FOKUS 3) Bahasa berbeda, paradigma berbeda. Perluas batasan saya dan pelajari cara baru untuk melakukan sesuatu. #Broadest

Jika ada orang yang memiliki fokus yang berbeda, silakan letakkan di luar sana.

Bob Roberts
sumber

Jawaban:

18

Iya.

Saya akan mengatakan bahwa Anda perlu melakukan keduanya. Mulailah dengan # 1 karena hasilnya langsung, dan Anda belum melakukan ini terlalu lama. Tetapi Anda pasti perlu melakukan beberapa hal # 2 dan # 3.

Marcie
sumber
Rencana yang bagus, membuat diri saya segera lebih bermanfaat akan meningkatkan nilai saya di perusahaan sementara dua yang terakhir akan meningkatkan nilai saya sebagai pengembang pada umumnya.
Bob Roberts
Persis. Meskipun saya pikir Anda akan menemukan bahwa selama karier Anda, menjadikan diri Anda berharga sebagai pengembang secara umum juga akan meningkatkan nilai Anda di perusahaan. Imbalannya bisa beberapa tahun.
Marcie
1
Mungkin jawabannya harus "Keduanya", bukan "Ya". Melihat judul pertanyaan dan jawabannya, saya bingung.
Amr
1
Saya telah menemukan bahwa ketika saya belajar bahasa atau paradigma baru, saya menjadi lebih efektif di # 1 - saya percaya ini karena memiliki pengalaman yang lebih luas memberi Anda perspektif yang berbeda tentang bagaimana menyelesaikan masalah tertentu. Pelajaran yang sama dipelajari sebagai: Jika Anda hanya memiliki palu, setiap masalah mulai terlihat seperti paku.
Bryan Rehbein
25

Ketika orang-orang meminta nasihat karier kepada saya, pertanyaan Anda adalah salah satu pertanyaan pertama yang saya tanyakan kepada mereka. Saya tidak berpikir ada yang bisa menjawab pertanyaan ini untuk Anda; Saya pikir Anda harus memutuskan sendiri apakah fokus pada kedalaman atau luasnya lebih mungkin untuk memenuhi tujuan karir Anda.

Ketika saya terakhir kali mengubah tim, saya memiliki dua peluang: untuk bekerja di tim alat pengembang XBOX, atau untuk bekerja di tim kompiler C #. Saya menyadari bahwa itu turun ke kedalaman vs kedalaman. Pada tim XBOX saya bisa bekerja pada sistem keamanan suatu hari, sistem audio berikutnya, video, jaringan, antarmuka perangkat keras, apa saja. Tentu, beberapa orang ahli, tetapi semua orang harus tahu sedikit tentang segalanya. Di tim C # compiler saya bisa menyelam ke dalam satu bahasa dan satu kompiler dan sangat memahami semuanya secara mendalam.

Saya banyak memikirkannya dan memutuskan bahwa saya lebih cocok secara emosi untuk menjadi seorang ahli dalam satu hal daripada banyak dilettante pada banyak hal. Itu pilihan yang bagus untuk saya, tetapi mungkin itu bukan untuk Anda. Beberapa orang sangat sukses mengetahui sedikit dari segalanya.

Karenanya saran saya adalah membalikkan pertanyaan. Cari tahu orang seperti apa Anda, dan kemudian lihat apakah perusahaan Anda memiliki peluang untuk orang seperti Anda. Jika tidak, cari yang benar.

Eric Lippert
sumber
Di belakang siapa Anda, posting ini, benar-benar, epik. :)
ashes999
12

Menjadi spesialis dapat membuat Anda lebih mahal. Tetapi peluang kerja yang membutuhkan level tinggi akan terbatas, baik dalam jumlah mereka maupun secara geografis.

Menjadi seorang generalis mungkin membayar lebih sedikit tetapi membuka berbagai peluang kerja bagi Anda, berpotensi di seluruh dunia.

Juga untuk pekerjaan tingkat tinggi dan manajerial, lebih disukai memiliki seseorang yang berpengalaman dalam berbagai hal, teknik dan teknologi. Mengetahui tepi dan bisa melihat gambaran besar membuat Anda menjadi aset yang berharga.


sumber
Oh, saya bahkan tidak memikirkan masa lalu pekerjaan saya saat ini (meskipun saya berharap ini akan menjadi semacam tinggal jangka panjang).
Bob Roberts
3

Saya pikir pada tahap perkembangan Anda, mendapatkan kedalaman adalah prioritas pertama. Saya melihat terlalu banyak orang yang tahu sedikit tentang banyak hal tetapi tidak bisa melewati pekerjaan entry level karena semua pengetahuan mereka adalah entry level.

Jika saya ingin menjadi seorang spesialis, jelas, membangun kedalaman adalah pilihan pertama terbaik.

Jika saya ingin menjadi seorang generalis, membangun kedalaman terlebih dahulu (mencapai setidaknya tingkat menengah) dalam satu tumpukan dan kemudian bercabang ke bahasa lain. Jika Anda membangun kedalaman terlebih dahulu, Anda mungkin menemukan lebih mudah untuk membangun kedalaman dalam berbagai bahasa karena Anda memiliki lebih banyak konsep yang tersedia untuk Anda dan tahu lebih banyak tentang apa yang mungkin ingin Anda pelajari. Kemudian saya akan bercabang menjadi sesuatu yang lain. Kemudian kembalilah dan bangun kedalaman ke tingkat mahir, lalu cabut lagi dan pelajari lebih banyak hal yang sangat berbeda dari apa yang sudah Anda ketahui. Kemudian perluas kedalaman itu di area yang berbeda ke level menengah, pelajari hal lain lagi, dll.

Peringatan - Saya seorang spesialis jadi saya jelas mendukung kedalaman pengetahuan

HLGEM
sumber
1

Kedua opsi ada di tempatnya. Berfokus pada tumpukan pengembangan yang digunakan oleh perusahaan Anda akan membantu Anda dalam pekerjaan Anda, tetapi mempelajari tentang teknologi lain akan membantu Anda dalam karier Anda.

Pada akhir 1990-an, keterampilan COBOL sangat diminati oleh perusahaan yang perlu menyiapkan perangkat lunak mereka untuk tahun 2000. Tetapi siapa pun yang masih tahu hanya COBOL saat ini akan memiliki waktu yang jauh lebih sulit untuk mencari pekerjaan.

Dengan cara yang sama, teknologi saat ini akan usang jauh sebelum kebanyakan dari kita siap untuk pensiun, jadi mempelajari keterampilan dan teknologi baru sangat penting.

Bruce Alderman
sumber
0

Silakan belajar sesuatu seperti Haskell atau Lisp. Mempelajari bahasa fungsional benar-benar membuat saya memisahkan kode saya, membuatnya lebih mudah untuk debug secara keseluruhan. Satu-satunya masalah yang mungkin Anda temui adalah Anda tidak ingin kembali.

http://book.realworldhaskell.org/read/

http://lisperati.com/haskell/

http://learnyouahaskell.com/

Theo Belaire
sumber
Itu benar, belajar pemrograman fungsional, bagi saya, saya memilih OCaml atau F #
0xFF
F # akan terintegrasi dengan baik dengan C # atau hal-hal .net lainnya yang sedang Anda kerjakan. Hanya sesuatu yang perlu diingat. Clojure bekerja dengan baik dengan Java.
Theo Belaire