تعلمت أساسيات PHP ، ماذا بعد أخي المبرمج ؟ (أرجوك النصح والمساعدة)

السلام عليكم .. إخوتي الكرام ..

بدأت بتعلم البرمجة باستخدام PHP منذ أكثر من ثلاث شهور، بمعدل ساعتين باليوم كحد أقصى (بالنسبة لأيام الأسبوع الخمس) أما في عطلة نهاية الأسبوع (جمعة وسبت) يزيد المعدل إلى حوالي 5 ساعات.

والسبب طبعاً في تعلمها هو من أجل مشروع خاص تدور فكرته في رأسي منذ مدة.

وصلت الآن إلى مرحلة حيث أقوم باستخدام البرمجة الكائنية والتعامل مع الدوال بأريحية والتواصل مع قاعدة البيانات وإنشاء استعلامات مخصصة وغيرها.

ولكني حقيقة كلما فكرت في متطلبات مشروعي أو شاهدت الكم الهائل من المعلومات حول PHP أو MySQL أصاب بالخوف والإحباط، فلا أعلم كيف ستوصلني معرفتي المتواضعة الحالية إلى ذلك المشروع، فأنا ما زلت أحتاج في كثير من الأحيان إلى الوصول لدليل PHP أو MySQL على الانترنت لمعرفة كيفية عمل دالة معينة أو استخدام كلاس معين.

بدأت أصاب بالإحباط لدرجة أني لم استطع اليوم تعلم الشيء الكثير كما اعتدت في السابق.

للعلم:

أنا مصمم جرافيك ومطور ويب أجيد العمل على HTML/5 و CSS/3 و Bootstrap.

و بعض من jQuery و Javascript ، وحتى هذه الأخيرة احتاج إلى مراجعتها لفترة قبل الاستفادة منها بصورة حقيقة وذلك طبعاً بسبب طبيعة عملي التي تحتم علي أن لا أتعامل إلا مع الثلاثة الأولى (HTML, CSS, BOOTSTRAP) .

  • هل من نصائح من أهل الخبرة في البرمجة وخصوصاً PHP ؟

ماذا أفعل لأسرع من وتيرة تعلمي بدون نسياني لبعض الدوال (كما يحدث معي حالياً).

  • أليست المدة التي أخذتها في التعامل مع PHP من المفترض أن تكون كافية لتعلمها ؟

(ربما ليس كلها ولكن على الأقل لصنع موقع بسيط يمكن الاستفادة منه) ؟

  • وماهي الطرق التي سلكتها، والمدة التي أخذتها لتعلم هذه اللغة؟

  • أي معلومات إضافية أو حيل يمكن أن تفيدني .

وجزاكم الله كل خير ..

يرجى الدخول لحسابك أو تسجيل حساب لتستطيع إضافة تعليق
حساب جديد دخول

التعليقات

السلام عليكم

المرحلة التي انتَ فيه اخي الان يمر بها كل مبرمج كل ماعليك هو الثقة في النفس و وضع هدف و طموح لكي يساعدك على تحدي الصعاب و المواصله لانه من دون طموح سوف تمل البرمجة .

  • بالنسبة لنسيان الدوال و نسيان الإعدادات التي تحتاجها فهذا شئ عادي جدا لانه لا يوجد من يحفظ جميع الدوال واكثر المبرمجين خبرة و احترافا قد يحتاج في بعض الاحيان الى ان يقوم بمراجعة تعريف دالة ما او التاكد من جميع إعداداتها، بالوقت و الخبرة سوف تحفظ مجموعة هامة من الدوال التي تستعملها بكثرة . كما يمكنك ( من المحبذ ) آن تستعمل ال IDE لكي تساعدك في كتابة الدوال و توفر لك الإعدادات التي تحتاجها و شرح لتلك الدالة .

  • بالنسبة لكيف تواصل نصيحة عن تجربة شخصية = قُم بعمل مشاريع بسيطة ثم طور فيها بالتدريج مثلا :

في البداية إنشئ مشروع بسيط باللغات الاساسية مثلا html + css + js + php + sql لاحقا وعند تعلم اشياء جديدة قم بتطوير ذلك المشروع لإلحاق ماتعلمته كـ تضمين التصميم المتجاوب، إستعمال تقنية ال AJAX ...، وبعد مدة تتعلم مثلا انماط التصميم ( design pattern ) كــ MVC لتقوم بادراجها هي ايضا بمشروعك الذي كان بسيط او مشروع اخر جديد .

