مشاريعك الشخصية، هي اللي هتطورك جامد جدا في البرمجة…
مشاريعك الشخصية، هي اللي هتطورك جامد جدا في البرمجة…
و لكن فيه نقطة مهمة جدا أنت محتاج تهتم بها كثيرا يا صديقي …. مادام شغال على مشروعك الشخصي…
و هي الانضباط أو ال discipline
الانضباط باختصار في مفهومه العام هو إنك:
– تكمل الحاجة اللي بدأت فيها
– تخلص الأصعب حتى لو ممل
– تفضل فاكر المشكلة و لا تنساها
- لا تق في فخ "نرجع نعيد من الأول"
شوية نقط تساعدك على الانضباط، عشان مشروعك الشخصي يعلمك بجد و يساعدك تطور… و ممكن جدا هو نفسه يتطور، و أنت تستفيد منه ماديا:
١- ال rewrite كل شوية مش أحسن حاجة:
- و دي خصوصا لو أنت بتغير كل حاجة لمجرد ان فيه تكنولوچي جديدة نزلت، و سمعت انها احسن من اللي حاليا شغال بيها…
ده بيحرمك من انك تحل مشاكل بجد، كانت هتفتح أفقك البرمجي… معظم التكنولوچيات بتقوم بنفس الدور بس بطرق مختلفة…
الصعوبة الحقيقية في نوع المشكلة و مستواها… لو فضلت محبوس في المستوى الاول، و لم تدخل المستوى الثاني… لمجرد انك بتعيد في المستوى الاول بطرق أجدد…. اذا انت لا تستفيد.
٢- ركز أوي على مبدأ ال Technical Debt:
- على النقيد لل rewrite لكل حاجة من الصفر…. فيه مشكلة كبيرة بيقع فيها المبرمجين، و خصوصا المبتدئين…
المشكلة هي "التكاسل" في وضع حل "متكامل" من أول مرة.
كمثال:
أنت بدأت حلك لمشكلة ما، بحل "تجريبي". عشان تتأكد اذا كان تفكيرك سليم، و انك على الطريق الصحيح ولا لا… و ليكن function ما و حطتها جوة class عام جدا
و لكن بدل متبذل الوقت المطلوب انك، تحول الحل "التجريبي" لحل متكامل، و هو انك تعمل class مخصص للوظائف الجديدة… انت سبت الفانكشن زي ما هي..
ده خلق حاجة اسمها technical debt
و هو انك حرفيا بقيت "مديون"… بقيت مديون لنسختك المستقبلية، اللي هتعاني بعد كدة، لما تلاقي ٢٠ فانكشن محطوتين بنفس الطريقة الغير منظمة، و المشروع بتاعك اصبح "جحيم" في التعامل معاه…
٣- خلي عندك roadmap واضح و realistic deadlines:
- المشكلة إن كتير من المبرمجين بيشتغلوا على مشاريعهم الشخصية من غير خطة واضحة... "هعمل حاجة و نشوف هتوصلني لفين"
ده بيخليك تايه، و سهل جداً تفقد الحماس أو تسيب المشروع في النص.
اعمل لنفسك milestones صغيرة و قابلة للتحقيق... مثلاً:
◦الأسبوع ده: هخلص ال authentication system
◦الأسبوع الجاي: هعمل ال basic CRUD operations
◦بعده: هضيف ال notifications
المهم إن ال deadlines تكون realistic...
لا تقل: "هخلص المشروع كله في أسبوع"... ده هيحبطك و يخليك تسيبه.
و الأهم: احتفل بإنجازاتك الصغيرة... خلصت feature؟ اعمل commit و اكتب description كويس... ده هيديك إحساس بالتقدم و هيحمسك تكمل.
الفكرة إن الانضباط مش بس في إنك "تشتغل"... لكن كمان في إنك تشتغل بذكاء و بخطة واضحة تخليك عارف رايح فين و إيه اللي المفروض تعمله النهاردة.

