Saya telah pemrograman sangat ringan selama beberapa tahun, dan tidak membuat banyak kemajuan. Itu sesuatu yang pasti menarik minat saya, tetapi saya belum termotivasi. Kemudian, saya pikir saya tahu apa yang membunuh saya. Semua buku yang saya baca, semua screencast yang saya tonton, sepertinya telah melewatkan satu hal penting:
Bagaimana saya beralih dari pernyataan cetak, variabel, dll., Untuk melakukan hal-hal yang lebih rumit?
Misalnya, mari kita ambil situs seperti Posterous. Bagi mereka yang tidak tahu, ini adalah platform blogging yang menerima posting blog melalui email. Penulis blog memiliki email khusus @ posterous.com yang mereka kirimi posting blog, dan mereka secara otomatis diformat dan diposting.
Bagaimana pengembang menggunakan kotak alat fungsi dan pernyataan mereka untuk mencapai sesuatu seperti ini di bagian belakang?
Saya minta maaf jika pertanyaan ini tampaknya sangat luas, itu hanya membuat saya frustasi. Saya merasa seperti saya memiliki pemahaman yang baik tentang konsep-konsep dasar, tetapi tidak tahu bagaimana sebenarnya melakukan apa pun.
sumber
Jawaban:
Kuncinya adalah memecah tugas menjadi langkah-langkah terpisah yang Anda tahu bagaimana melakukannya (atau dapat mengetahui bagaimana melakukannya). Apa yang Anda tahu bagaimana melakukannya didasarkan pada tingkat pengalaman Anda.
Mari kita ambil contoh email Posterous Anda:
Persyaratan: Terima email @ posterous.com, format, dan poskan di situs web.
Tugas 1) Terima emailnya.
Email kemungkinan besar harus diambil dari server email. Anda harus meneliti panggilan API untuk mengambil email dari server email khusus Anda. Anda juga harus mencari cara untuk mengekstrak konten dari badan email (mungkin panggilan API lain).
Tugas 2) Memformat email.
Dari tugas 1, Anda mungkin memiliki konten yang tersimpan di suatu tempat. Format ini agar sesuai dengan langkah 3 ...
Tugas 3) Posting konten di blog.
Jika Anda menambahkan fitur email2blog ini, Anda mungkin sudah memiliki mekanisme untuk memposting posting blog. Gunakan mekanisme itu dan alih-alih menerima input dari textarea di situs web Anda di suatu tempat, gantikan dengan konten dari langkah 2 Anda.
Sekarang, bagaimana kita dapatkan dari pernyataan cetak, jika pernyataan dan fungsi untuk menyelesaikan setiap tugas.
Perhatikan bagaimana dalam tugas 1, saya menyebutkan panggilan API dua kali? Panggilan API pada dasarnya adalah fungsi yang ditulis orang lain sehingga Anda dapat menggunakan fungsinya. Jika Anda tahu cara memanggil fungsi, maka Anda dapat meneliti panggilan API yang benar dan Anda perlu mengambil surat dari server surat.
Saya tidak membahas banyak tentang pemformatan tetapi jika Anda tahu bagaimana melakukan manipulasi string, maka Anda tahu cara memformat. Memformat halaman html adalah latihan menambahkan tag seperti di
<b>bolded text</b>
dalam string Anda di suatu tempat.Dalam Tugas 3, saya menyebutkan bahwa ada semacam mekanisme untuk memposting blog. Jika ini adalah platform blogging yang ada, Anda akan cukup akrab dengan ini. Tetapi jika tidak, maka Anda perlu belajar tentang HTTP Post dan hal-hal terkait kerangka kerja web lainnya.
Jika setelah membaca semua ini Anda masih tidak tahu apa yang saya bicarakan, maka saya harap saya meyakinkan Anda bahwa tidak ada pengganti untuk pengalaman. Jadi pergilah dan bangun sesuatu! Jangan terlalu khawatir membuat kesalahan noob karena setiap pengembang pernah menjadi noob.
sumber
Hal utama adalah menemukan sesuatu yang ingin Anda lakukan dan lakukan .
Begitulah cara sebagian besar perusahaan besar dimulai.
Google? Brin dan Page sangat bersemangat dalam mengindeks web.
Metafilter? Matt Haughey sangat bersemangat menulis dan berbagi.
Indonesia? Dorsey sangat menyukai kesederhanaan, dan Anda tidak mendapatkan yang lebih sederhana dari 140 karakter.
Stackoverflow? Joel & kru bersemangat tentang jawaban.
Bahasa, seperti PHP, Perl, Python, dan Ruby semuanya dirancang dengan cara yang sama. Begitu juga GNU / Linux. Seseorang memiliki goresan, dan mulai gatal di awal itu, dan kemudian merilis alat mereka untuk konsumsi umum.
Jadi, lihat-lihat dan putuskan di mana letak gatal Anda, dan mulailah menulis program untuk menggaruknya. Mungkin Anda suka bermain game, jadi Anda bisa menulis beberapa game. Mungkin Anda memiliki masalah dengan tag ID3 pada koleksi mp3 Anda dan perlu memperbaikinya. Atau mungkin Anda tertarik pada riwayat keluarga dan ingin menjelajahi web mencari referensi ke orang atau tempat dalam riwayat Anda. Atau mungkin Anda ingin berinteraksi dengan dunia nyata entah bagaimana. Atau mungkin Anda ingin mengembangkan Perangkat Lunak FLOS - lihat GitHub, Gitorious dan Sourceforge.
Temukan sesuatu yang Anda sukai dan mulai pemrograman, dan segera Anda akan memiliki program besar sebelum Anda menyadarinya. Dan itu sebabnya perencanaan semacam itu adalah ide yang bagus;)
sumber
Perlahan dan bertahap.
Biasanya untuk proyek besar, Anda tidak memulai hanya dengan menyelam dalam kode penulisan. Seseorang di suatu tempat harus punya rencana. Mereka menuliskan sesuatu, fitur-fitur sistem yang mereka inginkan. Kemudian mereka mulai dengan halaman / jendela pertama / apa pun. Lalu mereka menambahkan yang lain. Sementara itu perlahan-lahan menambahkan fitur demi fitur, memperbaiki bug demi bug. Tidak hanya muncul, perlu ada gambaran besar, desain keseluruhan.
Untuk menjadi lebih baik, Anda perlu latihan! Mulailah dengan proyek kecil. Sesuatu yang sederhana dan itu juga menarik minat Anda. Rencanakan apa yang Anda lakukan sebelum melakukannya, Anda akan melihat itu tidak sulit untuk "benar - benar melakukan apa pun".
sumber
Anda dapat menonton screencast sebanyak mungkin, membaca banyak buku, dan mengikuti banyak tutorial yang Anda inginkan tetapi tidak pernah merasa seperti Anda pergi ke mana pun. Anda harus mencari tahu sesuatu yang Anda tertarik untuk membuat. Kemudian pisahkan dan coba buat. Anda akan menemukan banyak hal yang mungkin tidak Anda ketahui. Tapi Anda meneliti mereka dan mempelajari tugas-tugas yang lebih kompleks saat Anda pergi.
sumber
Saya juga menghadapi tantangan ini, dan pada umumnya saya menemukan solusi: Saya membutuhkan sumber eksternal untuk mendorong saya menjadi lebih produktif.
Anda bisa terpesona oleh teknologi seperti siapa pun, sama bersemangatnya dengan pemrograman seperti siapa pun, dan juga cerdas dan cepat belajar seperti siapa pun, dan itu hanya akan sangat berarti kecuali Anda membuat tangan Anda kotor dan melakukan hal-hal. Tetapi mungkin sulit untuk mengetahui di mana untuk memulai, dan bahkan jika Anda memiliki ide tentang di mana untuk memulai, mungkin sulit untuk membuat bola bergulir.
Jika Anda seorang pemula yang baik, Anda mungkin hanya perlu beberapa ide. Cobalah beberapa teka - teki pemrograman atau lihat utilitas sederhana yang Anda gunakan secara teratur dan tanyakan pada diri sendiri, "Bisakah saya membuat ini? Jika saya melakukannya, apa yang akan saya ubah?"
Sungguh menakutkan untuk duduk di depan editor terbuka atau selembar kertas kosong dan berkata, “Oke, otak, buat! ” Tetapi jika Anda menguraikannya, pikirkan hal seperti apa yang mungkin Anda buat alasannya, dan menyetir sendiri dari sana, Anda bisa mendapatkan lebih jauh.
Dan, jika Anda menemukan bahwa Anda tidak dapat membuat kode sendiri, mintalah seseorang untuk memberi Anda pekerjaan, dengan tenggat waktu dan persyaratan dan semuanya. Itu akan menendang Anda ke gigi.
sumber
Fakta bahwa Anda memiliki pengetahuan dasar adalah baik - saya sendiri bukan pro, tetapi saya bisa menjual apa yang saya hasilkan, jadi saya harus melakukan sesuatu dengan benar. Saya sarankan mempelajari dasar-dasar tentang bahasa Anda, dan platform yang Anda kembangkan (dan tampaknya Anda miliki).
Pertama-tama petakan apa yang Anda coba lakukan, dan dapatkan sedikit gambaran tentang bagaimana Anda akan melakukannya, semuanya tentang merebus hal-hal tertentu, karena ini membantu Anda mencari tahu lebih cepat. Maka hanya Google apa yang Anda coba lakukan dalam bahasa yang Anda gunakan jika Anda macet - bahkan mengajukan pertanyaan di Stack Overflow (Saya sendiri sudah mengajukan lebih dari 70 pertanyaan, hehe)!
Secara pribadi saya belajar dengan googling, saya bahkan tidak mengambil dasar-dasarnya pada awalnya, yang seharusnya saya lakukan, tetapi sudah pada saat saya membuat beberapa hal yang cukup bagus, saya masih tidak tahu apa itu "array". ;)
sumber
Saya pikir untuk mengembangkan keterampilan Anda di bagian belakang antarmuka, Anda harus mulai memanipulasi data. Sebagian besar proyek besar adalah tentang memindahkan, mengubah, dan menampilkan data.
Saya tahu sendiri bahwa saya tidak memahami proyek yang lebih besar sampai saya merasa nyaman dengan beberapa jenis akses data dan manipulasi file.
sumber
Melompat ke sesuatu yang sedikit di atas kepala Anda dan mencari tahu itu bisa menjadi cara yang bagus untuk mengembangkan keterampilan Anda. Anda mungkin ingin mencoba melihat beberapa seri Cookbook O'Reilly:
http://oreilly.com/store/series/cookbooks.html
Format Masalah / Solusi / Diskusi terdengar seperti apa yang Anda cari, kode 'resep' yang akan MELAKUKAN sesuatu yang menarik dan beberapa diskusi tentang cara kerjanya.
sumber
Saya pikir Anda hanya gagal menantang diri sendiri untuk berbuat lebih banyak.
Jika Anda benar-benar ingin tahu bagaimana melakukan sesuatu, selidiki itu! Jika Anda ingin tahu cara kerja Posterous, cobalah mulai dengan sesuatu yang kecil seperti meneliti alat apa yang Anda butuhkan, cara mendapatkan informasi dari kotak teks ke situs web. Kemudian Anda secara bertahap membangun itu. Pertanyaan selanjutnya mungkin mengatur koneksi email ke situs web dan database.
Anda memiliki alat terbaik yang akan Anda butuhkan, internet.
sumber
Selain memecah proyek menjadi tugas, kuncinya juga adalah mempelajari penggunaan kembali kode. Bagilah kode Anda ke dalam modul yang dapat Anda gunakan kembali dalam proyek lain di mana Anda perlu melakukan hal yang sama.
Misalnya dalam proyek contoh ini, Anda mungkin akan melakukan pekerjaan database untuk menyimpan posting blog. Anda dapat menulis kelas basis data untuk menghubungkan ke basis data, melakukan kueri, mendapatkan hasil, dll. Kemudian dalam semua proyek di masa depan Anda dapat menggunakan kelas yang sama dan dapat bekerja dengan basis data dengan mudah.
sumber