Haruskah pemula menggunakan IDE autocomplete (Intellisense)? [Tutup]

35

Saya sering menemukan ini ketika saya membantu seseorang yang baru mengenal pemrograman dan mempelajarinya untuk pertama kalinya. Saya berbicara tentang pemula yang benar-benar baru, masih belajar tentang OOness, membangun objek, pemanggilan metode dan hal-hal seperti itu. Biasanya, mereka memiliki keyboard dan saya hanya menawarkan panduan.

Di satu sisi, fitur autocomplete dari IDE membantu memberi mereka umpan balik bahwa mereka melakukannya dengan benar dan mereka dengan cepat menyukai dan mengandalkannya.

Di sisi lain, saya khawatir bahwa ketergantungan awal pada IDE autocomplete akan membuat mereka tidak benar-benar memahami konsep atau dapat berfungsi jika suatu hari mereka menemukan diri mereka hanya dengan editor sederhana.

Adakah yang memiliki pengalaman lebih dalam hal ini silakan berbagi pendapat mereka? Manakah yang lebih baik untuk pemula, autocomplete atau mengetik manual?

Memperbarui

Terima kasih untuk masukan semuanya!

Banyak jawaban tampaknya fokus pada penggunaan utama autocomplete, seperti menyelesaikan metode, menyediakan metode pencarian dan dokumentasi dll. Tetapi IDE saat ini lebih menyukai.

  • Saat membuat objek dari tipe Daftar, sebuah IDE secara otomatis melengkapi ArrayList baru di sebelah kanan. Mungkin tidak segera jelas bagi seorang pemula mengapa ini bukan Daftar baru, tetapi hei itu berfungsi, jadi mereka pindah.
  • Mengisi parameter metode berdasarkan variabel lokal dalam konteks.
  • Melakukan gips objek
  • Secara otomatis menambahkan pernyataan 'impor' atau 'menggunakan'

dan banyak lagi. Ini adalah hal-hal yang saya maksudkan. Ingat saya berbicara tentang orang-orang yang melakukan Pemrograman 101, benar-benar baru saja dimulai. Saya telah menyaksikan IDE melakukan hal-hal ini yang mereka tidak tahu, tetapi mereka hanya melanjutkan.

Orang bisa berpendapat bahwa itu membantu mereka fokus pada aliran program dan memahami hal-hal terlebih dahulu sebelum masuk lebih dalam dan memahami nuansa bahasa, tapi saya tidak yakin.

pembuat kode
sumber
1
Saya pikir ini jatuh ke dalam perintah umum: Gunakan alat. Jangan malas untuk menggunakannya secara membabi buta.
Alex Feinman
Saya pikir mereka harus menggunakan " editor teks standar '... gnu.org/fun/jokes/ed.msg
JoelFan
Saya telah merangkum apa yang telah saya pelajari di sini dalam sebuah posting blog: codinguser.com/2011/01/abstraction-is-good-magic-is-bad
codinguser

Jawaban:

11

Saya pikir memanfaatkan IDE membantu dalam proses pembelajaran. Metode, properti, parameter, kelebihan, dan sejenisnya dapat ditemukan. Dengan perpustakaan yang sangat besar, Intellisense membantu meneteskan pengetahuan JIT. Dalam lingkungan pengkodean saat ini, mustahil untuk mempelajari semuanya di muka, dan pembelajaran JIT seringkali merupakan satu-satunya cara praktis untuk cepat menjadi produktif.

Saya mengerti bahwa menggunakan IDE bisa menjadi penopang jika Anda menggunakannya secara membabi buta, tetapi saya pikir manfaatnya jauh lebih besar daripada yang negatif.

Menggunakan templat tanpa memahami apa yang sudah dibuat sebelumnya untuk Anda, di sisi lain, lebih merupakan masalah. Saya pikir itu dapat digunakan sebagai alat pembelajaran jika pengembang meluangkan waktu untuk membaca kode templated. Tetapi kebanyakan orang tidak peduli. Ini bisa menjadi alat belajar yang hebat.

