Bagi saya, saya adalah orang C # dan orang Jawa. Saya menemukan 2 bahasa ini sangat mirip sehingga lebih mudah bagi saya untuk saling silang. Saya tidak yakin apakah itu ide bagus untuk mengambil bahasa lain. Adakah pikiran?
Bagi saya, saya adalah orang C # dan orang Jawa. Saya menemukan 2 bahasa ini sangat mirip sehingga lebih mudah bagi saya untuk saling silang. Saya tidak yakin apakah itu ide bagus untuk mengambil bahasa lain. Adakah pikiran?
Jawaban:
Saya dapat memikirkan setidaknya lima alasan untuk belajar bahasa, dan sepertinya Anda akhirnya harus belajar satu bahasa untuk masing-masingnya.
Ini bukan tentang berapa banyak bahasa yang Anda pelajari. Ini tentang mempelajari konsep-konsep baru. Beberapa bahasa mungkin dapat mengajarkan Anda banyak konsep, sementara yang lain mungkin hanya bisa mengajarkan satu konsep.
Jika Anda tahu C #, Anda mungkin tidak akan belajar sesuatu yang sangat baru dengan mempelajari Java. Tetapi Anda akan melakukannya jika Anda mempelajari Haskell.
Jadi ketika Anda memilih bahasa baru untuk dipelajari, pilih sesuatu yang akan mengajarkan Anda konsep yang belum Anda ketahui.
Menurut saya yang terpenting adalah kemampuan belajar cepat. Oleh karena itu penting untuk mengetahui bahasa yang berbeda yang digunakan untuk tujuan yang berbeda. Misalnya saya tahu:
1) Python dan Perl untuk kategori bahasa scripting
2) C ++ sebagai bahasa "framework"
3) Java untuk aplikasi seluler
4) C untuk sejumlah besar kode warisan
5) Beberapa bahasa usang yang saya tahu ketika saya masih muda (Basic, Pascal, Clipper dll)
Saya akan mengatakan bahwa Anda memerlukan setidaknya satu bahasa utama dan satu scripting. Mengetahui C # Saya akan mengatakan Anda perlu belajar Python atau Perl atau Ruby selanjutnya. (Saya akan menggunakan Python tapi itu hanya masalah preferensi).
Adalah baik untuk mempelajari satu bahasa pemrograman baru setiap tahun. Tetapi daripada mempelajari sesuatu yang mirip dengan apa yang sudah Anda ketahui, saya akan menyarankan Anda untuk mempelajari sesuatu yang sangat berbeda seperti Scala atau F #. Ini akan menunjukkan kepada Anda cara baru untuk melakukan sesuatu dan akhirnya memperkaya keterampilan pemrograman Anda.
Anda harus berkonsentrasi pada bahasa yang Anda butuhkan dan gunakan untuk apa yang Anda lakukan . Benar-benar belajar bahasa berasal dari latihan, sehingga Anda mendapatkan manfaat dari bahasa itu ketika Anda mempraktikkannya. Jika Anda akan mempelajari bahasa baru di waktu luang Anda, maka lakukanlah dengan mengimplementasikannya dalam tugas-tugas yang semakin rumit, sehingga Anda benar-benar dapat menguasainya.
berkonsentrasi pada tidak ada. fokus pada pembelajaran dan penulisan kode bersih; jelas, ekspresif, sederhana dan, paling penting, tidak diduplikasi.
cari prinsip-prinsip jenis pemrograman itu, dasar-dasarnya (misalnya, enkapsulasi untuk OOP; apa artinya dan apa implikasinya) dan pelajari beberapa prinsip
hal ini akan membuat pekerjaan Anda lebih mudah. ini bahkan akan membuatnya lebih mudah bagi orang-orang yang bekerja dengan Anda atau setelah Anda.
ya, Anda juga harus tahu sintaksnya dengan baik. tapi itu bukan sesuatu yang membutuhkan fokus Anda lama
dan ya, Anda harus memahami dengan baik teknologi yang Anda gunakan juga. tetapi itu dapat diprioritaskan sesuai dengan tingkat kerumitan yang dibutuhkan bisnis Anda.
dua yang terakhir bukan dari fokus utama, tetapi dari beberapa fokus
Seorang programmer perlu berkonsentrasi pada pemrograman bukan pada bahasa tertentu.
Sebanyak yang dibutuhkan untuk melakukan pekerjaan Anda.
Tetapi C # dan Java sedekat Inggris Inggris dan Inggris AS. Anda mungkin belajar sesuatu yang baru dengan menggunakan bahasa Finlandia atau Navajo.
Saya tidak berpikir Anda bisa menguasai suatu bahasa tanpa cukup memahami bahasa lain untuk melihat bahasa itu "dari luar". Setiap bahasa yang berbeda membawa sesuatu yang lain ke meja dan konsep yang mereka bawa adalah hal-hal yang dapat Anda bawa kembali ke bahasa utama yang Anda gunakan.
Jadi waktu yang dihabiskan untuk belajar menggunakan bahasa lain tidak pernah sia-sia bahkan jika Anda tidak berencana untuk menggunakannya secara komersial.
Pepatah lama adalah belajar bahasa setiap tahun dan saya pasti akan mengatakan untuk sepuluh tahun pertama atau lebih Anda perlu melakukan itu. Mungkin di luar itu Anda bisa memilih antara menjelajahi beberapa yang sudah Anda ketahui secara lebih mendalam (mungkin memperbarui pengetahuan Anda tentang yang telah Anda pelajari beberapa tahun lalu) atau bekerja dengan perpustakaan tertentu daripada hanya mengumpulkan bahasa baru tanpa akhir, tetapi tetap awasi terus menjelajahi praktik pemrograman melalui bekerja dengan berbagai bahasa tentu merupakan bantuan untuk pengembangan Anda sebagai seorang programmer.
Bahasa pemrograman populer seperti C # dan Java akan membuat Anda tetap dipekerjakan di sebagian besar tempat, tetapi tidak ada yang cukup berbeda satu sama lain untuk mempelajari cara-cara baru dalam memecahkan masalah. Saya pikir ada beberapa bahasa yang Anda makan (yang Anda gunakan untuk melakukan pekerjaan Anda), dan lainnya yang Anda mainkan. Keduanya memiliki tujuan masing-masing.
Saya telah menemukan bahwa dengan mempelajari bahasa pemrograman baru, saya juga belajar cara-cara baru dan lebih elegan untuk menyelesaikan masalah. Ini bukan tentang jumlah bahasa, atau seberapa sering Anda mengambilnya. Setiap bahasa pemrograman yang layak dipelajari memiliki sudut pandang yang unik, yang memaksa Anda untuk mendekati masalah Anda dengan pola pikir baru. Seringkali nilainya datang dari mempelajari pola pikir itu.
Saya sudah bermain dengan Smalltalk, dan saya menyukainya. Bahasa itu hanya menyenangkan untuk dikembangkan. Setelah Anda terbiasa dengan idiom, mereka membantu Anda menjadi lebih ekspresif dengan kode Anda. Saya tidak ketinggalan mengetik statis yang Anda miliki di Java / C ++ / C # sama sekali. Obat generik yang kita pakai dalam bahasa yang diketik secara statis benar-benar dibuat untuk mengatasi keterbatasan pengetikan yang statis.
Saya menggunakan Ruby dan Ruby on Rails secara teratur, meskipun tidak untuk membayar pekerjaan sekarang. Prinsip perancangan Ruby adalah "meningkatkan kebahagiaan programmer". Anda harus menyukai sentimen itu, dan sebagian besar saya pikir itu memberikan.
Akhirnya Java akan mengikuti lisp dan Smalltalk, dan C # akan mengikuti. Apa yang akan ada di sana untuk menggantikan tempat mereka masih harus dilihat. Pada akhirnya, jika Anda tahu cara menyelesaikan masalah, dan Anda memiliki sejumlah cara untuk mengiris dan memotong masalah, Anda akan dapat menemukan pekerjaan dan mengambil bahasa apa pun yang Anda butuhkan untuk itu.
Dalam hal menjaga agar keterampilan selalu mutakhir, dan fleksibel, saya pikir Anda harus mencoba mempelajari setidaknya satu bahasa pemrograman yang benar-benar baru setiap 6 bulan atau lebih. Dan maksud saya bahasa yang sangat, sangat berbeda.
Jadi, sambil mempelajari lebih banyak kerangka kerja .net sambil menggunakan C # atau kerangka kerja Java membantu menjaga kelenturan, mempelajari Haskell, Smalltalk, Scala, Clojure atau Ruby akan memperluas teknik Anda dan membantu Anda berpikir dengan cara yang berbeda, beberapa di antaranya dapat Anda manfaatkan. kembali ke bahasa utama Anda, dan beberapa di antaranya dapat membantu Anda melanjutkan jika Jawa tidak lagi menjadi raja bukit.
Jika Anda belum pernah belajar C, maka meskipun sintaks telah dibawa ke Jawa, pola pikirnya bisa sangat berbeda. Perlu diketahui, secara mendalam, dan bahkan lebih baik lagi, memahami bagaimana kode OO dapat ditulis dalam bahasa ini yang tampaknya hanya bersifat prosedural.
Saya merekomendasikan membaca buku Bruce Tate "Beyond Java", yang menyoroti bahaya bahayanya menjadi satu bahasa saja, mencatat naik turunnya C ++. Meskipun C ++ masih jauh dari mati dan memiliki beberapa dekade lagi, C ++ semakin terbatas untuk digunakan hanya dalam situasi yang tidak dapat mengambil manfaat dari peningkatan produktivitas dalam bahasa lain. Sebaliknya, Sinatra, kerangka ruby, memungkinkan Anda untuk membangun layanan web sederhana dalam sekitar 6/7 baris kode, padanan C ++ mungkin urutan besarnya lebih besar dari ini.
Ketika Anda bukan penutur bahasa Inggris asli, setidaknya Anda harus berkonsentrasi dalam meningkatkan bahasa Inggris Anda . Saya mengatakan itu berdasarkan pengalaman saya. Memahami bahasa itu sangat membantu saya.
Semua bahan yang bagus (buku, artikel, kode, dll.) Untuk mempelajari bahasa pemrograman, teknologi, dan konsep baru ditulis dalam bahasa Inggris.
Bahasa adalah alat untuk menyelesaikan pekerjaan. Beberapa bahasa bagus untuk beberapa jenis masalah, yang lain umumnya bagus untuk semua jenis penyelesaian masalah. Saya merekomendasikan belajar bahasa baru saat mereka keluar. Jangan terobsesi dengan apa yang fashionable bulan ini, tetapi pelajari apa yang bisa mereka lakukan, apa yang mereka kuasai. Saran saya adalah 1 bahasa baru per tahun. Mereka keluar lebih cepat dari itu, tetapi Anda ingin meletakkan alat baru di kotak alat Anda, bukan menjadi anak baru yang modis di blok.
Satu esai yang berbicara tentang perbedaan bahasa adalah karya Paul Graham "Beating the Averages." Saya sarankan membacanya, tetapi satu bagian penting ada di sini (dia menggunakan "Blub" sebagai bahasa hipotetis sehingga Anda tidak berdebat tentang apa yang dapat dilakukan oleh bahasa favorit Anda):
Atau bagaimana dengan Perl 4? Antara Perl 4 dan Perl 5, penutupan leksikal ditambahkan ke bahasa. Sebagian besar peretas Perl setuju bahwa Perl 5 lebih kuat daripada Perl 4. Namun begitu Anda mengakuinya, Anda mengakui bahwa satu bahasa tingkat tinggi bisa lebih kuat daripada yang lain. Dan tidak dapat disangkal bahwa, kecuali dalam kasus-kasus khusus, Anda harus menggunakan yang paling kuat yang bisa Anda dapatkan.
Ide ini jarang diikuti sampai pada kesimpulannya. Setelah usia tertentu, programmer jarang beralih bahasa secara sukarela. Bahasa apa pun yang biasa digunakan orang, mereka cenderung menganggap cukup baik.
{menggunting}
Selama programmer Blub hipotetis kita melihat ke bawah kontinum daya, dia tahu dia melihat ke bawah. Bahasa yang kurang kuat daripada Blub jelas kurang kuat, karena mereka kehilangan beberapa fitur yang dulu. Tetapi ketika programmer Blub hipotetis kita melihat ke arah lain, naik kontinum daya, dia tidak menyadari bahwa dia melihat ke atas. Apa yang dia lihat hanyalah bahasa yang aneh. Dia mungkin menganggap mereka setara dalam kekuatan untuk Blub, tetapi dengan semua benda berbulu lainnya juga dilemparkan ke dalamnya. Blub cukup baik untuknya, karena dia berpikir dalam Blub.
Ketika kita beralih ke sudut pandang seorang programmer yang menggunakan salah satu bahasa yang lebih tinggi pada kontinum daya, bagaimanapun, kita menemukan bahwa dia pada gilirannya memandang ke bawah pada Blub. Bagaimana Anda bisa menyelesaikan sesuatu di Blub? Bahkan tidak punya y.
Dengan induksi, satu-satunya programmer dalam posisi untuk melihat semua perbedaan kekuatan antara berbagai bahasa adalah mereka yang mengerti yang paling kuat. (Ini mungkin apa yang Eric Raymond maksudkan tentang Lisp menjadikan Anda seorang programmer yang lebih baik.) Anda tidak dapat mempercayai pendapat orang lain, karena paradoks Blub: mereka puas dengan bahasa apa pun yang mereka gunakan, karena itu menentukan cara mereka berpikir tentang program.
http://www.paulgraham.com/avg.html
Sebagian besar aplikasi yang kami kirimkan ditulis dalam C # atau VB. Ketika kami perlu menambahkan skrip ke suatu aplikasi, kami memilih Python (Lua adalah pilihan kedua). Kami sedang belajar F # karena itu dapat melakukan beberapa hal baru yang sulit untuk dijelaskan dan dipahami jika semua orang tahu adalah C # / Java / VB.
baik pertama-tama ada sejumlah bahasa yang sangat sulit untuk dihindari bagi sebagian besar programmer: javascript, sql, c, dll. jadi Anda mungkin juga bisa mengenal mereka, mereka tidak akan pergi.
itu juga merupakan ide yang baik untuk mengetahui bahasa scripting yang diketik bebek ... misalnya salah satu dari perl, python, ruby, lua dll. ini sangat berguna untuk sejumlah besar masalah termasuk mengotomatisasi banyak pekerjaan sehari-hari Anda sendiri
untuk yang lebih baik atau lebih buruk, Anda juga mungkin akan mengalami c # dan / atau java pada beberapa titik juga, mereka cukup meresap.
dalam kasus apa pun, jangan membatasi diri Anda secara artifisial. coders yang saya tahu yang secara eksplisit menghindari mengambil alat yang menarik tampaknya memiliki pandangan dunia tertutup dan dampak terbatas.
Ini bisa menjadi perdebatan spesialis vs generalis dalam arti tertentu. Beberapa orang mungkin menghabiskan waktu lama untuk mengetahui satu bahasa dengan sangat mendalam yang bekerja dengan baik untuk mereka. Orang lain mungkin ingin mengetahui sedikit tentang banyak bahasa berbeda yang berfungsi dengan baik untuk mereka. Kebanyakan orang berada di antara dua ekstrem ini.
Jika Anda ingin saran bahasa dijelajahi di sini adalah beberapa ide:
Pemrograman fungsional - Haskell atau Lisp akan menjadi contoh di sini dan perubahan paradigma bisa menjadi sedikit head turner sampai batas tertentu.
Khusus basis data - PL / SQL atau T-SQL muncul sebagai sesuatu yang mungkin berguna jika Anda ingin melakukan lebih banyak pekerjaan back-end dengan sistem yang memerlukan database untuk beberapa fungsinya.
Bahasa web UI - ActionScript atau Javascript akan menjadi contoh di sini bahasa yang digunakan di Rich Internet Applications, meskipun AIR dapat membuat beberapa aplikasi desktop menggunakan panggilan web dalam beberapa kasus seperti Twhirl menggunakan Twitter API.
Ini hanya ide dan tergantung di mana Anda ingin menjadi ini mungkin berguna atau tidak berguna bagi Anda. Semoga beruntung dengan pilihan apa pun yang Anda buat.
Seorang programmer perlu tahu tiga bahasa: C, Bahasa Inggris, dan Sesuatu Lain.
C adalah bahasa inti, sangat dekat dengan mesin dan memiliki aturan sintaksis yang umum untuk beberapa bahasa tingkat tinggi. C memaksa Anda untuk memikirkan hal-hal seperti struktur data dengan cara yang sangat berbeda dari Java. Juga, Python dan Ruby vms keduanya dibangun di C, dan Anda dapat inline C ke dalam kedua bahasa saat Anda ingin meningkatkan kecepatan Anda.
Bahasa Inggris adalah bahasa pemrograman yang umum. Sebagian besar buku, laporan teknis, situs web teknis, dan makalah jurnal diterbitkan dalam bahasa Inggris terlebih dahulu, dan terkadang bahasa Inggris secara eksklusif. Selain itu, jika bahasa Inggris bukan bahasa pertama Anda, belajar bahasa Inggris akan memperluas perangkat Anda untuk memanipulasi konsep (ini berlaku untuk penutur bahasa Inggris yang belajar bahasa lain juga, tentu saja).
Sesuatu yang lain harus merupakan bahasa yang tidak prosedural, atau tidak diketik secara statis, atau sangat berorientasi objek, atau dalam beberapa hal secara fundamental berbeda dari C. Haskell, Scala, Python, Ruby, beberapa dialek Lisp, apa pun .
Setelah itu, Anda dapat mempelajari apa pun situasi spesifik Anda, C # atau Java.