Dalam beberapa tahun pemrograman saya, saya telah mempermainkan semuanya mulai dari Ruby hingga C ++. Saya telah melakukan segalanya mulai dari hanya belajar sintaksis dasar (Ruby) hingga menyelesaikan beberapa proyek besar (untuk saya) yang memperluas kemampuan saya dengan bahasa tersebut. Mengingat variasi ini (dan fakta bahwa benar-benar belajar bahasa tidak pernah berhenti), kapan saya bisa mengatakan saya tahu (atau telah belajar) bahasa?
programming-languages
Anak kucing
sumber
sumber
Jawaban:
Pada titik mana Anda dapat mengatakan bahwa Anda telah "belajar" bahasa seperti Inggris atau Prancis? Saya pikir kebanyakan orang akan menerima bahwa Anda telah belajar bahasa ketika Anda bisa menggunakannya untuk berkomunikasi. Anda tidak harus tahu setiap kata atau mengerti setiap idiom, tetapi Anda harus tahu sebagian besar (sebagian kecil) dari bahasa yang digunakan orang dalam percakapan sehari-hari. Setelah "mempelajari" suatu bahasa sejauh itu, Anda dapat terus belajar lebih banyak saat Anda menggunakan bahasa itu setiap hari dan membuka diri Anda untuk semakin banyak menggunakannya. Pada saat Anda mati, Anda masih tidak akan tahu semua yang perlu diketahui tentang bahasa tersebut, tetapi tidak ada yang akan mengatakan bahwa Anda tidak pernah "mempelajari" bahasa tersebut.
Jadi, saya pikir, dengan bahasa komputer. Anda dapat mengatakan bahwa Anda "tahu" bahasa seperti C ++ atau Ruby ketika Anda dapat menulis program yang bermanfaat di dalamnya. Jika Anda perlu mengukur tingkat pengetahuan bahasa Anda, gunakan istilah yang sama dengan yang Anda gunakan untuk bahasa manusia. Katakan "Saya tahu sedikit C ++" atau "Saya tahu percakapan C ++" atau "Saya fasih dalam C ++" artinya Anda cukup tahu untuk mengorek, cukup untuk menyelesaikan hal-hal berguna, atau Anda seorang ahli, masing-masing.
sumber
using
dalam C # ataub, a = a, b
dan generator dengan python. Kalau tidak, +1.Tergantung siapa yang bertanya
Orang yang bertanya dengan sopan memiliki gagasan tertentu tingkat keterampilan apa yang diharapkan dari seseorang yang mengatakan bahwa ia telah "belajar bahasa."
Pada dasarnya, saya menemukan dua skala pola dasar, di mana orang menilai jawaban atas pertanyaan "apakah Anda sudah belajar X?"
Bagi kebanyakan kutu buku, ini adalah pertanyaan jebakan untuk menyingkirkan masalah. Ini sudah ditunjukkan oleh jawaban lain untuk pertanyaan Anda;). Jika Anda mengatakan Anda mempelajarinya, Anda gagal dalam melihat ruang lingkup tugas, yang secara implisit "kesempurnaan", dan, jauh lebih buruk: Anda gagal dalam kerendahan hati.
Bagi sebagian besar bos, Anda "telah mempelajarinya", jika Anda dapat menyelesaikan masalah mereka , kriteria seringkali sudah terpenuhi jika kode Anda dikompilasi. Menjawab pertanyaannya dengan cara yang rendah hati akan menuntunnya menugaskan tugas kepada seorang masalah sulit yang mungkin juga seorang kerabat.
Jadi, apa audiens Anda?
sumber
Saya pikir orang-orang berfokus pada finalitas kata "belajar" menjadi perfect tense itu berarti Anda sudah selesai belajar. Dan seperti yang dicatat semua orang, bahasa pemrograman adalah entitas yang hidup seperti bahasa lisan. Misalnya seseorang yang memiliki penguasaan lengkap C # 2 akan melihat C # 3 dengan LINQ, Lambdas,
var
kata kunci, inisialisasi objek / koleksi, dan metode ekstensi dan menemukan bahwa banyak yang telah berubah dari apa yang dia pelajari untuk versi sebelumnya. Hal yang sama terjadi dengan C # 4 denganawait
,async
kata kunci dan konstruksi bahasa baru lainnya.Dan kami hanya berbicara sintaks di sini. Kami lupa bahwa sebagian besar bahasa dipasangkan dengan kerangka kerja . C # memiliki framework .NET, Java memiliki framework sendiri, seperti halnya Ruby, C ++, PHP, dan PERL. Pikirkan kerangka kerja untuk suatu bahasa sebagai kosakata dan bahasanya sendiri hanyalah sintaksis. Mengetahui bahasa berarti Anda tahu cara membuat kalimat dalam bahasa tersebut. Mengetahui kerangka berarti Anda dapat mengekspresikan diri dengan baik dalam bahasa. Akhirnya, setelah Anda mengetahui sintaks dan kosa kata, Anda perlu mempelajari idiom sehingga Anda menulis kode sebagai "penutur asli".
Saya akan mengatakan ada beberapa level pembelajaran.
sumber
await
berasal dari C # 5, hal baru utama dalam C # 4 adalahdynamic
.Anda jarang bisa mengatakan Anda telah belajar bahasa. Itu berarti Anda sudah selesai belajar tentang itu, yang ... bodoh.
Mengatakan Anda tahu bahasa itu baik-baik saja ketika Anda dapat menulis kode yang tidak secara terang-terangan memecahkan idiom dalam bahasa tersebut (mungkin setelah satu minggu menghapuskan pengetahuan) tanpa merujuk ke referensi sintaksis.
sumber
Ini lebih merupakan faktor berbasis opini. Dalam semua istilah teknis "Belajar" akan berarti memiliki pengetahuan lengkap, seperti pada Anda akan diharapkan untuk mengetahui SEGALANYA bahasa.
Namun dalam dunia pemrograman saya percaya ini lebih tentang jika Anda dapat memprogram dengan lancar dalam bahasa untuk menyelesaikan tujuan / tugas. Ini juga mungkin berarti jika Anda merasa nyaman dengan bahasa tersebut. Tentu Anda bisa pergi ke sana dan mendapatkan gelar setelah bertahun-tahun kuliah, tetapi itu hanya untuk diperhatikan? Anda menentukan kapan Anda dapat mengatakan bahwa Anda telah mempelajari suatu bahasa.
sumber
Ketika Anda mulai memperhatikan kekurangannya. Setelah Anda mulai belajar bahasa, Anda biasanya masih sibuk belajar sekarang untuk melakukan hal-hal atau banyak terlibat di dalamnya untuk melihat di mana ia gagal (tentu saja, ini kecuali Anda mulai belajar dari sudut pandang negatif hanya untuk melihat seberapa buruk itu dibandingkan dengan bahasa favorit Anda sejauh ini). Saya katakan Anda tidak benar-benar tahu bahasa sampai Anda benar-benar menyadari area di mana ia gagal.
sumber
Jawaban pribadi saya untuk ini adalah kapan,
Dari sana, saya tidak akan menyebutnya belajar, tetapi penguasaan.
sumber
Pada titik ketika aplikasi atau komponen Anda dapat membaca email, yaitu hukum Zawinski , yang menyatakan:
Ini diperbarui ketika RSS menjadi populer untuk "... dapat membaca RSS feed" dan mungkin dapat diperbarui hari ini menjadi "... dapat membaca feed Twitter". ;-)
sumber
Saya pikir Anda telah belajar bahasa ketika Anda tidak melihatnya. Anda tidak melihat siklus dan akses data, tetapi alur kerja algoritma.
Anda tidak bermain trik dengan melewati parameter dan pemrosesan array, makro ajaib. Anda tidak menganggap kode Anda sebagai materi pemasaran mandiri untuk ditunjukkan kepada teman dan guru Anda, tetapi untuk mengekspresikan pemahaman Anda tentang suatu masalah, dan kemauan Anda ke komputer dengan cara yang paling mudah dibaca.
Anda memiliki kebiasaan yang membantu Anda menghindari banyak kesalahan hanya dengan mengikuti mereka, seperti: menggunakan {} blok kode dan () dalam ekspresi bahkan jika Anda benar-benar yakin bahwa "itu hanya akan menjadi satu baris" atau "Saya tidak bodoh dan tahu urutan prioritas operator ".
Anda berhenti menghitung berapa banyak kelas, pola, dan kerangka kerja API yang Anda tahu. Inilah intellisense, referensi dan tutorial, dan Google untuk. Tetapi ketika Anda melihat masalah, Anda segera tahu bagian mana yang dapat dipecah, dan dengan alat dan algoritma apa Anda akan menyelesaikannya.
Apa yang Anda lakukan berhasil , elegan dan kecil . Anda menikmati coding dan dengan mudah menemukan bug Anda. Ya, master juga membuat bug karena mereka adalah manusia - tetapi mereka menemukannya dengan cepat karena struktur kode mereka menuntun mereka ke tempat yang tepat.
Dan akhirnya sadari: Anda telah belajar berpikir, menganalisis, dan menyelesaikan masalah; dibandingkan dengan mereka, bahasa sebenarnya adalah sekunder, hanya kotak aturan dan alat saat ini.
sumber