Mark Freedman
sumber
JIT? Bukankah maksud Anda .NET FCL? =) Ya, saya setuju ... Selama bertahun-tahun intellisense telah membuktikan alat pembelajaran bagi saya, saya telah belajar tentang banyak kelas baru, metode, dan properti dengannya.
gideon
1
Maksud saya pembelajaran JIT - bukan kompilasi JIT;) Ada begitu banyak yang harus dipelajari, mencoba mempelajari semuanya di muka tidak realistis, sehingga selama Anda memahami konsepnya, mempelajari implementasi spesifik dapat dilakukan "tepat pada waktunya."
Mark Freedman
75

Memahami konsep dan menghafalkan lusinan kelas dan metode perpustakaan bodoh adalah dua hal yang sangat berbeda. Intellisense membantu menghilangkan semua pengetahuan tak berguna itu dari benak Anda sepenuhnya, dan semakin awal Anda melakukannya, semakin baik. Sisakan lebih banyak ruang untuk konsep-konsep yang bermanfaat, jangan sia-siakan sumber daya terbatas Anda pada API.

Untuk menjawab bagian pertanyaan yang diperbarui: sedikit detail sintaksis, tata letak file, kompilasi dan permintaan tautan juga tidak penting dibandingkan dengan konsep pemrograman generik. Begitu mereka dipahami, seorang pemula-tidak-lebih bisa masuk ke pemahaman yang lebih dalam tentang bagaimana hal-hal tingkat rendah benar-benar bekerja. Lebih baik melakukannya ketika Anda sudah mengetahui dasar-dasarnya, jika tidak, kemungkinan Anda akan mengambil sejumlah takhayul magis yang berbahaya.

Misalnya, DrScheme IDE memiliki rekam jejak yang hebat dalam pengajaran pemrograman, dan keberhasilannya terutama karena kemampuannya untuk membantu berkonsentrasi pada apa yang benar-benar penting.

SK-logic
sumber
30
+1. Saya benar-benar memiliki wawancara saat itu di mana mereka meminta saya untuk mengutip daftar parameter untuk beberapa fungsi Win32 API. Tidak pernah bisa memahami relevansi apa pengetahuan itu.
4
@codinguser: dan itu tidak masalah juga. Saya sering tidak dapat mengingat bahkan sintaks bahasa yang saya gunakan saat ini (walaupun saya mendesainnya sendiri). Ada banyak hal yang lebih penting untuk diingat daripada pernyataan impor atau cara menulis pasangan pengambil / penyetel. Dan IDE sedang melakukan hal-hal yang lebih bermanfaat - misalnya mengetikkan tip tooltips.
SK-logic
4
@ Astaga, pernahkah Anda mendengar kata "abstraksi"? Tahukah Anda mengapa ada berbagai tingkat abstraksi? Memperhatikan apa pun di bawah tingkat abstraksi domain masalah Anda saat ini adalah bodoh dan kontraproduktif. Dan mengambil kebiasaan yang merusak ini di awal karier adalah bencana. Butuh lebih dari sepuluh tahun bagi saya untuk pulih sebagian.
SK-logic
3
@ Josh K, apakah Anda bersikeras untuk memahami apa yang terjadi sampai ke syscalls dan lebih lanjut? Tidak ada nilai tambah dalam pemahaman ini. Tentu saja seorang programmer yang baik harus mampu beroperasi di semua tingkatan, termasuk kode mesin, tetapi seorang programmer yang baik juga harus mampu sepenuhnya abstrak jauh dari hal-hal yang tidak relevan.
SK-logic
3
@ SK-logic: Saya setuju, dan impor dan pemanggilan fungsi yang Anda gunakan secara langsung bukanlah sesuatu yang abstrak.
Josh K
16

Menggunakan autocomplete bukanlah hal yang buruk sama sekali.

Ini hanya untuk kecepatan, dan bagi saya akan menjadi tanda seseorang mulai menguasai IDE dan menggunakannya dengan baik.

Saya tidak mengerti bagaimana TIDAK menggunakannya akan membantu mereka belajar OO misalnya.

