Mengapa Jawa lingua franca di banyak institusi? [Tutup]

22

EDIT: Pertanyaan ini pada awalnya tampaknya bashing Java, dan saya kira pada titik ini agak. Namun, poin yang lebih besar yang saya coba utarakan adalah mengapa satu bahasa tunggal dipilih sebagai ujung semua semua solusi untuk semua masalah. Java adalah yang digunakan sehingga yang harus saya kalahkan di sini, tapi saya tidak sengaja merobek Java yang baru :)

Saya tidak suka Java di sebagian besar pengaturan akademik. Saya tidak mengatakan bahasanya sendiri buruk - ia memiliki beberapa aspek yang sangat diinginkan, yang paling penting kemampuan untuk berjalan tanpa kompilasi ulang pada sebagian besar platform apa pun. Tidak ada salahnya menggunakan bahasa untuk Aplikasi Berikutnya Anda ^ TM. (Bukan sesuatu yang secara pribadi akan saya lakukan, tapi itu lebih karena saya memiliki lebih sedikit pengalaman dengannya, daripada desainnya yang buruk)

Saya pikir itu sia-sia bahwa kursus CS tingkat tinggi diajarkan menggunakan Java sebagai bahasa. Terlalu banyak rekan siswa saya yang tidak dapat memprogram apa pun, karena mereka tidak tahu bagaimana bekerja di dunia yang tidak dikoleksi sampah. Mereka pada dasarnya tidak memahami mesin yang mereka pemrograman. Ketika seseorang dapat bekerja di luar dunia pengumpulan sampah, mereka dapat bekerja di dalam satu dunia, tetapi tidak sebaliknya. GC adalah alat, bukan penopang. Tetapi cara itu digunakan untuk mengajar siswa ilmu komputer adalah sebagai penopang.

Ilmu komputer tidak seharusnya mengajarkan seluruh rangkaian program yang dirancang untuk satu bahasa. Siswa pergi dengan gagasan bahwa semua desain yang baik adalah desain Java idiomatik, dan bahwa Desain Berorientasi Objek adalah SATU CARA YANG BENAR YANG HANYA CARA HANYA DAPAT DILAKUKAN. Bahasa lain, setidaknya salah satu dari mereka bukan bahasa sampah yang dikumpulkan, harus digunakan dalam pengajaran, untuk memberikan lulusan pemahaman yang lebih baik tentang mesin.

Sangat memalukan bahwa seseorang dengan PHD di CS dari lembaga yang disegani tidak bisa memprogram jalan keluar dari kantong kertas.

Yang lebih buruk, adalah ketika saya berbicara dengan para profesor CS yang benar-benar memahami bagaimana berbagai hal beroperasi, mereka berbagi perasaan seperti ini, bahwa kami melakukan tindakan yang merugikan siswa kami dengan melakukan segala sesuatu di Jawa. (Perhatikan bahwa di atas akan sama jika saya menggantinya dengan bahasa lain, umumnya menggunakan satu bahasa adalah masalahnya, bukan Java itu sendiri)

Secara total, saya merasa saya tidak bisa lagi menghormati gelar apa pun - ketika saya tidak bisa melihat orang-orang di sekitar saya bisa memprogram jalan keluar dari masalah fizzbuzz.

Kenapa / bagaimana bisa seperti ini?