المهم هو المشاريع اخي فمنها ستتعلم الكثير ستتعلم اشياء لن تجدها في اي دورة تعليمية، ستتعلم تقنيات ووسائل جديدة ...

  • نصيحة اخرى اخي ان كنت تريد احتراف ماتقوم به ابتعد على أطر العمل بقدر المستطاع، فهي أنشئت لمساعدتك على الإنتاج لا للتعلم، يعني مادمت في مرحلة تقوم بعمل مشاريع للتعلم منها لا تستعمل أطر العمل، وحتى بعد تجاوز مرحلة التعلم الأساسية يمكنك التفكير في الاستقلال عن اطر العمل وانشاء تلك الخاصة بك لا ظرر في التعرف عليها او استعمالها بحكمة. يعني تصور اخي ان إعتمد على اطر العمل من فترة التعلم الى فترة الانتاج وطلب منك يوما عميل ما او الشركة التي تعمل فيها ان تتطور لهم موقع بطابع خاص و بنيئة خاصة به او تطوير إطار عمل خاص صدقني لن تقدر على ذلك لو عودت نفسك على اطر العمل و المكتبات الجاهزة

  • طبعا كلامي هذا عن أطر العمل هو رأئي الخاص :)

أخي مازن، شكراً لك لقد أعطيتني رد شافي حقاً ..

بالنسبة لمسألة أطر العمل فأنا من أشد المعاضين لها، حتى بالنسبة لـ Bootstrap لم أقبل بتعلمه إلا بعد أن أتقنت لغة CSS التي هي أساسه.

فأنا لا أحب الاعتماد على مكتبات جاهزة ما لم أكن ملماً بالأساس الذي بنيت عليه، ولذا قررت تعلم PHP وليس اطار عمل كـ Laravel على سهولته وسرعة إنجازه للمهمة مقارنة بلغة البرمجة ..

آحسنت،

شئ اخر نسيت ذكره وهو ان تكون صادقا مع نفسك و مع محيطك لا تغتر بنفسك لا تقل انك تستطيع فعل مالا تستطيع فعله لانها اشياء قاتله لمسيرتك مثلها مثل دخول عالم الربح من الإنترنت وانت مزلت تتعلم لانه الرغبة في الربح من البرمجة في هذه المرحلة سوف يحرقك لما يوجد من منافسة وإحترافية، يعني لا تدخل الى عالم الربح إلا عندما تتأكد من انك قادر على ذلك وملم بكل ماستحتاجه لكي لا تجد نفسك ممن يعتمدون على النسخ و اللصق في البرمجة وماكثرهم :/ .

بالتوفيق لك اخي :)

جزاك الله خير ..

كلمات تكتب بماء الذهب ..

تقبل احترامي :)

من يعتمدون على النسخ و اللصق في البرمجة وماكثرهم

ارجو منك اخى توضيح لهذه النقطة حتى لا اكون منهم

قصدت بكلامي الاشخاص الذين ينسخون اكواد من سكريبتات اخرى لبناء سكريبت اخر ( النقل يعني ) .

اخي @Mazen Designs ممكن تشرح اكثر عن MVC

مثلا لدينا موقع اختصار روابط مكون من صفحات تالية :

index.php

redirect.php

about.php

contact.php

ال MVC كسائرة أنمط التصميم اتى ليحل مشكلة ما وهي كيفية فصل التصميم عن المعالجة

وهو إختصار لـ Model View Controller

Model : يعالج كل مايتعلق بالبيانات

View : مظهر الصفحة التصميم ( يمكن ان تستعمل محرك قوالب فيه - template engine - )

ِController : يربط بين ال Model & View

وستحتاج الى Rewrite Engine بإستخدام الhtaccess لكي يعيد صياغة الروابط لكي تصبح مثل

url/home & url/redirect ... او اي نمط انت تحدده لان ال Rewrite Engine سيقوم بعمل اهم شئ، لانه سيجعل السرفير يقوم بقرائة

ال url/home & url/redirect على آساس انها

url/index.php?url=home & url/index.php?url=redirect وسيكون في صفحة ال index.php الincludes الأساسيين للموقع بالاضافة الي إنشاء كائن ال application الذي سيحلل الرابط المرسل في url=... لكي ينادي ال controller المناسب

إن شاء الله تكون فهمت قليلا لانه الامر قد يحتاج صور و امثله عن اكواد انصحك بالبحث عن الامر اكتر في غوغل :)

اعتقد ستحتاج المزيد من الخبرة لبناء مشروعك فـphp لغة طويلة وتحتاج لممارسة كثيرة حتى تنفذ مشاريع كاملة

