كيف تجمع بين التصميم والبرمجة؟ كيف تبدأ ؟

كيف تجمع بين التصميم والبرمجة ؟؟

الجمع بين كلا التخصصين بالنسبة لي هو ميزة لا مثيل لها، فهذا يعطيك القدرة على إيصال منتجات متكاملة وجميلة بنفسك ولوحدك، وهي تقوي لديك مهارة solo product delivering، أي انك تستطيع تخيّل المنتج، برمجته، تصميمه، وإطلاقه.

من خلال تجربتي، الصعوبة تكمن في الجمع ما بين المنطق والإبداع، المنطق تستخدمه في البرمجة وذلك لتحسين وبناء شيفرات برمجية صلبة و تعمل بكفاءة، و الإبداع لتصميم واجهات ومنتجات فريدة من نوعها وغير تقليدية، وما يجمع بينهما هو المهارة في إستخدامات اﻷدوات المتاحة.

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

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

هذا التصميم قمت بتصميمه عام 2017 ( كنت في السنة الجامعية اﻷولى )

واليوم معظم البرمجيات التي أقوم بكتابتا تكون من تصميمي، وذلك لإن كثرة الممارسة تؤدي بالنهاية إلى فهمك للمعايير العامة التي يتبعها المصممون لتصميم موقع إلكتروني على سبيل المثال، ثم تجد نفسك تحسّن من هذه المعايير كل مرة.

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

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

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

هل اليوتيوب كافي لتعلم البرمجة؟


نعم ولا، ولكن في غالب الأحيان لا.

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

كيف يمكن أن أصبح مطور برامج ويب (Full stack developer)؟ وما هو طريق البداية؟


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

ما هي الأخطاء البرمجية التي يرتكبها معظم المبرمجين عديمي الخبرة؟

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

المبرمج الخبير يستفيد إلى أكبر درجة ممكنة من الواجهة البرمجية الخاصة باللغة التي يكتب بها Language API ، فتجده نادرًا ما يكتب شيفرة برمجية لتنفيذ عمل معين دون البحث الكامل إذا ما ما كانت اللغة البرمجية التي يكتب بها توفر هذا العمل من خلال دالة مكتوبة مسبقًا، المبرمج المبتدئ لقلة خبرته سيحاول كتابة بعض الشيفرات البرمجية الإضافية لتنفيذ عمل معيّن وقد تكون غير محسّنة not optimized على الرغم من توافرها جاهزة ضمن لغة البرمجة التي يكتب بها.

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

المبرمج الخبير يعلم أنه يكتب لإكثر من شخص ، فتجده يستخدم الملاحظات comments في كل سطر يكتبه ليوضح الخواص لأي شخص يقرأ شيفرته، ويستخدم طرق لتنظيم مشروعه وشيفرته مثل OOP,MVC فتصبح شيفرته حتى بدون وجود comments مفهومة ومقروءة human like texts ، أما المبرمج المبتدئ، فهو لن يستطيع حتى قراءة شيفرته بعد أسبوع من الوقت.

ويمكن ضرب عشرات الأمثلة على نفس الأمر..

مع التحية
أحدث أقدم