Membangun program yang lengkap?


15

Membaca buku, menonton video, dan mengulas tutorial semuanya sangat mudah. Mencatat dan benar-benar mempelajari materi mungkin sedikit lebih sulit, tetapi meskipun demikian, siapa pun yang memiliki otak yang baik dan minat yang cukup, itu cukup mudah (belum lagi, menyenangkan).

Masalahnya, itu tidak benar-benar mempersiapkan Anda untuk menulis program atau situs web lengkap. Katakanlah Anda adalah remaja (hanya di sekolah menengah, tidak ada ilmu komputer atau program pemrograman yang benar (tingkat perguruan tinggi), dan tidak ada pengalaman dunia nyata), dan Anda keluar dengan Groupon. Atau bahkan Mark Zuckerburg, yakin dia jenius, dan dia adalah programmer yang sangat cakap ... tapi bagaimana?

Bagaimana Anda merekomendasikan bahwa orang-orang yang tidak selalu baru dalam pemrograman, tetapi baru dalam pemrograman aplikasi nyata dan programmer nyata mengembangkannya? Apa itu "proses pengembangan" - terutama untuk programmer tunggal (atau mungkin 2-3 remaja)?

Juga, sejauh pengembangan web berjalan, apa prosesnya? Apakah sesuatu seperti Facebook atau Groupon ditulis dengan kerangka kerja (seperti CodeIgniter atau Zend untuk PHP)? Atau apakah mereka mengembangkan kerangka kerja mereka sendiri? Saya tidak bertanya bagaimana menghasilkan ide yang hebat, tetapi bagaimana menerapkan ide-ide hebat secara efektif? Adakah yang punya saran?

Saya telah membaca beberapa buku tentang C dan C ++ (terutama Bahasa Pemrograman C dan Bahasa Pemrograman C ++) dan mengambil Ilmu Komputer AP (serta membaca beberapa buku tambahan tentang Java dan OOP). Saya juga telah membaca beberapa tutorial tentang PHP (dan CodeIgniter) dan Python. Tetapi saya masih duduk di bangku sekolah menengah, dan secara teknis saya belum cukup umur untuk magang selama beberapa bulan lagi.


3
Reading books, watching videos, and reviewing tutorials is all very easy. Ya, membacanya itu mudah, memahami mereka adalah bagian yang sulit.
yannis

@Yannis Rizos Sebenarnya, saya mengerti mereka, dan saya membicarakannya dalam kalimat setelahnya.
Bob

@ Bob mempelajari materi dan benar-benar memahaminya sebenarnya sangat berbeda, yang kedua jauh lebih sulit. Definisi pribadi saya tentang "pemahaman" adalah ketika saya bisa menjelaskan topik yang sedang dibahas dengan cara yang belum bisa dipahami oleh anak berusia sepuluh tahun. Cepat, jelaskan "antarmuka" :)
Thanos Papathanasiou

1
@ThanosPapathanasiou Perangkat lunak, perangkat keras atau konsep OO? :)
yannis

2
@YannisRizos itulah keindahan dengan menjelaskan hal-hal seperti yang Anda lakukan pada anak berusia sepuluh tahun, Anda akan dipaksa untuk menggunakan contoh sederhana yang akan merangkum ketiganya :)
Thanos Papathanasiou

Jawaban:


8

Ada perbedaan antara hanya mengetahui cara memprogram, dan mengetahui bagaimana menyusun program (arsitektur perangkat lunak).

Sebuah buku sederhana tentang bahasa pemrograman tertentu hanya akan mengajarkan Anda alat yang dapat Anda gunakan untuk mengatur arsitektur suatu program.

Ada juga buku yang membantu Anda dengan arsitektur perangkat lunak. Topik yang harus Anda cari adalah pola desain , abstraksi perangkat lunak , arsitektur / desain perangkat lunak, dan banyak lagi ... ( Pola Desain Kepala Pertama adalah pembuka mata nyata bagi saya.)

Untuk sumber daya yang lebih luas, pertanyaan ini mungkin menarik bagi Anda.

Masih cara terbaik untuk belajar bagaimana menyusun seluruh program dengan benar adalah pengalaman langsung, sangat terbuka untuk saran dan teknik baru saat melakukannya.


6

Ini adalah masalah yang sangat umum dengan pengembangan game (indie): bagaimana cara menyelesaikannya.

Selain memastikan bahwa Anda dapat melakukannya, baik karena Anda memiliki semua pengetahuan yang diperlukan atau Anda bersedia untuk belajar - dan Anda memeriksa bahwa orang lain memeriksa bahwa itu tidak mungkin ...

... hal utama yang memungkinkan "penyelesaian" adalah menetapkan tujuan .