بما أنك كنت على معرفة بالجافاسكريبت كان من الأفضل تعلم node.js فهي اسرع واسهل سواء في التعلم أو في عمل المشاريع أو على السيرفر

المهم حالياً عليك بعمل تطبيقات لمشاريع بسيطة باللغة والإكثار من التطبيق لما تعلمته

حوال البحث عن ما ينقصك من اجل مشروعك فمثلاً لو كان مشروعك به رفع ملفات حاول البحث عن دروس للتعامل مع الملفات ، لو كان فيه مثلاً تصنيفات كثيرة حاول البحث عن دروس لعمل تصنيفات وهكذا.... ، يجب عليك ايضا تعلم التعامل مع قواعد البيانات فهي اساسية لكن لا تشعر بالإحباط طبيعي أن يأخذ هذا منك بعض الوقت بما أنك لم تصنع اي سكربتات من قبل سيأخذ منك ذلك بعض الوقت في الإستيعاب الإعتياد على طبيعة عمل الـphp ، ايضاً كما أقول دائماً عند شعورك بالإحباط وعدم قدرتك على الإكمال فاعلم بأن هذه هي اللحظة الحاسمة فإما أن تترك اللغة وتترك كل ما تعلمته ، وإما أن تحاول و تنقل نفسك للمستوى التالي وهذا الشيء يحصل مع أي مبرمج وربما يتكرر معه اكثر من مرة وفي نفس اللغة التي يتعلمها

في النهاية بالتوفيق لك

عزيزي محمد، أشكرك على ردك وكلماتك التحفيزية..

node.js هو إطار عمل أثار الكثير من الضجيج خلال هذه الفترة، ولكن بالنسبة لي أنا أحب الإلمام بأساسيات الأشياء قبل الانتقال إلى أطر العمل.

كما أني أود تعمل البرمجة ليس فقط لإنجاز مشاريعي، بل لتعلمها بحد ذاتها.

node.js ليس لها علاقة بالـphp أخي إذا كنت تعرف جافاسكريبت تستطيع مباشرة تعلمها وفي وقت قصير

لو مضيت الثلاث اشهر الماضية في النود لكنت الآن قادر على بناء مشاريع ولو بسيطة

لا أعلم ما هو الإلمام بالأساسيات التي تتكلم عنها ؟ فكما ذكرت تعلمك الـphp ليس له أي علاقة بـnode.js

في النهاية أنا لا أريد اجبارك على استخدام شيء معين فقط وضحت رأي وطبعاً لديك الحرية

تظل الـphp لغة رائعة ولكن بدأت الناس بتركها لأسباب كثيرة وأنا واحد من هؤلاء الناس 

وفي الحقيقة شخصياً لا انصح من بدأ حديثاً في تعلم البرمجة بتعلمها فهناك خيارات افضل حالياُ مثل الروبي 

إلا إذا كان لديه هدف معين لا يمكن عمله إلا بالـphp كمثال مطوري نظم إدارة المحتوى مثل الووردبريس

في النهاية تمنياتي لك بالتوفيق

أعرف ليس لها علاقة بـ PHP .. فهي إطار عمل خاص بالجافا سكربيت ..

أنا أفضل تعلم اللغات الأم على أطر العمل ..

يمكن الاعتماد على أطر العمل في بيئة إنتاجية من أجل الانتهاء بسرعة من العمل وتسليمه للعميل، ولكن من أجل شيء أتعلمه من أجل المستقبل، فأنا أفضل لغة PHP .. (هذا رأي شخصي)

كما أني أرى أني قطعت مشوار طويل في PHP والطريق ورائي يبدوا أيضاً طويل الآن ..

شكرا لك يا عزيزي :) ..

رائع جداً

نتمنى لك التوفيق في المستقبل

أولا أنصحك بقرأه : أستعلامات ودوال mysql

أنا متأكد أنك تعرف القليل فقط مثل

select , insert , into , where ,

ثانيا تعلم التعابير القياسيه :

قمم ببناء تطبيقات وأكواد بطريقه مختلفه وجرب أي شيء

مرحباً أخي، أنا حتى الآن لا أعرف مدى إلمامي باللغة أو قواعد البيانات، وهذا الأمر ربما يكون سبب ارتباكي وقلقي مما لا أعرفه،

