Pemrogram lupa sintaksis

17

Apakah programmer yang baik perlu memiliki sintaks di ujung lidah mereka saat menulis kode? Apa yang Anda dapatkan dari mereka jika mereka mencari barang-barang sederhana secara online? Apakah mereka baik atau buruk (mungkin mereka tahu ke mana harus mencari)? Haruskah programmer memiliki memori yang baik? Apakah ini ciri seorang programmer yang baik?

maz3tt
sumber
1
Tergantung seberapa "sederhananya". Beberapa contoh / latar belakang akan bermanfaat. Ini mungkin juga masalah inkonsistensi dengan bahasa / lingkungan yang mereka pemrograman.
rwong
1
Saya akan berpikir itu akan menjadi bagian dari definisi programmer yang baik, karena itu jatuh di bawah \ efisien cepat Jika Anda tidak dapat menulis sebaris kode dengan referensi konsultasi, Anda tidak akan menyelesaikan apa pun tepat waktu. Di sisi lain itu bukan panggilan untuk menghafal sesuatu.
stonemetal
Dalam C + +, saya biasanya harus mencari sintaks untuk fungsi pointer-to-(anggota atau tidak) karena saya tidak menggunakannya terlalu sering ... mungkin kadang-kadang sintaks hanya aneh ?
Matthieu M.

Jawaban:

25

Filosofi saya tentang pemrograman adalah bahwa ini "keadaan pikiran" dan sisanya adalah "hanya sintaksis." (Yaitu tidak (sebagai) penting)

Yang mengatakan, seseorang tidak harus mencari hal-hal sederhana. Setidaknya, tidak untuk bahasa yang Anda gunakan secara teratur. Tidak ada yang salah dengan membutuhkan penyegar dan mengetahui cara menemukan informasi jelas merupakan keterampilan yang baik untuk dimiliki. Namun, sintaks inti pasti harus diketahui. Kalau tidak, Anda menghabiskan terlalu banyak waktu mencari dan terlalu sedikit pemrograman waktu.

George Marian
sumber
8
Persis, seperti bahasa lisan: Anda harus tahu cara mengucapkannya, tetapi kamus sangat membantu. Seringkali, Anda tahu apa yang ingin Anda ungkapkan sebelum Anda memiliki kosakata!
Kevin Cantu
@Kevin - Tepat - tetapi Anda juga dapat menilai kefasihan seseorang dengan seberapa sering mereka membuat referensi semacam itu. Sebagian besar dari kita akan menggunakannya dari waktu ke waktu tetapi Anda akan mempertanyakan seseorang yang mengatakan mereka bisa berbicara bahasa tetapi merasa perlu untuk terus-menerus merujuk ke kamus.
Jon Hopkins
@ Tepat. Melanjutkan metafora bahasa lisan / tulisan, dengan beberapa upaya kita dapat meningkatkan eksposur kita pada bahasa dan meningkatkan kosa kata kita. Oleh karena itu, selera saya yang besar untuk membaca dan terus mencari aplikasi kartu flash iPhone yang baik. Demikian pula untuk bahasa pemrograman, ketika saya mengalami masalah dengan idiom tertentu saya membuat cuplikan yang menunjukkannya dan tetap dekat untuk referensi mudah. Dan, tentu saja, saya membuat titik untuk meninjau kembali bidang masalah itu sesekali. Butuh beberapa waktu, tetapi saya akhirnya menghafal pernyataan switch sial seperti ini.
George Marian
Saya pikir pengembang yang lebih 'maju' juga kemungkinan akan memiliki banyak bahasa dan kadang-kadang akan membingungkan mereka. Saya masih bingung deklarasi array multidimensi antara C # dan C ++ dari waktu ke waktu (apakah itu "arr [] [] atau arr [,]") dan harus mencarinya.
Steven Evers
28

Tergantung pada maksud Anda, tetapi jawaban singkatnya adalah ya.

Apakah programmer akan melupakan tanda titik dua atau tanda kurung di sana-sini? Tentu. Apakah mereka akan mencari sintaks pernyataan switch karena mereka mungkin jarang menggunakannya? Ya saya lakukan. Apakah saya akan bekerja dengan ActionScript tetapi menulis seperti Java? Pastinya. Butuh waktu untuk terbiasa mengetik dalam bahasa baru, terutama jika Anda telah bekerja dengan yang berbeda selama bertahun-tahun.

Perhatian yang sebenarnya seharusnya adalah jika seorang programmer tidak dapat membuat kepala atau ekor dari sintaks bahkan dengan IDE yang membantu mereka. Jika orang tersebut tidak tahu untuk apa tanda titik koma, atau untuk apa kurung kurawal itu, maka mereka harus belajar lebih banyak lagi.

Jeremy Heiler
sumber
8
Heh, sintaks yang tepat dari pernyataan switch biasanya memberi saya kesedihan juga.
George Marian
Itu alasan yang sama saya tetap pada scripting Python, bahkan ketika saya lebih suka Ruby. Saya harus kode dalam Python di tempat kerja, dan bolak-balik akan terlalu membingungkan.
LennyProgrammers
+1 untuk sintaks pernyataan sakelar - hanya sulit untuk beberapa alasan
billy.bob
5
Belum lagi berbagai bahasa yang orang tahu dan sintaksis kadang-kadang dapat berbaur bersama.
Josaph
@ Saya pikir masalahnya adalah campuran simbol. Biasanya switch, diikuti oleh sesuatu di dalam tanda kurung, kemudian tanda kurung buka, kemudian casedengan label yang tidak ada di tanda kurung, lalu tanda titik dua, maka pernyataan biasanya diakhiri dengan tanda titik koma. Dan, jangan lupa, breakpernyataannya. Melalui usaha dan kekuatan keinginan yang besar saya akhirnya menghafalnya dan saya masih harus memeriksa sekali-sekali; hanya untuk memastikan.
George Marian
10

Saya pasti akan terkejut jika seorang programmer yang baik harus secara rutin mencari sintaks untuk bahasa yang mereka fasih. Tentu saja mungkin ada kasus sudut yang tidak benar-benar banyak digunakan dalam praktek sehingga itu bisa diterima dengan sempurna untuk programmer yang baik untuk tidak mengenal mereka tetapi, sebagai aturan umum, seorang programmer yang fasih tidak harus mencari sintaks. S / dia harus mencari fungsi dan kelas dari perpustakaan :)

aaronasterling
sumber
+1. Saya akan menganggap diri saya lancar dalam C ++ dan saya mencari nama fungsi dan argumen setiap hari . Saya tidak akan menghafal setiap anggota std::string, misalnya.
Kristo
8

Jika Anda berada di posisi di mana Anda mengubah bahasa secara teratur atau bekerja dalam 3 atau 4 bahasa pada saat yang sama, tidak banyak yang dapat Anda lakukan. Untuk sementara saya akhirnya bekerja pada proyek-proyek yang membutuhkan pergantian yang konstan dan mulai menyebut diri saya sebagai "programmer referensi," harus mencari lebih banyak daripada yang saya inginkan.

Matthew Frederick
sumber
4
+1 Sepenuhnya setuju. Coder yang melompat antar bahasa pada tingkat knot (saya dapat memiliki 10 bahasa atau lebih dalam perjalanan dalam satu hari mencakup banyak proyek) akhirnya mengalami kesulitan mengingat perbedaan yang tidak jelas antara bahasa yang sama, terutama dalam fungsi perpustakaan standar. Ini semakin buruk seiring bertambahnya usia saya perhatikan.
Orbling
Ini adalah masalah saya, kami bergerak melalui banyak hal di tempat kerja saya bahkan tidak bisa mengingat dasar-dasarnya. Terutama karena saya biasanya hanya dapat menggunakan konteks, seseorang menulis untuk loop atau fungsi di dekatnya, saya hanya menyalin sintaks itu. Saya telah memaksa diri saya untuk belajar sintaks akhir-akhir ini, hanya mengandalkan latihan untuk membuat saya mengingatnya tidak cukup. Saya memilih satu bahasa (Javascript) untuk menggiling sintaks ke otak saya dengan. Ini sangat membantu, terutama dengan praktik wawancara papan tulis.
Jemmeh
5

Saya telah menulis C ++ selama> 15 tahun, tetapi saya masih belum tahu beberapa sudut sintaksisnya.
Bagaimana Anda secara eksplisit instantiate templat fungsi lagi? Dan apa sintaksis untuk mengkhususkan sebagian template yang memiliki argumen template-template? Dan jangan mulai saya tentang mendeklarasikan fungsi yang mengembalikan pointer ke array pointer ke fungsi yang membawa array pointer ke ...

