السلام عليكم ،،
أنا مبرمجة مبتدئة في javascript كنت قد تعلمت وشاهدت دروسا كثيرة وكنت أطبق ما اتعمله تماما مع فهم كل كود بالطبع، وكان كل شيء على ما يرام وكأي متعلم كنت أواجه في كل مرة اتعلم فيه كود جديد بعض المشاكل لكن تكون بسيطة وأستطيع حلها، الآن بعد أن انتهيت من تعلم اللغة وأصبحت لدي معلومات لا بأس فيها لكي أجرب ما تعلمته لكن هذه المرة من غير أن أستعين بالدروس التي كنت أتابعها وأن أعتمد على فهمي ومعلوماتي و تخيلت أنه علي أن أقوم بعمل موقع صغير و كأنني في مهمة حقيقة ويتطلب علي تسليم عملي لكي أكون أكثر جدية وإبداع ، لكنني بدأت أشعر بالضياع قليلا مثلا كيف سأكتب هذا الكود وكيف سأربط هذين الكودين مع بعضهم، بأي فكرة سأبدأ أولا،هل علي أن أبدأ بتصميم الواجهة ووضع كل شي بمكانه وحجمة ولونه المطلوب أو علي كتابة الأكواد وعلي البدأ بالبرمجة أولا ، ثم بدأت أواجه مشاكل لم تكن مذكورة في الدورات التي تابعتها، ما أود معرفته هل يحدث هذا لأنني مبتدئة ومازلت لا أملك خبرة ولأنني لم أعمل على مشروع حقيقي أم أنني لم أحصل على العلم الكافي وعلي التعلم من البداية مرة أخرى، أحتاج بعض النصائح للذين كانوا مبتدئين و أصبحوا محترفين هل كنتم بهذا الحال في بداية مسيرتكم ؟
وشكرا
التعليقات
السلام عليكم اصيل,
ماتمرين به هو طبيعى ومنطقى لانك مازلتى فى بداية مسيرتك فى مجال البرمجة وليس لديك خبرة حتى الان ,
يجب أن تتأكدى ان اى مبرمج بدأ مسيرتة بنفس التساؤلات والحيرة .
من وجهة نظرى فى البرمجة انك لست ملزمة بحفظ جميع المصطلحات او كل مايخص اللغة فهو امر غير منطقى فقط يكون تركيزك على اساسيات اللغة وتدريب نفسك على اكثر من مثال على الاساسيات.
مع ممارسة البرمجه سوف تجدى انك لست بحاجة الى الحفظ على الاطلاق وايضا ضعى فى اعتبارك انك دائما سوف تحتاجى الى الاطلاع على تجارب الآخرين فى مواجهة اى مشكلة برمجية وهو مانلجئ له دائما مهما كان المستوى او الخبرة التى نمتلكها .
سوف اخبرك بمراحل العمل التى اتخذها عندما يُطلب منى فى العمل انشاء مشروع بداية من التصميم,
اولا : اقوم بفهم المطلوب منى جيدا حتى استطيع تقديم افضل ما لدى والعمل فى الطريق الصحيح
ثانيا : اقوم بالبحث عن مشاريع مشابهة لما هو مطلوب منى تنفيذة وادون الافكار التى اجدها مناسبه للمهمة الملزم بها
ثالثا : ارتب جميع الافكار والملاحظات بشكل جيد
رابعا : انشئ نموذج للتصميم بالورقة والقلم فقط حتى استطيع تخيل مكان كل قسم وهذه العملية تسمى wireframe يمكنك البحث اكثر وتعلم هذه الطريقة
خامسا : احول النموذج الاولى من الورقة والقلم الى نسخة الكترونية كصورة لايضاح شكل الموقع النهائى قبل البدء فى برمجته ويوجد العديد من البرامج التى استطيع العمل عليها لتصميم واجهة المستخدم مثل adobe XD
سادسا : تحديد التكنولوجية المستخدمة فى برمجة الموقع هل سيكون فقط HTML - CSS - Javascript ام ساحتاج الى مكتبات تساعدنى فى انجاز المطلوب بشكل افضل ام ساحتاج الى العمل على منصة مثل wordpress او ghost مثلا
سابعا : الخطوة الاخيرة وهى البداية فى برمجة التصميم وتحويلة الى موقع حى
ماذكرتة هنا هى طريقة عملى يمكنك ان تجربى نفس الخطوات حاليا ومع تقدمك واكتسابك للخبرة بالتأكيد سوف تتبعى اسلوب عمل يتناسب معكى
ارجو ان اكون قد ساعدتك كما يجب
بالتوفيق فى القادم باذن الله
بارك الله فيك ، سأحاول الالتزام بنصائحك، وأيضا بالفعل رغم انني لم استخدم طريقة wireframe لكنني استخدمت بعض التطبيقات الخاصة بالرسم لرسم واجهة الصفحة التي سأتدرب على تصميمها كان التصميم بسيطا ومضحكا ولكن يبدو أنني لو اخطط بشكل كافٍ فقد وصلت لنقطة معينة في تصميم الواجهة باستخدام CSS ثم شعرت أن المعلومات انتهت وانني مشتتة، لكن سأجرب نصائحك بأن احاول أن أرى نماذج وتجارب الآخرين
الله يعزك , لا تقلقى ان كان شكل التصميم مضحك او غير منطقى فقد مررت بهذا ايضا فى البداية ومازلت احتفظ بهذه التصاميم فقط حتى اتذكر دائما من اين البداية واين انا الان بمعنى انى اقارن عملى الحالى بعملى السابق وهو مقياسى دائما .
عند بداية التصميم باستخدام wireframe يجب ان تحددى جميع الاقسام الخاصة بالموقع بدون محتوى كلامى فقط تحددى مثلا لدى 4 اقسام
الاول : وهو بداية الصفحة ونسمية hero
الثانى : من نحن
ثالثا : منتجاتنا
رابعا : تواصل معنا بالضافة للfooter
كل هذا فقط بدون كتابة محتوى نصى لكن عند الانتقال للمرحلة التالية وهى التصميم البصرى باستخدام XD مثلا يمكنك استخدام موقع نصوص مخصصه لذلك مجرد نصوص لعرض شكل المحتوى, ابحثى عن lorem ipsum يوجد به نصوص للغات عديدة
بالتوفيق باذن الله
بالطبع هذا يحدث لأنك مبتدئة في المجال ولم تتعرضي لكيفية استخدام اساليب البرمجة في مشاريع فعلية ويحدث هذا طبيعي في بداية مسيرتك في مجال البرمجة ستواجهي تلك المشاكل والغموض حول الأدوات والطرق المفترض إتباعها لإنهاء تطبيق متكامل، لهذا بعد تعلم الأساسيات الخاصة بأي لغة يجب إلقاء نظرة على مسار تعليمي تطبيقي للغة لعمل مشروع متكامل لتستطيعي ربط كل ما تعلمتي وتطبيقه والربط بينهم وأين يجب استخدامه.
لكن بداية الأساسيات في برمجة الويب هي لغة HTML و CSS يليها لغة البرمجة الخادم كـ php أو غيرها يليها قواعد البيانات يليها أُطر العمل كـ bootstrab و Laravel وبعدها يمكن الإنتقال لتعلم JavaScript وأطر العمل المبنية عليها:
إليك هذا الرد ستجدي فيه خط سير واضح بدون مقتراحات كثيرة تشتت المتعلم خاص بتطوير تطبيقات الويب:
نعم بالطبع،سلسلة الدروس كانت قد بدأت بHTML ثم بCSS ثم ب JS ثم jQuery ثم bootstrab ثم MySQL ثم PHP،وكنت كلما انهيت تعلم احداهن انتقل للأخرى فورا إلى أن انتهيت من JS وتوقفت عندها لأتدرب قليلا على ما تعلمته لأنني خفت أن اتشتت لو أكملت ، وبعد القليل مم التدريب كنت سأكمل السلسلة بالطبع، لا اعلم ان كان هذا صحيحا أم علي أن اكمل السلسلة كاملة قبل التدرب على أي شيء، وشكرا لك، ان شاء الله سأدخل اللينك للقراءة والاستفادة،بارك الله فيك
لم تذكري كم لديك خبرة 3 اشهر او سنة...
المهم في البداية كلنا واجهنا عراقيل كتيرة لكن مع الوقت تصبح بعض الامور سهلة، مع الممارسة كل يوم ، سيكون لديك خبرة جيدة وقدرة على حل المشاكل.
هناك شيء مهم آخر ، هو قراءة رمز أشخاص آخرين هكذا سوف تحصلين على أفكار جديدة ستساعدك في المستقبل.
أيضًا ، في البداية ، حاول أن تتعلم أيضًا تقنيات أخرى مثل yarn، npm، cors ، http، webpack ، rust...
لكي تصبح لك خلفية عن ما يجري.
كذلك انا متلا عندما اجد نفسي يجب علية برمجة شيء من صفر وليس لدية خبرة كافية في اللغة التي يجب ان استخدم، اقوم بعمل بحت حول لغة عن Best Practice, كذلك افضل Architecture.
متلا لدية مشروع تطبيق هاتف بواسط Flutter سأذهب الى صديقي جوجل وأكتب.
Best Practice Flutter
Best Architecture Flutter
كذلك سأحاول قراءة بعض المشاريع جاهزة لكي أخد فكرة جيدة عن كيف يجب ان انبي تطبيق...
أنا دخلت عالم البرمجة في اواخر السنة للماضية وكنت اتعلم اساسيات جافا بشكل عام ثم حاولت ان اتجه لتصميم التطبيقات وبرمجتها فوجدت صعوبة بالغة وانه ليس ما أريده ثم قررت ان أن اتعلم تصميم وبرمجة مواقع الويب وكان الامر سهلا علي بالاضافة الى بعض المشاكل والاخطاء المعتادة لكل متعلم، لذلك لا أعرف كيف تحسب الخبرة وانا مازلت متعلمة ولم انتهي حتى من السلسلة التعليمية، بدأت من HTML b وتوقفت عند JS و كنت ارغب بتجربة ما تعلمته في هذه الفترة ثم لإكمال باقي السلسلة، اما بالنسبة للنصائح التي ذكرتها سأقوم ان شاء الله بتجربتها والقراءة عنها وبما ان معظم نصائحكم متشابهة فغالبا هي ضروري ونافعة 👍🏻، شكرا لك اخي الكريم
هذا طبيعي، يجب ان تقسمين العمل، لا يمكنك التخطيط والتصميم والبرمجة في آن واحد.
- انصح بوجود اوراق وقلم بجانبك وتبدأي بالتخطيط، ما هو نوع الموقع؟ ما هي اقسام الصفحة الرئيسية؟ وهكذا وقومي بعملية تدعى Wireframing وهو تخطيط الصفحة على الورق، قومي بالشخبطة حرفيا، في هذه المرحلة ستاتيك العديد من الأفكار وتكونين شكل الصفحة.
شاهدي هذا الفيديو لتفاصيل اكثر:
بعدها صممي الصفحه على برنامج مثل Adobe XD او Figma (كلاهما مجاني) اختاري الالوان والتفاصيل، يمكنك متابعه القناة هذه لمعرفة اكثر حول هذه المرحلة.
تابعي باقي فيديوهات القناة سابقه الذكر أعلاه سوف تفيدك جدا.
الآن نبدء بكتابة Code، انصحك بأن تقسمي الفكرة إلى اجزاء صغيرة جدا جدا (ايضا على ورقة) بتسلسل منطقي، بالتوفيق.
رأيت إجابة اعجبتني على موقع كورا قبل فترة من قبل مبرمج، خلاصتها أن المبرمج عندما يبدء بمشروع جديد لا يعرف كيف سيقوم بهذا المشروع ولكن سينجزه بطريقة ما، لأنه فعل ذلك مئة مره سابقا.
رغم انني لم ابدأ بالتخطيط والرسم على ورقة وقلم ولكنني فعلا شعرت انه علي ان اخطط لذلك استخدمت بعض التطبيقات البسيطة للرسم وقمت بعمل نموذج بسيط لما سأصممه،ولكن كما قلت في الأعلى لأحد الاخوة ربما لم يجدي ذلك نفعا لانه ربما لان علي ان ابحث عن تجارب ونماذج لأشخاص قاموا بتنفيذ ما سأصممه،اما بالنسبة للفيديوهات والقنوات الي ذكرتها في كلامك سأشاهدها كلها باذن الله، جزاك الله كل خير
انت في مرحلة تطوير معلوماتك وتحويلها لمشروع حقيقي، لهذا دعينى أخبرك أن ما تمرين به أمر طبيعي جدا خاصة أن مجال البرمجة تطبيقي بالدرجة الأولى.
يوجد الكثير من المحترفين ويقعون في صعوبات كثيرة لأنه مجال مرن ويحتاج ليد متمرسة وتبحث عن التطوير.
تخيلت أنه علي أن أقوم بعمل موقع صغير و كأنني في مهمة حقيقة ويتطلب علي تسليم عملي لكي أكون أكثر جدية وإبداع.
كل شيء في البداية يظهر صعب، لكن بمجرد أن تضعى خطواتك الأولى في التطبيق سيسهل عليك الأمر، وإذا واجهتك أي صعوبة يجب أن تبحثى عن حل لها.
صحيح أنه يمكنك تعلم لغات البرمجة بنفسك ، لكن ذلك لن يكون سهلاً. الترميز هو عمل تقني للغاية يستلزم خوارزميات مختلفة وهياكل بيانات معقدة. على الجانب الآخر ، يتيح لك التعلم بنفسك تحديد وتيرة تعليمك.https://www.kohlsfeedback.onl