ozz
sumber
1
Saya siap untuk autocomplete ketika Anda menguasai dasar-dasarnya. Kecepatan itu bagus ketika Anda tahu kecepatan Anda. Tetapi ketika IDE secara otomatis mengisi parameter berdasarkan variabel lokal dari jenis yang sama, atau menambahkan pernyataan impor, itu hanya berfungsi dan beberapa pemula tidak benar-benar memahaminya.
codinguser
Saya telah membaca hasil edit Anda, tetapi saya ingin berpikir bahwa noobs yang kami sewa adalah orang-orang pintar yang akan melihat apa yang diisi, menanyai mereka, dan memahaminya. Apakah itu terjadi dalam praktek tentu saja merupakan pertanyaan lain.
ozz
13

Setelah mengajar dan mengajar siswa yang baru dalam pemrograman, saya menemukan bahwa autocomplete / intellisense terkadang menyebabkan lebih banyak kerusakan daripada kebaikan. Ya, mereka dapat menulis sebuah program dengan menggunakannya. Ya itu mengkompilasi dan menjalankan dan bahkan mungkin melakukan hal yang kami minta mereka lakukan. Tetapi mereka tidak mengerti apa yang mereka lakukan.

Ketika mereka tidak mengerti apa yang terjadi, itu menjadi kurang pemrograman dan lebih banyak meretas solusi bersama untuk mendapatkan nilai. Saya menemukan bahwa banyak terjadi dengan siswa ketika apa yang kami minta mereka lakukan menjadi lebih sulit, mereka hanya meretas sampai sesuatu berhasil. Ini selalu menjadi jelas ketika ujian tengah semester datang dan siswa diminta untuk menulis metode sederhana dengan tangan ... mereka tidak bisa.

Ya autocomplete / intellisense membantu kami (pengembang profesional) banyak b / c itu mempercepat kami. Kita tidak harus menghafal semua metode dan daftar parameter yang berbeda, tetapi pada saat yang sama kita juga bisa menebak-nebak parameter apa yang akan diambil oleh metode yang akan digunakan.

Pemula tidak. Mereka akan menunggu IDE mereka untuk menarik daftar metode, mereka akan menggulir daftar itu sampai mereka menemukan satu yang mungkin adalah apa yang mereka butuhkan, mereka akan melihat parameter yang dibutuhkan dan melihat apakah mereka memiliki mereka untuk masuk .. ..dan pada akhirnya mereka akan meretas sesuatu bersama yang bisa mereka serahkan.

Dan, pada akhir kursus ketika mereka mendapatkan pass mereka, mereka akan meninggalkan kelas pemrograman mereka dengan kemenangan yang dangkal, banyak yang tidak pernah mengambil kelas CS lagi b / c mereka tidak mengerti apa yang mereka lakukan atau mengapa mereka melakukannya saya t.

Tyanna
sumber
2
Saya akan bersikap sinis dan mengatakan selalu ada tipe siswa di CS. Jika mereka ingin mempelajari Intellisense hanya membantu mereka melakukan hal-hal lebih cepat, daripada menghabiskan waktu mencari setiap nama fungsi di Google atau buku
user151019
4
@Ark, saya setuju. Saya kira saya membuat jawaban saya terlalu luas dalam lingkup menyiratkan semua siswa. Tapi saya akan mengatakan ini, setelah memperkenalkan dan IDE dengan autocomplete ke lingkungan pengembangan saja jumlah siswa yang tidak mengerti ketika naik seperti halnya jumlah kegagalan pada paruh waktu pertama. Jumlah pertanyaan yang saya terima berkurang banyak, tapi saya belajar itu bukan karena siswa mengerti lebih baik, tapi mereka bisa membuat program bekerja tanpa meluangkan waktu untuk mengerti.
Tyanna
students were asked to write simple methods by hand...they couldn't.Itu tergantung pada apa yang Anda coba ajarkan kepada mereka. Konsep pemrograman umum, atau sintaksis khusus bahasa?
gingerbreadboy
9

Masalah dengan IDE dan lingkungan pengembangan secara umum tidak begitu banyak seperti autocomplete seperti penggunaan solusi templated (file | new | project) di mana banyak hal "menarik" telah dilakukan untuk Anda dan, pada tingkat yang berbeda-beda, disembunyikan .

