CodeGym /وبلاگ جاوا /Random-FA /چطور بود؟ یا اولین پروژه من
John Squirrels
مرحله
San Francisco

چطور بود؟ یا اولین پروژه من

در گروه منتشر شد
این ترجمه داستان موفقیت جامعه جهانی جاوا ما است. الکس جاوا را در نسخه روسی زبان این دوره، که شما به زبان انگلیسی در CodeGym مطالعه می کنید، یاد گرفت. باشد که الهام بخش یادگیری بیشتر شما شود و شاید روزی بخواهید داستان خود را با ما به اشتراک بگذارید :)

معرفی

کمی در مورد اینکه چگونه وارد برنامه نویسی شدم. من با آموزش معلم و روانشناس هستم و 5 سال است که حرفه ام را با موفقیت انجام می دهم. اما به دلایل مختلف، من به طور فزاینده ای به مهاجرت به کشور دیگری فکر می کنم. و از آنجایی که زبان و مقررات در کشورهای دیگر متفاوت است، من نمی‌توانستم بدون بازآموزی جدی به همان نوع حرفه‌ای تبدیل شوم. بنابراین شروع به جستجوی راه‌های ساده‌تر و جالب‌تر برای حرکت و موفقیت کردم. چطور بود؟  یا اولین پروژه من - 1من دستم را به عنوان یک هنرمند خالکوبی امتحان کردم (این اساساً به هیچ دانشی از زبان نیاز ندارد)، اما این یک داستان برای یک روز دیگر است. سپس دوست همکارم به من CodeGym را معرفی کرد. من در ابتدا نسبت به وعده هایی که می خواستند با انجام یک بازی و با چنین قیمتی از من یک برنامه نویس تمام عیار بسازند، شک داشتم. اما بعد مقداری پول تولد گرفتم (که مشمول «مالیات خانوادگی» نمی‌شود)، و با انتخاب بین WoW و CodeGym روبرو شدم... خوب، به لطف تخفیف به موقع، ترازو در مسیر درست قرار گرفت و من اینجا هستم. همانطور که همه ما قبلاً باید بدانیم، CodeGym 90٪ تمرین خالص است. شما یاد می گیرید که تکالیف را حل کنید. شما یاد می گیرید که دانشی که کمبود دارید را در اینترنت پیدا کنید. همه اینها خوب است، اما برای 15 سطح نمی‌توانستم از این احساس خلاص شوم که چیزی را از دست داده‌ام که تصویر را برای من کامل کند. به فکر پیوستن به GeekBrains بودم، اما (احتمالاً خوشبختانه) همان دوست به موقع جلوی من را گرفت و Udemy را به من معرفی کرد. وقتی این مخزن دانش را باز کردم، با این درخواست ها همراه شدم: " پسست، دوست. آیا شما تازه وارد هستید؟" فقط برای 3 روز تخفیف برای شما وجود دارد — این فرصت را از دست ندهید! "بعداً مشخص شد که همیشه تخفیف وجود دارد، اما نکته این نیست. من بلافاصله یک بسته با دو دوره خریدم: جاوا از 0 تا Pro و چیزی مشابه برای اندروید. و داستان ما از اینجا شروع می شود.

موفقیت یا شکست؟

همانطور که در دوره اندروید کار می کردم، تکلیف گرفتم تا بر اساس دانش جدیدم یک پروژه بسازم. من از آن دسته افرادی هستم که معتقدم انجام کاری به روشی ساده یا معمولی مانند انجام ندادن آن است. بنابراین، من بلافاصله شروع به پیچیده کردن زندگی خود کردم. به کسی که می‌شناسم متوسل‌ترین و زنده‌ترین قوه تخیل را برمی‌گردانم. این همسر عزیز من است (بله، او نیز این مقاله را خواهد خواند). او پیشنهاد کرد اپلیکیشنی با تصاویر حیوانات بسازید که با کلیک روی آنها صداهای مربوط به حیوانات را تولید می کند. این یک ایده عالی بود، اما هنوز هم بسیار ساده است. با در نظر گرفتن این پیشنهاد به عنوان پایه، شروع به استدلال کردم:
  • این برنامه باید بیشتر از کرکی (چیزی برای خندیدن و فراموش کردن) باشد. میخوام ارزش داشته باشه مثلا با آموزش چیزی.
  • بگذارید الفبای حیوانات باشد. اما نه هر الفبای، بلکه الفبای انگلیسی!
  • و نه فقط حیوانات، بلکه حیوانات کمیاب که کمتر کسی آنها را می شناسد، تا افق دید خود را گسترش دهند!
  • و باید انیمیشن، پخش صوتی نام حروف، و نام حیوانات به زبان انگلیسی و روسی وجود داشته باشد!
حالا من به این می گویم تکلیف (فراموش کردم بگویم که قبل از CodeGym اساساً با برنامه نویسی آشنا نبودم. و کمتر از 3-4 ماه از شروع استفاده فعال از وب سایت تا شروع پروژه می گذرد. ​​بنابراین اگر شما شما یک جانباز در این زمینه هستید و دارید فکر می کنید " پفف ... آیا چیزی نسبت به نسخه اصلی تغییر کرده است؟ " ، به شما اطمینان می دهم بله تغییر کرده است)! اولین مشکلی که با آن روبرو شدم ، به طرز عجیبی شروع پروژه بود. همانطور که معلوم است، نویسندگان تنها کسانی نیستند که "بلاک نویسندگان" را تجربه می کنند... اما چون من یک روانشناس هستم، راه حل مشکلم را می دانستم. شما فقط باید شروع به انجام کاری کنید. حداقل یک قدم کوچک بردارید و سپس متوقف نشوید. بنابراین من با یک کلاس انتزاعی Letter شروع کردم . این کلاس چند فیلد داشت و متعاقباً باید متدهای مختلفی داشته باشد. در واقع نمی‌دانستم با آن چه کنم، اما باید کاری می‌کردم. سپس برای هر حرف کلاس هایی ایجاد کردم و آنها را به ارث بردن کلاس انتزاعی تبدیل کردم. زمان زیادی طول کشید و در این اولین روز کاری من به پایان رسید. روز بعد پروژه را حذف کردم و دوباره شروع کردم. من فقط پروژه را باز کردم تا به یاد بیاورم از لحظه ای که در بالا توضیح دادم چه چیزی تغییر کرده است. و من می خواهم بگویم که وقتی تمام کردم همه چیز بهتر به نظر می رسید، اما نه. واقعاً هنوز کلاس هایی برای هر حرف وجود دارد... این به طور خاص به این دلیل بود که تقریباً در همان ابتدای دوره اندروید این تکلیف به من محول شد و من مجبور شدم پیچیدگی های رابطه بین یک را بفهمم. فعالیت (پنجره فعال یا چیزی شبیه به آن) با یک کلاس. و من چیزی جز این روش ناشیانه در ارتباط دادن یک کلاس خاص با یک فعالیت خاص پیدا نکردم یا به ذهنم نرسید. به هر حال یکی از اصول برنامه نویسی (پرهیز از تکرار) 26 بار زیر پا گذاشته شد. ابتدا، من به طور کامل (به نظرم رسید) دو حرف اول را پیاده سازی کردم، یک رابط کاربری تقریبی متشکل از دو منو (یک منوی کلی که ممکن است در هنگام گسترش عملکرد ضروری باشد، و یک فهرست مطالب، که از آن می توانید به هر موردی پرش کنید) ایجاد کردم. از حروف). من واقعا در برنامه نویسی با مشکل زیادی مواجه نشدم. با اجرای پروژه مستقل خود، بسیاری از چیزها، مانند روابط بین کلاس ها، متدها و غیره مشخص شد و خود پروژه به تمرینی عالی برای تجمیع تمام دانشی که نه تنها در مورد اندروید، بلکه در مورد جاوا به دست آورده بودم تبدیل شد. سختی دوم این بودکه حرف همزمان با شنیدن نامش جابجا شد. انتقال صاف (سایه زدن) باعث شد به نظر برسد که صدا قبل از تصویر است. اما وقتی یک تاخیر روی صدا گذاشتم، کل رشته یخ زد - انتقال به سادگی با مقدار تاخیر به تعویق افتاد و همان اثر نامطلوب را فقط بعداً ایجاد کرد. سپس تصمیم جسورانه ای گرفتم که برنامه ام را چند رشته ای کنم! پخش صدا را با تاخیری که به اندازه کافی طولانی بود تا تصویر بارگذاری شود، به یک رشته جداگانه منتقل کردم. این تا آنجا بود که چند رشته ای پیش رفت، اما من با افتخار گفتم که در حال نوشتن یک برنامه چند رشته ای هستم. مشکل نهایی انتخاب مواد مناسب بود. آیا فکر کردید که انگلیسی برای حرف X حیوانی ندارد (معلوم است که دارد)؟ من مجبور شدم 26 حیوان را شناسایی کنم و تصاویر و صداهای آنها را پیدا کنم و نام 26 حرف و 26 حیوان را ثبت کنم. اگر در یک تیم کار می کردم، بدیهی است که این بخش از کار را به شخص دیگری واگذار می کردم. چنین لحظات یکنواختی میل به کار را از بین می برد و زمانی که میل نباشد، بهانه می آید. به هر حال این مرحله حدود 2 هفته طول کشید (این پروژه را در اوقات فراغت و زمانی که هیچ بهانه ای نداشتم انجام دادم). این پروژه تقریباً 3-4 هفته پس از شروع آن کامل اعلام شد.

آیا ارزش ادامه تحصیل در برنامه نویسی را دارد؟

ناامیدی به دنبال داشت. اول اینکه اجازه نداشتم تکالیفم را در دوره منتشر کنم. من کار را انجام دادم و تلاش زیادی برای خودنمایی کردم، اما اجازه نداشتم. دوم، برنامه من در شبیه ساز و روی گوشی من کاملاً خوب کار می کرد. از کارهایی که قصد انجام آن را داشتم، انیمیشن را اجرا نکردم، زیرا تف کردم و تصمیم گرفتم زمانی که دروس مربوطه را در دوره گذرانده بودم، آن را تمام کنم. اما وقتی به فکر توزیع اپلیکیشن افتادم، با مشکل جالبی مواجه شدم. پس از استفاده از گوشی و تبلت دیگری برای بررسی اینکه آیا برنامه من برای صفحه‌های مختلف و نسخه‌های مختلف اندروید بهینه‌سازی شده است یا خیر، با خطای ناشناخته‌ای مواجه شدم. این برنامه به سادگی در هنگام تغییر به یک حرف خاموش می شود. من سعی کردم ریشه مشکل را پیدا کنم، لاگ ها را بررسی کردم، که در مقایسه با استثناهای مختصر جاوا، حتی بیشتر شبیه به hocus-pocus به نظر می رسید. اینترنت کمکی به من نکرد. از یک طرف، یک برنامه کاربردی ساختم که فرزندانم دوست دارند آن را بازی کنند. از طرفی فقط روی گوشی من کار میکنه. این باعث خنده ام می شود. البته ناراحت بودم اما با تأمل به این نتیجه رسیدم که بیشتر از چیزی که از دست داده بودم به دست آورده ام:
  • در برخورد با انتقاد از کارم بهتر شدم.
  • من به ارزش دانش و تجربه در طراحی نرم افزار پی بردم.
  • عزت نفس برنامه نویسی ام را افزایش دادم.
  • نیاز به مطالعه الگوهای طراحی و اصول اولیه بازسازی را درک کردم.
  • و همانطور که گفتم، اکنون من برنامه خود را دارم که هیچ کس دیگری ندارد و احتمالاً هرگز نخواهد داشت. =)
"من می دانم که هیچ چیز نمی دانم". با اجرای پروژه های آموزشی مانند این، شما فرصتی عالی برای تجزیه و تحلیل آنچه می دانید در کجای دانش خود دارید و راه های پیشرفت بیشتر را شناسایی می کنید. آیا ارزش ادامه تحصیل در برنامه نویسی را دارد اگر بدانید که تمام تلاش های شما در یک مرحله طولانی از زندگی شما را از 0 به +0.001 رسانده است؟ برای من جواب مثبت بود. تو چطور؟
نظرات
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION