CodeGym /Blog Java /rawak /Jadi, bagaimana? Atau projek pertama saya
John Squirrels
Tahap
San Francisco

Jadi, bagaimana? Atau projek pertama saya

Diterbitkan dalam kumpulan
Ini adalah terjemahan kisah kejayaan daripada komuniti Java global kami. Alex mempelajari Java pada versi kursus bahasa Rusia, yang anda pelajari dalam bahasa Inggeris di CodeGym. Semoga ia menjadi inspirasi untuk pembelajaran anda selanjutnya dan mungkin suatu hari nanti anda ingin berkongsi kisah anda sendiri dengan kami :)

pengenalan

Sedikit tentang bagaimana saya memasuki pengaturcaraan. Saya seorang guru dan ahli psikologi melalui latihan, dan selama 5 tahun saya telah mengamalkan profesion saya dengan jayanya. Tetapi atas pelbagai sebab, saya semakin berfikir untuk berpindah ke negara lain. Dan kerana bahasa dan peraturan berbeza di negara lain, saya tidak boleh menjadi profesional yang sama tanpa latihan semula yang serius. Jadi saya mula mencari cara yang lebih mudah dan menarik untuk bergerak dan berjaya. Jadi, bagaimana?  Atau projek pertama saya - 1Saya mencuba tangan saya sebagai artis tatu (ini pada dasarnya tidak memerlukan pengetahuan bahasa), tetapi itu cerita untuk hari lain. Kemudian rakan sekerja saya memperkenalkan saya kepada CodeGym. Saya pada mulanya ragu-ragu dengan janji untuk menjadikan saya seorang pengaturcara penuh dengan bermain permainan dan pada harga yang begitu sederhana. Tetapi kemudian saya mendapat sedikit wang hari jadi (tidak tertakluk kepada "cukai keluarga"), dan menghadapi pilihan antara WoW dan CodeGym... Nah, terima kasih kepada diskaun yang tepat pada masanya, skala itu menuju ke arah yang betul, dan inilah saya. Seperti yang kita semua sedia maklum, CodeGym adalah 90% amalan tulen. Anda belajar menyelesaikan tugas. Anda belajar untuk mencari pengetahuan yang anda kurang di Internet. Semua ini bagus, tetapi untuk 15 tahap saya tidak dapat menghilangkan perasaan bahawa saya kehilangan sesuatu yang akan melengkapkan gambar untuk saya. Saya terfikir untuk menyertai GeekBrains, tetapi (mungkin bernasib baik) rakan yang sama menghalang saya tepat pada masanya dan memperkenalkan saya kepada Udemy. Apabila saya membuka repositori ilmu ini, saya pergi bersama-sama dengan rayuan: " Psst, kawan. Adakah anda seorang yang baru?" Ada diskaun untuk anda... untuk 3 hari sahaja — Jangan lepaskan peluang ini! " Kemudian ia menjadi jelas bahawa sentiasa ada diskaun, tetapi bukan itu maksudnya. Saya segera membeli pakej dengan dua kursus: Java dari 0 hingga Pro dan sesuatu yang serupa untuk Android. Dan di sinilah kisah kami bermula.

Berjaya atau gagal?

Semasa saya menjalani kursus Android, saya mendapat kerja rumah untuk membuat projek berdasarkan pengetahuan baharu saya. Saya jenis orang yang percaya bahawa melakukan sesuatu dengan cara yang mudah atau biasa adalah seperti tidak melakukannya langsung. Jadi, saya segera mula merumitkan hidup saya. Saya berpaling kepada orang yang saya kenali yang mempunyai imaginasi yang paling maju dan terang. Ini isteri tersayang (ya, dia juga akan membaca artikel ini). Dia mencadangkan membuat aplikasi dengan gambar haiwan, yang mengeluarkan bunyi haiwan yang sepadan apabila ia diklik. Ia adalah idea yang bagus, tetapi masih agak mudah. Mengambil cadangan ini sebagai asas, saya mula membuat alasan:
  • Apl ini mestilah lebih daripada gebu (sesuatu untuk ditertawakan dan dilupakan). Saya mahu ia mempunyai nilai. Contohnya, dengan mengajar sesuatu.
  • Biarkan ia menjadi abjad dengan haiwan. Tetapi bukan sebarang abjad, tetapi abjad Inggeris!
  • Dan bukan hanya haiwan, tetapi haiwan jarang yang diketahui oleh sebilangan kecil orang, untuk mengembangkan ufuk mereka!
  • Dan harus ada animasi, pembiakan audio nama-nama huruf, dan nama-nama haiwan dalam bahasa Inggeris dan Rusia!
Sekarang itulah yang saya panggil kerja rumah (saya terlupa untuk menyatakan bahawa sebelum CodeGym saya pada dasarnya tidak biasa dengan pengaturcaraan. Dan kurang daripada 3-4 bulan berlalu dari saat saya mula aktif menggunakan laman web sehingga saat saya memulakan projek. Jadi, jika anda 'Seorang veteran dalam bidang ini dan anda berfikir, " Pff... Adakah sesuatu berubah daripada versi asal? ", Saya memberi jaminan kepada anda, ya, ia telah berubah)! Kesukaran pertama yang saya hadapi ialah , anehnya, memulakan projek. Ternyata, bukan penulis sahaja yang mengalami "blok penulis"... Tetapi kerana saya seorang ahli psikologi, saya tahu penyelesaian kepada masalah saya. Anda hanya perlu mula melakukan sesuatu. Ambil sekurang-kurangnya satu langkah kecil, dan kemudian jangan berhenti. Jadi saya mulakan dengan kelas Surat abstrak . Kelas ini mempunyai beberapa bidang dan seterusnya perlu mempunyai pelbagai kaedah. Pada hakikatnya, saya tidak tahu apa yang akan saya lakukan dengannya, tetapi saya perlu melakukan sesuatu. Kemudian, saya mencipta kelas untuk setiap huruf, menjadikannya mewarisi kelas abstrak. Ia mengambil banyak masa, dan pada hari pertama saya bekerja telah berakhir. Keesokan harinya saya memadamkan projek itu dan memulakan semula. Saya baru sahaja membuka projek untuk mengingati apa yang telah berubah sejak saat saya terangkan di atas. Dan saya ingin mengatakan bahawa semuanya kelihatan lebih baik apabila saya selesai, tetapi tidak. Sebenarnya masih terdapat kelas untuk setiap huruf... Ini adalah khusus kerana saya telah diberikan kerja rumah ini hampir pada permulaan kursus Android, dan saya sendiri perlu memikirkan selok-belok hubungan antara aktiviti (tetingkap aktif, atau sesuatu seperti itu) dengan kelas. Dan saya tidak menemui atau memikirkan apa-apa selain daripada cara kekok ini untuk mengaitkan kelas tertentu dengan aktiviti tertentu. Bagaimanapun, salah satu prinsip pengaturcaraan (elakkan pengulangan) telah dilanggar sebanyak 26 kali. Pertama, saya sepenuhnya (sepertinya saya) melaksanakan dua huruf pertama, membuat UI kasar yang terdiri daripada dua menu (menu umum yang mungkin diperlukan semasa mengembangkan fungsi, dan jadual kandungan, dari mana anda boleh melompat ke mana-mana daripada huruf). Saya sebenarnya tidak menghadapi banyak kesukaran dalam pengaturcaraan. Semasa saya melaksanakan projek bebas saya, banyak perkara, seperti perhubungan antara kelas, kaedah, dsb., menjadi jelas dan projek itu sendiri menjadi amalan terbaik untuk menyatukan semua pengetahuan yang saya peroleh bukan sahaja tentang Android, tetapi juga tentang Java. Kesukaran kedua ialahbahawa surat itu bertukar pada masa yang sama namanya didengari. Peralihan lancar (teduhan) menjadikannya kelihatan seperti bunyi mendahului gambar. Tetapi apabila saya meletakkan kelewatan pada bunyi, keseluruhan benang membeku - peralihan hanya ditangguhkan oleh jumlah kelewatan, menghasilkan kesan tidak diingini yang sama, hanya kemudian. Kemudian saya membuat keputusan berani untuk menjadikan program saya berbilang benang! Saya mengalihkan main balik bunyi ke benang berasingan, dengan kelewatan yang cukup lama untuk memuatkan gambar. Ini adalah sejauh mana multithreading pergi, tetapi saya bangga untuk mengatakan bahawa saya sedang menulis aplikasi multithreading. Kesukaran terakhir ialah memilih bahan yang sesuai. Adakah anda fikir bahasa Inggeris tidak mempunyai haiwan untuk huruf X (ternyata ada)? Saya terpaksa mengenal pasti 26 haiwan dan mencari imej dan bunyi mereka, dan merekodkan nama 26 huruf dan 26 haiwan. Jika saya bekerja dalam satu pasukan, saya pasti akan meninggalkan bahagian kerja ini untuk orang lain. Momen membosankan seperti itu membunuh keinginan untuk bekerja, dan apabila tidak ada keinginan, ada alasan. Bagaimanapun, peringkat ini mengambil masa kira-kira 2 minggu (saya melakukan projek pada masa lapang dan ketika saya tidak mempunyai alasan). Projek itu diisytiharkan siap kira-kira 3-4 minggu selepas ia bermula.

Adakah berbaloi untuk terus belajar pengaturcaraan?

Kekecewaan menyusul. Pertama, saya tidak dibenarkan menerbitkan kerja rumah saya pada kursus. Saya melakukan kerja dan melakukan banyak usaha untuk menunjuk-nunjuk, tetapi saya tidak dibenarkan. Kedua, aplikasi saya berfungsi dengan baik dalam emulator dan pada telefon saya. Daripada apa yang saya rancang untuk lakukan, saya tidak melaksanakan animasi, kerana saya meludah dan memutuskan saya akan menyelesaikannya apabila saya telah melalui pelajaran yang berkaitan dalam kursus. Tetapi apabila saya mula berfikir tentang mengedarkan aplikasi, saya terjumpa satu masalah yang menarik. Selepas menggunakan telefon dan tablet lain untuk menyemak sama ada apl saya adalah pengoptimuman untuk skrin yang berbeza dan versi Android yang berbeza, saya mengalami ralat yang tidak diketahui. Program ini hanya ditutup apabila bertukar kepada surat. Saya cuba mencari punca masalah, menyemak log, yang, berbanding dengan pengecualian Java ringkas, kelihatan lebih seperti hocus-pocus. Internet tidak membantu saya. Di satu pihak, saya membuat aplikasi berfungsi yang anak-anak saya suka bermain. Sebaliknya, ia hanya berfungsi pada telefon saya. Ini membuatkan saya ketawa. Sudah tentu, saya kecewa, tetapi merenungkannya, saya menyimpulkan bahawa saya telah mendapat lebih daripada yang saya hilang:
  • Saya menjadi lebih baik dalam menangani kritikan terhadap kerja saya.
  • Saya menyedari nilai pengetahuan dan pengalaman dalam reka bentuk perisian.
  • Saya meningkatkan harga diri pengaturcaraan saya.
  • Saya menyedari keperluan untuk mengkaji corak reka bentuk dan asas pemfaktoran semula.
  • Dan seperti yang saya katakan, kini saya mempunyai aplikasi saya sendiri, yang tidak ada orang lain dan mungkin tidak akan pernah miliki. =)
"Saya tahu bahawa saya tidak tahu apa-apa". Dengan melaksanakan projek pendidikan seperti ini, anda mempunyai peluang yang baik untuk menganalisis perkara yang anda tahu di mana anda mempunyai jurang dalam pengetahuan anda, dan mengenal pasti cara untuk maju lebih jauh. Adakah berbaloi untuk terus belajar pengaturcaraan jika anda memahami bahawa semua usaha anda sepanjang peringkat hidup anda telah memindahkan anda daripada 0 kepada +0.001? Bagi saya, jawapannya adalah ya. Bagaimana dengan awak?
Komen
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION