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 teoretis dan 10 tahun pengkodean sistem C di bidang keamanan jaringan dan saya hanya tidak mendapatkan rangsangan 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 bisa merasakan tantangan apa pun. Saya telah menulis kode multi-utas, proksi HTTPS MITM dan aplikasi WSGI tanpa memerlukan keahlian algoritme 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 hanyalah 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 saatnya untuk membuat kemajuan dalam karier saya? Atau untuk mendapatkan hal-hal yang lebih menantang dalam Ilmu Komputer? Mungkin mendapatkan gelar sarjana di 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 menemukan buku yang bagus tentang aturan komunikasi dan "kepribadian orang" untuk mempersiapkan saya menghadapi 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 ' m membaca buku tentang negara saya (Italia) cerita dari AC ke hari ini dan saya suka perjalanan (musim panas ini saya membuat 4000km untuk melihat banyak tempat di Spanyol dan naik di dalamnya, semuanya hanya dalam 3 minggu, bukan liburan tapi maraton , 24 km trekking membuat cedera hernia saya), 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 perlunya menjadikan pekerjaan kami sebagai pendukung hidup Anda dan bukan satu-satunya alasan untuk tetap hidup (ini bukan kasus saya), jadi, jika Anda satu-satunya alasan hidup jika bekerja Anda datang dengan cepat untuk 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 penjaga rekayasa perangkat lunak.
Jawaban:
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.
sumber
Saya akan menjawab pertanyaan Anda dengan pertanyaan ...
Apakah tugas 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 itu adalah kode yang harus ditulis? Sebagian besar masalah memiliki ratusan cara untuk menyelesaikannya, tetapi hanya ada satu cara terbaik .
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.
sumber
Kedengarannya bagi saya seperti Anda telah melakukan BANYAK pemrograman prosedural dan mulai bosan - yang saya sepenuhnya mengerti. Menentukan langkah demi langkah adalah 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
Berikut ini adalah fungsi penyortiran lengkap:
(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.
sumber
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 kebosanan dengan sesuatu yang tidak berhubungan langsung dengan mesin.
Saya menemukan inspirasi dengan fotografi, dan mempelajari pengalaman pengguna. Pikirkan tentang hal ini, bagaimana Apple bisa mendapatkan sekumpulan orang yang mengeluarkan air liur untuk hal berikutnya yang keluar dari Santa Clara ketika vendor lain mendapat respons hangat suam? Apakah Anda benar-benar berpikir bahwa Android akan mendapat respons sebesar jika Apple tidak tahan merilis iPhone di Verizon begitu lama? Saya akan memberi Anda petunjuk besar: belum tentu bahwa produk-produk ini sangat maju secara teknis. Ada komponen psikologis yang sangat besar bagi mania.
Memahami desain produk dan pengalaman pengguna adalah sesuatu yang banyak dari kita harus pelajari. Apa yang membuat seseorang berdetak? Bagaimana Anda merancang sesuatu yang cukup keren untuk membuat orang meninggalkan solusi yang ada? Bagaimana Anda membuat kultus teknologi Anda sendiri seperti Apple (bukan berarti saya bercita-cita menjadi pemimpin kultus yang peduli pada Anda)? Ini semua adalah pertanyaan yang sangat menarik dan merangsang. Mereka memberi umpan balik ke pengembangan perangkat lunak - tetapi sekarang fokus Anda berbeda.
sumber
Mungkin Anda hanya tidak mendapatkan tantangan teknis yang cukup?
Dll. Tentu saja, bersiaplah untuk awalnya berpenghasilan lebih rendah di bidang di mana hal-hal itu menantang bagi Anda, tidak membosankan.
sumber
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.
sumber
Ya, kadang-kadang saya merasa bahwa seseorang pada kenyataannya menulis 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 benar-benar memperkaya kemampuan pemrograman saya dan memberi saya perspektif baru dari mana saya bisa melihat masalah pemrograman. Saya sekarang mencoba untuk 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, misalnya 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 dipelihara seringkali sangat penting dalam lingkungan perusahaan, karena setiap jam yang Anda habiskan untuk pengkodean membutuhkan biaya uang nyata, sehingga perusahaan akan berusaha untuk 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 perakitan yang sangat pintar dan sangat dioptimalkan (ingat The Story of Mel - A Real Programmer , siapa pun? ;-) Sebaliknya, Anda lebih cenderung memanfaatkan 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 menunjukkan darimana 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.
sumber
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, tempat Anda dapat merancang dan merencanakan sistem dan orang lain akan melakukan sebagian besar implementasinya.
Atau, Anda bisa 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?
sumber
Mulai mainkan dengan mikrokontroler. Ini adalah aplikasi bakat pemrograman yang paling menyegarkan dan menarik yang dapat saya pikirkan.
sumber
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 kali dan bahwa "baru" semua didasarkan pada "yang lama." Bahwa Anda menyadari fakta ini adalah untuk kredit Anda; terlalu banyak pengembang dan pelaku bisnis yang melihat teknologi baru sama sekali 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.
sumber
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.
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.
sumber