سلام دوستان. توی قسمت دوم میخوایم با ۱۰ تجربه و نکته دیگه آشنا بشیم. از اینجا میتونید قسمت اول رو بخونید:
خب بپردازیم به نکتههای این قسمت 🔥
۱۱. چرخ رو دوباره اختراع نکنیم
میدونیم که این روزها برای توسعهی یک برنامه، ابزارهای زیاد و متنوعی در دسترس ما هست. کتابخونهها، پلاگینها و فریمورکها، کار ما رو به حدی راحت کردن که کمتر درگیر مسائل جانبی بشیم و تنها دغدغهی ما پیادهسازی کردن اصل ایدهمون باشه. بیشتر این ابزارها اپنسورس هستن و بهینگی و عملگرد اونها توسط افراد و انجمنها دائم درحال بهبود هست.
البته توی دو شرایط خوبه که خودمون چرخ رو دوباره اختراع کنیم:
۱. میخوایم چرخ درست کردن رو یاد بگیریم. یعنی به قصد کنجکاوی و یاد گرفتن میخوایم بدونیم یک قابلیت و ویژگی چطوری قابل پیادهسازی هست
۲. ابزارهای موجود جوابگوی نیاز ما نیستن
۱۲. سطح کدهامون رو با بقیه مقایسه نکنیم
وقتی که ابتدای راه قرار داریم، گاهی وقتها مقایسه کردنِ چیزی که هستیم با چیزی که دیگران هستن، باعث سرخوردگی و کاهش اعتماد به نفس میشه. باید بدونیم کدهایی که توی سطح اینترنت و ویدئوهای آموزشی وجود داره، قبل از اینکه منتشر بشن، بارها تست و ریفکتور (بهینهتر و ساختاریافتهتر) شدن. فریمورکها و ابزارهای بزرگ بارها و در طول سالها توسط چندین برنامهنویس از سراسر دنیا توسعه داده میشن. تنها موردی که مقایسه کردن به نفع ما هست، مقایسه وضعیت فعلی ما با وضعیت ۶ ماه قبلمون هست.
۱۳. هیچ زبان و ابزاری کامل نیست
هر زبان و ابزاری برای کاربرد خاصی به وجود اومده و هر کدوم در مقایسه با بقیه، قطعاً مزایا و معایبی دارن. معیار استفاده ما از اونها باید نیازهای ما باشه. باید بدونیم که چی میخوایم و نیازها و امکانات ما چه چیزایی هستن.
۱۴. انعطافپذیری برای یادگیری چیزهای جدید
وقتی قصد داریم توی شرکت جدیدی کار کنیم، به احتمال زیاد باید با ابزارهایی کار کنیم که با اونها آشنایی نداریم. اگه آدم انعطافپذیر و مشتاقی باشید، شرکتها معمولاً به شما زمان میدن که به یادگیری اونها بپردازین. کافیه به شرکت صادقانه بگین «نمیدونم، ولی مایلم یاد بگیرم».
یکی از مشخصههای بزرگ و مثبت یک برنامهنویس، توانایی اون توی یادگیری هست. این به این معنی نیست که اونها خوب و زود یاد میگیرین. به این معنیه که اونها همیشه مایل به یادگیری هستن.
دوستان! یاد گرفتن و پیشرفتِ به طور پیوسته، راحت نیست. باید قبول کرد که این از چالشهای این حرفه هست: تمایل به یادگیری. البته تعادل رو هم اضافه کنید. کسانی وجود دارن که دائم در حال یادگیری هستن، بدون اینکه ذرهای از علمشون استفاده کنن. در مقابل کسانی هستن که فقط کار میکنن بدون اینکه ذرهای به علمشون اضافه کنن. متاسفانه آیندهای برای این دو دسته وجود نداره.
۱۵. مسائل رو خُرد کنیم
یک استارتآپ، یک ایده و یا یک برنامه بزرگ ممکنه ترسناک باشه، اما فقط تا زمانی که به قطعههای کوچیک تقسیم میشه. از ابزاری مثل استفاده کنیم تا مسائل رو به بخشهای کوچیک تقسیم کنیم.
۱۶. کوچیک شروع کنیم
داشتن یک ایده شخصی و پیادهسازی اون، یکی از هیجانانگیزترین اتفاقها برای هر توسعهدهنده میتونه باشه. قبل از اجرای پروژه، کلی ویژگی و امکانات به ذهنمون میرسه که دلمون میخواد همه اونها رو پیادهسازی کنیم که این یک مانع بزرگ برای شروع هست. بهتره که ایدهمون رو با حداقل امکانات اجرا کنیم و امکانات جدید رو حین اینکه از مشتریها بازخورد میگیریم اضافه کنیم. شاید بدونین درباره چی داریم صحبت میکنم:
۱۷. هر چیزی ارزش یادگیری نداره
سردرگم شدن توی این دنیای پر از ابزارهای جذاب و متنوع خیلی راحت هست. حتماً ضربالمثل «از این شاخه به اون شاخه پریدن» رو شنیدید. یکی از تصورات رایج اما واقعاً مخرب یک برنامهنویس اینه که بخواد هر چیزی رو یاد بگیره. یک ابزار هر چقدر هم جذاب باشه، باید ببینیم که آیا لازم هست اون رو یاد بگیریم یا نه.
۱۸. کدهای دیگران رو بخونیم
مهم نیست که کدهای دیگران چقدر سطحپایین یا خیرهکننده هست. این کار دیدگاهمون رو بازتر میکنه و باعث میشه با موضوعات جدید از یک زبان و ابزار و همچنین با راهکارهای جدید و متنوعی برای حل مسائلمون آشنا بشیم. برای این کار کافیه موضوع مورد نظرمون رو توی گیتهاب پیدا کنیم و ببینیم دیگران به چه صورت مسائلی که ما باهاشون مواجه هستیم رو حل میکنن.
در نظر داشته باشیم که خوندن کدهای دیگران به منظور کپی/پیست کردن کدهای اونها نیست که در اون صورت مسیر رشد نزولی میشه. چون چشم بسته تبعیت کردن از کدهای دیگران ۲ نکته منفی داره: اول اینکه ممکنه کدهای اونها بهینه نباشه و یا دارای اشکال باشه. دوم اینکه باعث میشه خودمون درباره حل مسئله فکر نکنیم.
۱۹. دشمنی به اسم کاملگرایی
یکی از موانع پیشرفت، کاملگرایی یا Perfectionism هست. یعنی همه چیز باید کامل و در بهترین حالت ممکن قرار داشته باشه. هیچ کد و برنامهای کامل و بینقص ۱۰۰٪ نیست. کاملگرایی باعث شد خیلی از استارتآپها و برنامههای خودم به مرحله اجرا وارد نشه. چیزی که یاد گرفتم این بود میدونم کامل نیستم و برای من این کافیه که توی هر لحظه بهترین تلاشم رو داشته باشم.
۲۰. مانعی به اسم تعصب
حتماً توی گروهها و انجمنهای برنامهنویسی دیدیم که عدهای درحال بحث و دعوا و طرفداری برای یک زبان و ابزار خاص هستن. دوستانِ تازهکار، کاملاً طبیعی هست زبانی که با اون شروع میکنید رو دوست داشته باشید، اما دوباره باید بگم که هر زبان و ابزاری به دلیل خاصی معرفی شده و کارایی منحصر به فرد خودش رو داره. اونها چیزی نیستن جز ابزارهایی که به ما کمک میکنن تا به هدفمون برسیم. مهم خروجی و موفقیتِ محصول هست و برای کسی که از برنامهی ما استفاده میکنه، اصلاً اهمیتی نداره که از چه تکنولوژیهایی استفاده شده.
خب دوستان! این هم از قسمت دوم. اگه شما هم تجربیاتی دارید میتونید اونها رو توی قسمت نظرات به اشتراک بذارید تا منتشر بشن. روزتون خوش 😉✌️
ایده نوشتن این پست از صفحه زیر به ذهنم رسید:
