Sameer bertanya apa bahasa pemrograman ia harus belajar. Di bawah ini adalah versi jawaban saya diedit.
tukang ledeng datang ke rumah Anda dan bertanya: "Apa alat yang Anda ingin saya gunakan?".
Apa yang akan menjadi balasan Anda peduli? "Aku tidak! Memperbaiki masalah sialan ".
Itu benar. Semua orang ingin mendapatkan pekerjaan mereka selesai, dan mendapatkan masalah mereka tetap. Mereka tidak peduli apa alat yang Anda gunakan. Sebagai pengembang tugas Anda adalah untuk memecahkan masalah pelanggan Anda memiliki dengan cara yang paling efektif. Ini berarti bahwa Anda tidak dapat menggunakan alat yang sama untuk setiap jenis masalah. Dapatkah Anda menggunakan driller listrik untuk memperbaiki kebocoran kecil di pipa? No Anda mungkin ingin menggunakan lakban untuk itu.
Bahasa mana yang harus saya pelajari adalah sebuah pertanyaan yang salah untuk memulai dengan. Bahasa adalah alat dalam kantong seorang insinyur perangkat lunak. Sebelum memutuskan pada bahasa pemrograman Anda ingin belajar, Anda harus menentukan jenis masalah yang Anda ingin bekerja. Apakah Anda ingin bekerja pada teknologi web? Apakah Anda ingin bekerja di ekosistem Linux? Apakah Anda ingin bekerja di platform mobile? Ada sejuta relung yang berbeda di dunia pemrograman dan Anda harus bertanya pada diri sendiri semua pertanyaan-pertanyaan retoris yang datang ke pikiran Anda dan kemudian memutuskan pilihan yang suite bahasa Anda.
Ini tidak peduli bahwa alat-alat yang tidak penting. Mereka, tetapi mereka tidak lebih penting daripada masalah di tangan.
Berapa banyak bahasa pemrograman yang harus Anda pelajari?
Tidak ada gunanya mencoba untuk belajar lebih banyak bahasa yang Anda bisa. Apa yang harus Anda lakukan adalah untuk mencoba dan belajar tentang sebagai bahasa sebanyak yang Anda bisa, dan kemudian memutuskan bahasa mana Anda harus mendapatkan keahlian masuk
Kembali ke analogi kita, apa alat menurutmu tukang ledeng harus membawa dalam tasnya? "Cukup alat untuk mendapatkan pekerjaannya selesai."
Tepat. Jika Anda tahu untuk menggunakan hanya satu perangkat, Anda mungkin terpaksa untuk bekerja dengan orang lain yang dapat menggunakan beberapa utilitas lain. Hal ini terjadi di kebanyakan perusahaan perusahaan IT. Dalam perusahaan besar Anda akan bekerja dengan orang lain yang memiliki keahlian di bahasa pemrograman dan alat-alat yang anda tidak tahu cara menggunakan. Ini memiliki keuntungan bahwa orang-orang akan menjadi nyata rock-bintang di bidangnya masing-masing sempit. Sebaliknya jika Anda ingin bekerja di tempat-tempat seperti startups (atau jika Anda ingin bekerja sebagai pengembang lepas), Anda mungkin ingin tahu sedikit dari setiap jenis alat di luar sana.
Tentu saja Anda tidak harus tahu menggunakan setiap jenis obeng. Anda hanya harus ahli dalam menggunakan satu model obeng yang baik. Demikian pula Anda tidak harus menjadi ahli dalam setiap bahasa pengembangan web. Hanya belajar pretty decent satu dan Anda harus baik-baik saja.
Setiap domain programming set alat untuk membantu Anda mengembangkan software. Jika Anda sedang mengembangkan situs web perusahaan, Anda mungkin akan bekerja dengan teknologi seperti Core Java, Servlets, EJBs, XML, Unix Shell Script, parser Log, Database, web-server Berbagai dll Hal ini berarti bahwa selain bahasa pemrograman ada banyak teknologi lain yang terkait dengan program yang Anda harus menguasai agar menjadi programmer yang baik.
Satu hal lagi yang harus Anda ketahui - semua bahasa pemrograman pada dasarnya berbeda satu sama lain. Beberapa bahasa yang mudah program (Python misalnya) sementara beberapa lainnya masih sulit (C / C + +). Saya tidak mengacu pada keahlian yang dibutuhkan dalam belajar bahasa. Saya mengacu pada upaya yang dibutuhkan dalam menulis program setelah Anda belajar bahasa. Jika Anda bekerja sebagai programmer di sebuah perusahaan IT, Anda mungkin akan belajar bahasa baru (mungkin sesuai kebutuhan bisnis) dalam jangka waktu yang sangat singkat. Anda akan mulai menulis kode yang layak di sekitar 1 minggu sampai 3 bulan waktu. Kemudian satu-satunya hal yang penting adalah bahasa apa yang Anda benar-benar lebih suka bekerja dengan. Jadi, jangan khawatir banyak tentang yang langauge lebih mudah untuk belajar; khawatir tentang bahasa yang lebih mudah digunakan. (Ada korelasi di sini meskipun. Anda akan menemukan bahwa dalam kebanyakan kasus, bahasa yang mudah untuk belajar adalah lebih mudah untuk program di juga)
Anda dapat belajar banyak tentang pemrograman dari forum programer pintar bergaul (misalnya Proggit dan Hacker News ), membaca artikel atas dan mengajukan pertanyaan-pertanyaan Anda di sana, Anda akan mendapatkan jawaban mendalam dalam.
Rahasia terbesar:
Anda akan menjadi seorang programmer yang baik hanya dengan - pemrograman banyak. Banyak siswa tidak program luar laboratorium mereka dan proyek kuliah, dan mereka tidak pernah menjadi programmer yang baik. Cobalah untuk melakukan coding di waktu luang Anda. Cobalah untuk menyelesaikan Proyek Euler masalah dalam bahasa pemrograman favorit Anda, atau mencoba untuk membangun sebuah situs web sendiri.
Setelah mengatakan semua ini di sini adalah beberapa tips tertentu. Ini mungkin atau mungkin tidak bekerja dalam kasus Anda:
- pengembangan Enterprise: Belajar Java adalah baik. Jawa digunakan di toko-toko perangkat lunak banyak orang sebagai bahasa utama. Ini akan membawa Anda jauh dalam kebanyakan situasi. Pada saat yang sama, saya memiliki beberapa keberatan dengan menggunakan bahasa dari sudut pandang pemrogram startup. Baca diskusi di sini juga.
- Pengembangan web: Tinggal jauh dari PHP. Ini adalah bahasa yang didesain dengan buruk. Sebaliknya, belajar Django atau Ruby on Rails. Jika Anda lebih suka menggunakan teknologi Microsoft ASP.Net MVC.
- Windows pembangunan: Belajar C # (dan mungkin tidak Visual Basic). Untuk menjalankan aplikasi C # di Linux, check out proyek Mono.
- Ada banyak tool pemrograman yang sangat baik atau IDE Anda harus mencoba untuk menguasai. Eclipse adalah IDE populer. Notepad + + adalah editor kode populer.
- Anda harus belajar tentang hal-hal seperti Regular Expressions, Unicode, dll Keamanan Informasi (aku bahkan tidak bisa mencoba daftar semua topik)
- Cobalah untuk mengikuti teknologi baru. Anda tidak perlu mempelajari semua bahasa terbaru, tetapi cobalah untuk memiliki kesadaran akan tren terbaru dalam pemrograman. Sebagai contoh, pengembangan web, pengembangan telepon selular dll adalah area di mana banyak inovasi yang terjadi. Anda tidak ingin ketinggalan salah satu dari mereka jika Anda intersted dalam bidang-bidang. Kemudian lagi, forum yang saya sebutkan di atas akan datang berguna.
- Belajar hanya satu bahasa tidak ide yang sangat bagus. Belajar banyak bahasa juga bukan ide yang baik. Keseimbangan antara dua ekstrim ini dan berusaha untuk menjadi baik dalam setidaknya 2-3 bahasa pemrograman yang berbeda dalam berbagai bidang. (Seperti yang dijelaskan sebelumnya, bahasa yang berbeda digunakan untuk menyelesaikan berbagai jenis masalah)
Good luck!