it-swarm-id.com

Apa yang harus dilakukan ketika pengkodean mulai terasa membosankan, seperti semua itu sama saja?

Saya mulai pemrograman pada usia 6 pada Commodore 64. Sekarang saya berusia 28, dan saya harus menyelesaikan 4 kursus dari gelar pertama di bidang Ilmu Komputer.

Saya mulai bosan dengan menulis kode setelah bertahun-tahun. Saya telah mengambil kursus dalam Ilmu Komputer dalam bahasa komputer teoritis dan 10 tahun pengkodean sistem C di bidang keamanan jaringan dan saya hanya tidak mendapatkan stimulasi dari menulis kode.

Saya dapat menulis kode dalam C, C++, Python atau bahasa apa pun yang Anda inginkan, tetapi saya tidak bisa merasa senang dengan apa yang saya lakukan. Saya tidak dapat merasakan tantangan apa pun. kode multi-threaded tertulis, HTTPS MITM proxy dan aplikasi WSGI tanpa perlu keahlian algoritma tertentu.

Saya merasa bahwa semua hal baru ini sama saja, dengan abstraksi atau otomatisasi yang lebih sederhana (atau lebih) di dalamnya, tetapi semuanya terdengar sama bagi saya. Lagi dan lagi. Bahasa yang dapat dikomputasi adalah semua Turing yang dapat dihitung, jadi pengkodean hanya merupakan replikasi dari pola yang sama dalam subset ini dari fungsi parsial.

Dalam pekerjaan sehari-hari saya, saya merasa bosan bahkan dengan mencari bug, atau melakukan benchmark pada kode, atau memperbaiki masalah dengan perpustakaan X, Y, Z.

Saya orang yang sangat ingin tahu. Saya selalu dirangsang oleh sesuatu. Tapi saya tidak bisa bahkan ketika saya melihat kode yang bagus. Saya merasa lebih nyaman dalam cara kerja.

Apakah ini waktu untuk membuat kemajuan dalam karir saya? Atau untuk mendapatkan hal-hal yang lebih menantang dalam Ilmu Komputer? Mungkin mendapatkan gelar utama dalam CS?

Saya sudah mulai membaca buku pertama saya tentang manajemen proyek "Peopleware" dan saya semakin tertarik pada siklus hidup pengembangan perangkat lunak. Apa yang Anda sarankan untuk lakukan?

Mungkin mencoba masuk ke Google atau Microsoft atau Apple seperti yang dilakukan beberapa teman saya. Atau mungkin jalur karier yang lebih manajerial. Saya juga mencoba mencari buku bagus tentang aturan komunikasi dan "orang-orang kepribadian "untuk mempersiapkan saya untuk kemungkinan masuk ke manajemen.

Ada saran?

PS: Saya punya banyak minat, Saya tidak tertekan :) Saya suka gunung, trekking, mengambil pemotretan dan saya seorang pendaki olahraga, saya suka berenang dan olahraga secara umum, kadang-kadang Saya berlari, sebenarnya saya membaca buku tentang cerita negara saya (Italia) dari AC hingga hari ini dan saya suka perjalanan (musim panas ini saya membuat 4000 KM untuk melihat banyak tempat di Spanyol dan naik ke dalamnya, semuanya hanya dalam 3 minggu (bukan liburan tapi maraton, trekking 24 km membuat hernia saya cedera), saya suka teater dan kehidupan secara umum.


Terima kasih untuk semua, memikirkan semua jawaban memberi saya kesempatan untuk membuat jalan saya lebih jelas.

Untuk tujuan ringkasan, kami dapat menggeneralisasi tentang jawaban yang paling banyak dipilih.

Pertama-tama orang-orang memilih keharusan untuk menjadikan pekerjaan kami sebagai pendukung hidup Anda dan bukan satu-satunya alasan untuk tetap hidup (ini bukan kasus saya), jadi, jika Anda hanya beralasan hidup jika bekerja Anda datang cepat ke situasi yang sangat depresi. Seperti yang dikatakan peopleware, Wina tidak menunggu Anda :)