Tujuan adalah target yang ingin dicapai, mereka tidak boleh menggambarkan cara menuju ke sana, hanya persyaratan dasar / fitur apa yang Anda perlukan untuk mempertimbangkan versi pertama aplikasi Anda sebagai "selesai". Juga, jangan menetapkan tujuan terlalu jauh.

Tulis tujuan Anda di suatu tempat. Tulis itu.

Setelah menetapkan tujuan, Anda harus menemukan cara untuk mencapainya. Itulah "jalan" terkenal yang lebih menarik dari kedatangan. Jangan khawatir tentang mencapai dinding dan menemukan betapa salahnya Anda. Sebagian besar waktu, jika subjeknya baru, Anda akan salah dan Anda akan belajar mengapa dan bisa memperbaikinya dan telah melakukan pengaturan satu sama lain untuk lebih dekat dengan tujuan.

Bahkan dalam desain game, kami tahu bahwa Anda harus memberikan tujuan untuk memastikan pemain mengetahui, bahkan secara abstrak, apa yang harus dicapai, apa pun caranya.


4

Membaca banyak tentang berenang tidak menjadikannya seorang perenang. Tentu saja itu mempersiapkan seseorang dengan pengetahuan yang diperlukan, untuk menjadi perenang Anda harus melompat ke air.

Saya melihat bahwa banyak orang yang hanya melakukannya daripada berpikir / membaca tentang melakukannya adalah orang-orang yang berhasil.

Jika Anda ingin menjadi perenang, lompatlah ke air dan belajar berenang, jika Anda ingin menjadi seorang programmer, mulailah pemrograman dengan sebuah ide dan pelajari pemrograman.

Saya percaya esai peter norvig relevan di sini: Ajari diri Anda pemrograman dalam 10 tahun


2
Jawaban yang bagus! Saya mempunyai dua teman yang terus membaca (mulai membaca) buku tentang pemrograman dengan harapan suatu hari mereka akan merasa siap untuk memulai pemrograman. Anda tidak akan pernah merasakan itu. Lompat saja ke air dingin dan mulailah mengerjakan proyek nyata. Jika Anda merasa itu terlalu rumit, pilih yang lebih kecil. Kerjakan sampai selesai. Selama proyek, cari buku dan bacaan sesuai dengan masalah terbuka yang muncul saat Anda pergi.
Giorgio

1

Kedengarannya seperti Anda terlalu fokus pada aspek implementasi perangkat lunak, yang hanya sebagian kecil dari keseluruhan proses pengembangan perangkat lunak (lihat SDLC). Anda mungkin perlu melihat beberapa metodologi perangkat lunak dan mempelajari cara menggunakannya yang Anda sukai. Selain itu, baca studi kasus, cari tahu plus dan minus dari masing-masing alat yang akan Anda pertimbangkan untuk digunakan dalam perangkat lunak Anda juga, evaluasi, dan mulai dari sana. Setelah membaca cepat pertanyaan Anda, Anda mungkin perlu fokus pada Analisis dan Desain perangkat lunak, dan mempelajari tentang UML, dekomposisi, dan mungkin beberapa pola desain .. mungkin ..

Semoga ini membantu..


0

Jawaban singkat, tetapkan tujuan Anda dan mulailah.

Tidak ada buku atau cara untuk mengajarkan ini kepada Anda kecuali pengalaman langsung.

Anda akan membuat banyak kesalahan dan secara bertahap mendapatkan pengalaman. Jadi, jika Anda mengalami masalah, pikirkanlah, cobalah untuk mencari solusi dan jika Anda gagal masuk ke stackoverflow dan dapatkan bantuan. Juga memiliki ulasan kode sedini mungkin.

Setelah menyelesaikan proyek pertama Anda dan memahami masalah teknis mulai mencari topik yang lebih abstrak dan lebih tinggi dari rekayasa perangkat lunak.

Dengan kesadaran Anda yang baru diperoleh tentang masalah-masalah umum, Anda akan mendapatkan konsep-konsep abstrak buku tentang kode yang bersih dan terpisah, karena proyek pertama Anda akan berantakan.

Buku (tersangka biasa):


0

Pada titik ini Anda harus berhenti membaca tentang pemrograman dan mulai pemrograman. Jika Anda ingin membangun sebuah situs web, maka ikuti tutorial untuk kerangka pilihan Anda. Pilih saja yang menarik bagi Anda. Bekerja melalui tutorial untuk mempelajari cara menggunakan kerangka kerja, kemudian mulai membangun aplikasi web Anda sendiri.

Setelah Anda menulis beberapa kode, maka buku-buku tentang teknik pemrograman akan memiliki lebih banyak makna.


Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.