Billy ONeal
sumber
9
Jangan khawatir. Berikan Oracle setengah kesempatan dan mereka akan memperbaiki situasi :) Tuntutan hukum mereka terhadap Android dan Apache hanyalah awal dari mengusir pengembang. Saya mengajar di sebuah lembaga yang telah mengambil di atas sebagai isyarat untuk mulai mengajar Python, untuk mengantisipasi pasar di masa depan.
SamGoody
3
Apa pengaturan akademik yang Anda maksud? Saya tidak tahu di mana saja di mana siswa CSci diharapkan hanya belajar satu bahasa. (Terakhir saya berada di sekolah, Anda bisa mendapatkan dengan C dan Skema, saya pikir, jika Anda memilih jurusan dan kelas dengan hati-hati, tetapi Anda akan menggunakan setidaknya dua bahasa yang berbeda.)
David Thornley
16
Bisakah Anda menjelaskan cara kerja cache L1 Anda? Bisakah Anda merancang ALU? Bisakah Anda menjelaskan persamaan Maxwell? Bagaimana dengan sifat termodinamika motherboard Anda? Bisakah Anda membuat drive USB? Apakah Anda BENAR-BENAR tahu cara kerja komputer Anda? Atau apakah Anda memilih tingkat abstraksi yang sesuai dengan minat Anda dan pergi dari sana?
MetricSystem
5
Karena memutuskan bahwa Anda perlu memahami manajemen memori untuk "memahami secara mendasar mesin yang sedang mereka pemrograman" adalah level yang sepenuhnya arbitrer untuk dihentikan. Jika tidak perlu memahami masalah yang Anda minati, waktu Anda seringkali lebih baik dihabiskan untuk mempelajari apa yang Anda minati (karena tidak ada yang punya cukup waktu untuk mempelajari semuanya). Dan setiap argumen yang Anda ajukan tentang mengapa programmer Java perlu mempelajari manajemen memori dapat diperpanjang tanpa batas hingga semua orang perlu mengetahui fisika atom untuk "memahami" apa saja.
MetricSystem
7
Lebih jauh lagi jika ada orang yang memiliki argumen orang bodoh di sini adalah Anda, mengingat bahwa saya belum pernah mendengar tentang satu program CS yang hanya menyajikan Java sebagai bahasa pemrograman.
MetricSystem

Jawaban:

30

Ini bukan masalah Java, ini masalah mengajar. Tidak tahu bagaimana program bukan kesalahan bahasa, itu kesalahan siswa. Hal yang sama berlaku untuk semua masalah Anda, GC, pengetahuan mesin dasar, cara kerja "di balik tudung".

Keluhan utama Anda tentang pengumpulan sampah membuat saya sedikit. Kecuali Anda melakukan pengumpulan sampah C atau C ++ biasanya sangat baik dan tidak menjadi masalah. Apakah Anda lebih suka mereka semua belajar perakitan? Bahasa tingkat tinggi yang ketat sangat berguna untuk pengajaran. Ini memberi Anda fleksibilitas perpustakaan, paket, dan kemudahan lain ketika Anda membutuhkannya, tanpa ada bahasa "gula" yang membingungkan hadir di sebagian besar bahasa tingkat tinggi lainnya (PHP, Ruby, Python, Perl).

Josh K.
sumber
5
Saya tidak mengatakan bahwa bahasa tingkat yang lebih tinggi tidak boleh diajarkan. Tetapi saya mengatakan bahwa sesuatu tingkat yang lebih rendah (pada urutan C atau Fortran atau beberapa bahasa pemrograman sistem lainnya) harus diajarkan juga. (Lebih rendah dari C kurang berguna karena di bawah level itu apa pun yang Anda pelajari akan dikhususkan untuk arsitektur mesin tunggal). Saya tidak mengatakan bahwa semua lulusan CS harus menjadi pemrogram tingkat rendah yang hebat. Tetapi saya mengatakan bahwa jika dihadapkan dengan masalah tingkat rendah, mereka seharusnya tidak tergagap dan mati, seperti yang tampaknya dilakukan oleh semua siswa di sekitar saya.
Billy ONeal
3
@Illy: Menurun lebih rendah maka tingkat belajar awal Anda sulit. Saya menemukan diri saya melihat kode C ++ / C dan memiliki sedikit menyenangkan waktu membungkus kepalaku di sekitarnya. Jangan mengharapkan keajaiban, tapi jangan berharap malaikat juga. Programmer perlu memiliki drive, kurang bahwa mereka semua akan "tergagap dan mati" dengan cepat tidak peduli apa pun tingkat masalahnya.
Josh K
5
@ Josh: Cukup adil, tetapi paparan formal IMHO untuk setidaknya satu lingkungan pemrograman lain harus menjadi keharusan untuk diberikan gelar CS. Gelar tidak mengatakan "Saya mengerti Java", katanya, "Saya mengerti CS". Keduanya tidak sama, dan Anda tidak dapat mencapai pemahaman penuh tentang CS menggunakan Java (atau dalam hal ini, bahasa apa pun ) saja. (BTW, +1)
Billy ONeal
2
@ JoshK: Ketidakmampuan untuk debug pada level rendah, dan kemampuan yang sangat berkurang untuk alasan yang benar tentang implikasi dari kode yang mereka tulis.
Mason Wheeler
1
Saya tahu programmer yang hanya belajar Java dan takut dengan C ++ atau C karena mereka harus menggunakan pointer. Saya tidak tahu apakah seseorang yang tidak dapat memprogram dengan pointer dapat dianggap sebagai programmer nyata: setelah semua, semua komputer modern dan runtimes masih didasarkan pada arsitektur dasar yang melibatkan register, memori utama, stack, heap. Jadi saya lebih suka program di Java daripada di C ++ (sudah pasti lebih mudah untuk menyelesaikan sesuatu jika Anda tidak perlu repot tentang manajemen memori) tapi saya setuju bahwa mengajar pasti tidak terbatas pada Java.
Giorgio
12

