خلاصه ای از شروع تا گرفتن اولین پروژه ام به عنوان یک برنامه نویس

سلام دوستان، امیدوارم حالتون خوب باشه. در این پست می خوام براتون خلاصه ای از داستان شروع برنامه نویسی ام تا گرفتن اولین پروژه ام رو تعریف کنم. https://virgool.io/@mohammadiashkan1384/%D9%BE%DB%8C%DA%86-%D9%88-%D8%AE%D9%85-%D9%85%D8%B3%DB%8C%D8%B1-%D8%B2%D9%86%D8%AF%DA%AF%DB%8C-%DB%8C%DA%A9-%D8%A8%D8%B1%D9%86%D8%A7%D9%85%D9%87-%D9%86%D9%88%DB%8C%D8%B3-%D9%86%D9%88%D8%AC%D9%88%D8%A7%D9%86-qysbf3bmlcoc هنوز هم اون روز های اول رو یادمه. زمانی که با عبارات شرطی، حلقه ها، متغیر ها و انواع داده در پایتون ور میرفتم و برای یادگیری امتحانشون می کردم و از دیدن نتایج کیف می کردم. هیچ وقت از یادگرفتن خسته نمیشدم. برام مهم نبود که ته این راه به کجا ختم میشه. هر روز کد می نوشتم حتی بی هدف. ?مثل اکثر برنامه نویس ها، بالاخره با توسعه وب آشنا شدم و html و css و js (من بهش میگم مثلث افسانه ای وب ?) رو یاد گرفتم ولی برای بک-اند (back-end) کمی طول کشید که به صراط مستقیم هدایت بشم. اوایل فکر می کردم فقط php برای back-end مناسبه و یادش گرفتم (البته الان از این کارم پشیمون نیستم) بعد ها فهمیدم که پایتون هم فریمورک هایی برای نوشتن کد های back-end داره مثل flask و django.بعد از تست کردن flask و django تصمیم گرفتم که برم سراغ django دلیلش هم خیلی ساده بود: django نسبت به flask امکانات بیشتری داره ?. درمورد من، این دقیقا همون چیزی هست که می خواستم ولی شاید شما انعطاف پذیری بیشتری بخواهید و flask رو ترجیح بدید. از اپلیکیشن های کوچیک وب شروع کردم و مهارت هایم رو رفته رفته بهتر کردم. می خواستم تا جایی که می تونم بیشتر یاد بگیرم به خاطر همین دیگه کم کم کارم بالاگرفت و جدی شد.به خیال خودم فکر می کردم حالا دیگه آماده این هستم که به عنوان یک freelancer کار کنم و پروژه بگیرم پس در سایت پونیشا عضو شدم ?. بعد که پروژه های واقعی رو دیدم امیدم در چند ثانیه به صفر رسید، اصلا بهتره بگم رفت 50 واحد زیر صفر ?.اون لحظه فهمیدم که هرچیزی که تا به الان یاد گرفتم در حکم بستن بار سفر برای آغاز یک راه طولانی بوده و من حتی یک قدم هم از مبدا به سمت مقصدم حرکت نکرده ام. از اون به بعد به خودم خیلی سخت گرفتم تا چیز های بیشتری یاد بگیرمتیکه انداختن های پدرم عامل اصلی پیشرفت من شدصبح و شبم شده بود نشستن جلوی کامپیوتر و scroll کردن صفحات وب. لیست "تماشا در فرصتی دیگر" اکانت یوتیوبم پر شده بود از کلی آموزش که از سراسر یوتیوب پیدا کرده بودم. مصرف اینترنتم هم دوبرابر قبل شده بود. به خاطر همین پدرم هر وقت از کنارم رد میشد بهم تیکه مینداخت که "اشکان تو از صبح تا شب میشینی و دکمه های کیبورد رو الکی فشار میدی که چی بشه؟ تازه هرچی می نویسی رو هم هزار بار پاک می کنی و از اول می نویسی ..." با اینکه به ظاهر چیزی نشون نمیدادم اما خیلی این حرف ها بهم بر می خورد. من داشتم کلی تلاش میکردم و علم آموزی میکردم اونوقت پدرم این کار من رو فشار دادن بی هدف دکمه های کیبورد می دونست. خدایی خیلی سخت بود ? ولی باعث نشد از فشردن دکمه های کیبورد دست بردارم.و بالاخره اولین پروژهبعد از یک سال کامل یادگیری، تصمیم گرفتم ترسم رو از گرفتن پروژه کنار بزارم و دنبال مشتری بگردم. قرار شد دوستم امیررضا برام مشتری پیدا کنه و من کار رو انجام بدم اما اکثر مشتری ها وبسایت مفت می خواستن و اهل معامله نبودند به خاطر همین هرچقدر سگ دو زدیم نشد که نشد ...یه روز دوباره یاد پونیشا افتادم و تصمیم گرفتم به میدون (سایت پونیشا) برگردم. خواستم یک بار دیگه شانسم رو در پونیشا امتحان کنم. ;O)برعکس دفعه پیش، این بار تونستم چند پروژه پیدا کنم که در توانم بود. باید اعتراف کنم که به طور بسیار بسیار شانسی اولین پروژه ام رو گرفتم. نمی دونم چطور بین چند برنامه نویس دیگه، پیشنهاد من تازه وارد انتخاب شد اما به هر صورت اولین پروژه ام رو گرفتم و کارم افتاد رو غلتک ✌.هنگام انجام پروژه چندبار بدجور به مشکل خوردم. پروژه یک وبسایت فروشگاهی بود، مشکل این بود که کالا های فروشگاه از سه واحد ارز استفاده می کردند و به خاطر interactivity زیادی که کاربر با برنامه داشت و نیز نداشتن یک فریمورک درست و حسابی برای کد های جاوا اسکریپت همه چیز خر تو خر شده بود.خلاصه اینکه من هر کاری کردم نتونستم این بخش رو درستش کنم. کسی رو هم نمیشناختم که در حدی باشه که بتونه به من کمک کنه. می دونستم که کسی که باید این مشکل رو حل کنه فقط من هستم و مسئولیتش هم فقط با خود من هست. اینجا بود که آرزو می کردم ای کاش یه تیم داشتم که افرادش حرفه ای تر از خودم بودن. اینطوری حداقل خیالم راحت بود که اگه من نتونم یکی دیگه می تونه انجامش بده. اما واقعیت همیشه تلخ است و اکثر مواقع فقط باید باهاش کنار اومد ... ?بعد از هشت ساعت کارکردن مداوم، دیگه اصلا مغزم نمی کشید. می دونستم ادامه دادن کار در این شرایط فقط وقت تلف کردنه. تصمیم گرفتم بهش فکر نکنم و کمی از کار فاصله بگیرم و بعدا بیام سراغش. رفتم کمی روی کاغذ بنویسم تا ذهنم آروم تر بشه. بعدش که تنش ذهنی ام فروکش کرد برگشتم سراغ کامپیوترم و در اولین نگاه به کد هام فهمیدم کجای کار رو گند زده ام. فهمیدم که اصلا مشکل رو اشتباه متوجه شده ام و اینکه مشکل اونقدر هم که من فکر می کردم پیچیده نیست و راهکار ساده تری برای انجامش وجود داره. ?خوشبختانه داشتم از git استفاده می کردم و سریع تونستم کد های به درد نخوری که نوشته بودم رو revert کنم و از اول بنویسم (خدا هرکسی که git رو ساخته خیرش بده). حدود دو ساعت این بخش از پروژه رو هم انجام دادم. ?بعد از اینکه همه بخش های پروژه تکمیل شد، همه رو به کارفرما ارسال کردم. بعد از انجام تست توسط کارفرما و رفع یه سری ایرادات جزئی توسط من، بالاخره پروژه به اتمام رسید و کار تحویل داده شد. خداراشکر مشتری هم از کار کاملا راضی بود.از اون موقع به بعد هم فعلا دارم کارم رو به عنوان یک فریلنسر تازه وارد بی تجربه ادامه میدم و از اشتباهاتی که در پروژه های مختلف مرتکب میشم درس میگیرم و هر بار بهتر از گذشته ادامه میدم.خلاصه اینکه اگر شما هم می خواهید پروژه تون رو بگیرید، ترس از انجام نشدن پروژه رو باید کنار بزارید چون برای یک برنامه نویس همیشه چالش هایی حتی در پروژه های آسون وجود داره. به پایان این پست رسیدیم. امیدوارم در زندگی تون موفق باشید. فعلا تا پست بعدی خدانگهدار ??