تفاوت میان سطوح مختلف توسعهدهنده نرمافزار ناملموس است. از هر خبره ای در زمینه نرمافزار بپرسید «تفاوت یک تازهکار، جونیور و سینیور در چیست؟» جواب های بسیار متفاوتی خواهید گرفت.
وقتی این حجم از تفاوت عقیده وجود دارد، صرف وقت برای پیداکردن مسیر رستگاری و روش رسیدن به سطح سنیور کار بیهوده ایست و نتیجه درستی نخواهد داشت!
بجای این بگذارید چند کار که تاثیر زیاد در پیشرفت شما به عنوان یک توسعه دهنده دارد را بررسی کنیم:
ماشین حساب با ریاکت؟ تمرین جالبی است اما یک پروژه واقعی نیست! برنامه Todo؟ جذاب و کاربردی است ولی یک پروژه واقعی نیست. همه بلدند طی یک دوره آموزشی مقداری کپی/پیست کنند... ما درباره چیز دیگری صحبت میکنیم.
چیزی که view ها، endpoint ها و functionality بسیار بیشتری داشته باشد، این چیزی است که تفاوت و خلاقیت توسعه دهنده های مختلف را نشان میدهد.
حتما میپرسید پس یک پروژه واقعی و مهم (خفن) چیست؟
اینها چند مثال باحال بودند اما نکته این است، پروژه بزرگی درباره چیزی که خیلی نسبت به آن شوق و ذوق دارید بسازید یا چیزی بسازید که کاملا سطح دانش شما را افزایش دهد. به هر حال هر کدام از آنها سطح شما را بالاتر میبرند چون شما در حال درک مفاهیم مهم و جدید هستید.
پروژه یا پکیج متنباز خود را بسازید یا در مخازن موجود مشارکت کنید.
اگر میخواهید پکیج خود را توسعه دهید، مطمئن شوید که از روی یک دوره آموزشی اینکار را نمیکنید و از طرفی چیزی بسازید که بدرد دیگر توسعه دهنده های بخورد.
حتما فرآیند خود را مستند کنید، خیلی خوب است اگر یک پست بلاگ یا یک مجموعه ویدیو درباره اینکه چرا / چگونه این پکیج را توسعه دادید بسازید.
این کار نه تنها اجازه میدهد از قصه خوبی برای محصول خود بسازید و دیدگاه های جدیدی بدست آورید، بلکه یک نمایش از توانایی شماست و راهنمای خوبی برای هزاران نفری است که مانند شما میخواهند این مسیر را طی کنند.
به احتمال زیاد پکیچ های مورد علاقه شما (در هر زبانی که استفاده میکنید) روی گیتهاب موجود است، و به احتمال بسیار بالا تعداد زیادی issue روی هر کدام پیدا خواهید کرد.
خطمشی مشارکت در مخزن را بررسی کنید و به درک درستی از آن برسید بعد به دنبال حل یکی از issue ها بروید. حتی بهتر است که ویژگی های جدید که بنظرتان مفید است اضافه کنید.
این کار نتایج خوبی را در پی دارد:
این یکی از سریعترین راهکار های پیشرفت به عنوان یک توسعهدهنده است. چون از ابتدا کدی را مورد بررسی قرار میدهید که از سطح فنی شما بالاتر است.
سعی کنید درکش کنید، آنرا با کد های خود مقایسه کنید و الگو هایی که برای بهبود در کد های خود بیابید؛ از روش هایی که بنظر برای استفاده از پروژه های خودتان بدرد میخورد یادداشت بردارید.
اگر در یک شرکت کار نمیکنید شاید اینکار سخت بنظر بیاید اما همیشه دسترسی به پروژه های متنباز در جامعه توسعهدهندگان موردعلاقه خود خواهید داشت.
اگر توسعه دهنده ای که کدش را میخوانید برای پاسخ به پرسش های شما راغب باشد که عالیست. به آنها بگویید «میخواهم بدانم حرفه ای ها چطور کد میزنند!؟» و درخواست کنید که چند سوال از چیزهایی که برایتان مبهم هستند بپرسید. خیلی از توسعه دهندگان از این خوشحال هم میشوند.
(*) ـ design pattern ، best practises و principles را جستجو کنید.
ـ SOLID, KISS,YAGNI,MVC را بررسی کنید، لیست بلند بالایی از این مخفف های عجیب موجود هستند که میتوانید نگاهی به هر کدام بیاندازید (لیست مذکور)
مفاهیم هر کدام را بخوانید و برای مثال هایش گوگل کنید، مثال ها را جدی بگیرید با خواندن آنها متوجه میشوید که چطور پیاده سازی میشوند این کمک میکند که بهتر متوجه الگو شوید. سعی کنید درک کنید که هر الگو برای حل چه مشکلی پا به میدان گذاشته است و موارد استفاده هر کدام چیست. در این حوزه کتاب های معروفی هستند مانند «گنگآففور»
شاید ابتدای کار کمی عجیب و غریب بنظر بیاییند ولی نگران نباشید حرفه ای ها هم همه الگو ها را از بر نیستند. در آینده با مراجعه مجدد و مرور سریع آنها میتوانید خاستگاهشان را درک کنید و مورد استفاده قرار دهید.
لطفا راهکار هایی که استفاده کردید را در کامنت ها به اشتراک بگذارید تا همه از آن بهره مند شوند. قطعا افرادی هایی هستند که راهکار های دیگری استفاده کردند و احتمال دارد راه خیلی خوبی برای بقیه باشد.
دلیل اصلی این پست وبلاگ برای پیدا کردن این راهکار های جدید و کمک به یکدیگر در مسیر پیشرفت است.
اگر این پست را برای دیگران مفید میدانید از اشتراک گذاری آن دریغ نکنید :)
این یادداشت ترجمه آزادی بود از: