Mundur “Pendidikan” Saya [ditutup]

13

Beberapa waktu yang lalu, saya memutuskan untuk memulai pemrograman. Saya benar-benar, hanya melompat ke dalam bahasa (Perl) dan pergi dari sana. Yang saya sesali adalah saya baru saja terjun:

Saya tidak mempelajari dasar-dasarnya (jika Anda menyebutnya dasar-dasar).

Saya tidak belajar tentang Ilmu Komputer.

Masalah ini, saya percaya, menghambat saya dari potensi saya yang sebenarnya. Di mana saya harus "memulai kembali"? Apakah ada buku, artikel, dll. Yang harus saya baca? Apakah ada topik yang harus diketahui oleh programmer yang berpengalaman? Apa saranmu

Dinamis
sumber
Saya tidak jelas tentang pertanyaan Anda. Jadi ketika Anda memutuskan untuk memulai pemrograman apakah itu untuk mendapatkan pekerjaan baru atau hanya untuk menyelesaikan beberapa tugas admin dalam pekerjaan Anda atau hanya untuk bersenang-senang? Saya perlu memahami dari mana Anda berasal untuk membantu mengapa Anda menyesal memulai dengan cara ini dan apa masalah dengan menahan Anda? Saya tidak suka membuat asumsi.
@ JamesDrinkard: Itu hanya untuk belajar! Saya tidak melakukan ini untuk mencari nafkah.
Dinamis
Apa latar belakangmu? Apakah Anda tahu sesuatu tentang sains? Matematika? Teknik? Kayu bekerja? :-) Apa jenis program yang Anda minati? Tanpa perincian itu, sulit memberikan jawaban yang bermanfaat. Juga, jangan menyesal melompat - itu bagus!
Guy Sirton
@GuySirton: Saya seorang siswa sekolah menengah. Saya benar-benar tidak punya alasan untuk memprogram, saya hanya melakukannya!
Dinamis

Jawaban:

21

Saya akan melakukan ini:

Jalur A: Metode Semi-Khas

  1. Pelajari bahasa dengan sintaks yang lebih teratur seperti Java, C #, atau Python. Perl adalah alat yang sangat berguna tetapi juga sangat unik dalam hal bagaimana Anda dapat melakukan sesuatu. Bahasa-bahasa lain yang saya daftarkan jauh lebih sedikit.

  2. Dapatkan buku tentang Struktur Data dalam bahasa tersebut.

  3. Dapatkan buku tentang Algoritma dalam bahasa tersebut.

  4. Dapatkan Kode Lengkap dan Efektif Java / C # / Apa pun versi Python.

Path B: Path of Enlightenment Joel Spolsky (atau Mati, pilihlah)

  1. Dapatkan buku "Kode"

  2. Dapatkan K&R "Bahasa Pemrograman C"

  3. Dapatkan Struktur dan Interpretasi Pemrograman Komputer

Sejauh metode ini berjalan, metode 1 akan mengajarkan Anda pemrograman dengan cara yang lebih teratur. Konsep Ilmu Komputer sampai batas tertentu (belum ada teori kompleksitas, percayalah pada saya) dan berikan Anda bahasa yang lebih baik untuk bekerja dalam proyek dengan orang lain dan untuk membuat aplikasi yang lebih besar.

Metode 2 lebih hardcore, lebih dari pendekatan fundamental dengan "Kode" yang menjelaskan dasar-dasarnya, K&R memperkenalkan hal-hal tingkat mesin dan SICP memperkenalkan konsep tingkat yang lebih tinggi. Ini jalan yang jauh lebih sulit tetapi lebih fokus.

Dalam kedua kasus itu, beri waktu pada diri Anda sendiri. Roma tidak dibangun dalam sehari dan juga keterampilan pemrograman, bahkan jika Anda jenius. Pemrograman Peter Norvig dalam 10 tahun adalah esai yang biasa saya tunjuk orang.

Tambahan:

Sejauh barang gratis yang tersedia: Python Hard Way seperti yang tercantum di bawah ini adalah awal yang baik, dari sana, Cara berpikir seperti Ilmuwan Komputer adalah kelanjutan yang masuk akal.

Ada sejumlah sumber daya di Algoritma di luar sana dan jujur ​​Anda mungkin bisa mengganti langkah 3 dan 4 tanpa masalah. Ingatlah, di sinilah matematika benar-benar mulai muncul sehingga jangan pernah takut untuk meminta bantuan ketika Anda sampai ke tahap ini. Ini tampaknya menjadi panduan gratis yang masuk akal .

Sebenarnya tidak ada padanan kohesif yang setara dengan Code Complete per say meskipun Code seperti Pythonista tampaknya cukup solid. Yang penting adalah berkonsentrasi pada membuat kode Anda dapat dibaca setelah fundamental Anda turun. Itu tidak "perlu" dengan cara yang sama bahwa memiliki semua sintaksis kode Anda benar tetapi membuat hidup jauh lebih mudah setelah Anda melampaui program kecil atau mengerjakan sesuatu dalam jangka waktu yang lama.

Anda mungkin menemukan bahwa saya kebanyakan berfokus pada Python, itu karena ini adalah yang termudah dari ketiganya untuk menemukan barang gratis yang ditulis dengan baik. Saya pikir tutorial Java oleh Oracle baik-baik saja tetapi mereka sedikit kering dan tidak bagus untuk pemula. C # berada dalam situasi yang sama meskipun keduanya tidak kekurangan dokumentasi.

Juga, lelucon / permainan CS pertama Anda: Anda ingin "Refactor" pendidikan Anda, bukan Backtrack.

Insinyur Dunia
sumber
Terima kasih! Apakah Anda punya buku online gratis untuk dibaca? Selain itu, ini adalah jawaban yang luar biasa!
Dinamis
5
+1 untuk Struktur dan Interpretasi Pemrograman Komputer (SICP) dapat ditemukan online di sini: mitpress.mit.edu/sicp
NWS
Mengetahui Perl, akankah Python memberiku banyak masalah untuk membiasakan diri?
Dinamis
1
Setelah Perl, sebagian besar bahasa akan menjadi transisi yang sulit. Python cukup mudah karena pada dasarnya ada 1 cara untuk melakukan 1 hal daripada 50 cara untuk melakukan 1 hal seperti yang ada di Perl. Trik besar untuk Python adalah menentukan versi bahasa yang digunakan: 2.7 atau 3.x. Saya akan menggunakan apa pun yang Anda pilih menggunakan tutorial dan pergi dari sana. Setelah Anda lebih baik dalam melakukannya, Anda dapat menyesuaikan dengan yang lain ketika proyek datang.
Insinyur Dunia
1
@ kevincline: Sebenarnya, setelah melakukan beberapa latihan Python, itu memberi saya banyak masalah. IMHO, beberapa hal yang sangat sederhana di Perl, sulit (er) dengan Python.
Dinamis
4

Saya akan mengatakan bertujuan Belajar Python Hard Way ; itu pendekatan yang bagus. Pergi dari sana; akan memakan waktu cukup lama untuk memberi Anda waktu untuk menemukan sumber daya lainnya.

Menurut pendapat saya, "jalur B" yang disebutkan dalam jawaban lain tidak sesuai pada tahap ini.

Dave Newton
sumber
1

Yah, saya mulai dengan alasan yang sama karena saya memiliki pengetahuan di sisi perangkat keras dan tertarik dengan pemrograman. Saya suka belajar hal-hal baru.

Saya mulai dengan file Batch DOS, kemudian QuickBasic, kemudian Visual Basic, VBA, MASM, dengan Access untuk pekerjaan basis data sebelum mendarat pekerjaan pertama saya. Bagi saya, itu adalah jalan terbaik, mulai dari yang sederhana dan kemudian membangun dari sana.

Saya akan mengatakan memutuskan apa yang paling Anda sukai tentang pemrograman dan mengikuti rute itu, skrip, pengembangan web, pemrograman windows, dll ... Jika Anda tidak tahu, maka mulailah bekerja dengan beberapa bahasa untuk melihat apa yang Anda sukai. Anda akan membutuhkan waktu. Dibutuhkan sekitar 5 tahun untuk menjadi sangat baik dengan bahasa seperti Java atau mungkin C ++, IMHO.

Sebagai bahasa untuk membantu mempelajari pengembangan web, JavaScript pasti, PHP populer, dan Python, tapi itu IMHO. Diasumsikan Anda akan tahu atau belajar HTML / CSS. Saya benar-benar meremehkan javascript, meskipun saya sudah menggunakannya sejak tahun 2001. Saya melakukan hal yang sama dengan CSS dan tidak menganggap itu penting. Saya telah mengubah pendapat saya tentang itu juga.

Ketika saya mencoba menentukan tren, saya pergi ke http://www.indeed.com dan klik tautan tren di bagian kiri atas halaman. Kemudian saya memasukkan kata kunci seperti PHP dan Python dan melihat mana yang diletakkan untuk posisi pekerjaan aktual yang keluar di internet.

Ini dari perspektif karir dan berdasarkan pada apa yang memberi saya nilai paling kepada klien (pengusaha). Bukan hanya dari perspektif pembelajaran.


sumber
Jika saya berkata saya ingin belajar bahasa yang akan membantu saya dengan Pengembangan Web, tetapi masih dapat melakukan lebih banyak lagi, apa yang akan Anda rekomendasikan?
Dinamis
-1

Pelajari tentang algoritma dalam bentuk yang paling mendasar, lupakan bahasa untuk sementara waktu. Menyortir vektor, kata-kata, dll. Freepascal adalah bahasa yang bagus untuk memulai dengan hal-hal ini, saya suka Perl tetapi dengan semua pintasan dan hal-hal kerennya, Anda sering mengabaikan algoritma bawaan program.

alfa64
sumber