Setelah pengingat ini orang menyarankan untuk:

  • tingkatkan kerumitan teknis Saya sebenarnya sedang mengusahakan untuk meningkatkan tantangan dan menjadi kurang bosan tentang hal itu.
  • ubah bidang keahlian menjadi bidang non teknis yang mencoba menjadi manajer atau membuat pengasuh maju dalam bidang non teknis yang terkait dengan pekerjaan Anda.
  • ubah bidang keahlian dalam jenis lain dari tantangan teknis, apakah Anda seorang programmer sistem? cobalah untuk tidak terlalu bosan mengembangkan aplikasi untuk manusia sehingga Anda dapat merasa lebih nyaman melihat orang menggunakan perangkat lunak yang bermanfaat
  • membuat kemajuan dalam gelar ilmu komputer Anda di jalur akademik Anda

Untuk tujuan saya jawaban yang tepat adalah untuk maju dalam ilmu komputer, untuk perasaan saya, saya pikir pemrograman bukan satu-satunya cara ilmu komputer untuk mendapatkan dan saya pikir saya bisa merasa lebih baik mendapatkan jalur lain dalam ilmu komputer yang berbeda dari pengasuh rekayasa perangkat lunak.

33
boos

Itu pasti akan terjadi.

Jika minat utama Anda terletak pada kode, itu akan membuat Anda gila, frustrasi dan tertekan sesekali, suatu hari secara permanen.

Dapatkan tertarik untuk mengembangkan produk dan senang melihat orang menggunakannya. Itulah tujuan akhir penulisan kode, kan? Kode hanyalah alat untuk menyelesaikan sesuatu yang lebih besar.

49
user8685

Saya akan menjawab pertanyaan Anda dengan pertanyaan ...

Apakah pekerjaan programmer untuk kode atau untuk memecahkan masalah?

Anda mengatakan Anda bosan karena menulis kode sepertinya adalah sesuatu yang telah Anda lakukan sebelumnya, seperti setiap bit kode telah dilakukan sebelumnya.

Tetapi bagaimana Anda sampai pada kesimpulan bahwa kode it adalah kode yang harus ditulis? Sebagian besar masalah memiliki ratusan cara untuk menyelesaikannya, tetapi hanya ada satu terbaik cara.

Jika Anda benar-benar tidak menemukan tantangan, keingintahuan, atau minat dalam menemukan solusi, atau dalam pemecahan masalah, maka Anda benar-benar harus melakukan perubahan. Meskipun saya tidak yakin itu akan menjadi manajemen pengembangan perangkat lunak. Saya tidak ingin bekerja untuk manajer perangkat lunak yang merasa apatis tentang pemecahan masalah. Mungkin seharusnya hanya industri yang berbeda, dengan serangkaian masalah yang berbeda.

Jika Anda menyukai pemecahan masalah tetapi tidak suka coding, mungkin Anda tidak menemukan cukup masalah untuk dipecahkan. Setiap kali pekerjaan saya mulai terasa membosankan, saya yakin ada masalah yang harus dipecahkan. Mengapa saya melakukan pekerjaan yang sibuk? Solusi apa yang bisa saya berikan yang akan menghilangkan pekerjaan yang sibuk dari pekerjaan saya? Itulah keindahan pemrograman.

21
Nicole

Kedengarannya bagi saya seperti Anda telah melakukan banyak [~ # ~] banyak [~ # ~] pemrograman prosedural dan menjadi bosan dengan itu - yang saya sepenuhnya memahami. Menentukan langkah demi langkah adalah hampir sama di setiap bahasa prosedural.

Karena sepertinya Anda memiliki banyak kegiatan non-kerja, saya akan menyarankan untuk mempelajari beberapa konsep yang tidak menyerupai apa yang Anda ketahui sekarang, dan - ya - ada banyak, tetapi untuk memulai saya akan merekomendasikan Haskell karena itu adalah

  • fungsional - Anda menulis fungsi yang Anda kumpulkan untuk membuat fungsi yang lebih besar pada akhirnya menghasilkan sebuah program.
  • evaluasi malas - alih-alih menentukan langkah demi langkah, runtime menarik nilai yang diperlukan sesuai kebutuhan. Ini berarti bahwa sangat umum untuk berurusan dengan daftar tak terbatas dalam program Anda.
  • pencocokan pola - alih-alih memiliki struktur besar jika, Anda mencantumkan pola seperti apa parameternya, dan runtime memilih pola yang sesuai dan mengeksekusi kode yang sesuai.

Berikut ini adalah fungsi penyortiran lengkap:

qsort []     = []
qsort (x:xs) = qsort (filter (< x) xs) ++ [x] ++ qsort (filter (>= x) xs)

(Lihat http://www.haskell.org/haskellwiki/Introduction#Ease_of_understanding untuk penjelasan)

Jika semua ini baru bagi Anda, saya akan mendorong Anda untuk mulai bertualang.

Semoga berhasil - bersenang-senanglah.

9
user1249

Komputer adalah konsumen yang membosankan. Ketika Anda mengkode mesin ke mesin interaksi sepanjang hari, mesin mereka bereaksi sama setiap saat. Bagus untuk menyelesaikan proyek, tetapi membosankan setelah beberapa saat. Ini benar-benar membantu untuk memecah monoton dengan sesuatu yang tidak terkait mesin secara langsung.

Saya menemukan inspirasi dengan fotografi, dan mempelajari pengalaman pengguna. Pikirkan tentang itu, bagaimana mungkin Apple dapat membuat banyak orang mengeluarkan air liur untuk diri mereka sendiri untuk hal berikutnya yang keluar dari Santa Clara ketika penjelajah lain mendapat tanggapan hangat suam? Apakah Anda serius berpikir bahwa = Android akan mendapat respon sebesar-besarnya jika Apple tidak tahan merilis iPhone di Verizon begitu lama? Saya akan memberi Anda petunjuk besar: itu bukan tentu saja bahwa produk-produk ini sangat maju secara teknis.Ada komponen psikologis yang besar untuk mania.

Memahami desain produk dan pengalaman pengguna adalah sesuatu yang banyak dari kita harus pelajari. Apa yang membuat seseorang berdetak? Bagaimana Anda mendesain sesuatu yang cukup keren untuk membuat orang meninggalkan solusi yang sudah ada? Bagaimana Anda membuat kultus teknologi Anda sendiri seperti Apple (bukan bahwa saya bercita-cita untuk menjadi pemimpin kultus keberatan Anda)? Ini semua adalah pertanyaan yang sangat menarik dan merangsang. Mereka memberi umpan balik ke dalam pengembangan perangkat lunak --Tapi sekarang fokus Anda berbeda.

8
Berin Loritsch

Mungkin Anda hanya tidak mendapatkan tantangan teknis yang cukup?

  • Coba sistem berdistribusi tinggi. Bisakah Anda dengan mudah membuat kode sistem untuk mengumpulkan log dari 1000 komputer dalam sebuah cluster, dengan presisi mikrodetik?
  • Berusaha sekuat tenaga. Kemas semua proses Anda dalam satu putaran mesin.
  • Coba penglihatan komputer atau pemrosesan gambar. Keterampilan matematika, keterampilan rumus-ke-kode, keterampilan pengoptimalan semuanya berguna.
  • Coba AI. Lihat bagaimana komputer IBM memainkan Jeopardy? Mungkin beberapa kecanggihan algoritmik terlibat dalam bidang ini.

Dll. Tentu saja, bersiaplah untuk awalnya berpenghasilan lebih rendah di bidang di mana hal-hal itu menantang bagi Anda, tidak membosankan.

7
9000

Saya menemukan motivasi dengan pindah ke bidang yang tidak memiliki solusi "benar", saya menulis alat editorial dan pekerjaan saya sebagus pengguna merasa bermanfaat. Saya dapat bertemu banyak orang non-teknis dan bersama-sama kami mencoba untuk memasak cara untuk meningkatkan perangkat lunak yang mereka butuhkan untuk bekerja dengan, saya menemukan interaksi manusia dan kebutuhan untuk terus-menerus mengubah perspektif sepenuhnya menyenangkan dan tiba-tiba pengkodean tidak sangat membosankan lagi.

Saya tahu ini bukan untuk semua orang, beberapa orang menangani rasa tidak aman karena tidak memiliki ukuran objektif kualitas pekerjaan Anda yang lebih sulit daripada yang lain.

Tetapi ini adalah opsi yang mungkin patut dipertimbangkan.

4
biziclop

Ya, kadang-kadang saya merasa bahwa seseorang pada kenyataannya menulis jenis kode yang sama berulang-ulang. Tapi tidak, saya belum bosan dengan itu. Mengapa demikian?

Karena pada dasarnya saya senang menemukan cara-cara baru pengkodean, dan cara-cara baru, ringkas, dan elegan untuk mengekspresikan sesuatu dalam kode. Ada dua cara yang bisa dilakukan untuk mempelajari hal ini: Mempelajari bahasa pemrograman baru, atau mempelajari perpustakaan atau kerangka kerja baru.

Belajar bahasa pemrograman baru menjadi lebih mudah bagi saya dengan setiap bahasa yang saya coba. Dan setelah beberapa waktu, itu berhenti menjadi sangat menarik. Tapi kemudian, sekitar satu atau dua tahun yang lalu, bagaimanapun, saya akhirnya harus pemrograman fungsional, yang sebagai paradigma pemrograman cukup berbeda dari OOP menjadi tantangan baru. Saya merasa ini memiliki benar-benar memperkaya kemampuan pemrograman saya dan memberi saya perspektif baru dari mana saya bisa melihat masalah pemrograman. Sekarang saya mencoba menemukan paradigma pemrograman yang berbeda, bukan hanya bahasa pemrograman yang berbeda. Itu tantangan yang lebih besar.

Kedua, mempelajari pustaka, kerangka kerja, atau API baru: Seperti yang Anda katakan dengan benar, kerangka kerja baru sering tidak menyelesaikan masalah baru; mereka hanya menyelesaikannya dengan cara yang berbeda, mis. dengan menambahkan lapisan abstraksi tambahan. Ini mungkin dimungkinkan karena komputer saat ini lebih kuat daripada mesin sebelumnya; atau, mungkin, karena kita secara keseluruhan menjadi lebih baik dalam menulis perangkat lunak.

Bit terakhir ini mungkin perlu dijelaskan. Saya akan memberikan contoh: Untuk waktu yang paling lama, saat mempraktikkan keterampilan pemrograman saya, saya tidak pernah benar-benar memikirkan serius untuk pemeliharaan kode yang saya tulis. Sejak saya mulai pemrograman pada suatu pekerjaan, perspektif saya telah berubah. Menulis kode yang dapat dikelola sering kali sangat penting dalam lingkungan perusahaan, karena setiap jam yang Anda habiskan untuk pengkodean membutuhkan biaya uang nyata, sehingga perusahaan akan berusaha mempertahankan kode yang ada jika memungkinkan, dan kemungkinan besar Anda pada akhirnya harus melewati kode Anda ke penggantinya.

Saya menemukan bahwa menulis kode yang bisa dipelihara sebenarnya merupakan tantangan besar. Ini sering kali berarti bahwa Anda tidak akan menulis kode Majelis yang sangat pintar dan sangat dioptimalkan (ingat Kisah Mel - Programmer Nyata , ada siapa? ;-) Sebaliknya, Anda lebih mungkin mengambil keuntungan abstraksi. Semakin dekat Anda bisa mendapatkan kode Anda ke beberapa aturan bisnis dan domain masalah, semakin baik. Di situlah semua perpustakaan baru masuk. Jika mereka memungkinkan Anda untuk menulis kode sehingga bersih, jelas, ringkas, dan mudah dimengerti, maka itu hal yang baik.

Maaf jika jawaban ini agak panjang. Saya mencoba untuk menunjukkan dari mana motivasi saya dalam pemrograman berasal ... dan saya akan tertarik untuk mengetahui apakah suatu saat Anda merasakan hal yang sama, dan apakah (dan mengapa) motivasi Anda akhirnya pergi juga.

4
stakx

Jika Anda bosan menulis kode, jika itu tidak menggairahkan Anda, jika itu membuat Anda bosan, mungkin ini saatnya untuk perubahan. Anda bisa melihat pindah ke posisi manajemen, dan mengelola dan membimbing coders lain dengan pengalaman bertahun-tahun. Atau coba pindahkan ke samping ke arsitektur sistem, di mana Anda dapat merancang dan merencanakan sistem dan orang lain akan melakukan sebagian besar implementasinya.

Atau, Anda dapat beralih karier sepenuhnya, ke sesuatu yang sama sekali tidak ada hubungannya dengan komputer. Pernahkah Anda bertanya pada diri sendiri apa pekerjaan impian Anda, jika seseorang bisa memberikannya kepada Anda?

Mulai bermain dengan mikrokontroler. Ini adalah aplikasi bakat pemrograman yang paling menyegarkan dan menarik yang dapat saya pikirkan.

3
Rob S.

Kedengarannya seperti titik awal dari latar belakang kami sama karena kami berdua mulai pemrograman tentang usia 6 pada mesin yang sama dan keduanya masuk dan keluar dari pemrograman karena berbagai alasan. Tidak ada gelar saya yang ada hubungannya dengan pemrograman - Saya memiliki semua gelar musik - meskipun saya telah mengambil beberapa kursus ilmu komputer tingkat pascasarjana.

Anda benar, saya pikir, dalam mengamati bahwa pemrogram sering memecahkan masalah yang sama berulang-ulang dan bahwa "baru" semua didasarkan pada "yang lama." Bahwa Anda menyadari fakta ini adalah untuk kredit Anda; terlalu banyak pengembang dan pebisnis melihat teknologi baru sebagai sepenuhnya terputus dari yang lama.

Jadi, memecahkan masalah semacam itu tidak menarik bagi Anda. Apa yang menarik? Apakah Anda suka pemecahan masalah secara umum? Mungkin hidup sebagai pengembang perangkat lunak "bisnis" bukan untuk Anda.

Saya tahu saya telah memberikan lebih banyak pertanyaan daripada jawaban, tetapi saya berharap bahwa menjawab pertanyaan-pertanyaan ini akan memberikan beberapa wawasan ke arah yang harus Anda ambil.

2
Andrew

Kedengarannya bagi saya seperti Anda terjebak. Anda berada dalam situasi yang tidak Anda inginkan dan Anda tidak tahu bagaimana keluar dari situ. Saran saya sederhana: lakukan sesuatu yang berbeda hanya demi melakukan sesuatu yang berbeda. Bahkan jika itu tidak menyelesaikan masalah Anda, itu mungkin akan membuat Anda melepaskan diri.

Saya dapat menulis kode dalam C, C++, Python atau bahasa apa pun yang Anda inginkan, tetapi saya tidak bisa merasa senang dengan apa yang saya lakukan. Saya tidak dapat merasakan tantangan apa pun. kode multi-threaded tertulis, HTTPS MITM proxy dan aplikasi WSGI tanpa perlu keahlian algoritma tertentu.

Jangan anggap ini cara yang salah (ini adalah pencapaian yang layak), tetapi ini bukan daftar komprehensif dari semua masalah yang menantang dan menarik dalam pemrograman. Masih ada banyak masalah yang menantang untuk dipecahkan. Masalah yang paling menantang melibatkan bekerja pada skala. Anda telah menulis aplikasi WSGI, tetapi sudahkah Anda menulis aplikasi yang dapat menangani satu miliar tampilan halaman sehari? Anda telah menulis kode multi-utas, tetapi apakah Anda telah menulis kode multi-komputer (dengan ratusan komputer)?

Singkatnya, jika Anda ingin mencoba melakukan sesuatu yang non-teknis, lakukan saja. Tapi jangan lakukan itu karena Anda merasa telah menyelesaikan semua masalah yang harus diselesaikan karena bukan itu masalahnya.

2
Jason Baker