Apakah universitas benar - benar melakukan ini? Atau apakah ini hanya persepsi yang didapat orang ketika mereka mendapatkan kandidat wawancara kerja yang buruk?

Saya mendapatkan gelar CS saya 4 tahun yang lalu dan sementara Java digunakan di kelas intro, itu tidak terlalu ditekankan setelah itu. Dari atas kepala saya, inti diperlukan kursus mengharuskan Anda untuk belajar Java, C, C ++, SML (bahasa pemrograman fungsional), assembly, matlab dan CAST (bahasa deskripsi sirkuit). Ini tidak memperhitungkan semua kursus CS matematika dan teoretis dan tentu saja, setengah lusin kursus CS pilihan yang akan membuat Anda terpapar lebih banyak. Dari berbicara dengan teman-teman di sejumlah universitas yang berbeda, tidak terdengar seperti apa yang mereka lakukan jauh berbeda.

Jika ada universitas yang hanya mengajarkan Jawa, maka itu memang sebuah tragedi. Bukan karena Java buruk, tetapi karena Java hanyalah salah satu dari sekian banyak alat yang harus tersedia untuk seorang programmer. Pengembang yang hanya mengenal Java sama dengan tukang kayu yang hanya tahu cara menggunakan palu. Namun, saya sulit percaya itu benar-benar terjadi, setidaknya untuk universitas ternama. Saya menduga bahwa ini hanyalah persepsi dari melihat kandidat yang buruk dan menyalahkan sekolah karena ketidakmampuan kandidat daripada kurangnya dorongan / motivasi / rasa ingin tahu / profesionalisme profesional / dll.

Yevgeniy Brikman
sumber
2
Sepakat. Saya baru saja lulus beberapa tahun yang lalu, dan sementara sebagian besar kelas saya diajarkan menggunakan Java, sulit untuk lulus tanpa mengambil kelas yang diajarkan menggunakan C atau C ++, dan kami juga memiliki kursus bahasa pemrograman yang menekankan penggunaan Haskell .
mipadi
Pada tingkat saya, kami melakukan Pascal pertama, kemudian Jawa sebagai bahasa OO kami. Namun melewati tahun ke-2, 90% profesor tidak peduli bahasa apa yang Anda gunakan. Beberapa dari kita menggunakan c / c ++ / ruby ​​/ C # / python / bahkan haskell, tetapi kebanyakan orang terjebak dengan apa yang mereka ketahui, java. Hanya beberapa kursus yang diperlukan menggunakan assembly / c / c ++ yaitu hal-hal seperti grafik 3D (opsional) kami yang telah diterapkan c / c ++ untuk opengl. Dan tentu saja sistem dasar tentu saja menegakkan perakitan SPARC (karena kami sengaja bekerja & level rendah). Saya dengar mereka sudah pindah ke python / c ++ di tahun pertama sekarang ...
Aren
11

