لو أنت كمبرمج عارف ماذا تريد، من أين تنطلق و الى اين تصل - في مهمة ما - فال ai يساعد كثيرا في عملية كتابة الكود و عمل Refactoring افضل منك بكثير بحكم ال data التي يستخدمها و له الوصول اليها.
لكن مرة اخرى يجب ان تكون لديك دراية قوية ومعرفة ب:
- الأساسيات في علوم الحاسوب عموما و البرمجة خصوصا،
- تكون على دراية ببعض اشهر ال design patterns،
- تكون لديك مهارة التفكير و حل المشكلات،
- ان تكون لديك مهارة ال debugging لانها مهمة جدا،
- ان تفهم لغة البرمجة/الفريمووركس التي تستخدمها بعيوبها و نقاط قوتها لكي تعرف كيف تستغل ال ai لصالحك،
- أن تحاول القراءة كثيرا في هندسة البرمجيات و ما الى ذلك.. ففهم العلم الان صار ضرورة لا اضافة.
و نسأل الله ان نوفق لما كتبناه ايضا.
#Softwareengineering #programming #AI
لكن مرة اخرى يجب ان تكون لديك دراية قوية ومعرفة ب:
- الأساسيات في علوم الحاسوب عموما و البرمجة خصوصا،
- تكون على دراية ببعض اشهر ال design patterns،
- تكون لديك مهارة التفكير و حل المشكلات،
- ان تكون لديك مهارة ال debugging لانها مهمة جدا،
- ان تفهم لغة البرمجة/الفريمووركس التي تستخدمها بعيوبها و نقاط قوتها لكي تعرف كيف تستغل ال ai لصالحك،
- أن تحاول القراءة كثيرا في هندسة البرمجيات و ما الى ذلك.. ففهم العلم الان صار ضرورة لا اضافة.
و نسأل الله ان نوفق لما كتبناه ايضا.
#Softwareengineering #programming #AI
❤4
لكي تطور نفسك في مجال البرمجيات سواءا قبل ال ai أو بعد ال ai.
افتح ال code editor الخاص بك و اكتب برامج وتطبيقات بمختلف الأحجام..
و قم بالاخطاء و اسهر لحلها و هكذا..
اقرأ ما استطعت حول المجال..
و بعدها الاشياء تأتي تباعا.. غير هذا هو فقط كلام لا نفع يأتي من وراءه.
هو تذكير فقط، واللهم انا نسألك هذا.
#programming #softwaredevelopment
افتح ال code editor الخاص بك و اكتب برامج وتطبيقات بمختلف الأحجام..
و قم بالاخطاء و اسهر لحلها و هكذا..
اقرأ ما استطعت حول المجال..
و بعدها الاشياء تأتي تباعا.. غير هذا هو فقط كلام لا نفع يأتي من وراءه.
هو تذكير فقط، واللهم انا نسألك هذا.
#programming #softwaredevelopment
❤5❤🔥1
عبارة في البرمجيات تريحك كثيرا في معرفة الطريق "Programming is rewriting"
إنها عملية تخيل الحل في ذهنك، ثم كتابته بأي طريقة كانت تقليدية او الكترونية، وبعدها تحويله إلى كود، تقوم بعمل الاختبارات بكل انواعها، تفشل، تبحث، وتعيد المحاولة، و هكذا حتى تصل إلى حل فعّال لمشكلتك او حالتك.
وقد يكون لهذا الحل الذي وصلت اليه مئات الطرق، ويمكن تحسينه بعدة أساليب ربما مئات ايضا.. بما يسمى ال Refactoring
و حتى الكود المُعاد صياغته ليس مثاليًا، و لن يكون،، فدائمًا ما توجد هنالك فرصة لتطوير ذلك الكود.
واصل التعلم، واصل التحسين و التحسن، كلما تطورت، زادت قدرتك على رؤية طرق مختلفة لحل المشكلات وإصلاح الأخطاء.
#Refactoring #codeRefactor #programming #coding
إنها عملية تخيل الحل في ذهنك، ثم كتابته بأي طريقة كانت تقليدية او الكترونية، وبعدها تحويله إلى كود، تقوم بعمل الاختبارات بكل انواعها، تفشل، تبحث، وتعيد المحاولة، و هكذا حتى تصل إلى حل فعّال لمشكلتك او حالتك.
وقد يكون لهذا الحل الذي وصلت اليه مئات الطرق، ويمكن تحسينه بعدة أساليب ربما مئات ايضا.. بما يسمى ال Refactoring
و حتى الكود المُعاد صياغته ليس مثاليًا، و لن يكون،، فدائمًا ما توجد هنالك فرصة لتطوير ذلك الكود.
واصل التعلم، واصل التحسين و التحسن، كلما تطورت، زادت قدرتك على رؤية طرق مختلفة لحل المشكلات وإصلاح الأخطاء.
#Refactoring #codeRefactor #programming #coding
❤7
استخدم الـ AI، فمعظم الكود الذي يُدفع للإنتاج حالياً هو AI generated. لكن الكود ال:
Clean,
Reusable,
Maintainable,
Secure,
Self-commented,
يتبع بنية المشروع (Project Architecture)،
يتبع أسلوب كتابة الكود الخاص بالفريق،
يحل مشكلة محددة،
مقبول من قِبل الفريق الداخلي،
يطابق الـ UI prototype والمتطلبات الوظيفية،
سهل الصيانة،
بسيط،
قابل للتعديل بسهولة،
ومُعلّق عليه جيدًا عندما يحتاج ذلك،
...
كل ما سبق مسؤوليتك أنت كمطور/مبرمج، هذا الكود يجب أن تراجعه أنت، تعدّل عليه أنت، تفهمه أنت، تصحّحه أنت، وتقوم بعمل testing له أنت (functional و unit tests). لو فهمت هذا وعملت به، ستحسّن من جودة عملك، وتزيد من إنتاجيتك، وتطوّر من مستواك أيضًا.
*ولا تنسَ أن تتعلّم وتخصص وقتًا للتعلّم (لأنك تحتاجه سواءً بالـ AI أو من دونه).
#coding #programming #softwareEngineering #software #ai
Clean,
Reusable,
Maintainable,
Secure,
Self-commented,
يتبع بنية المشروع (Project Architecture)،
يتبع أسلوب كتابة الكود الخاص بالفريق،
يحل مشكلة محددة،
مقبول من قِبل الفريق الداخلي،
يطابق الـ UI prototype والمتطلبات الوظيفية،
سهل الصيانة،
بسيط،
قابل للتعديل بسهولة،
ومُعلّق عليه جيدًا عندما يحتاج ذلك،
...
كل ما سبق مسؤوليتك أنت كمطور/مبرمج، هذا الكود يجب أن تراجعه أنت، تعدّل عليه أنت، تفهمه أنت، تصحّحه أنت، وتقوم بعمل testing له أنت (functional و unit tests). لو فهمت هذا وعملت به، ستحسّن من جودة عملك، وتزيد من إنتاجيتك، وتطوّر من مستواك أيضًا.
*ولا تنسَ أن تتعلّم وتخصص وقتًا للتعلّم (لأنك تحتاجه سواءً بالـ AI أو من دونه).
#coding #programming #softwareEngineering #software #ai
❤3👍2
تبدأ بالإحساس بأنك سينيور أو سائر على طريق السينيورتي عندما؛
- تفكر في السيستيم عموما على المدى المتوسط و البعيد،
- تكتب كود اقل لحل مشاكل معينة،
- تفهم الاساسيات جيدا او تعود لفهمها جيدا.. لانك ستحتاجها قطعا في مسيرة السينيورتي.
اقرأ آخر نقطا و افهمها جيييييييدا.
#programming #softwaredevelopment
- تفكر في السيستيم عموما على المدى المتوسط و البعيد،
- تكتب كود اقل لحل مشاكل معينة،
- تفهم الاساسيات جيدا او تعود لفهمها جيدا.. لانك ستحتاجها قطعا في مسيرة السينيورتي.
اقرأ آخر نقطا و افهمها جيييييييدا.
#programming #softwaredevelopment
❤2
عند استخدام Laravel Factories في اختباراتك، احرص على التمييز بين make() و create()، فالأمر بالغ الأهمية في سياق اختبارات قواعد البيانات.
- حالة استخدام:
ترغب في اختبار إمكانية إنشاء Category جديدة:
it('can create a category', function () {
$categoryData = CategoryFactory::new()->make()->toArray();
$response = $this->post(route('category.store'), $categoryData);
$this->assertDatabaseHas('categories', [
'name' => $categoryData['name'],
'slug' => $categoryData['slug'],
]);
$response->assertStatus(302);
expect(Category::count())->toBe(1);
});
هذا الاختبار سيؤدي إلى نتيجة خاطئة Assertion Failure في الغالب،، وذلك لأن make() تُنشئ Collection دون حفظه في قاعدة البيانات، ومع استخدام RefreshDatabase تُفقد البيانات بعد عملية إعادة التوجيه التي يقم بها ال Route.
الحل: استبدل make() بـ create():
$categoryData = CategoryFactory::new()->create()->toArray();
- ال make() تُنشئ ال Collection فقط دون حفظه في قاعدة البيانات.
- ال create() تُنشئ Collection وتُخزّنه في قاعدة البيانات مباشرة.
#Laravel #Factories #PHP #Backend #TDD #programming
- حالة استخدام:
ترغب في اختبار إمكانية إنشاء Category جديدة:
it('can create a category', function () {
$categoryData = CategoryFactory::new()->make()->toArray();
$response = $this->post(route('category.store'), $categoryData);
$this->assertDatabaseHas('categories', [
'name' => $categoryData['name'],
'slug' => $categoryData['slug'],
]);
$response->assertStatus(302);
expect(Category::count())->toBe(1);
});
هذا الاختبار سيؤدي إلى نتيجة خاطئة Assertion Failure في الغالب،، وذلك لأن make() تُنشئ Collection دون حفظه في قاعدة البيانات، ومع استخدام RefreshDatabase تُفقد البيانات بعد عملية إعادة التوجيه التي يقم بها ال Route.
الحل: استبدل make() بـ create():
$categoryData = CategoryFactory::new()->create()->toArray();
- ال make() تُنشئ ال Collection فقط دون حفظه في قاعدة البيانات.
- ال create() تُنشئ Collection وتُخزّنه في قاعدة البيانات مباشرة.
#Laravel #Factories #PHP #Backend #TDD #programming
استخدام الذكاء الاصطناعي في عملك كمبرمج أو كمهندس برمجيات أصبح ضرورة. من لا يستخدمه يفقد الكثير،، لكن استخدمه بذكاء؛ لا حرج في الاستفادة منه، ولكن يجب أن يكون لديك فهم للتغييرات التي يقترحها، وفهم للسياق العام وسير العمل، لأنك أنت من يملك المعرفة الحقيقية بسياق المشروع والتغييرات المطلوبة فيه.
ومن خلال استخدامي له منذ قرابة العام اليك بعض النصائح من منظور شخصي نفعتني و لازلت سائرا على الكثير منها، لعلها تنفعك:
- حاول أن تراجع التغييرات المقترحة، وعدّل عليها حسب حاجتك.. قم بإجراء اختبارات وظيفية (Functional Testing) بعد كل تغيير ساعدك فيه الذكاء الاصطناعي.
- اجعل تغييراتك صغيرة حتى تستطيع السيطرة عليها ومراجعتها بسهولة.
- "مرة أخرى" استخدم الذكاء الاصطناعي، فلا مفر منه؛ حتى أصحاب الأعمال أصبحوا يشجعون المطورين على استخدامه، و هذا هو الطبيعي حسب ما اعتقد.
- أعلم بأننا في بعض الأحيان لا نراجع الكود المكتوب، بل نكتفي بالاختبار.. إذا كان ال input صحيحًا وال output صحيحًا، نقوم بدفع الكود.. كلنا نفعل ذلك،، لكن درّب نفسك على التقليل من هذه العادة، فهي غير صحية.
- خصص جلسات عمل بدون استخدام الذكاء الاصطناعي، واعتمد على البحث، والوثائق الرسمية للغات البرمجة و الفرييمووركس، ومواقع مثل Stack Overflow، والطرق التقليدية في إنجاز المهام (سواء في مشاريعك الجانبية أو في عملك)،، لكي لا تفقد مهارة التفكير المنطقي و حل المشكلات.
- تعلّم تقنيات جديدة، واقرأ كتبًا وشروحات بمساعدة الذكاء الاصطناعي.
- تعلّم الأساسيات جيدًا، أو قم بالعودة لظبطها.
ونسأل الله لنا ولكم التوفيق.
#ai #programming #contuniuelearning #softwaredevelopment
ومن خلال استخدامي له منذ قرابة العام اليك بعض النصائح من منظور شخصي نفعتني و لازلت سائرا على الكثير منها، لعلها تنفعك:
- حاول أن تراجع التغييرات المقترحة، وعدّل عليها حسب حاجتك.. قم بإجراء اختبارات وظيفية (Functional Testing) بعد كل تغيير ساعدك فيه الذكاء الاصطناعي.
- اجعل تغييراتك صغيرة حتى تستطيع السيطرة عليها ومراجعتها بسهولة.
- "مرة أخرى" استخدم الذكاء الاصطناعي، فلا مفر منه؛ حتى أصحاب الأعمال أصبحوا يشجعون المطورين على استخدامه، و هذا هو الطبيعي حسب ما اعتقد.
- أعلم بأننا في بعض الأحيان لا نراجع الكود المكتوب، بل نكتفي بالاختبار.. إذا كان ال input صحيحًا وال output صحيحًا، نقوم بدفع الكود.. كلنا نفعل ذلك،، لكن درّب نفسك على التقليل من هذه العادة، فهي غير صحية.
- خصص جلسات عمل بدون استخدام الذكاء الاصطناعي، واعتمد على البحث، والوثائق الرسمية للغات البرمجة و الفرييمووركس، ومواقع مثل Stack Overflow، والطرق التقليدية في إنجاز المهام (سواء في مشاريعك الجانبية أو في عملك)،، لكي لا تفقد مهارة التفكير المنطقي و حل المشكلات.
- تعلّم تقنيات جديدة، واقرأ كتبًا وشروحات بمساعدة الذكاء الاصطناعي.
- تعلّم الأساسيات جيدًا، أو قم بالعودة لظبطها.
ونسأل الله لنا ولكم التوفيق.
#ai #programming #contuniuelearning #softwaredevelopment
👍4❤1
حينما تبتعد عن عقلية المبرمج الذي يتقن حل المسائل البرمجية على LeetCode، وإتقان حل المشكلات وحفظ بعض المسائل حول ال Arrays وال Recursion وال Binary Search وما إلى ذلك.. ستبدأ بالشعور بالتحسن.
يتم توظيفك كمبرمج لحل مشكلات حياتية، لا لكتابة Functions تستعرض فيها قوة منطقك.. والمشكلات الحياتية التي تحلها البرمجة لا متناهية، ولا يوجد لها حل واحد قطعي. أنت تبدأ، وتبحث، وتفشل، ثم تحاول من جديد... وأي مؤسسة توظفك فقط لأنك ممتاز جدًا في ال Algorithms وال Data Structures هي مؤسسة تبني ثقتها فيك على أساس ضيق، بينما المبرمج الحقيقي هو من يستطيع التكيف مع تعدد المشكلات الحياتية التي ستواجهه.
وأي مبرمج حتى ولو كان قليل الخبرة في العمل في الشركات، يعرف أن كل لغات البرمجة والفريموركات الحالية تحل معظم المشكلات التي كان سيتطلب حلها كتابة آلاف الأسطر البرمجية يدويًا.. لذا لا تركز على هذه المسألة وحدها، لكي لا تحبط نفسيًا في حالة فشلك في حل مشكلة برمجية بأسلوب أكاديمي.
فالذكاء الاصطناعي حاليًا ربما يكتب كودًا أفضل مما نكتبه نحن، لكننا لسنا مجرد Coders فقط.. نحن مفكرون، مبرمجون، مستمعون للعملاء، قادرون على العمل كفريق، نفهم ونحاول البيزنس أكثر، نفهم ونحاول فهم هندسة البرمجيات عمومًا، نتعمق في كتابة كود نظيف ، Reusable, Clean، Modular، نستمر في التعلم.. وهكذا..
لكن لا تفهمني خطأ، ال DS وال Algorithms والتطبيق العملي لحل المشكلات باستخدام لغة برمجة تفضلها أو تتعلمها شيء أساسي، تخطيها سيجعلك تعود اليها لاحقا في مسارك المهني - اتحدث عن واقع تجربة - لكن الأهم هو الفهم لهذه المفاهيم لا الاعتقاد بأنها وحدها ما سيأخذك بعيدًا في هذا المجال.
هذه أشياء اكتشفتها في طريقي، وأحاول تطبيقها قدر الإمكان في عملي وتعلمي، ورأيت أنها ربما تكون نافعة للمشاركة، و قد اكون مخطئا.
اللهم إنا نسألك العلم والتعلم والعمل بهما.
#softwareEngineering #softwaredevelopment #programming #contuniuelearning #development
يتم توظيفك كمبرمج لحل مشكلات حياتية، لا لكتابة Functions تستعرض فيها قوة منطقك.. والمشكلات الحياتية التي تحلها البرمجة لا متناهية، ولا يوجد لها حل واحد قطعي. أنت تبدأ، وتبحث، وتفشل، ثم تحاول من جديد... وأي مؤسسة توظفك فقط لأنك ممتاز جدًا في ال Algorithms وال Data Structures هي مؤسسة تبني ثقتها فيك على أساس ضيق، بينما المبرمج الحقيقي هو من يستطيع التكيف مع تعدد المشكلات الحياتية التي ستواجهه.
وأي مبرمج حتى ولو كان قليل الخبرة في العمل في الشركات، يعرف أن كل لغات البرمجة والفريموركات الحالية تحل معظم المشكلات التي كان سيتطلب حلها كتابة آلاف الأسطر البرمجية يدويًا.. لذا لا تركز على هذه المسألة وحدها، لكي لا تحبط نفسيًا في حالة فشلك في حل مشكلة برمجية بأسلوب أكاديمي.
فالذكاء الاصطناعي حاليًا ربما يكتب كودًا أفضل مما نكتبه نحن، لكننا لسنا مجرد Coders فقط.. نحن مفكرون، مبرمجون، مستمعون للعملاء، قادرون على العمل كفريق، نفهم ونحاول البيزنس أكثر، نفهم ونحاول فهم هندسة البرمجيات عمومًا، نتعمق في كتابة كود نظيف ، Reusable, Clean، Modular، نستمر في التعلم.. وهكذا..
لكن لا تفهمني خطأ، ال DS وال Algorithms والتطبيق العملي لحل المشكلات باستخدام لغة برمجة تفضلها أو تتعلمها شيء أساسي، تخطيها سيجعلك تعود اليها لاحقا في مسارك المهني - اتحدث عن واقع تجربة - لكن الأهم هو الفهم لهذه المفاهيم لا الاعتقاد بأنها وحدها ما سيأخذك بعيدًا في هذا المجال.
هذه أشياء اكتشفتها في طريقي، وأحاول تطبيقها قدر الإمكان في عملي وتعلمي، ورأيت أنها ربما تكون نافعة للمشاركة، و قد اكون مخطئا.
اللهم إنا نسألك العلم والتعلم والعمل بهما.
#softwareEngineering #softwaredevelopment #programming #contuniuelearning #development
❤10👨💻2