قمت بإرفاق الصورة أدناه لكود قمت بتصميمه بنفسي. طبعاً أنا أتابع دورة ولكني أقوم بتصميم الكود أولاً ثم أقوم بمقارنته بكود المدرب في الدورة وفي غالب الأحيان (إن لم يكن كلها) كانت حلولي أفضل بكثير من حلوله. وحتى في بعض الأحيان يقوم المدرب في دروس لاحقة بتغيير الكود إلى نفس الشيء الذي قمت أنا بكتابته بنفسي :)

وهذا مثال على الكود الذي أقوم بكتابته:

public static function fetch_objects($photo_id) {
    global $db;
    $sql  = "SELECT comments.*, CONCAT(users.first_name, ' ', users.last_name) AS author FROM comments ";
    $sql .= "join users on comments.user_id = users.id WHERE photo_id =" . $db->escape_string($photo_id);
    $sql .= " ORDER BY id DESC";
    $query = $db->query($sql);
    while ($row = $query->fetch_array()){
        $objects[] = self::instant($row);
    }
    return !empty($objects) ? $objects : false;
}

بالنسبة للتعابير القياسية فأعرف الدالة الرئيسية لها: preg_match

أما دوال MySQL فلا أعرف عنها الكثير حقيقة.

شكراً على ردك يا أخي :)

الأفضل الآن أن تبدأ بإنجاز الموقع الذي تخطط لعمله، لأنه حسب ما قلته لديك الأساسيات فأفضل شيء تطبيق ما تعلمته على مشروعك لتحصل لك فائدتين(تصيب عصفورين بحجر واحد :) الأولى معرفة هل فعلا تمكنت من اللغة و الثانية إنجاز المشروع.

أخونا حتى الآن لا يعلم شيء للتعامل مع قواعد البيانات ففي هذه الحال لن يستطيع عمل أي مشروع

بعد 200 ساعة من التعلم أظن أنه حتما قد مر بمرحلة التعامل مع قواعد البيانات.

هو بالفعل ذكر بأنه لا يجد التعامل معها في الردود

مرحباً أخي، أنا لا أجيد التعامل مع الدوال المتقدمة، ولكن كتعامل مع الدوال الأساسية CRUD فأنا أقوم بعملها بصورة جيدة، ولدي لقطة شاشة بالأعلى لـكود أقوم بالعمل عليه حالياً :)

قرأت أيضاً في الكثير من المواقع الأجنبية مثل هذه الأمور، المشكلة الأساسية مع PHP أنها ليست كمثل بقية لغات البرمجة أو أطر العمل الأخرى، فهي لغة ضخمة وتحتاج الإبحار فيها برفق. وهذا ما يسبب لي التشتت والإنزعاج من طول المشوار.

أنت لست مطالب بتعلم كل ما يتعلق باللغة لأنك قد تتعلم أشياء لن تحتاجها. كما أن لديك الأساسيات مع ما لديك من خبرة ثم كل ما تتعرض لمشكلة في برمجة مشروعك ستبحث لها عن حل و بالتالي ستتعلم أكثر.

أنا عملت فترة كمكون نقدم دورات تكوينية 20-40 ساعة لكل مرحلة لاحظت أن من يأخذ الأساسيات و يبدأ في العمل على تطوير المواقع يتحسن أداءه ولا يحتاج إلى إكمال المراحل المتقدمة.

أفضل طريقة للتعلم هي أن تمارس ما تعلمته.

just do it

جزاك الله خير ..

كلام محفز وطيب ..

أنا فعلاً أحاول أن أقوم بعمل مشروع معين يساعدني على صقل مهاراتي، ثم أنتقل إلى مشروعي الخاص قريباً بإذن الله ..

اقرأ مقالي بعنوان "كيف تصبح مطور ويب, من أين تبدأ وماذا تتعلم؟" على الرابط التالي:

كل ماتعلمته قم بوضعه في الاختبار والتجربة

موقع كامل

شاهد كيفية عمل موقع لدردشة

او

موقع اخبار

او

عمل موقع لإدارة المستخدمين

لتعزز قدرتك و توظف ماتعلمته

رابط

اتمني اني قد أفدتك

شكراً أخي ..

المصادر التي أشرت إليها تبدوا مفيدة حقاً، ولكني لا أفهم اللغة الفرنسية، فلغتي الثانية هي الإنجليزية ..

يبدوا لي أنك من إحدى بلاد المغرب العربي حيث تعتبر اللغة الفرنسية هي اللغة الثانية ..

على كل حال .. جزاك الله خير

انا مثلك مع اني من المغرب

لكن افهم الكود اما كلام لا يهم لانه ببساطة اذا لم تفهم دالة تبحث عنها هنا