Saya benar-benar terkejut dengan situasi seperti ini di banyak sekolah. Ketika saya mendapatkan gelar CS saya, saya memiliki serangkaian kursus bahasa yang di antaranya mencakup semua bahasa populer saat itu (ini hampir 40 tahun yang lalu): assembler (Univac 1108 dan MIX), FORTRAN IV, SNOBOL4, COBOL, Lisp , dan Algol 68. Saya tidak bisa membayangkan hanya memiliki satu bahasa yang diajarkan. Atau bagaimana saya bisa menghargai apa yang harus dilakukan oleh kompiler tanpa menulis beberapa program assembler.

Kami memang menggunakan Algol dan FORTRAN untuk sebagian besar kursus data dan algoritma. Saya ingin menghabiskan lebih banyak waktu dengan Lisp - alih-alih kami hanya memiliki pengantar dan sekarang mencoba mempelajari kembali beberapa konsep. Kami menggunakan SNOBOL4 untuk menulis parser - dan pola yang cocok dengan backtracking membangun fondasi yang baik untuk kemudian bekerja perpustakaan regex termasuk dengan banyak bahasa modern.

Pengantar setengah lusin bahasa ini memicu minat pada saya yang terus berlanjut sejak itu.

tcrosley
sumber
8

Untuk mendapatkan alasan sebenarnya, Anda harus bertanya kepada orang-orang yang menjalankan lembaga-lembaga tersebut (dan bahkan kemudian, mereka mungkin tidak memberi tahu Anda).

Beberapa kemungkinan alasan (dan saya tidak membela atau menuduh siapa pun di sini, hanya menebak):

Anda bisa menyelesaikan sesuatu di Jawa

Java adalah bahasa tujuan umum dan dengan demikian dapat digunakan untuk memecahkan banyak masalah.

Banyak guru mengerti Jawa

Sulit untuk mengajarkan bahasa yang Anda tidak mengerti

Java populer

Yang berarti bahwa ada banyak sumber daya Java - buku, komunitas aktif, perpustakaan kode dll.

Jawa itu mudah

Anda tidak perlu memahami banyak hal atau teori tingkat rendah untuk melakukan Java. Anda mungkin tidak melakukannya dengan baik , tetapi setidaknya Anda bisa menyelesaikan sesuatu.

Java meresap

Anda dapat menjalankannya pada lebih atau kurang apa saja.

Ada pekerjaan untuk programmer Java

Ada banyak pekerjaan yang membutuhkan Jawa - guru seharusnya mempersiapkan siswa untuk dunia nyata.

Ada waktu terbatas

Pada banyak kursus, tidak ada waktu untuk mengajar banyak bahasa, teori, konsep tingkat rendah dll.

Itu yang diinginkan siswa

Banyak siswa telah mendengar (dan bahkan menggunakan) Java. Mereka suka karena sudah tidak asing lagi.

Kramii Reinstate Monica
sumber
6

Itulah yang diminta industri. Ada kekurangan pengembang Java sehingga sekolah mulai membuat mereka. Perusahaan mendapat pengembang yang dapat mulai bekerja segera setelah mereka berjalan melewati pintu.

Bagaimanapun, bahasanya tidak masalah. Mereka bisa mengajar bahasa non-GC dan masih menghasilkan programmer yang buruk. Penggunaan sekolah bahasa adalah detail implementasi. Sekolah harus mengajarkan konsep. Jika ini bukan masalahnya, maka sekolahlah yang menjadi masalah, bukan bahasa yang mereka ajarkan. Hanya karena seseorang tidak tahu apa itu pointer, bukan berarti mereka tidak bisa menjadi programmer yang efektif.

Lagipula, GC adalah jalan masa depan.

Henry
sumber
4
Anda tidak perlu tahu apa itu pointer. Tetapi Anda harus dapat mengambil konsep relatif cepat. Tidak memahami pointer, atau konsep yang mirip dengan pointer, menunjukkan kurangnya pemahaman tentang ilmu komputer secara keseluruhan. Saya tidak mengatakan semua lulusan CS harus menjadi programmer tingkat rendah yang hebat, tapi saya katakan mereka setidaknya harus memiliki pemahaman konseptual tentang apa yang terjadi ketika mereka menerima gelar sarjana 4 tahun.
Billy ONeal
1
CS bukan tentang pemrograman.
Javier
1
@ Javier: Bagaimana CS bukan tentang pemrograman? Tentu ada yang cabang CS, "Teoritis Ilmu Komputer", yang bukan tentang pemrograman, tetapi untuk sebagian besar itu adalah tentang pemrograman.
Billy ONeal
1
@ Billy ONeal: definisi wikipedia sedikit panjang, tetapi bagian yang paling dekat dengan pemrograman adalah "studi teknik praktis untuk implementasinya". maksudnya, ini bukan tentang implementasi (pemrograman) tetapi mempelajari teknik implementasi (algoritma, struktur, bahasa, dll)
Javier
1
@ Javier: Saya pikir "studi pemrograman" dan "aksi pemrograman" adalah satu hal yang sama. Lagi pula, kode dibaca lebih sering daripada yang tertulis. Tapi itu intinya - ketika Anda menerima gelar CS, hal yang Anda akhirnya akan lakukan adalah pemrograman.
Billy ONeal
4

Motif kemalasan dan keuntungan. Java membuat sebagian besar orang mencapai 80%, dengan upaya 20%. Namun, ini sering menghasilkan "codec monyet", pembuat kode voodoo yang tidak memiliki pemahaman mendalam tentang apa yang terjadi, dan tidak dapat menggali lebih dalam daripada alat tingkat tinggi.

Mengajar C / C ++ dengan benar sulit. Bahkan ketika dilakukan dengan baik, beberapa tidak akan sepenuhnya memahami konsep tingkat rendah seperti petunjuk (ada studi tentang ini). Selain itu, tampaknya tidak langsung relevan di pasar kerja.

dbkk
sumber
2
Tetapi jika Anda mengerti petunjuk, Anda dapat memahami referensi dengan lebih mudah.
Michael K
3

Saya sebagian besar setuju tetapi pada tingkat tertentu.

Jika Anda ingin mengajarkan keberanian CS yang berfokus pada struktur data atau algoritma. Menyingkirkan sebagian besar barang yang tidak perlu adalah hal yang baik. Anda tidak ingin siswa berurusan dengan siswa tingkat rendah ketika mempelajari konsep tingkat tinggi.

Di sisi lain, hal-hal tingkat rendah juga harus diajarkan. Supaya kita mendapatkan lebih banyak programmer semua-sekitar.

Kugel
sumber
Saya tidak berbicara tentang satu kursus pun. Untuk satu kursus, itu tidak masalah. Untuk keseluruhan kurikulum, tidak.
Billy ONeal
3

Seperti biasa, ini adalah pertanyaan tentang apa yang ingin Anda ajarkan dan berapa lama Anda harus melakukannya.

Melakukan hal-hal di Jawa berarti Anda tidak harus berurusan dengan pointer liar dan bebas / malloc. Itu berarti lebih sedikit bug yang sulit ditemukan.

Ini tidak berarti bahwa Anda tidak boleh belajar tentang mesin yang mendasarinya - yang Anda harus pandai dalam perdagangan - tetapi mungkin Anda harus memilih alat yang tepat untuk pekerjaan itu. Algoritme tingkat tinggi mungkin bukan topik terbaik untuk kursus assembler.

pengguna1249
sumber
Untuk kursus intro-ke-pemrograman atau kursus struktur data, Java baik-baik saja. Namun tidak untuk kurikulum 4 tahun penuh.
Billy ONeal
@Billy Sepakat. Saya hanya menyebutkan bahwa menggunakan Java memberi Anda beberapa hal yang tidak perlu Anda khawatirkan. Anda harus mempelajari dasar-dasar dalam kursus lain tanpa Java.
2

Apakah terlalu berlebihan untuk bertanya bahwa mereka diajari sesuatu tentang bagaimana komputer benar-benar bekerja? Tidak masuk akal bagi saya bahwa garis besar kursus CS tidak akan mencakup sesuatu dari sistem operasi dan arsitektur komputer. Saya tidak mengatakan Anda harus dapat merancang komputer di bagian belakang amplop, tetapi gambaran umum menempatkan semua bahasa ke dalam perspektif. Maksudku, Java berjalan di mesin virtual!

