أنا محمود - Full Stack Developer
- mahmoud_ahmed2004
- 2025-01-01T18:10:28+00:00
مرحبًا بكم!
أنا متخصص في تطوير الويب Full Stack Development، وأسعد بمشاركة خبرتي في هذا المجال والإجابة على أي تساؤلات قد تكون لديكم.
تقنياتي وأدواتي تشمل:
HTML - CSS - JavaScript - Next.js - React.js - Java (Spring) - Tailwind CSS - Oracle SQL
درست مجال تطوير البرمجيات أكاديميًا، بالإضافة إلى اكتسابي مهارات متنوعة من خلال دورات تدريبية متخصصة عبر الإنترنت.
إذا كان لديك أي استفسار أو كنت بحاجة إلى نصيحة حول مشروع معين، فلا تتردد في طرح سؤالك هنا. سواءً كنت مهتمًا بتطوير الواجهات الأمامية أو الخلفية، أو حتى بتحسين الأداء وتجربة المستخدم.
في كلتا الحالتين سواءً التعليم الأكاديمي أم الشخصي، فأنت تبذل مجهودًا مع نفسك خاصةً في مجال مثل علوم الحاسوب، لأنه لا يمكنك تعلم كل شيء.
لكن يمكنني القول أن التعليم الأكاديمي أفادني أكثر في اكتساب الأساسيات الهامة التي تجعل منك مهندس برمجيات حقيقي، بمعنى أنه لو توقفنا مثلًا عن تصميم أو تطوير الويب، فلن يكون من الصعوبة البالغة أن تتعلم تطوير تطبيقات الهواتف وما إلى ذلك.
بمعنى أنه عمق المعرفة النظرية، التي تجعلك ترى أن لغات البرمجة هي أدوات، وليست غايات في حد ذاتها. إذ يتعلم الطالب أن الفهم العميق للمفاهيم التي تحكم تصميم البرمجيات مثل الخوارزميات وهياكل البيانات هو ما يحدد جودة العمل في أي مجال من مجالات البرمجة.
مرحباً بك معنا أخي، مجالك ممتع ويحتاج لمهارات متعددة للغاية، وبالرغم من ذلك كنت ألاحظ مخاوف وتساؤلات عديدة تزامنت مع تطور أدوات الذكاء الاصطناعي، حيث ارتفعت أصوات العاملين بمجالكم خوفاً من أن يحل الذكاء الاصطناعي محلهم وتتناقص فرص عملهم، فكيف ترى تأثيره عليكم من حيث الوظائف والمهام المطلوبة منكم ؟
لا أرى أن الذكاء الاصطناعي سيستبدل المبرمجين، أو المبرمجين الماهرين على وجه الخصوص.
لأن مهمة مهندس البرمجيات بشكل عام (مهما كان تخصصه) بها جوانب كثيرة أكبر من مجرد كتابة الكود، هي عملية هندسية من الأساس تتطلب مهارات تحليلية وإبداعية تتجاوز التفاعل مع الأدوات البرمجية.
بدايةً من اختيار منهجية العمل، وتحديد ما يتناسب مع متطلبات العميل والبيئة التي يعمل فيها الفريق، ومتطلبات النظام المعقدة، وتحديد الأنماط الأنسب لتصميم البرمجيات التي ستلبي هذه المتطلبات، وغيرهم.
الذكاء الاصطناعي يساعد بالفعل في أتمتة بعض المهام الروتينية، مثل كتابة الكود البسيط أو تصحيح الأخطاء الشائعة.
أهلا محمود، قرأت أكثر من مشكلة لمبرمجين وآخرهم زميل هنا أن الشركات تطلب مهارات متنوعة بأكثرمن تخصص برمجي، فهل الأصوب هنا أن نتعلم كل شيء عن أي شيء بجانب تخصصنا البرمجي أم نركز فقط على ما بين أيدينا، يعني لو أعمل كمطور أمامي هل يجب أن أعلم تطوير التطبيقات مثلا أو العكس؟
أعتقد أن هذه المشكلة تواجه أكثر الشخص الذي لم يتعلم أساسيات علوم الحاسوب ومفاهيمه بشكل عام، وبدأ بالتخصص في مجال بعينه، لأن المعرفة الشاملة بمعظم الأساسيات المطلوبة، ستمكنه بسهولة من اكتساب مهارة جديدة وأن يملك معرفة بأكثر من تخصص برمجي.
بالعودة إلى مثالك، فمن وجهة نظري أنه يجب أن تعلم على الأقل دور مطور التطبيقات وماذا يفعل بالضبط لأنه جزء من دورة صناعة التطبيق، وكذلك هذه المعرفة تُساعد على فهم السياق العام والقدرة على التفاعل مع المهام المتنوعة عند الحاجة.
مرحباً محمود. أرجو لك التوفيق. أنا الآن بدأت أتعلم برمجة الويب وبدأت بتحميل بعض تطبيقات الموبايل حتى أقوم بالتعود على الأكواد في وقت فراغي في العمل فأكتب الأكواد وينفذها التطبيق فأرى المتيجة مباشرة وفكرته مثل فكرة موقع W3school. يعني بدأت ب HTML5 و CSS ولكن وأنا أمارس وصلت إلى مرحلة تعلم بناء جداول في لغة HTML فقرأت في التطبيق بأنه لن يركز على العناصر و التاجات خاصتها لأنها لن يعمل بها قريباً Deprecated. هذا الامر جعلني أخشى من تغييرات جذرية فيما أتعلمه في وقت قصير فهل هذا يحدث برأيك؟! ثم إني أتعلم من فيديوهات أجانب وعرب يعملون على مشاريع كاملة ببناء مواقع كاملة من HTML فقط أو HTML و CSS فأنا أقلدهم في ذلك ثم أقوم برماجعة الجانب النظري؟ هل طريقة التعلم هذه ملائمة واسرع؟! آخر سؤال: كم من الوقت أستغرق لأتقان لغات مثل HTML وCSS و Java Script و PHP علماً أني أخصص ساعة يومياً للمارسة العملية أو أقل قليلاً؟
معذرةًنسيت أن أسألك: أنا متشدد في استخدام محرر الأكواد فأستخدم النوت باد وليس محرراً مثل Visual Studio وذلك حتى تثبت الأكواد في ذاكرتي عندما أكتبها كاملة بيدي فهل هذا يفيد؟ أخيراً وقد أطلت عليك: بعض المبرمجين يقولون أن البرمجة لكل الناس. هل هذ حقيقي أما أنها لأناس معينين ذوي تفكير منطقي صارم؟
هذا الامر جعلني أخشى من تغييرات جذرية فيما أتعلمه في وقت قصير فهل هذا يحدث برأيك؟!
لا داعي للقلق إطلاقًا، فأنت لن تتعلم كل Tag في HTML أو خاصية في CSS ، وقضاء وقت طويل في محاولة تعلم كل عنصر لن يكون فعالًا، لأنك فعليًا عندما تعرف المفهوم وراء HTML و CSS وتطبق بشكل كافي، تكتسب خبرة تجعلك تعرف أين تجد الخاصية التي تنقصك للوصول إلى شكل التصميم.
ثم أقوم بمراجعة الجانب النظري؟ هل طريقة التعلم هذه ملائمة واسرع؟!
لا أنصحك بهذه الطريقة، التقليد قد يساعد في تعلم بعض المفاهيم الأساسية بشكل سطحي، ولكن الاعتماد على هذه الطريقة فقط قد يحد من قدرتك على فهم كيف تعمل الأكواد بشكل عميق.
أنت بحاجة لتعلم الأساسيات من الناحية النظرية أولًا، وفهم كيف تعمل HTML و CSS بشكل دقيق.
ولا أقصد بالتعلم من الناحية النظرية أن تغرق نفسك في قراءة الكتب، بل فهم مفاهيم اللغة على حدة.
ومن ثم يجب التطبيق والتدرج في صناعة المشاريع، فبدون التطبيق لن تتعلم شيئًا حقيقيًا.
كم من الوقت أستغرق لأتقان لغات مثل HTML وCSS و Java Script و PHP علماً أني أخصص ساعة يومياً للمارسة العملية أو أقل قليلاً؟
لا يُوجد مدة زمنية محددة، لأن هذا يختلف حسب خبرتك وخلفيتك السابقة، مدى تفرغك، وقدراتك في التعلم، والاستراتيجية التي تتعلم بها.
شخصيًا عندما تعلمت JavaScript ، أنهيت دورة لتعلم أساسياتها في 20 يوم، والسبب كان يرجع إلى أنني كان لدي خلفية برمجية وكنت أخصص لها وقتًا يوميًا أدرسها بجد وأكتب ملاحظاتي وأطبق وما إلى ذلك.
وأظن أن إتقانك بالفعل للمهارة يتطلب ممارستها لشهور وإنجاز مشاريع مختلفة بها، لهذا لا أحب أن يقول أحد أنه تعلم مهارة معينة دون أن يوجد تطبيق حقيقي من إنتاجه.
معذرةًنسيت أن أسألك: أنا متشدد في استخدام محرر الأكواد فأستخدم النوت باد وليس محرراً مثل Visual Studio وذلك حتى تثبت الأكواد في ذاكرتي عندما أكتبها كاملة بيدي فهل هذا يفيد؟
بالعكس، لا أنصحك باستخدام Notepad أو أن تكتب على يدك، نحن في 2025 يا رجل :)
استخدم محررًا متقدمًا، في البداية حاول أن تكتب معظم السطور بيدك حتى تثبت في ذاكرتك، وبعدها استخدم بعض الإضافات التي تسرع من وتيرة عملك في الكود.
بعض المبرمجين يقولون أن البرمجة لكل الناس. هل هذ حقيقي أما أنها لأناس معينين ذوي تفكير منطقي صارم؟
يمكن لأي شخص أن يتعلم البرمجة، لكن لا أعتقد أن أي شخص بإمكانه النجاح في البرمجة إذا لم يسعَ لاكتساب عقلية المبرمج الناجحة بتطوير مهارات حل المشكلات والبحث والتفكير الإبداعي وما إلى ذلك.
لا تكتبها على ورقة، لست بحاجة إلى ذلك، لكن فقط اكتبها بشكل طبيعي كما يفعل المطورون :)
يمكن أن يكون ChatGPT أداة مفيدة جدًا، لكن لا أنصحك بها في البداية أو أن تعتمد عليها فقط في التعليم، لأنه من الممكن أن يقدم بعض المعلومات المغلوطة، يمكنه أن يساعدك في حل المشكلات التي تتعلق بالكود أو التصميم، لكن ذلك يعتمد على ذكاء الPrompt الذي تقدمه.
بالطبع لن أكتبها بقلم و ورقة 😊 ولم أقصد إلى هذا المعنى. قصدتُ أنني لو استخدمت محرر أكواد مثل فيجوال سيتديو أو ما شابهه فإنه سيقوم بإكمال الأكواد لي فيحرمني - في بداية تعلمي على الأقل- من فرصة التعود على كتابة الكود على لوحة الكيبورد بنفسي وأنا أحب أن أمارس ذلك بنفسي أولاً حتى إذا دخلت في المجال استخدمت محرراً احترافياً.
- حذف بواسطة المستخدم
الـ Back-End يشير إلى الجزء الذي يتعامل مع "خلف الكواليس" في التطبيقات أو المواقع الإلكترونية.
عندما تتصفح أحد المواقع وترى الواجهة أمامك من أيقونات، ألوان، صور، وتنسيقات، فهذا هو دور مطور الواجهة الأمامية. في المقابل، يعمل مطور الـ Back-End على بناء وتطوير الأجزاء التي تدير وتخزن البيانات. على سبيل المثال، في تطبيق متجر إلكتروني، يتم تخزين جميع المعلومات مثل أسماء المستخدمين، كلمات المرور، تفاصيل المنتجات، وغيرها في قاعدة بيانات، ويكون دور مطور الـ Back-End هو إدارة هذه البيانات.
على سبيل المثال، عندما يقوم المستخدم بإجراء طلب، مثل الضغط على زر "إرسال" أو "تسجيل الدخول"، يتم إرسال هذا الطلب إلى الخادم (server). يقوم المطورون الخلفيون بكتابة الكود الذي يستقبل هذه الطلبات من المستخدمين، يعالجها، ثم يرسل الرد المناسب. في حالة تسجيل الدخول، يتحقق النظام من صحة اسم المستخدم وكلمة المرور، ثم يمنح الوصول للمستخدم إذا كانت البيانات صحيحة.
له أدوار أخرى، لكن هذه بعض الأمثلة من دوره.
مرحباً بك أخي محمود نتشرف بوجودك معنا في مجتمع حسوب وتنمياتي لك بالتوفيق والنجاح، ماذا برأيك الأهم والمطلوب في سوق العمل أكثر لمبرمج Front End بعد أن يتعلم HTML, CSS. JAVA؟
وهل سيكون هناك فارق كبير لو تعلم أساسيات البرمجة بلغة مثل C++ في عمله ك Front End؟
المطلوب في سوق العمل لمطور الواجهة الأمامية (Front End Developer) هو تعلم HTML و CSS وVanilla JavaScript وبعدها DOM Manipulation و Responsive Design و CSS Preprocessors مثل Sass وإطار عمل لCSS مثل Bootstrap أو Tailwind لتسريع عملية التصميم.
إضافة لذلك، يجب أن يتعلم إطار عمل لJavaScript مثل React.js أو Angular ، بالإضافة إلى تعلم أفضل الممارسات وكيفية التعاون مع فريق العمل من خلال Git وغيره.
وهل سيكون هناك فارق كبير لو تعلم أساسيات البرمجة بلغة مثل C++ في عمله ك Front End؟
بشكل مباشر، لا.
لكن تعلم أساسيات البرمجة بلغة مثل ++C سيسهل عليك تعلم JavaScript كثيرًا، لأنك تمتلك معرفة مسبقًا بالمفاهيم البرمجية، ولم تبدأ من الصفر.
شكراً أخي، هل ترشح أحد معين نتعلم هذا المسار، لنقل على اليوتيوب كمثال؟
أرشح متابعة Elzero Web School، لكنه لم يصنع دورة للReact مثلًا أو Tailwind، لكن ما زال يملك العديد من الدورات المميزة التي يمكن أن تساعد على تعلم المجال، خاصةً الأساسيات مثل HTML و CSS و JavaScript. أيضًا يطبق الكثير عمليًا، ويوجد دورات تركز على بناء مواقع ويب فعلية. بالإضافة إلى ذلك، يمتاز بشرح مفصل وسهل يتناسب مع جميع المستويات، مما يجعله مناسبًا للمبتدئين.
شكرأ أخي العزيز
بارك الله فيك، ونفع بك.
مرحباً محمود ، يسعدني وجودك في مجتمع حسوب، المهم أنا لدي سؤال تقني مهم جداً بالنسبة لي فيما يتعلق بتصدر محركات البحث ، أرغب في معرفة كيفية بناء خطة لتصدر محركات البحث محكمة ويمكن قياسها ومصممة تلك الخطة خصيصاً للمواقع المصممة على أستضافات خارج ورد بريس أو هوستنجر أو أي أستضافة شهيرة ولا تعتمد على بلوجر ؟
مرحباً م/ محمود بالتوفيق دائماً , إذا كان لدى مشروع على سبيل المثال انشاء موقع الكترونى للتجارة الالكترونية وربط API مع مورديين , ما هى أفضل طريقة لتوضيح الفكرة للمطور حيث انى غير تقنى , هل الاستعانة بمواقع مشابهة كافى لتوضيح الفكرة أم أن هناك مراحل محددة يجب توضيحها له ؟
واذا سيتم تقسيم المشروع إلى مراحل كيف تقترح أن يتم ذلك بشكل عملى يسمح لشخص غير تقنى بمعرفة أن المشروع يسير فى الاتجاه الصحيح ؟
معذرة على كثرة الاسئلة ..
بالتوفيق دائما أستاذ محمود وبكل صراحة انا ليس لي خبرة في البرمجة ولكن هل البرمجة لها علاقة باليوتيوب
مرحبًا محمود
! من الرائع أن تشاركنا خبرتك في هذا المجال الواسع. تقنياتك متنوعة وتغطي جوانب متعددة من تطوير الويب. في رأيك، ما هو التوجه الأهم حاليًا في تطوير البرمجيات الذي يجب على المطورين أن يتعلموه ليظلوا في الصدارة؟
مجتمع لطرح التجارب غير المعتادة والمثيرة للاهتمام على سبيل المثال؛ تجارب صحية، مهنية، حياتية، اجتماعية، وفتح باب الأسئلة حولها.