Bagi seseorang yang, secara luas, memahami apa yang terjadi di balik tudung ini sangat membantu - tetapi bagi seseorang yang mempelajari apa yang mereka butuhkan agak kurang.

Ada juga pertanyaan tentang waktu yang dibutuhkan untuk menjalankan IDE kelas berat ...

Karena itu saya pikir bahwa menggunakan sesuatu yang lebih ringan dan dapat menjalankan aplikasi di mana Anda telah menulis sendiri setiap baris kode memiliki manfaat yang cukup - terutama karena menggunakan editor teks dan kompiler menunjukkan poin penting bahwa Anda tidak memerlukan IDE dll untuk menulis perangkat lunak tetapi itu tidak berarti bahwa saya ingin menggunakan editor teks untuk waktu yang lama dan itu memang menghadirkan tantangan dalam hal debug - Anda ingin dapat melakukan breakpoint dan Anda ingin dapat melakukan langkah tunggal melalui kode karena ini akan membuatnya lebih mudah untuk memahami apa yang sedang terjadi.

Tentu saja kita dapat lebih lanjut mengacaukan masalah ini dengan mempertimbangkan hal-hal seperti Python di mana Anda memiliki baris perintah "langsung" ...

Pertanyaan bagus, tidak ada jawaban tunggal yang bagus - kecuali bahwa Anda ingin mempelajari progresi dan mulai dengan editor teks dan kompiler (atau penerjemah baris perintah) akan memungkinkan Anda untuk fokus pada dasar-dasar sintaksis dan logika sebelum Anda maju ke yang lain hal-hal rumit yang akan lebih mudah dilakukan dengan lingkungan pengembangan yang lebih kuat.

Murph
sumber
2
Jujur, saya melihat waktu yang diperlukan untuk menjalankan IDE diabaikan. Saya menghabiskan puluhan jam menggunakan IDE saya di antara menyalakannya. Ini tentu saja menghemat lebih dari waktu tambahan 30-45 detik yang diperlukan untuk memulai hanya dalam penyelesaian kode saja selama rentang itu.
EricBoersma
@ Eric - dalam konteks Anda? Ya, 100%. Dalam konteks pertanyaan, yaitu pemula yang lengkap? Saya curiga IDE akan dibuka dan ditutup lebih sering untuk sesi yang lebih pendek dan umumnya apa pun yang menghalangi adalah kekecewaan.
Murph
Saya merasa seperti ini tentang ORM, pemula basis data tidak boleh diizinkan untuk menggunakannya karena mereka tidak cukup mengerti tentang pengembangan basis data untuk menggunakannya dengan baik. Alat hebat untuk orang yang tahu apa yang mereka lakukan, bencana untuk pemula.
HLGEM
@HLGEM Saya akan menyarankan bahwa ini sedikit lebih rumit dari itu ... tapi saya tidak berpikir saya bahkan jauh memenuhi syarat untuk mengomentari pemula dan database lagi) -: (Dan, untuk kejelasan, karena saya masih belajar bahasa dan kerangka kerja baru, saya pikir saya bisa mengomentari masalah IDE - Saya memiliki kenangan khusus memiliki masalah awal dengan .NET dan Visual Studio melakukan terlalu banyak)
Murph
4

Belajar dengan cara yang sulit biasanya tinggal bersama Anda.

Sebagai pemula, JANGAN gunakan IDE. Gunakan baris perintah, belajar dari kesalahan Anda. Ini juga akan membantu Anda memahami opsi kompilator dan tautan yang lebih dekat.

Jadi kapan Anda menggunakan IDE? Ketika Anda mendesain sesuatu yang besar atau bekerja pada basis kode besar dengan banyak kelas, metode dan variabel.

Fanatic23
sumber
7
Apa gunanya memahami opsi kompiler dan tautan jika Anda belum tahu apa itu kompiler? Biasanya berakhir berantakan. Saya menghabiskan lebih dari satu dekade membersihkan kekacauan saya sendiri yang dibuat oleh paparan yang terlalu dalam dan terlalu rendah pada awalnya (MACRO32, Fortran, DCL ...).
SK-logic
2
Sepakat. Tidak masuk akal untuk mempelajari perakitan sebelum mempelajari Python atau C #, misalnya - itu hanya membuat Anda lebih frustrasi. Secara umum, Anda mempelajari konsep tingkat tinggi dan kemudian menyaringnya ke dalam konsep tingkat lebih rendah, atau hal-hal lain yang lucu.
DMan
4