Michael K.
sumber
1
Apakah ada program ilmu komputer yang bagus yang tidak termasuk kursus OS dan kursus organisasi komputer?
mipadi
Saya tentu berharap tidak!
Michael K
0

Dalam semua kejujuran saya tidak berpikir bahwa Anda harus kehilangan rasa hormat untuk semua derajat dan terutama bukan CS karena satu-satunya bahasa yang diajarkan adalah Jawa.

Setiap perusahaan yang layak. siswa sci memahami bahwa gelar CS-nya tidak lebih dari selembar kertas dan bahwa pengetahuan nyata akan datang dari proyek pribadi dan studi pribadi. Saya ingin berpikir bahwa siswa yang baik tahu mereka perlu tahu C dan belajar bagaimana menyelesaikan sesuatu di Linux / Unix dan belajar bagaimana TIDAK memegang tangan mereka dengan bahasa modern.

pengguna40362
sumber
-1

Saya tidak melihat masalah dengan menggunakan Java. Masalah terbesar (seperti yang Anda sebutkan) adalah ketika universitas mengajarkan program imperatif sebagai cara terbaik dan satu-satunya untuk menyelesaikan semua masalah Anda. Ini sangat jauh dari kebenaran. Sebagai contoh, alih-alih menggunakan tiga bahasa imperatif (atau bahkan bahasa terburuk yang sama) untuk tiga kursus berbeda, mereka harus menggunakan tiga paradigma pemrograman yang berbeda. Contohnya adalah Java (imperatif), Prolog (deklaratif), dan Haskell (fungsional).

Adapun mengapa ini terjadi, saya pikir itu adalah kombinasi dari (1) politik - ketua tidak berpikiran terbuka atau memiliki keuntungan / sponsor pribadi, dan (2) kemalasan - profesor pernah menjadi mahasiswa dan mereka mengajar apa pun yang mereka tahu atau sukai.

sakisk
sumber
-1

Calvin college di Grand Rapids Mi. Begitu mereka beralih dari Jawa ke Python untuk kelas-kelas pemrograman pengantar, profesor yang tidak percaya menyebutkan kepada sekelompok kami di dekat akhir semesternya, "Banyak dari mereka benar-benar dapat memprogram, ini luar biasa". Ketakjubannya berbeda dengan pengalaman sebelumnya dengan Jawa. Ini tidak membuat Java bahasa yang buruk, hanya sulit untuk mengambil dari awal. Saya berpendapat hal yang sama tentang C, atau C ++ atau bahasa apa pun yang membutuhkan pengetahuan mendalam tentang skema atau tipe alokasi memori.

Ben DeMott
sumber
1
Erm, Python membutuhkan pengetahuan yang mendalam tentang jenis seperti bahasa lain yang Anda sebutkan.
Billy ONeal
Saya berharap bahwa bahasa dengan penerjemah akan lebih mudah dipelajari, karena siswa dapat memperoleh pernyataan umpan balik dengan pernyataan daripada mengkompilasi dengan kompilasi.
kevin cline
@ BillyONeal Anda salah membaca saya, Konteksnya adalah alokasi memori dalam kalimat terakhir saya. Saya belum khawatir tentang ukuran atau # elemen str () atau dict () atau tuple () atau list () atau set () ... Saya hanya 'menggunakannya'.
Ben DeMott
@kevincline Terima kasih Kevin - ini adalah apa yang saya coba sampaikan. Menilai oleh downvotes saya perlu bekerja pada keterampilan komunikasi saya;)
Ben DeMott
-2

Saya mendapat gelar dalam rekayasa sistem komputer, jadi saya melakukan studi perakitan, mikroprosesor, VHDL, apa gerbang logika dan bagaimana membuat flip-flop dari mereka, saya mempelajari sirkuit listrik, penguat operasional, filter low-pass, amplitudo modulasi, membangun sirkuit di laboratorium yang akan terdengar seperti keypad telepon, kacau dengan penganalisa logika, mengambil beberapa kelas fisika. Di sisi Linux - saya mengkompilasi ulang kernel sebelumnya, menulis driver perangkat kecil, dan sistem file pekerjaan rumah.

Tetapi kemudian saya menyadari bahwa saya lebih menyukai barang-barang tingkat tinggi. Saya lebih suka Python daripada C. Saya suka C # dan saya suka pengumpul sampah. Saya suka matematika dan algoritma dan struktur data, tapi saya bukan penggemar pointer - saya bisa mengacaukannya; Aku hanya tidak mau.

Jadi, Anda berpikir bahwa universitas harus mengajar lebih banyak C, lebih sedikit Jawa. Orang lain berpikir bahwa mereka harus mengajarkan semuanya dalam Skema. Spolsky akan mengambil keduanya.

Ya, memang benar bahwa gelar sarjana hanyalah selembar kertas, tetapi "jangan biarkan sekolah menghalangi pendidikan Anda". Selalu ada Wikipedia, Stack Overflow, Coursera.org, dll. Sepertinya universitas tradisional akan menjadi kurang penting.

Jika saya bisa melakukan sarjana di seluruh, maka saya akan pergi ke sekolah yang berbeda, saya tidak akan mempelajari hal-hal teknik listrik, melainkan Matematika, CS + minor dalam Fisika dan Prancis. Scratch French; Saya seharusnya belajar di luar negeri di Swiss dan belajar 5 bahasa alami saat itu. Saya juga akan kembali dan menemukan seseorang yang meyakinkan saya bahwa saya benar-benar harus mengambil beberapa pengantar ke kelas ekonomi di perguruan tinggi untuk bertahan hidup di dunia nyata dan memukul kepalanya dengan koleksi buku-buku Milton Friedman (hanya sedikit buku tentang masalah ekonomi yang saya baca yang tidak payah). Saya juga tidak akan membayar uang untuk buku Freakonomics 1 atau buku tentang bahasa Perl.

Kalau dipikir-pikir, saya akan melakukan banyak hal secara berbeda. Yang bisa saya lakukan sekarang, dan saya merekomendasikan ini kepada Anda, adalah memilih petualangan Anda sendiri: http://www.codinghorror.com/blog/2008/03/choosing-your-own-adventure.html

Setelah melihat ke belakang, saya akan menghasilkan 100 miliar dolar di pasar saham saat ini, dan saya akan menginvestasikannya dalam penelitian kanker, saya akan mempekerjakan para ilmuwan untuk membersihkan dunia dari limbah plastik; Saya akan menyumbangkan cukup uang untuk kampanye Ron Paul sehingga perang di Timur Tengah akan lebih dari 3 tahun yang lalu.

Kenali sekarang bahwa Anda tidak akan pernah mendapatkan waktu kembali, jadi cobalah untuk menghabiskannya dengan bijak.

Pekerjaan
sumber
Para downvoter, tolong jelaskan.
Ayub
-2

Beberapa tahun yang lalu saya membaca di suatu tempat bahwa, di Inggris, keputusan Java dibuat untuk menarik lebih banyak siswa ke pemrograman. Rupanya itu lebih mudah di otak karena kurangnya petunjuk jahat dan manajemen memori dll ... Saya kira ini adalah alasan mengapa Python dengan cepat diadopsi sebagai 'alat pembelajaran' yang baru. Saya berpendapat bahwa program uni Anda tidak akan membuat Anda menjadi seorang programmer. Yang harus dilakukan adalah mempersenjatai Anda dengan sejumlah pengetahuan dan mengutamakan Anda untuk pemrograman. Hari dimana seseorang dapat memanggil diri sendiri seorang programmer umumnya datang sedikit waktu setelah uni dan ketika waktu itu datang, pointer, pengumpulan sampah dan paradigma pemrograman selain OOP, seharusnya tidak menjadi masalah.

Fing
sumber
-2

Mengapa Java digunakan?

Tiga alasan:

  1. Java menggunakan sintaks C-style. Banyak programmer yang akrab dengannya, sehingga mengurangi kurva belajar.

  2. Uang dihabiskan untuk memasarkan Jawa sebagai keren dan modern. Tetapi dibandingkan dengan lisp, java hidup di zaman batu.

  3. JVM. JVM adalah satu hal keren tentang java yang sah, bukan hanya pemasaran hype. Meskipun JVM harus dipuji sebagai platform untuk menjalankan program, itu tidak dengan sendirinya pantas keberadaan bahasa Jawa. Anda secara teoritis dan praktis dapat mengkompilasi banyak bahasa yang berbeda untuk JVM.

LispIsTheGodLanguage
sumber
1
Selamat datang. Sepertinya ini mungkin posting pertama Anda ke Stack Exchange Programmer. Silakan lihat di halaman faq programer.stackexchange.com/faq untuk mendapatkan saran tentang reputasi, menanyakan dan menjawab pertanyaan. Poin kuncinya adalah bahwa jawaban harus informatif, tidak provokatif. Jika Anda membuat pernyataan seperti Jawa adalah zaman batu dan Lisp modern, jelaskan alasannya. Banyak pembaca mungkin tahu Lisp ditentukan pada tahun 1958 dan hanya sedikit lebih muda dari FORTRAN. Jika Anda ingin mengatakan bahwa sesuatu tentang Java yang dibagikan dengan FORTRAN atau Algol mendorong desainnya dan membatasi, jabarkan.
PengembangDon
-3

Pertanyaan Anda mendukung temuan orang lain yang menulis makalah yang mengatakan Java sangat keren tetapi tidak cukup berat untuk komputasi ilmiah. Saya pikir dia hanya harus menggunakan Desimal Besar dengan semua persyaratannya, NAN, dll. Dan lanjutkan.

Saya hanya ingin hidup di dunia pengumpulan sampah otomatis. Lebih sehat, lebih bersih, lebih rapi, estetis, mencegah uang terbuang untuk biaya kesehatan, lebih diinginkan - tidak perlu menandai sesuatu sebagai yang tidak diinginkan - hanya dengan mendereferensi atau menyetelnya ke nol atau ketika saya keluar dari ruang lingkup item secara otomatis ditandai untuk pengumpulan sampah ..

Ok, sekarang saya berbicara tentang Jawa saja tetapi akan sangat membantu jika ini bekerja dalam skenario sampah nyata juga. Java ditulis sekali dijalankan di mana saja yang cukup baik bagi saya untuk digunakan sebagai bahasa di sekolah. Tidak ada memori yang bocor dan disukai oleh programmer yang senang yang tidak ingin menghabiskan waktu menandai setiap objek yang mereka gunakan dan berhenti menggunakan itu sendiri adalah logika yang baik atas nama Java.

Java memiliki pointer - yah kita menyebutnya referensi .. String s1 = "Hello"; String s2 = "Halo"; String s3 = String baru ("Halo");

s1 dan s2 akan menunjuk ke objek String yang sama - yaitu dengan referensi s1 == s2, s1.equals (s3) tetapi s1 == s3 salah karena s3 adalah objek referensi baru - ini adalah aritmatika referensi dari java dan saya mengerti semua ini, maaf, saya tidak ingin dilabeli sebagai seseorang yang tidak memahami kompleksitas aritmatika pointer dari C atau C ++.

Uma
sumber
2
Referensi bukan petunjuk. Anda tidak dapat menggunakannya secara aritmatika, dan Anda tidak dapat menggunakannya untuk menafsirkan kembali sepotong memori yang mereka tunjukkan. Dan tentu saja, tidak peduli seberapa besar keinginan Anda untuk hidup di dunia pengumpulan sampah, faktanya adalah bahwa dunia bukanlah dunia pengumpulan sampah. Saya tidak mengatakan bahwa Java adalah bahasa yang buruk, atau bahwa orang tidak boleh menggunakan java. Jika Anda menyukainya, gunakan itu, ada hal-hal yang hebat. Saya hanya berpikir itu tidak pantas sebagai bahasa pemula karena menyembunyikan hal-hal yang penting untuk dipahami oleh programmer baru.
Billy ONeal