Saya menduga ada paling banyak satu atau dua lusin orang di dunia ini (jika ada sama sekali) yang benar-benar mengetahui semua sintaksis C ++. Dan ini mungkin semua menghasilkan uang dengan menulis frontend kompiler C ++

sbi
sumber
4

Saya ingin tahu tentang "sintaksis" Googling di sini.

Kecurigaan saya (dan ketakutan) adalah bahwa kita tidak berbicara tentang parameter apa yang dibutuhkan panggilan (karena sebagian besar IDE akan meminta Anda di sana sehingga Anda tidak akan Google mereka) tetapi jenis hal "bagaimana melakukan X" yang sebenarnya.

IDE telah membuatnya tidak perlu untuk menghafal nama dan daftar parameter yang tepat dengan cara yang dulu diperlukan dan itu membuat banyak orang agak malas tentang hal itu tetapi itu tidak masalah.

Tetapi sesuatu yang Anda butuhkan untuk Google? Bagi saya itu biasanya bukan sintaksis, itu hanya sesuatu yang Anda tidak benar-benar tahu atau hanya akrab dengannya.

Tentu saja itu bukan untuk mengatakan itu salah untuk memiliki hal-hal Google - bahasa bisa sangat luas hari ini dan beberapa orang tahu segalanya tapi saya akan mengatakan bahwa jika Anda mengklaim kompeten dengan bahasa maka Google harus menjadi pengecualian daripada aturan .

Bagi saya kecuali jika Anda melakukan sesuatu yang relatif tidak biasa, atau mungkin Anda berkarat dengan bahasa setelah periode melakukan sesuatu yang berbeda, jika Anda mengklaim "tahu" suatu bahasa, Anda seharusnya tidak Googling lebih dari 10% dari hal-hal paling banyak, dan itu harus benar-benar sangat spesifik.

Mengacu pada gagasan bahwa ini adalah tentang memiliki ingatan yang baik, sebenarnya tidak. Ini tentang semacam perasaan naluriah yang Anda dapatkan untuk sesuatu yang benar-benar Anda ketahui (alih-alih dangkal). Saya tidak mempertimbangkan fakta bahwa saya tahu cara memasak Melanzane Parmigiana tanpa resep tanda bahwa saya memiliki ingatan yang baik, itu adalah tanda bahwa saya mengerti cara memasak hidangan itu - itu adalah hal-hal yang agak berbeda.

Selain itu, tanyakan pada diri Anda sendiri, apakah Anda berharap untuk pergi ke dapur restoran dan menemukan koki terus-menerus melihat buku masak? Atau untuk melihat mekanik bekerja pada mobil Anda membolak-balik manual Hayes untuk model itu? Jika saya melihat salah satu dari hal-hal itu, saya akan merasa tidak enak tentang betapa baiknya orang itu.

Jon Hopkins
sumber
Komentar untuk suara turun? Saya benar-benar tertarik dengan apa yang menjadi pertentangan.
Jon Hopkins
+1 - Panggilan baiksyntax != api
Jeremy Heiler
3

Pendapat saya adalah Tidak. Ini bukan sintaks yang penting tetapi logika Anda untuk menyelesaikan masalah atau mencapai tujuan. Jika Anda ingin bekerja pada beberapa bahasa, itu wajar sehingga kadang-kadang Anda tidak ingat sintaks yang tepat.

Fraz Sundal
sumber
0

Sintaks hanyalah tampilan di atas semantik yang mendasari bahasa karena pemrograman adalah semua tentang menggunakan batu bata semantik yang mendasarinya untuk membangun sesuatu. Jika Anda tidak memahami konsep dasar bahasa yang digunakan maka tidak masalah seberapa baik Anda menghafal sintaksis, kode Anda akan berantakan. Seperti yang pernah dikatakan seseorang, "Pemrogram yang baik memiliki seorang juru bahasa dan seorang penyusun di kepala mereka." Perhatikan bagaimana tidak ada penyebutan sintaksis karena di situlah pekerjaan nyata terjadi.

davidk01
sumber