Saya akan menjadi orang pertama yang mengatakan bahwa IDE adalah anugerah bagi produktivitas, bahkan jika saya sering mengeluh tentang kebiasaan mereka. Namun, saya belajar BASIC, C, C ++, Java, Python, Perl, PHP, dan beberapa bahasa lainnya tanpa lebih dari editor penyorot teks dan kompiler / juru bahasa. Saya sebenarnya belajar Java di Notepad!

Mempelajari IDE mengemukakan "sihir" - gagasan bahwa "itu berhasil; tidak masalah bagaimana." Abstraksi itu baik; sihir itu buruk. Seorang programmer harus tahu, atau dapat mengetahui, semua yang terjadi dalam suatu proyek. IDE yang baik dirancang untuk menjaga pembukuan, bukan mengendalikan proyek. Digunakan dengan benar itu adalah alat yang hebat. Tapi pengrajin apa yang mulai menggunakan router CNC?

Saya pikir cara saya belajar (harus mengetik semuanya dan tahu kompiler dengan baik untuk membangun sebuah proyek) telah membantu saya tak terkira ketika akhirnya saya mulai menggunakan IDE. Misalnya, proyek Java bukan folder kecil di proyek Eclipse, tetapi kumpulan kelas dalam struktur paket dengan beberapa file XML untuk jalur, konfigurasi, dan penyebaran. Saya tidak ingin membangun aplikasi perusahaan besar tanpa IDE, tetapi saya bisa membangun yang kecil. Itu membuatnya lebih mudah untuk memahami struktur yang besar, dan ketika saya ingin perilaku tertentu dalam pembuatan, katakan, saya tahu bagaimana javac bekerja, sehingga saya dapat mengubah permintaan pembangunan yang sebenarnya daripada mencoba menemukan kombinasi ajaib yang tidak t ada dalam konfigurasi build. Saya juga percaya saya memiliki pemahaman yang lebih dalam tentang pesan kesalahan dan bagaimana menemukan dan memperbaikinya.

Saya tidak akan mengajar menggunakan IDE. Saya pikir proyek awal cukup kecil sehingga argumen untuk mengelola kompleksitas masih bisa diperdebatkan. Jika Anda mengajar Java, misalnya, Anda dapat menempatkan semua kelas di folder yang sama dan javac *.java. Anda tidak perlu IDE untuk itu! Ini berargumen untuk menjaga proyek tetap kecil, sedikit lebih dari pembuktian konsep. Minimalkan biaya overhead, dan berkonsentrasi pada pengajaran konsep yang dibutuhkan siswa. Proyek yang lebih besar di mana IDE akan berguna termasuk dalam kelas SE yang lebih maju atau proyek khusus.

Adapun bantuan untuk menemukan kelas dan penelitian API, sekali lagi, saya percaya ini bisa diperdebatkan jika proyek tetap kecil. Sekali lagi di Jawa, javadoc sangat mudah dibaca. Tidak ada yang bisa menyimpan seluruh API di sana tetap ada, dan akan ada waktu di mana Anda akan perlu untuk meneliti API tanpa manfaat dari IDE. Seperti, dalam bahasa lain, atau jika mengirim ulang ke server tempat Anda tidak dapat membuka IDE. Ajari cara menemukan dokumentasi, bukan "tekan '.' dan Anda dapat melihat apa metode objek itu. "

Setiap programmer dapat mempelajari suatu IDE, tetapi mengetahui suatu IDE tidak membuat Anda seorang programmer yang baik. Selain humor hitam, "sihir" tidak pernah menjadi kata yang baik untuk digunakan oleh seorang programmer.

Michael K.
sumber
Belajar dengan penyorotan teks ... lucky punk. Beberapa dari kita hanya memiliki daftar kata kunci dan prompt.
Matthew Whited
@ Matthew: Java saya mulai dengan notepad ... :)
Michael K
LOL ... Saya mulai menggunakan Apple IIc dengan Applesoft BASIC yang dibuat untuk ROM. : o)
Matthew Whited
Wow, saya merasa beruntung memiliki QBasic!
Michael K
4

Mungkin seorang pemula harus mengerjakan masalah yang lebih mudah terlebih dahulu. Dan tidak, masalah-masalah itu seharusnya tidak memerlukan atau mendorong penggunaan IDE untuk menyelesaikan tugas. Masih banyak yang bisa diperoleh dalam jangka panjang dengan memahami konsep-konsep dasar. Alat harus datang setelah.

Tidak ada pengrajin kayu yang langsung melompat menggunakan planer permukaan tenaga kuda tinggi tanpa memahami seluk-beluk jenis kayu dan pesawat tangan terlebih dahulu.

(Catatan: autocomplete dan intellisense adalah dua hal yang sangat berbeda).

Intellisense, dengan sendirinya, tidak buruk. Ini hanya buruk ketika digunakan kruk untuk menebak fungsionalitas tanpa membaca atau memahami dokumentasi atau implementasi yang mendasarinya.

Poin samping: Jika bahasa membutuhkan IDE untuk kode untuk Anda, bahasa tersebut mungkin berada pada level abstraksi yang salah untuk masalah yang Anda coba selesaikan.

Ryan McGeary
sumber
2
+1 untuk titik samping. Saya penggemar belajar banyak bahasa, jadi Anda tahu kapan suatu bahasa tidak cocok untuk suatu tugas.
Michael K
3

Ketika kita tumbuh sebagai seorang anak, kita tidak diberitahu bahwa kita harus memahami aturan rumit dari bahasa Inggris sebelum kita dapat berbicara. Kami tidak diberitahu bahwa kami harus sepenuhnya memahami penggunaan preposisi, konjungsi, dan untuk menghindari fragmen kalimat yang tepat. Kita belajar sambil melakukan. Kami belajar melalui kesuksesan dan kegagalan.

Sebuah IDE dengan pelengkapan otomatis membantu programmer baru mendapatkan kepercayaan diri dengan memfasilitasi pembuatan program, sementara tidak berjuang dengan mengingat setiap fungsi segudang banyak perpustakaan.

Jika seseorang benar-benar mengekstrapolasi pandangan bahwa autocomplete menyakiti programmer baru karena itu membuatnya terlalu mudah bagi mereka, maka Anda dapat berdebat, bahwa buku referensi tidak boleh digunakan saat pemrograman, karena konsep-konsep di dalamnya harus dikomit dulu, karena tidak membuat mereka hafal memperlambat mereka, dan tidak memungkinkan mereka untuk memahami konsep terlebih dahulu.

Autocomplete adalah alat, digunakan untuk membuat programmer lebih produktif. Sama seperti dengan belajar bahasa untuk pertama kalinya, setelah kami memperoleh kepercayaan diri dan tingkat keberhasilan dengan apa yang kami pelajari, kami kemudian bekerja untuk meningkatkan pengetahuan kami.

Tagihan
sumber
Itu adalah argumen yang sangat baik untuk menggunakan IDE. Itu tampaknya rusak di CS, karena tampaknya (bagi saya) banyak yang tidak lebih dari sekedar 'belajar berbicara'. Itu akan membutuhkan kurikulum yang akan di-refactored untuk secara eksplisit mengajarkan hal-hal yang disembunyikan oleh IDE.
Michael K
2

Pada awalnya, cukup sulit untuk membangun sesuatu yang berfungsi, jadi apa pun yang membantu merek menjadi semakin baik. Seorang programmer baru akan membutuhkan seseorang yang lebih senior untuk membuat mereka berpikir tentang apakah daftar terikat array atau daftar tertaut akan menjadi pasangan yang lebih baik untuk masalah yang dihadapi. Mereka masing-masing memiliki kekuatan dan kelemahan mereka.

Apakah pemula memiliki IDE, atau mereka menelusuri dokumen API secara online, tidak akan ada perbedaan nyata antara kode yang mereka buat. Sementara berurusan dengan rasa sakit menulis kesalahan sintaks bisa menjadi pengalaman belajar, ada terlalu banyak untuk belajar khawatir tentang itu di awal.

Anda tidak belajar berjalan di atas tali dengan langsung ke kawat tinggi tanpa jaring. Anda mulai dengan berjalan tali yang beberapa inci dari tanah. Saya berani mengatakan bahwa kebanyakan dari kita bekerja dengan IDE, dan beberapa jenis skrip build (skrip build Visual Studio dibuat oleh IDE tetapi ada di sana). Sebagian besar dari kita tidak membangun kelas kita secara manual dengan editor teks, dan kemudian memanggil kompilator dengan tangan. Mengapa kita harus memaksakan itu pada seorang pemula yang memiliki lebih banyak hal untuk dipelajari?

Berin Loritsch
sumber
2

Saya tidak melihat ada kebutuhan untuk menderita rasa sakit dari alat-alat di atas, bahkan ketika pengembang sedang belajar. Saya percaya waktu ekstra dan upaya yang diperlukan untuk menulis kode tanpa alat akan lebih baik dihabiskan belajar bagaimana menulis tes unit dan debug. Setelah pengguna mengetahui cara menguji kode mereka dan melangkah melaluinya saat berjalan mereka akan belajar banyak tentang apa yang sebenarnya dilakukan.

Selain itu, tidak seperti menggunakan IDE berarti kode itu menulis sendiri. Pengembang yang tidak kompeten atau pemula akan menulis kode yang tidak berfungsi apakah mereka menggunakan IDE atau tidak.

Saya hanya melihat IDE sebagai level abstraksi lain saat coding. Jika saya menulis Java, saya biasanya tidak perlu memahami bagaimana bytecode yang dihasilkannya berfungsi. Jika seorang programmer baru menggunakan Java libs mereka tidak perlu tahu paket apa yang ada di dalamnya jika IDE dapat menambahkannya secara otomatis untuk mereka. Dalam kasus mana pun jika bug atau masalah di level bawah mungkin muncul (mis. Benturan nama kelas) yang menyebabkan kesalahan, maka sudah waktunya bagi pengembang untuk melihatnya secara manual.

Alb
sumber
0

Banyak jawaban bagus lainnya jadi jangan anggap ini jawaban yang lengkap, tetapi baik bagi pemula maupun pengguna berpengalaman untuk melihat gambaran lengkap tentang fungsi apa yang mereka miliki.

Dalam Delphi saya dapat menekan ctrl-j dan saya akan melihat daftar setiap hal yang mungkin bisa saya harapkan secara sintaksis berfungsi.

Saya tidak perlu setuju, tetapi saya telah membaca argumen yang menyatakan bahwa pemrogram seharusnya tidak melihat anggota kelas privat dari objek yang mereka gunakan dan dengan cara ini, lengkapi-otomatis memberi setiap pengguna referensi API instan.

IDE yang lebih baru memungkinkan pengguna dan pengembang bahasa memasukkan meta-data ke dalam intellisense mereka yang selanjutnya meningkatkan kemampuan membaca dan memahami apa fungsi yang dilakukan, tanpa membaca sumbernya (yang merupakan sesuatu yang seharusnya tidak harus mereka lakukan pula).

Mungkin, yang terbaik bagi pemula untuk benar-benar membaca dan memahami semua yang mereka terapkan. Tapi, mungkin itu akan menjadi pertanyaan yang lebih baik apakah pemula harus diizinkan untuk memasukkan atau mengimpor ruang nama atau unit apa pun yang mereka inginkan tanpa mendokumentasikan mengapa mereka memasukkannya.

Peter Turner
sumber
0

Dalam pengalaman saya, menggunakan IDE untuk mempelajari dasar-dasar OO saya hebat karena menyembunyikan beberapa kompleksitas sebenarnya menulis kode sambil memungkinkan pengembang baru untuk fokus pada logika program. Namun, segera setelah belajar memprogram dan prinsip dasar OO saya, melalui kursus dipaksa untuk memahami lebih tepat potongan apa yang diperlukan untuk berinteraksi satu sama lain dalam file sumber (tidak melupakan pernyataan impor, membuat kelas yang benar, dll) dengan kursus pemrograman di mana kami harus menggunakan terminal hanya mesin Unix.

Ini dimungkinkan di sekolah karena seseorang memiliki 'wewenang' untuk memaksa Anda menggunakan alat lo-fi. Akan jauh lebih sulit untuk dicapai dalam lingkungan bisnis atau perusahaan.

Bryan J Swift
sumber
0

Saya punya dua pemikiran tentang ini. Yang pertama adalah untuk benar-benar mempelajari sesuatu, saya yakin Anda harus tahu apa yang sebenarnya terjadi. Dan dengan seberapa bagus IntelliSense, ia dapat menyembunyikan sebagian dari itu untuk pengembang baru. Sebagai contoh, saya memiliki kelas rekayasa web di perguruan tinggi tempat kami benar-benar membangun kerangka kerja web kami sendiri untuk membangun aplikasi akhir kami di atas. Saya keluar dari kelas itu dengan kemampuan untuk beradaptasi dengan hampir semua kerangka kerja web karena saya memiliki pemahaman tentang apa yang ada di bawahnya. Menggunakan IDE tidak cukup untuk tingkat itu tetapi, intinya masih ada saya percaya.

Namun, menggunakan IDE juga dapat melakukan hal-hal seperti membuka API untuk pengembang baru. Ketika saya mulai mengkode dengan serius, IDE yang saya gunakan sangat membantu saya karena saya akan melakukan hal-hal seperti mengetikkan objek, menggunakan pelengkapan otomatis untuk melihat metode apa yang dimilikinya, dan kemudian meneliti mereka menggunakan dokumen yang tersedia. Ini semua dilakukan dalam IDE dan merupakan alat pembelajaran yang hebat.

Jadi, ya, saya percaya tidak masalah untuk menggunakannya selama Anda juga meluangkan waktu untuk memahami apa yang sedang terjadi. Hanya menggunakan objek yang dilemparkan tanpa memahami mengapa Anda harus melakukannya benar-benar buruk tetapi, jika pengembang baru melihat bahwa Anda dapat menggunakan objek yang dilemparkan dan kemudian melihat untuk melihat mengapa saya tidak melihat ada yang salah.

Corv1nus
sumber
0

Belajar membutuhkan latihan. Pemrograman bisa menjadi tugas yang sangat membuat frustasi ketika Anda tidak tahu apa yang dapat Anda lakukan atau bagaimana cara kerjanya.

Tidak praktis untuk, katakanlah, membaca banyak buku tentang prinsip pemrograman tanpa menulis satu baris kode pun; seseorang tidak belajar apa pun dengan cara ini.

Intellisense sangat membantu memberi programmer baru bantuan yang mereka butuhkan untuk terus pemrograman, terus berlatih, dan dengan demikian belajar.

Seperti yang sudah dikatakan, belajar API spesifik tidak sama dengan belajar prinsip pemrograman. Apa yang pasti akan terjadi adalah bahwa programmer baru akan membuat kesalahan (terlepas dari Intellisense), dan bagaimana mereka memilih untuk memperbaiki kesalahan itu adalah apa yang akan membuat mereka menjadi programmer yang baik atau yang buruk.

Jika Anda mencoba mengajari seseorang cara memprogram, saya akan membuat mereka menggunakan Intellisense dan bermain-main sampai macet. Saat itulah saya mencoba membangun sebuah yayasan dengan mengajari mereka alasan mereka buntu.

Remus
sumber
0

IMO, IDE akan membuat Anda lebih produktif. Tetapi untuk pemula biasanya bukan ide yang baik untuk memulai pemrograman dengan IDE. Editor teks seperti notepad ++, notepad, dll. Sudah cukup.

Selain itu, umumnya tidak dianggap sebagai ide yang baik untuk mulai mempelajari pemrograman dengan bahasa tingkat tinggi. Saya menyarankan Anda untuk mulai dengan bahasa assembly. Ini akan mengajarkan Anda dasar-dasar serta kesabaran.

NinjaCoder
sumber