لوحة المتصدرين
المحتوى الأكثر حصولًا على سمعة جيدة
المحتوى الأعلى تقييمًا في 11/25/15 في كل الموقع
-
كيف تتعلم البرمجة هو سؤال من أشهر الأسئلة على الإنترنت التي تدور في فلك البرمجة وعلوم الحاسوب وشهرته تأتي من كون البرمجة programming من أهم المجالات وأكثرها طلبًا في وقتنا الحالي، ولا أحد ينكر أنها جزءٌ أصيلٌ مرتبط بالتقنية التي تشكل حاضرنا ومستقبلنا، فكل شيء أصبح مرتبط بالحواسيب ويحتاج الحاسوب إلى أن نخاطبه بلغته للتواصل معه وتوجيهه وتلقينه الأوامر. وبذكر الحاسوب، فقد أصبحنا محاصرين بكم كبير من الحواسيب حولنا بدءًا من هواتفنا الذكية التي هي حواسيب مصغَّرة مرورنا بآلة الغسيل وجلي الصحون وحتى الطائرات، ولنذكر أن عالمنا الآن يتجه إلى أتمتة المعلومات وحوسبة العمليات على جميع الأصعدة بطريقة سريعة وبعيدًا عن الروتين، كما يتجه إلى الاعتماد على التطبيقات الحاسوبية اعتمادًا كبيرًا وكل ذلك لا يتحقق إلا بوجود عدد كبير من المبرمجين لبرمجتها. تعد البرمجة من المهارات الرائعة صراحة إذ تمكنك من بناء تطبيقات مفيدة تحل الكثير من المشكلات الحياتية كما قد تخترع أنظمة وتقنيات مفيدة للبشرية مثل أنظمة الاتصالات وأيضًا الأنظمة البنكية وأنظمة البيع والشراء وغيرها التي سهلت حياة البشر وزادت من إنتاجيتهم وقدراتهم، فعملك كبمرمج يكسبك دومًا خبرات متجددة تزداد مع زيادة سنوات عملك كمبرمج، ولا ننسَ أن أشهر أثرياء عالمنا اليوم هم مبرمجون في الأصل. أضف إلى أن البرمجة توسع من خبرتك باطراد دائم، وتفتح لك أبوابًا لمهن مطلوبة في يومنا الحالي وبشدة أكثر من أي مهنة أخرى، لتؤمن لك دخلًا جيدًا بل وحتى حرية ومرونة في العمل أينما كنت حتى من منزلك فلا يتطلب في بعض الحالات وجود المبرمج في موقع العمل. بناءً على ما سبق، من الطبيعي أن ترى أعداد المتوافدين على باب تعلم البرمجة كبيرًا يزداد يومًا بعد يوم، وتحتاج قبل دخوله وبدء تعلم البرمجة إلى امتلاك بوصلة تهديك طيلة الطريق فبدونها ستضيع في هذا العالم الكبير الواسع وقد تنسحب منه وتعود أدراجك لعدم سلوكك الطريق الصحيح، لذا ستحصل في نهاية هذا المقال على بوصلة كيف تتعلم البرمجة تعينك على دخول هذا الطريق من أسهل طرقه وأسرعها إلى امتلاك الخبرة ودخول سوق العمل، فهل أنت جاهز؟ لننطلق! فهرس المحتويات ماذا تعني البرمجة؟ لماذا تتعلم البرمجة؟ طرق لتعلم البرمجة تعلم البرمجة عبر الجامعة تعلم البرمجة عن بعد عبر الإنترنت كيف تتعلم البرمجة مفاهيم تعلم البرمجة: التأسيس الصحيح أدوات تعلم البرمجة: اختيار الوجهة والتخصص نصائح لتعلم البرمجة أسئلة شائعة حول كيف تتعلم البرمجة هل تعلم البرمجة صعب؟ هل يؤثر نمط شخصيتي على تعلم البرمجة؟ هل احتاج إلى إتقان اللغة الإنجليزية لتعلم البرمجة؟ هل هناك مصادر عربية لتعلم البرمجة؟ هل احتاج إلى خبرة في الرياضيات لتعلم البرمجة؟ كيف تتعلم البرمجة من الصفر؟ أنا لست منظمًا فكيف ألتزم في تعلم البرمجة بنفسي؟ هل يمكنني تعلم البرمجة عبر الجوال؟ ماذا تعني البرمجة؟ البرمجة -كما ذكرنا باختصار في المقدمة- هي الطريقة الوحيدة للتخاطب مع الحواسيب والأجهزة الإلكترونية الذكية لإخبارهم بكيفية تنفيذ الأوامر والمهام التي يجب عليهم تنفيذها، فعلى الرغم من ظننا بأن الحواسيب والأجهزة ذكية كما يقال، إلا أن تلك المقولة خطأ لأن تلك الأجهزة لا تفكر ولا تتمتع بذرة من الذكاء وإنما تتسم بالسرعة والدقة الكبيرة في تنفيذ ما يُقال لها فقط. إذًا، البرمجة هي الطريقة وأسلوب سرد الخطوات المراد تنفيذها للحاسوب بناء على خوارزمية معينة أما الأداة المستخدمة في توضيح تلك الطريقة والخطوات فهي لغة البرمجة وبما أنها أداة فالأدوات كثيرة لتناسب مختلف الاحتياجات لهذا تجد الكثير من لغات البرمجة أما المفهوم والأسلوب فهو شبه ثابت لا يتغير وهنا قد تتطرق في طريق تعلم البرمجة إلى مفهوم لخوارزميات التي يمكن تنفيذها بأكثر من لغة برمجة. لماذا تتعلم البرمجة؟ هناك طلب كبير على مطوري البرامج اليوم، إذ سيزداد الطلب عليهم بنسبة 22 بالمائة بين عامي 2022 و 2030 وفقًا لمكتب إحصاءات العمل الأمريكي وذلك موازنةً بأربعة بالمائة بالنسبة للوظائف الأخرى، إذ تُعَدّ البرمجة مجال العصر والأكثر طلبًا في الوقت الحالي بين المهن الأخرى كما ذكرنا، فامتلاكك لهذه المهارة بمثابة امتلاكك لنقطة من نقاط قوة هذا العصر وتفتح لك أبوبًا واسعة في سوق العمل وضمن قطاعات مختلفة بسبب التقدم الرهيب في التقنية. كما تتعدد الأسباب حول الهدف من تعلم البرمجة، ولكن أكثرها انتشارًا هو ما يلي: تُعَدّ البرمجة مهنة عالمية عابرة للدول والقارات، إذ يمكن تطبيقها وتوظيفها في أيّ بلد كان مهما كانت ثقافته أو لغته. تعلم البرمجة مهم كون العالم يتجه إلى أتمتة المعلومات كما ذكرنا، وبالتالي تسريع المهام الروتينية وتوفير المزيد من الوقت والجهد البشري. يتعلق تعلم البرمجة بصورة أساسية بتعلم المنطق والرياضيات، لذا فهي توجّه ممتع لمن يهتم بمثل هذه المجالات. تحقيق مكاسب مادية، إذ يتقاضى المبرمجون رواتب عالية من خلال وظائف في شركات كبرى أو من خلال مشاريع ذاتية يصممها المبرمج بذاته ويبيعها لجهة معينة. تمكّنك من العمل الحر عبر منصات عمل حر مثل مستقل دون التقيد بجهة معينة كما يمكنك العمل من أيّ مكان كان من منزلك مثلًا، وبالتالي ستوفر عليك العديد من الالتزامات مثل قوانين بيئة العمل، وبعض النفقات مثل المواصلات. ممارسة البرمجة على أساس هواية إلى جانب عمل رئيسي آخر، فكثير من الأحيان قد تصادف أشخاصًا مهتمين بتعلم البرمجة وهم أساسًا أطباء على سبيل المثال وذلك لكونها شيء مكتسب بالتعلم والقراءة والممارسة وليست موهبةً أو شيئًا موروثًا. تعلم خوارزميات من خلال البرمجة يعزز عدد من المهارات لديك مثل مهارات التواصل وحل المشكلات وحتى مهارة الصبر. تفيد البرمجة في توسيع المعرفة وتعلّم تصميم حلول لأيّ مشكلة تواجهك، إذ تُعَدّ البرمجة طريقة تفكير منظمة وطريقة لتبسيط المشكلة وتفكيكها إلى أجزاء صغيرة يمكن التعامل معها بصورة أسهل. تعزيز الإبداع والاختراع لدى المبرمج، إذ سيصبح توّاقًا لتقديم أفضل ما لديه ومنافسة ذويه والسعي نحو تقديم مشاريع جديدة غير متوفرة سابقًا. طرق لتعلم البرمجة هنالك عدة طرق لتعلم البرمجة ودخول مجال علوم الحاسوب ولكن سأصنفها ضمن مسارين عريضين، الأول عبر التعليم الجامعي والثاني عبر التعليم الحر، وسأشرح كل منهما بالتفصيل مع توضيح مزايا وتحديات كل منهما. وإن كنت مهتمًا بتعلم البرمجة والتخصص بها ولم تختر مسارك بعد، فأنصحك أن تركز على هذا القسم بعناية لتحديد مسارك التعليمي. تعلم البرمجة عبر الجامعة يمكن تعلم البرمجة عبر مسار الجامعة بدخول إحدى التخصصات المرتبطة بها مثل تخصص علوم الحاسوب computer science أو تخصص هندسة البرمجيات software engineering أو هندسة الحاسوب computer engineering وستدرس بانتظام وعبر سنوات بين 4 إلى 5 سنوات هذا التخصص لتتخرج بدرجة بكالوريوس ويمكنك أن تكمل بعدها إلى مرحلة الماجستير والدكتوراه، وهذا الخيار مناسب تمامًا لك إن كنت تفكر في تسلق هذا السلم والذي تكون نهايته المهنية غالبًا العمل في مهنة التدريس في المؤسسات التعليمية. هذا الطريق أشهر الطرق لتعلم البرمجة ويتسم بأنه الأطول ولا يمكن البدء به إلا عند الدخول بالمرحلة الجامعية، ومن خلال هذه الطريق سيتلقى الشخص شهادة جامعية رسمية ومعترف عليها في سوق العمل بغض النظر عن الخبرة العملية التي يكتسبها خلال مسيرته الدراسية والتي تكون قليلة نوعًا ما وغير كافية. ضع في بالك أمر مهم في هذا المسار وهو أنك ستتعلم الكثير من المواد -وأحيانًا بتعمق- كما ذكرنا مثل الرياضيات المتقدمة وقواعد البيانات وأنظمة التشغيل والأنظمة المتقدمة والدارات الكهربائية والمنطقية والشبكات الحاسوبية وغيرها من المواد النظرية التي أما قد لا تهمك ولا ترغب في التخصص فيها والعمل فيها وإما أنها لا تفيد بشكل مباشر في الحياة العملية التطبيقية لاحقًا (تضيف مثلًا بعض الجامعات مواد إثرائية مثل تاريخ وجغرافية وأدب) مما يعني نسيانها لاحقًا وإضاعة للوقت والجهد. العائق الوحيد للدخول في هذا الطريق هو المُعدَّل الدراسي المطلوب بالنسبة للجامعات الحكومية والذي يكون مرتفعًا، وذلك لأن المقاعد الدراسية محدودة؛ أما بالنسبة للجامعات الخاصة، فستحتاج إلى مبلغ مالي قد تجده كبيرًا لتستطيع التسجيل في الجامعة وتتمة سنواتها الدراسية، فضلًا عن التفرغ الكامل للجامعة وتأمين النفقات اليومية البسيطة ما بين مواصلات ومعيشة ووربما تحتاج إلى كتب وقرطاسية وغيرها من نفقات إضافية طارئة، ولا ننسى أنه إذا كنت من محافظة تختلف عن المحافظة التي تقع فيها الجامعة، فإنك ستحتاج إلى مصروف إضافي يخص المواصلات بالإضافة إلى مصروف مخصص للسكن إذا لم ترغب في المكوث في السكن الجامعي أو إذا اخترت التسجيل في جامعة خاصة غير موجودة في مدينتك. والأهم مما سبق كله أن مجال علوم الحاسوب عمومًا والبرمجة خصوصًا مجال سريع التغير والتطور، فقد تتعلم تقنيات قديمة في بداية دراستك الجامعية لن تُستخدم في سوق العمل عند تخرجك بعد عدة سنوات أو أنها على الأقل تغيرت تغيرًا كبيرًا عما تعلمته وكم أسمع مشكلات تواجه طلاب الجامعات اليوم من هذا القبيل، لهذا السبب تجد أن أغلب الشركات لا تقبل بالشهادة الجامعية بمفردها بل تجري للمتخرج الجامعي اختبارًا تقنيًا أو تطلب منه مشروعًا يطلع عليه فريق برمجي متخصص ليتأكد من مواكبة معلوماته لأحدث التقنيات الحالية آنذاك. ومن الجدير بالذكر أنّ تعلم البرمجة عن طريق الجامعة يجبرك على الدراسة لسنين طويلة قد تصل إلى خمس سنوات وربما أكثر إذا لم تجتاز مواد محددة خلال السنة الدراسية، كما أنّ هذا الطريق لوحده لا يكفي للدخول إلى سوق العمل على الرغم من امتلاكك شهادة جامعية قوية وامتلاكك خلفية ثقافية علمية غير متاحة في الوسائل الأخرى، إذ ينبغي عليك اكتساب الخبرة اللازمة لتدعم سيرتك الذاتية، ولكن على الرغم من ذلك فبعض الشركات تهتم بالشهادة الجامعية في الدرجة الأولى وبعدها تنظر في الخبرة التي تملكها على أساس درجة ثانوية، إذ قد تمتلك برنامجًا تدريبًا خاصًا بالخريجين الجدد. والخلاصة، قد لا يكون هذا الخيار متاحًا لك -بسبب مجموعك في المرحلة الثانوية من التعليم- وباهظًا أيضًا وقد لا تملك وقتًا له وغيرها من التحديات وهنا ننصحك بخيار آخر لتعلم البرمجة وهو التعلم الحر عبر الإنترنت. تعلم البرمجة عن بعد عبر الإنترنت هنالك طريق آخر لتعلم البرمجة يعد الأسرع من بين عدة طرق لتعلم البرمجة غير التعليم التقليدي في الجامعات وهو التعلم الموجه عن بعد عبر الإنترنت نظرًا لانتشار الإنترنت في كل الأرجاء وازدياد سرعته، فأصبح بالإمكان اليوم مشاهدة فيديوهات والتواصل مرئيًا بدقة عالية دون الاكتراث لتكلفة الإنترنت أو سرعته. ونظرًا لأن مجال البرمجة لا يتطلب أي أمور وأدوات فيزيائية فأصبح تعلمه عبر الإنترنت شائعًا جدًا وسهلًا وعزز من ذلك تطوره السريع كما أشرنا وحاجة سوق العمل الكبير للمبرمجين مما جعل الشركات الموظفة تتنازل عن شرط وجود شهادة جامعية وأصبحت تطلب بدلًا من ذلك الخبرة والمشاريع العملية مع اجتياز اختبار أو مقابلة تقنية تجريها الشركة للمتقدمين المرشحين. تنقسم عملية تعلم البرمجة عبر الإنترنت إلى عدة مسارات فرعية تكون عمومًا إما منظمة ومهيكلة أو متفرقة. الدورات التعليمية تُعَدّ الدورات التعليمية من أشهر الطرق التي يلجأ إليها مَن يرغب في تعلم البرمجة سواءً كانت على أرض الواقع أو عبر الانترنت، إذ تأخذ بيده بدءًا من الصفر وتساعده كثيرًا في تعلم أيّ شيء جديد بصورة عامة وفي تعلم البرمجة بصورة خاصة وذلك عن طريق تسلسل مدروس ينتج عنه في ختام الدورة تعلم الأساسيات والتمكن بعض الشيء في النقاط التي تقدمها الدورة ليتابع بعدها المتلقي رحلة تعلمه عن طريق مصادر أخرى أو التسجيل في دورة تعليمة جديدة بمستوى أعلى. غالبًا ما تقترن الدورات التعليمية بجانب تطبيقي عملي يبني المتعلم عبرها مشاريع عملية تحاكي المشاريع المطلوبة في سوق العمل كما تفيده في بناء معرض أعمال عملية يغنيه عن عرض الشهادات النظرية. وقد يحتاج الطالب الأكاديمي الذي يدرس في الجامعة -كما ذكرنا في المسار الأول السابق- إلى دورات برمجية تعليمية مخصصة لترميم ما ينقصه أو اكتساب خبرة أوسع والتخصص فيه وبناء مشاريع عملية. لن تعيقك الدورات التعليمية من ناحية العدد المحدود للحضور والتكلفة الباهظة، إذ توجد العديد من الدورات البرمجية منخفضة التكلفة ومقبولة بالنسبة للطلاب مقابل الفائدة التي سيتلقونها، كما أنك لن تحتاج إلى إهدار 4 أو 5 سنوات من حياتك -على الأقل- كما في المرحلة الجامعية. تحدي مسار تعلم البرمجة عبر دورات تعليمية هو التسويف والتقصير، إذ يحتاج إلى تنظيم وعزيمة وإصرار وحمل النفس على التعلم وطلب العلم ووضع مخطط صارم وخطة واضحة من بداية الطريق، وهذا عكس المسار الأكاديمي الذي يكون فيه دور الجامعة تلقين المعلومة والتخطيط نيابة عنك مثل تحديد أوقات الامتحانات. ومن الجدير بالذكر أنه تهدف أكاديمية حسوب إلى توفير دورات تعليمية باللغة العربية تساعدك في تعلم البرمجة، كما يمكنك طرح أيّ سؤال على المدرِّبين أثناء التعلم إذا صادفت أيّ صعوبة، بالإضافة إلى أنه يمكنك مشاهدة أيّ دورة اشتركت فيها متى ما شئت، وفي حال أردت الانسحاب فبإمكانك التواصل مع فريق الأكاديمية لاسترداد ثمنها. دورة علوم الحاسوب دورة تدريبية متكاملة تضعك على بوابة الاحتراف في تعلم أساسيات البرمجة وعلوم الحاسوب اشترك الآن الورشات والمخيمات البرمجية Bootcamps تعد المخيمات البرمجية فكرة أخرى منبثقة عن الدورات التعليمية فهي عبارة عن دورة تعليمية مكثفة ومضغوطة بفترة زمنية قد تقصر أو تطور بحسب البرنامج والتخصص وعادةً ما تمتد المخيمات البرمجية المتخصصة في مجال تطوير الويب أو تطوير تطبيقات الجوال من ستة أشهر إلى سنة. وتركز المخيمات البرمجية على تعلم البرمجة وتطبيقها مباشرةً على مشاريع عملية كبيرة تختمها بمشروع تخرج شامل، فيتخرج الطالب منها بحقيبة مشاريع مشرفة يعرضها في مقابلات العمل. القنوات والفيديوهات التعليمية هذه القنوات منتشرة انتشارًا كبيرًا على اليوتيوب مثل قناة أكاديمية حسوب، كما يوجد العديد من المبرمجين المحترفين الذين لديهم قناة على اليوتيوب تحتوي على سلسلة من المحاضرات التعليمية النظرية والعملية أو حتى مواضيع متفرقة، وفي هذا الطريق لن تحتاج إلى التقيد بمكان معيّن لحضور دورة تعليمية ما ولن تضطر إلى دفع تكاليفها، إذ تكون أغلبها مجانية، ولن تضطر إلى دفع أي تكلفة إضافية مثل المواصلات والسكن، كما أنك غير مقيّد بوقت محدد بما أنها عبر الانترنت ومسجَّلة مسبقًا. القيد الوحيد في هذا المسار أنه من المسارات الموجهة وغير المنظمة أو المهيكلة إذ ستتقيد بما هو موجود وقد تجد المعلومة وقد لا تجدها وغالبًا ستكون ضمن المستويات الأساسية دون المتقدمة ولن تجد من يجيب على أسئلتك أيضًا. الكتب والمقالات يفضل العديد من الأشخاص اللجوء إلى كتب برمجية للوصول إلى فهم أكثر دقة، والعديد من هذه الكتب توفرها أكاديمية حسوب مترجمة ومدققة جيدًا، كما يلجأ العديد من الراغبين في تعلم البرمجة إلى المقالات البرمجية لأخذ لمحة عامة حول تعلم البرمجة أو لتعلم البرمجة بصورة خاصة. تمتلك كل طريقة من الطرق السابقة ميزات ومساوئ وضحنا لتتمكن من تحديد الطريق الأنسب لك والذي يخدم أهدافك، ولكن ستكون أنت الرابح مهما كان طريقك في تعلم البرمجة، لذلك لا بد من تعلم البرمجة بصورة احترافية مهما كانت الوسيلة لتحقيق رغبتك في الدخول إلى سوق العمل بقوة وتحقيق دخل ممتاز. وفي نهاية هذا القسم، أنصحك بمشاهدة الفيديو التالي الذي يناقش فكرة الشهادات مقابل الخبرة في سوق العمل: المسابقات والتدريبات البرمجية تعزز المسابقات البرمجية والتدريبات البرمجية من عملية تعلم البرمجة تعزيزًا كبيرًا وتكسب المبرمج خبرة كبيرة واسعة تميزه عن بقية المبرمجين وترفع من قدره ومنصبه خصوصًا أن سمة البرمجة عمومًا هي حل المشكلات والبعد عن النمطية والروتين، فستصادف خلال رحلة البرمجة مشكلات منها القديم ومنها الجديد وغالبًا ستجد لكل مشكلة عدة حلول. أضف إلى ذلك أن أغلب أسئلة المقابلات البرمجية تكون على شكل مشكلة تتطلب إيجاد حل لها وكتاب شيفرته وغالبًا تكون تلك المشكلة شائعة وبسيطة وبمقابلة مباشرة يعني أن الفريق التقني يكون حاضرًا أثناء حلك للمشكلة، وينصب جل تركيزهم على كيفية إيجادك الحل وأسلوب كتابتك للشيفرة، فأحيانًا تجد حلًا لمشكلة يخلق مشاكل أخرى لم تخطر على بالك أو تفكر بها والأصوب أن يكون حلك شاملًا لا يؤدي إلى مشاكل أخرى ولا يسبب تأثيرات جانبية، ولا يمكن الوصول إلى تلك الدرجة من الخبرة والإتقان دون إطلاع على حلول مشاكل سابقة والتمرن على حل مشاكل جديدة ومناقشة الحلول للوصول إلى الحل الأفضل. هنالك الكثير من منصات التدريب تختلف باختلاف المواضيع ولغة البرمجة التي تريد التدرب عليها يمكنك البحث والسؤال وتجرب عدة منصات لتختار ما يناسب وشاع منها هذه الأيام منصة HackerRank ومنصة Codewars، ولكن لا أرى اللجوء إلى هذا الخيار إلى بعد تعلم المفاهيم الأساسية وعلى الأقل أساسيات لغة برمجة وعمومًا هنالك دومًا مستويات لكل تدريب يمكنك اختيار ما يناسب مستواك آنذاك. كيف تتعلم البرمجة؟ البرمجة عالم كبير مترامي الأطراف متباين التضاريس فيه السهل وفيه الصعب وإن كان الصعب يغلب على بدايته إذ يتسم طريق بداية تعلم البرمجة بالصعوبة وشدة الانحدار فهنالك الكثير من الأساسيات والمفاهيم التي عليك تعلمها وفهمها مثل مفهوم التعابير expressions والمتغيرات variables وأنواع البيانات data types والعمليات وحلقات التكرار والتعابير الشرطية والدوال والأصناف …إلخ. ثم تعلم تطبيق تلك المفاهيم بلغة البرمجة التي تريد استخدامها والتقنيات والمكتبات المرتبطة بها وقد تصل إلى بعض الطرق المسدودة -من جملة المشاكل الكثيرة التي تواجهك- التي تتطلب أن تشق طريقًا جديدًا لحلها. لا تخشَ مما سبق فكلما كان الطريق صعبًا ذقت حلاوة الوصول! مفاهيم تعلم البرمجة: التأسيس الصحيح ابدأ أولًا بتعلم المفاهيم البرمجية الأساسية، فعندما تتقن تلك المفاهيم تصبح قادرًا على تطبيقها على الأدوات مهما اختلفت وكثرت، وهنا وجب الفصل بين المفاهيم والأدوات، لأن الأدوات كما ذكرنا كثيرة وإن بدأت بها فقد تضيع وقد تواجه صعوبة في استخدام أداة لكثرة المفاهيم البرمجية المعقدة المبنية عليها وبدلًا من ذلك يجب البدء بصب أساس متين وإتقان المفاهيم البرمجة التأسيسية التي ستمكنك من استخدام أي أداة أو تقنية برمجية موجودة أو حتى مستحدثة جديدة قد تظهر مستقبلًا. أهم المفاهيم التأسيسية البرمجية التي يمكنك البدء بها هي: التفكير المنطقي الخوارزميات وحل المشكلات التعابير المنطقية أو البوليانية العمليات الرياضية الأساسية الأصناف classes والكائنات objects الدوال functions والتوابع methods بنى التحكم مثل التكرار Loop والشروط conditions التعاود Recursion المكتبات والحزم وأطر العمل أنواع البيانات أنواع لغات البرمجة البرمجة كائنية التوجه والبرمجة الوظيفية ننصحك بإتقان تلك المفاهيم وصقلها قبل البدء في تعلم أي لغة برمجة والتعمق فيها لأنك إن فعلت، فستلجأ إلى الرجوع إلى كل مفهوم والتعرف عليه مما يصعب عملية التعلم ويطيل الطريق عليك، وبعد التعرف عليها، يمكنك الانتقال إلى تعلم لغة البرمجة التي تمثل إحدى أدوات تعلم البرمجة والتخصص في المجال الذي تريده. أدوات تعلم البرمجة: اختيار الوجهة والتخصص لا أقصد بذكري أدوات تعلم البرمجة محررات النصوص وما سيلزمك أثناء البرمجة وكتابة الشيفرة، بل أقصد بها الأدوات والوسائل التي تتعلم البرمجة بها وتطبقها وأقصد تحديدًا لغات البرمجة والتقنيات المرتبطة بها التي تتعلم البرمجة بها. هنالك الكثير من لغات البرمجة والتقنيات البرمجية وهي ليست ثابتة بل تزداد وتتوسع يومًا بعد يوم، فلا تلبث إلا أن تسمع عن نزول لغة برمجة جديدة أو تقنية أو إطار عمل Framework جديد فإن تعلمت المفاهيم وأسست نفسك بها، فستطبقها مع أي لغة برمجة أو تقنية برمجية، فلغات البرمجة تنتمي إلى عائلات وتُشتق اللغات الجديدة من لغات سابقة وتُبنى تقنيات جديدة على أخرى سابقة أو مشابهة لها فلا وقت لاختراع العجلة من جديد، وفي هذا الصدد أنصحك بالاطلاع على مقال دليلك الشامل إلى لغات البرمجة. وقد تتساءل، كيف تتعلم البرمجة دون الاهتمام بتعلم لغة برمجة والانشغال بها؟ سؤالك صحيح، فستحتاج أثناء تعلم المفاهيم إلى أداة أي لغة برمجة تطبق عليها ما تعلمته ولكن في الوقت نفسه لا تريد الانشغال بتعلم لغة البرمجة تلك وتفاصيلها وشيفراتها وهنا لحل المشكلة جاءت لغات البرمجة المرئية مثل سكراتش Scratch وما شابهها. سكراتش هي لغة برمجة مرئية مؤلفة من كتل جاهزة يمكنك عبر سحبها وتركيبها بناء برنامج كامل، وهي مناسبة جدًا للبدء بتعلم البرمجة من الصفر وتأسيس المفاهيم البرمجية التي ذكرناها أهمها الخوارزميات والتفكير المنطقي، وبناءً على ذلك، تجد أن دورة علوم الحاسوب من أكاديمية حسوب تؤسس تلك المفاهيم أولًا بلغة سكراتش. بعد أن تتعلم المفاهيم، تبدأ بتطبيقها على لغة برمجة حقيقية ويمكنك بعدها التخصص بلغة البرمجة التي تريد تعلمها ودخول مجالها، وهنا يمكن أن أنصحك بدلًا من ذلك البدء بأساسيات لغة برمجة سهلة مثل لغة جافاسكربت JavaScript أو لغة بايثون والسبب سهولة كتابة الشيفرات فيهما وتنفيذها دون الحاجة إلى أي تعقيد في ضبط البيئة البرمجية لهما، ثم بعد ذلك يمكنك الانتقال إلى لغة البرمجة التي تُستخدم في المجال الذي تريد التخصص فيه مثل مجال تطوير مواقع الويب أو تطوير تطبيقات الجوال أو برمجة أنظمة التشغيل والأنظمة المدمجة. قد تسألني عن الأدوات والبرامج المطلوبة لكتابة الشيفرات وهنا أقول لك، لا تشغل نفسك بها فستتعرف عليها متى ما احتجتها فكل لغة برمجة أو تقنية لها محرر وأدوات تدعمها أكثر من غيرها. نصائح لتعلم البرمجة توجد بعض النصائح لتعلم البرمجة التي ستحتاجها أثناء رحلتك نسردها فيما يلي. حدد هدفك من تعلم البرمجة عليك تحديد هدفك حتى يسهل عليك تحديد التخصص الذي تريد الدخول إليه وبالتالي اللغة المستعملة في ذلك التخصص الأمر، فاللغات التي تُستخدم في مجال برمجة تطبيقات الويب مثلًا تختلف عن لغات برمجة تطبيقات الهاتف المحمول والتطبيقات المكتبة، كما سيسهل عليك تحديد طبيعة الجهاز الذي سيكون موجه إليه هذا التطبيق. تعلم لغة واحدة على الرغم من تشابه لغات البرمجة من حيث المفهوم، إلا أنّ لكل لغة برمجية بنية لغوية syntax تختلف عن غيرها، لذا من الأفضل عدم إجهاد نفسك في تعلم أكثر من لغة على التوازي حتى لا تتشتت وخاصةً إذا كنت في بداية طريقك في تعلم البرمجة. وعمومًا، يمكنك تعلم المفاهيم البرمجية بدايةً بلغة سكراتش ثم الانتقال إلى اللغة التي تريد التخصص فيها فالمفاهيم متشابهة كما ذكرنا ولكن صياغة اللغة وطريقة كتابة شيفراتها وترتيبها هي التي تختلف ولن يكون الاختلاف كبيرًا عادةً. ابدأ ببرامج بسيطة البرمجة مثلها مثل أيّ مجال آخر، أي حتى تتقنها عليك البدء من مكونات صغيرة وذلك بتصميم برامج بسيطة ثم تعديلها وتطويرها على عدة مراحل للوصول إلى تطبيق متكامل، فعلى سبيل المثال تطبيق الآلة الحاسبة يبدأ بعملية واحدة وبعدها يُطوّر ليشمل كافة العمليات وبعد ذلك يمكن تطويره ليتعامل مع المعادلات الرياضية المعقدة وهكذا. تحلى بالصبر جميعنا يريد أن يكتسب الخبرة بين ليلة وضحاها، لكن الأساس مهم جدًا وهذا يحتاج لأيام وأيام، لذا خذ الطريق من بدايته وأساسياته ولا تستعجل فتندم وتفقد الشغف وربما تتعب من مواصلة التعلم وتقرر الابتعاد نهائيًا، ولا تيأس عندما تواجهك أخطاء، فكلها ستدعم مسيرتك البرمجية في المستقبل وتكسبك الخبرة، ففي النهاية إنما العلم بالتعلّم وإنما الحلم بالتحلّم. صاحب مبرمجًا بما أنك قررت دخول عالم البرمجة، فحاول مصاحبة المبرمجين بدخول مجتمعات البرمجة على وسائل التواصل الاجتماعي وإبداء اهتمامك بأي محتوى برمجي على الإنترنت والتفاعل مع أصحاب المحتوى والتواصل معهم والاستفسار أو السؤال عما يلزمك أن احتجت، فبذلك يصبح لديك شبكة من الأصدقاء تستفيد منهم وتفيدهم بتبادل الخبرات. اعتمد على نفسك في حل الأخطاء البرمجية لا شك أنه كل منا سيواجه أخطاء في مسيرته التعليمية، ولكن من الأفضل عدم الاعتماد على الغير في حلها إلا بعد البحث والتقصي عن سبب المشكلة وإيجاد حلها بأفضل طريقة ممكنة، وفي حال عدم التوصل إلى حل بعد البحث المتواصل، فلا مانع من الرجوع إلى مبرمج محترف يبيّن لك سبب المشكلة وطريقة حلها، فاللجوء فورًا إلى مبرمج محترف لن يفيدك وربما قد تكون عبئًا عليه في حال تواصلت معه على أبسط الأخطاء وباستمرار دون بذل أيّ جهد منك في البحث. لا تتوقف عن الممارسة والتدريب كل علم لا يُمارس فمصيره الزوال والنسيان وكذلك البرمجة، إذ عليك التدرب أكثر فأكثر إلى حين إتقان هذه اللغة وعدم التوقف عن ممارستها بين الحين والآخر لتجنب خسارتها. أسئلة شائعة حول كيف تتعلم البرمجة هل تعلم البرمجة صعب؟ قد يقول قائل أن البرمجة صعبة وتعلمها أصعب، ولكن هل هذا صحيح؟ أقول أنه لا شيء سهل وأي مهنة فيها مستوى متفاوت من السهولة والصعوبة، والبرمجة من المهن التي تتطلب بذل جهد ذهني وفكري كبير ولا تتطلب بذل جهد بدني بينما تجد بعض المهن تتطلب بذل جهد بدني أكثر من الجهد الذهني وهكذا، وقد لا يناسب البعض بذل هذا الجهد الذهني الكبير والجلوس لفترات طويلة أمام الشاشة بتركيز كبير وهنا يجد تلك الصعوبة التي يشير إليها. إن أردت إجابة تفصيلية على هذا السؤال، فشاهد فيديو هل البرمجة صعبة. هل يؤثر نمط شخصيتي على تعلم البرمجة؟ التعامل مع البرمجة والحاسوب يتطلب بعض الانعزال عن الناس والأنشطة الاجتماعية والتعامل مع آلة أمامك بمخاطبتها عبر شيفرة طويلة تمضي أيامًا وأسابيعًا في كتابتها على انفراد وهذا قد لا يناسب بعض الأشخاص الاجتماعيين الذين يفضلون التعامل مع الناس والاحتكاك بهم، وهنا تظهر فكرة أن غالبية المبرمجين انطوائيين وأرى أنها صحيحة بنسبة ما، ويمكنك الاطلاع على مناقشة شخصيتك كمبرمج ومناقشة هل فعلاً تخصص البرمجة يؤثر بالسلب على الحياة الاجتماعية؟ في حسوب IO. هل احتاج إلى إتقان اللغة الإنجليزية لتعلم البرمجة؟ صحيح أن شيفرات لغات البرمج كلها مكتوبة باللغة الإنجليزية ولكن الحقيقة أنك لا تحتاج إلى إتقانها لتكون مبرمجًا محترفًا، إذ أن كل لغة برمجة مكونة من كلمات مفتاحية keywords محصورة العدد يمكنك حفظها وحفظ استخداماتها وقد قابلت عدة مبرمجين من بلدان آسيا وأوربا غير ناطقين باللغة الإنجليزية ولا يعرفونها بل أتحدث معهم بالإنجليزية فلا يستطيعون الرد علي وفي الوقت نفسه أتفاجأ من أنهم بنوا الكثير من المواقع وتطبيقات الجوال، حتى أن أحدهم بنى مكتبة CSS بلغته ويستطيع أي متحدث بتلك اللغة استخدامها. هل هناك مصادر عربية لتعلم البرمجة؟ قد يقول قائل، مراجع تعلم البرمجة قليلة في اللغة العربية أو ليست بجودة عالية، وأنا أقول أن المحتوى العربي غني جدًا بمصادر تعلم البرمجة بالعربية وهنا أحيلك إلى مقال الدليل الشامل لتعلم البرمجة باستخدام المصادر العربية لتتأكد من نفسك. كما يوجد دورات برمجة عربية تأخذ بيدك من الصفر وحتى الاحتراف مثل دورات أكاديمية حسوب، فالمميز في دوراتها أن الشرح بلغة عربية فصيحة وأنها توفر بيئة عربية متكاملة بدءًا من توفير التوثيقات البرمجية العربية التي تجدها في موسوعة حسوب وحتى المقالات البرمجية والكتب البرمجية في كافة المواضيع واللغات البرمجية وأخيرًا بمنصة أسئلة وأجوبة برمجية لطلب أي مساعدة أو الإجابة عن سؤال كما تجد دعمًا أيضًا في مجتمع البرمجة العربي في منصة حسوب IO. هل أحتاج إلى خبرة في الرياضيات لتعلم البرمجة؟ لا تحتاج إلى خبرة متقدمة في الرياضيات بل كل ما تحتاج إليه في البداية هو معرفة بالعمليات الرياضية الأساسية من جمع وطرح وضرب وقسمة ورفع للأس، وهنالك الكثير من القصص عن أطفال ويافعين بأعمار صغيرة تعلموا البرمجة وبدؤوا بكتابة برامج وألعاب. كيف تتعلم البرمجة من الصفر؟ إن لم تكن تريد الالتحاق بمسار جامعي، فهنا أنصحك باتباع دورات تعليمية أو ورشات أو مخيمات برمجية منظمة ومهيكلة ولا تتطلب أي خبرة برمجة مسبقة بحيث تبدأ معك من الأساسيات وتنطلق حتى المواضيع المتقدمة يقترن ذلك ببناء مشاريع عملية. وإن سألتني عن ترشيحات في المحتوى العربي، فأرشح دورات أكاديمية حسوب فكلها لا تتطلب خبرة برمجة مسبقة وتشرح المواضيع من الصفر، كما أنك عندما تشترك بدورة ما، فإن المسارات الأساسية من كل الدورات تصبح متاحة لك وهي ميزة ممتازة تساعدك على صب أساس قوي في كل المجالات البرمجية، وأضف إلى تلك الميزة، هنالك فريق من المبرمجين جاهز للرد على استفساراتك ومساعدتك بأي شيء، فهي خيار جيد تستحق النظر. أنا لست منظمًا فكيف ألتزم في تعلم البرمجة بنفسي؟ تعلم البرمجة -خصوصًا عبر دورات- يحتاج إلى حمل النفس على ما تكره وهو التنظيم، والتنظيم يحتاج إلى روتين، لذا ألزم نفسك بروتين قاسٍ وعاقبها إن تخلَّفت وقصرت مثل عدم الخروج إلى مكان محبب لك في عطلة نهاية الأسبوع، وفي الوقت نفسه كافئها إن أنجزت وثابرت، وفي هذا الصدد أنصحك بمقال دليلك لتنظيم حياتك ففيه فوائد كبيرة تساعدك على التنظيم لا تفوتها. وتذكر دومًا أن لذة الوصول تنسيك تعب الطريق وهذا يجب أن يدفعك دومًا إلى بذل الجهد ورفع الهمّة، وصحيح أن طريق تعلم البرمجة قد يكون طويلًا لكن بدايته متعبة فقط أما بعد ذلك فيصبح سهلًا، وتذكر أن المبرمج الخبير المتمرس يملك الكثير من المزايا بدءًا من الراتب المرتفع بقدر خبرته وحتى قدرته على تأسيس شركات برمجية أو إدارتها. هل يمكنني تعلم البرمجة عبر الجوال؟ حقيقةً، لا! يتطلب تعلم البرمجة حاسوبًا لتعلم البرمجة وكتابة الشيفرات البرمجية، فمن الصعب كتابة شيفرات برمجية على الهاتف الجوال هذا لم نتحدث عن إمكانية تنفيذ الشيفرات عليه وتجريبها وتنقيحها وتصحيح الأخطاء فيها. أما إن سألتني عن مواصفات الحاسوب، فيمكن استعمال أي حاسوب بدايةً وبعدها ستجد نفسك إما مرتاحًا بمواصفاته آنذاك أو تحتاج إلى مواصفات أخرى محددة، وقد تحتاج من البداية إلى وجود بطاقة شاشة منفصلة إن أردت التخصص في مجالات برمجة تتطلب معالجة رسوميات عالية مثل تطوير الألعاب أو محاكاة تطبيقات جوال أثناء تطويرها، وقد تحتاج إلى حاسوب ماك إن أردت تطوير أي شيء يتعلق بأنظمة ماك مثل تطوير تطبيقات iOS وهو حالة خاصة ومحددة فقط بمنتجات ماك. خاتمة أرجو أن أكون قد وفقت في الإجابة على سؤال "كيف تتعلم البرمجة؟" إجابة وافية شاملة في هذا المقال وأرجو أيضًا أن يكون هذا المقال بوصلة ترشدك للسير في الطريق الصحيح نحو تعلم البرمجة. وتذكر أنه بالنسبة لبعض المبرمجين، رحلة البرمجة لا تنتهي، فهنالك دومًا أشياء جديدة يمكن تعلمها وتطبيقها! وفي نهاية المقال، أحيلك لقراءة المقالات التالية المرجعية بعده التي تدور في فلك تعلم البرمجة ولكن قبل ذلك، قم وخذ قسطًا من الراحة! ملاحظة: كُتب هذا المقال سابقًا عام 2015 وقد جرى تعديله وتحديث محتواه لاحقًا. اقرأ أيضًا المدخل الشامل لتعلم علوم الحاسوب تعلم بايثون تعلم PHP فوائد تعلم البرمجة دليلك الشامل إلى أنواع البيانات تعلم لغة HTML أسهل لغات البرمجة البرمجة باستخدام سكراتش Scratch1 نقطة
-
لا بدّ لكل مستقلّ أن يمرّ خلال مسيرته المهنيّة بتلك اللحظة التي يحتاج فيها إلى كتابة عرض للعمل على مشروع معيّن، وإن لم تكن خائفًا من فكرة كونك بائعًا للخدمات فإن هذا الخوف سيتضاعف بعد أن تدرك الكمّ الهائل من المستقلّين الذين يقدّمون العروض أملًا في الحصول على العمل. وكل هؤلاء وعلى اختلاف مشاربهم مجتمعون على قول عبارة (اخترني)، فهل يمكنك إيصال صوتك مع وجود كل هذه الأصوات؟ لنقم بذلك إذًا. سنخوض معًا في التفاصيل الدقيقة التي تتضمنها عملية كتابة عرضك كمستقلّ وسأستفيد من خبرتي التي اكتسبتها من العمل في هذا المجال لسنوات عديدة لأساعدك على إبراز صوتك من بين الجموع، وسيتضمن ذلك: أفضل الأساليب المتّبعة.الأخطاء الواجب تجنّبها.كيف تتابع نتائج العرض الذي ستقدمه.كيف تعدّل أسلوبك استنادًا إلى النتائج التي تابعتها.كيف أكتب عروضي عادة لم يكن حالي عندما بدأت بالعمل كمستقلّ مختلفًا عن حال أي مستقلّ جديد، إذ لم أكن أفقه شيئًا، أضف إلى ذلك صفة العناد والتعنّت، لتحصل على قائمة طويلة جدًّا بالأخطاء التي ستقترفها في فترة زمنية قصيرة؛ لذا سأوضّح لك الأخطاء التي وقعت فيها بدلًا من تعدادها ووصف سوءها فقط. النصّ التالي هو عرض كنت سأكتبه بهذه الطريقة لو لم أتعلم من الأخطاء التي ارتكبتها سابقًا. كنت في السابق معتادًا على كتابة بعض العروض الشاملة التي أمتدح فيها نفسي على الدوام، ولكن عندما أنظر إلى هذه العروض اليوم فإني أشعر بالغثيان، لا بل سيكون تعبير (الغثيان الشديد) أفضل في هذا الموقف، فالدعابة لن تنفع أحدًا هنا. حان الوقت الآن لتقسيم هذا العرض إلى أجزاء متعدّدة ومعرفة الأخطاء التي يحتويها بعد أن تعرّفنا إلى هذا الأسلوب الفظيع في كتابة العروض، وسنبدأ بتحليل ونقد أسلوبي القديم هذا من منظور عامّ قبل الولوج إلى التفاصيل، وسيساعدك هذا على فهم الأمور العامّة بصورة جيّدة. بعض النقاط العامةكل ما فعلته هو التبجحلن يبدو هذا العرض سيّئًا عند النظر إليه للوهلة الأولى وكلّ شيء فيه صحيح، فقد تكلّمت عن خبرتي وذكرت ما قمت به من أعمال، وأشرت إلى ما أفتخر به من إنجازات في العمل، ثم أعطيت رابطًا لمعرض أعمالي، وقدّمت شكري في نهاية العرض. ما الخطأ في كل ذلك؟ إن نظرت إلى العرض بإمعان فإنك ستلاحظ سمة تتواتر فيه من البداية إلى النهاية، إنها سمة التبجّح والتباهي، مع الاكتفاء بتقديم مادة قليلة إلى الشخص أو الفريق الذي أرسلت إليه هذا العرض. لم أجب عن أي شيء فيما سردتهكما قلت لك سابقًا، فقد كنت أستخدم هذا الأسلوب لكل طلب عمل يصادفني. إذًا باعتقادك ما هي نسبة الإجابات التي حصلت عليها بعد إرسال هذا النوع من العروض لمرّات عديدة؟ الإجابة هي 0%، ولنأخذ عملية صيد الأسماك كمثال لفهم سبب انخفاض النسبة إلى هذا المستوى. عندما ترغب في صيد الأسماك يكون أمامك خياران، الأوّل أن تستخدم طُعمًا تحبّه جميع الأسماك بلا استثناء، والثاني استخدام طُعم خاص لصيد نوع معيّن من الأسماك. لقد كنت أستخدم الطُّعم الأوّل والذي يبدو أنه يرضي جميع أنواع الأسماك، ولكنّه لم يجذب سوى ما يتغذّى في الأعماق. الكثير من المعلومات غير ذات الصلةإن كنت أريد تقديم عرض لأعمل كمصمّم في المشروع، فما الفائدة من ذكر خبرتي في التطوير ضمن العرض؟ كنت أظنّ مسبقًا أنّ ذلك سيدلّل على مهاراتي المتنوّعة وسيرضي ذلك العميل ويدفعه إلى التعامل معي. ولكن ما فعلته في الواقع هو أنّي قدّمت إلى قارئ العرض انطباعًا مفاده أنّي لا أعير مشروعه الاهتمام اللازم، أو حتّى أنّي لا أمتلك القدرة ربّما على فهم ما أقرؤه. لم أُظهر شخصيتي في العرضألم تلاحظ أثناء قراءتك لهذا العرض أنّك قادر على إزالة اسمي واستبداله باسمك بكل سهولة؟ من المؤكّد أنّ كل هذا التباهي لن يكون ملائمًا في هذه النقطة من مسيرتك المهنية، ولكن يمكنك تبديل الاسم دون الحاجة إلى تبديل شيء آخر. للأسف هذا هو الحال لأنّي لم أقم بأي شيء لإظهار شخصيتي في هذا العرض. لن تنفعك كل تلك التفاصيل إن لم تظهر شخصيتك في العرض، وسيكون عرضك سريع النسيان. إنه طويل جداألم تلاحظ طول هذا العرض؟ يبدو الأمر وكأنّي أحاول كتابة موضوع إنشاء للمرحلة الثانويّة لأبيّن السبب الذي يجعلني أفضل من ملايين الأشخاص الذين يغرقون بريدك الإلكتروني وهم يطلبون العمل على هذا المشروع. يجب على العميل أن يقرأ ويتفحص عددًا كبيرًا جدًّا من العروض عندما يرغب في توظيف مستقلّ لإنجاز مشروعه الخاصّ. إن طلبت من شخص يتصفّح العديد من رسائل البريد الإلكتروني قراءة عرض مطوّل كهذا العرض فهذا يعني دعوتك إياه إلى المرور على عرضك هذا مرور الكرام أو تجاوزه في أسوأ الأحوال. تفكيك العرض إلى أجزاءبعد أن تعرّفنا على النقاط الأساسية الأربعة التي جعلت العرض غير ذي نفع أو فائدة، دعنا نفكّكه إلى أجزاء ونتفحّص العبارات والجمل التي كانت سبب كلّ هذه المشاكل. ذكر العمر وسنوات الخبرة كنت أعتقد دومًا أن ذكر عمري وسنوات خبرتي من الأمور الجيدة. كنت أظنّ أن العميل سينبهر عندما يرى عمري خصوصًا عندما كنت مراهقًا وأنه سيرغب بالتعامل معي الآن ليؤسس لعلاقة متينة وراسخة ستستمرّ معي إلى الأبد. ولكن كان هذا خطأً فادحًا. عندما تذكر عمرك أو سنوات خبرتك في العرض الذي ستقدمه فإنّك تعطي انطباعًا إلى العميل بالخوف من عدم القدرة على تقديم ما هو جيّد لهذا المشروع. وهذا ما يحدث بالفعل، فأنت كمن يصنع نظّارة بعدسات ورديّة لتظهر بمظهر جيّد قد حدّدته بنفسك مسبقًا. ذكر كل شيء أقوم به إن كنت قاسيًا مع نفسي فمن سيكترث لهذا الهراء؟ هل يبحث العميل عن مصمّم أم مطوّر؟ مدوّنٍ أم كاتب؟ من النادر أن يبحث العملاء عن شخص يمتلك مجموعة من المهارات، لذا فإن المبالغة في عرض خبراتك يجعلك تبدو بمظهر الأحمق. في الواقع، إن شاهدت عرضًا يتضمّن مجموعة من المهارات في التّصميم أو التطوير فمن الأفضل أن تتجاهله، إلا إن كنت تريد أن تبدو أحمقًا كما كنت أنا كذلك بالتأكيد. التكلم بدون فائدة عن جدارتي بهذا الموقع يمكنك مدح نفسك بالطريقة التي تريدها وحسبما تقتضي الحاجة، ولكنّ ذلك لن يغيّر شيئًا من الواقع. إذ يمكن للعميل أن يجد ما ذكرته أو لا يجده بمجرّد النّظر إلى معرض أعمالي؛ لذا أصدقك القول أن كلّ ما حصلت عليه هو أنّي جعلت نفسي أبدو أقلّ خبرة مما أنا عليه في واقع الحال. الأساليب الأفضلبعد أن تعرّفنا معًا على مثال جيّد عن الأمور التي يجب عليك تجنّبها، حان الوقت للتعرف على ما يجب عليك فعله في هذا الصّدد. سأطرح فيما يلي بعض الأمثلة على عروض قوية تستند على أرض ثابتة، عروض تستحق القراءة وتستحق الاختيار. نصائح لصناعة عرض جيدمن المؤكّد أن بعض الأفكار قد تبلورت لديك عن الأمور التي تجعل العرض جيًّدا بعد الاطلاع على الأخطاء التي ارتكبتها في عرضي الفظيع. ولتتشكّل لديك الصورة الكاملة عن الموضوع إليك بعض الإرشادات التي تضمن لك الحصول على عرض جيّد إن التزمت باتباعها. أبقه قصيرًا، فقرتان على الأكثر.لا تخرج عن الموضوع.لا تذكر عمرك وسنوات خبرتك على الإطلاق.لا تتباهى.أبقه بسيطًا.أظهر شخصيتك ولكن كن متواضعًا.تبدو هذه الخطوات سهلة أليس كذلك؟ عظيم، لنلق نظرة الآن على نموذجين من العروض التي يمكنك استخدامها. سيسلّط المثال الأول الضوء على ما ستفعله إن حصلت على طلب قصير لا يوضّح فيه العميل متطلّباته بصورة جيّدة. أما المثال الثاني فسيقدم مخطّطًا للطريقة التي ستجيب بها على الطلب الذي يحتوي على معلومات مفصّلة، مثل التخصّصات والأجر المطلوب والوقت الأمثل للاتصال. المثال الأول المثال الثاني: لماذا تجدي هذه الأمثلة نفعاحقّق هذان المثالان النتائج المرجوّة منهما لأنهما يستوفيان المعايير المطلوبة في الطلبات المُقدَّمة، ومن المؤكّد أن هذين المثالين يتطابقان بشكل تامّ مع الإرشادات التي استخلصناها من دراسة العرض القديم وتحليله ونقده. وللمراجعة فقط سنمرّ بسرعة على تلك الإرشادات: كلاهما قصير.عرض الأعمال، والسيرة الذاتية (إرفاق السيرة الذاتيّة أمر اختياري، أرفقها عندما يّطلب منك ذلك) ومعلومات الاتصال، كلّ ذلك معروض بصورة واضحة.لا وجود لمعلومات غير ذات صلة.كلاهما يدخل في صلب الموضوع بصورة مباشرة.أنت الآن على أتمّ الاستعداد للبحث عن العملاء وتمتلك الطريقة الصحيحة للتعريف عن نفسك، ماذا تنتظر إذًا؟ وقت التحديأرني في التعليقات كيف ستُظهر شخصيتك في الأمثلة السابقة، أتطلّع شوقًا إلى قراءة تعليقاتكم. ترجمة ـ بتصرّفـ للمقال How to Write a Freelance Pitch That Gets Clients لصاحبه Jamal Jackson. حقوق الصورة البارزة: Designed by Freepik.1 نقطة
-
إن عالم الويب أصبح جزءًا لا يتجزأ من حياتنا اليومية هذا ما يجعلنا نبتكر طُرقًا وأساليبَ جديدة ليكون قريبًا منا أكثر. نحنُ كمطوري ويب بحاجة دائمًا إلى إضافةِ لمساتٍ ساحرة وتصاميمَ مبتكرة لإنعاش موقع الويب والتفرّد بعنصر الإبداع في إظهار الموقع بأبهى حلّة وأجمل تصميم. سأضع بين يديك مقدمة لأهم خيارين قد يختار منهما مطوّر الويب عند الشروع في بناء وتصميم محتوى وعناصر موقع الويب. الخيار أو الأسلوب الأوّل وهو الأكثر شهرة بحكم قدمه هو العمل مع عناصر DOM في HTML هذا النهج الذي تستخدمه أنت و 99% من المطورين في العالم الذي يعتمد على إنشاء HTML ،CSS، و JavaScript ليكون لديك عناصر ورسومات تُظهرها بإبداعك الخاص. النهج الثاني والذي ظهر بظهور HTML5 وهو استخدام عنصر <canvas>. والذي يتيح لك أن تجرب وتتخيل الرسم بطريقةٍ أخرى وأكثر متعة غير تلك التي ألِفناها. إنّ كُلًّا من هذين الخيارين له استخدامه الخاص الذي يعتمد بالدرجة الأولى على درجةِ تعقيدِ عنصر التصميم الذي تودُّ إنشاءه، سأقوم بعرض لمحة سريعة عن الفروقات بين المنهجيتين واستخدام كل منهما. إن عملية ترجمة محتوى الصفحة وإظهارها على المتصفّح تسير وفق نظامين هما نظام وضع الاحتفاظ (retained mode (Dom والنظام الحالي أو الفوري (Immediate Mode (canvas. نظام وضع الاحتفاظ (Dom) في هذا النظام تقوم بإرسال العناصر والمحتويات التي قمتَ بإنشائها إلى Graphics API والذي بدوره يقوم بإظهارها على المتصفّح. في الشكل التالي توضيح لكيفية حدوث نظام وضع الاحتفاظ retained mode: النظام الحالي أو الفوري (Canvas) النظام الفوري أو الحالي الذي يعتمد على استخدام <canvas> يتمتع بلياقة عالية تجعله أهلًا لرفع الأحمال الثقيلة heavy lifting فإنك لا تقوم بتحديد ما ستود رسمه فقط بل تقوم بإنشاء وصيانة التصميم أي أن Graphics API الذي قام بالكثير من أجلك في نظام وضع الاحتفاظ retained mode لا يقوم بالشيء الكثير هنا. في الشكل التالي توضيح لكيفية حدوث النظام الفوري أو الحالي Immediate mode: بمجمل الأحوال فإن استخدام عنصر <canvas> أسرع بكثير من استخدام نظام وضع الاحتفاظ retained mode كما أنه يوفّر مرونة كبيرة مقارنة بوضع الاحتفاظ وخاصة في التّعامل مع عناصر كثيرة. توجد سيئة واحدة في استخدام <canvas> وهي في حال العمل على مساحة واسعة سيكون هناك نوعًا من البطء في الأداء. لا يمكنك تخيل ما قد تستطيع عمله في هذه الأداة فبإمكانك القيام برسومات بيانية، إنشاء رسوم بتأثيرات حركية Animations وعمل تراكيب صور photo Compositions أو حتى القيام بمعالجة الفيديو. تدعم Canvas جميع المُتصّفحات الحديثة: فيرفكس (الإصدار 1.5 وما فوق). safari و OS X Dashboard (على نظام ماك). IE (الإصدار 9 وما فوق). Chrome و Opera. لنبدأ الآن بالتعرف على عنصر <canvas> عن قرب وتَعلُّم كيفيّة إنشاء سياق لوحة ثنائي الأبعاد وتقوم برسم أول مثال لك على متصفّحك. الرقعة Canvas يبدو لنا للوهلة الأولى أن عنصر <canvas> يشبه عنصر <img> مع فارق واضح وكبير هو أن عنصر <canvas> ليس لديه خاصيّة src و alt. عنصر <canvas> لديه خاصيتان وحيدتان فقط هما العرض width والطول height، القيم الافتراضية هي 300 بكسل للعرض و 150 بكسل للطول. ككل عناصر HTML فإن عنصر <canvas> يعرف كوسم: <canvas id="tutorial" width="150" height="150"> </canvas> لا تعتبر الخاصيّة id خاصيّة محددة بالرُّقعة <canvas> ولكنها واحدة من الخصائص العامة لـHTML global Html attribute. يمكن تصميم عنصر <canvas> كأي عنصر صورة image وتحديد الخصائص مثل (margin ،border ،background، ...) مثل هذه الخصائص لا تؤثر على عملية الرسم الفعلي هي فقط تحدد الشكل العام للوحة <canvas>. المحتوى الاحتياطي Fallback Content بالرّغم من أنه لا يتم إظهار أو تشغيل عنصر Canvas في المتصفّحات غير الداعمة للـ HTML5 إلا أنه يمكنك إنشاء محتوى احتياطي fallback content ليحل محل <canvas> في المتصفّحات ذات الإصدارات القديمة نوعًا ما والتي لا تدعم HTML5 مثل إصدارات Internet Explorer IE السابقة للإصدار 9. يجب أن توفر دائمًا محتوى احتياطي في حال استخدامك لعنصر الرُّقعة <canvas> ليتم إظهارها على جميع أنواع وإصدارات المتصفّحات التي لا تدعمها. لتوفير محتوى احتياطي ستحتاج إلى إضافة نص أو صورة داخل وسم <canvas> بحيث حين يتم تشغيل الصفحة في متصفّح لا يدعم Canvas سيقوم المتصفّح بتجاهل العنصر الحاوي على المحتوى الاحتياطي وهو عنصر canvas ومن ثم إظهار المحتوى الاحتياطي الذي بداخلها. أما في حال دعم المتصفّح لعنصر Canvas فسيقوم بتجاهل المحتوى الاحتياطي ويقوم بعمل rendering تصيير لعنصر <canvas> بشكل طبيعي. على سبيل المثال لنقم بإنشاء <canvas> وتوفير محتوى احتياطي لها، سأقوم بعمل محتوى احتياطي عبارة عن نص وكذلك مثال آخر يكون المحتوى الاحتياطي فيه عبارة عن صورة <img>: <canvas id="stockGraph" width="150" height="150"> current stock price: $3.15 +0.15 </canvas> <canvas id="clock" width="150" height="150"> <img src="images/clock.png" width="150" height="150" alt=""/> </canvas> وسم الإغلاق </canvas> لا بد أنك لاحظت أن الوسم <img> مثلًا لا يتطلب وسم إغلاق ولا تتأثر بذلك باقي العناصر، عنصر في حين أن عنصر canvas يحتاج لوضع وسم الإغلاق </canvas> هو وسم مطلوب required وذلك لأنه في حال عدم وضعه سيتم اعتبار كل شيء في الصفحة بعد الوسم <canvas> هو عبارة عن محتوى احتياطي ولن يتم إظهاره. سياق التصيير The rendering Context يقوم عنصر <canvas> بإنشاء سطح ذو قياس ثابت يتسع لأكثر من سياق تصيير rendering context التي يتم استخدامها لإنشاء والتعامل مع المحتوى المعروض. سنركز هنا على سياق التصيير ثنائي الأبعاد 2D rendering context. يوجد سياقات أخرى توفر أنواعًا مختلفة من التصيير rendering مثل السياق ثلاثي الأبعاد WebGL الذي يرتكز على OpenGL ES. بطبيعة الحال عند إنشاء <canvas> ستكون فارغة ولإظهار شيء فإن السكربت يحتاج للوصول إلى سياق التصيير Rendering Context والرسم عليه. عنصر <canvas> يحتوى على دالة method تسمى ()getContext تستَخدم لتطبيق سياق التصيير Rendering Context ودوال الرسم الخاصة به، تأخذ الدالة ()getContext معاملًا واحدًا one parameter وهو نوع السياق، للرسومات ثنائية الأبعاد 2D Graphics نقوم بتحديد “2d” لنحصل على سياق تصيير ثنائي الأبعاد Canvas RenderingContext2D. كما في المثال التالي: var canvas = document.getElementById('tutorial'); var ctx = canvas.getContext('2d'); يجلب السطر الأول من السكربت العنصر <canvas> من خلال استدعاء الدالة ()document.getElementById، ثم تحديد نوع السياق عن طريق الدالة ()getContext. التأكد من الدعم Checking for support شرحنا في البداية أن المحتوى الاحتياطي يظهر في المتصفّحات التي لا تدعم عنصر <canvas> يمكن أيضًا للسكربت أن يقوم بالتأكُّد من الدّعم برمجيًا من خلال اختبار بسيط لوجود الدالة ()getContext. لنقم بتعديل الشيفرة البرمجية أعلاه ونستخدم السكربت في التأكد من دعم المتصفّح لعنصر <canvas> ليصبح على النحو التالي: var canvas = document.getElementById('tutorial'); if (canvas.getContext){ var ctx = canvas.getContext('2d'); // drawing code here } else { // <canvas> unsupported code here } قالب الهيكل Skeleton Template سأقوم ببناء قالب أساسي لاستخدامه كنقطة انطلاق لأمثلتنا اللاحقة. ملاحظة: ليس من الأمور الجيدة تضمين السكربت في وسم HTML ولكن قمت بذلك للحفاظ على المثال موجز ومختصر. <!DOCTYPE html> <html> <head> <meta charset="utf-8"/> <title>canvas tutorial</title> <script type="text/javascript"> function draw(){ var canvas = document.getElementById('tutorial'); if (canvas.getContext){ var ctx = canvas.getContext('2d'); } } </script> <style type="text/css"> canvas { border: 1px solid black; } </style> </head> <body onload="draw();"> <canvas id="tutorial" width="150" height="150"> </canvas> </body> </html> يحتوي السكربت على دالة تدعى ()draw التي تُنّفذ في حين الانتهاء من تحميل صفحة الويب، يتم ذلك عن طريق الاستماع للحدث load في الصفحة حيث يتم استدعاءه باستخدام ()window.setTimeout و ()window.setInterval أو أي معالج حدث آخر event handler طالما أنه يتم تحميل الصفحة أولًا. عند تنفيذ السكربت أعلاه سيظهر لنا الشكل التالي في صفحة الويب: تطبيق مثال بسيط دعونا نلقي نظرة على مثال بسيط يقوم برسم مستطيلين متقاطعين أحدهما يحوي على شفافية لونية alpha transparency. <!DOCTYPE html> <html> <head> <meta charset="utf-8"/> <script type="application/javascript"> function draw() { var canvas = document.getElementById("canvas"); if (canvas.getContext) { var ctx = canvas.getContext("2d"); ctx.fillStyle = "rgb(200,0,0)"; ctx.fillRect (10, 10, 55, 50); ctx.fillStyle = "rgba(0, 0, 200, 0.5)"; ctx.fillRect (30, 30, 55, 50); } } </script> </head> <body onload="draw();"> <canvas id="canvas" width="150" height="150"> </canvas> </body> </html> اعتمادًا على القالب الأساسي الذي أنشأتُه وضعت السكربت الخاص باستخدام سياق التصيير ()Rendering Context getContext ضمن الشرط if وذلك ليتم تنفيذه في حال تحقق وجود دعم للعنصر <canvas> من قِبل المتصفّح. تقوم الدالة ()getContext بإرجاع متغير يمكن اعتباره غرض object يحوي على مجموعة دوال تقوم بعمليات الرسم وإنشاء الأشكال. الخاصيّة fillStyle تقوم بتحديد اللّون الذي سيتم به تلوين العنصر التالي، تأخذ الخاصيّة fillStyle اللّون بنظام (RGB (Red, Green, Blue والشفافية opacity. لاحظ أنه تم تلوين المستطيل الأول باللون الأحمر حيث أخذ قيمة 200 في حقل red، والمستطيل الثاني بلون أزرق مع تحديد الشفافية opacity=0.5 أي سيكون ذو شفافية لونية بنسبة 50% (تأخذ الخاصيّة opacity قيمها من 0.0 -1.0). الدالة ()FillRect ترسم مستطيل ذو مساحة لونية كاملة solid color وذلك بتحديد إحداثيات النقاط الأربع للمستطيل الذي نود رسمه ابتداءً من الزاوية اليسارية العليا التي تأخذ احداثيات المركز (0,0). كانت هذه أبرز النقاط التي تحيطك بالمفاهيم الأساسية لاستخدام عنصر canvas في الدروس المقبلة ستكون الشروحات غنية للغاية وسترى إمكانيات مذهلة لعنصر canvas تشحذ أفكارك الابداعية بامتياز. المصادر1 نقطة
-
نُتابع معكم ما بدأناه في الجزء السّابق من المقال، وسنحاول رسم المسارات الصّحيحة للتّصاميم الموجّهة للطّباعة. آلية تصدير التّصاميم إلى المطبعةبعد الانتهاء من التّصميم الطّباعي بشكل كامل يأتي دور التّصدير إلى أفضل صيغة لإرساله إلى المطبعة إنشاء ملف جاهز للطّباعة في Adobe Photoshop 1- تأكدّ بأن تكون الألوان مفروزة وفق النّمط CMYK. 2- قُم بدمج العمل بالكامل عبر الذّهاب إلى نافذة الطّبقات ثم بالضّغط بالزّر الأيمن على الطّبقة السّفلية (الأرضية) والضّغط على Flatten Image. 3- خزّن العمل النّهائي على هيئة ملف PDF من خلال اتّباع ما يلي: File ثم Save as ثم اختر من القائمة المُنسدلة Format حفظ العمل على صيغة Photoshop PDF في المكان المُراد. 4- عند الضّغط على Save ستظهر لك نافذة تتطلّب بعض الإعدادات، احرص على اختيار القيم حسب الصّورة أدناه، ثم اضغط على Save PDF. إنشاء ملف جاهز للطباعة في Adobe illustrator1- تأكدّ بأن تكون الألوان مفروزة وفق النّمط CMYK. 2- عدّل جميع الخطوط إلى outlines من خلال اتّباع ما يلي: Select ثم All وبعد ذلك Type ثم Create outline. 3- خزّن العمل النهائي على هيئة ملف PDF من خلال اتّباع ما يلي: File ثم Save as ثم اختر من القائمة حفظ العمل على صيغة Adobe PDF في المكان المُراد. 4- عند الضّغط على Save ستظهر لك نافذة تتطلّب بعض الإعدادات، احرص على اختيار القيم حسب الصّور الثّلاث أدناه، ثم اضغط على Save PDF. إنشاء ملف جاهز للطباعة في Adobe indesign1- تأكدّ بأن تكون الألوان مفروزة وفق النمط CMYK. 2- اضغط File ثم Export ثم اختر من القائمة حفظ العمل على صيغة Adobe PDF في المكان المُراد واضغط Save. 3-عند الضّغط على Save ستظهر لك نافذة تتطلّب بعض الإعدادات، احرص على اختيار القيم حسب الصّور الثّلاث أدناه، ثم اضغط على Save PDF فرز التّصاميم الطّباعيّة في المطابع - الألواح الطباعيّة – المقاسات والتقسيماتهناك أنواع مُختلفة من الورق والتي تُشكّل الألواح الطّباعية ولعل أكثرها شيوعًا: الكوشيه "kosheh paper" والكرتون وورق العجينة وورق الطبع الأبيض. يأتي كل نوع من أنواع الورق وفق أحجام وكثافات وأوزان "Grams" مُختلفة تُستخدم حسب الطّلب، ويأتي بعضها بالسطح اللامع "Gloss" وبعضها بسطح المت أو المطفي "Matte". تحدثنا مُسبقاً عن أشهر الطابعات التّجاريّة الحالية الأوفسيت Offset ويأتي منها عدة مقاسات أشهرها: - الطابعات ذات المقاس الصغير (50 × 35 سم) ويُدعى اللّوح الطّباعي printing board أو ما يُعرف بالمُصطلح العربي الدّارج "ربُع فرخ" نسبة إلى أن الفرخ من مقاس (100 × 70 سم). - الطابعات ذات المقاس الكبير (100 × 70 سم) ويُدعى اللّوح الطّباعي "فرخ". أشهر مقاسات ألواح الطباعة المُستخدمة وتقسيماتها:المقاس الفرخ (100 × 70 سم) وأشهر تقسيماته: (50 × 70 سم) ويُدعى نصف فرخ (50 × 35 سم) ويُدعى ربع فرخ (25 × 35 سم) ويُدعى ثُمن فرخ هُناك تقسيمات ثانويّة أخرى تُوزّع بحسب مقاسات التصميم، فمثلاً بإمكان تقسيم الفرخ إلى 16 قطعة كلٍ منها بمقاس (25 × 17.5 سم). ليس بالضرورة أن تكون التصاميم مُطابقة تمامًا للتّوزيع على الفرخ، فمثلًا إن كان لدينا تصميم بالمقاس (33 × 70 سم) يتم تكراره على ثلاثة قطع ضمن الفرخ وتزداد مساحة صغيرة تُدعى استريشة (ورق مهدور – wasted paper)، لاحظ الصورة: مقاس الجاير الكبير (66 × 88 سم) وأشهر تقسيماته: (44 × 66 سم) ويُدعى نصف جاير (44 × 33 سم) ويُدعى ربع جاير (22 × 33 سم) ويُدعى ثُمن جاير ليس بالضّرورة أن تكون التّصاميم مُطابقة تمامًا للتوزيع على الجاير، فقد تزداد بعد التوزيع مساحات صغيرة تُدعى استريشة (ورق مهدور – wasted paper). التقنيات والإضافات الطباعيّةالفن الطّباعي لا يقتصر على الطّباعة المُلوّنّة فحسب، وإنّما تتخلّله العديد من الإضافات الطّباعيّة ومن أهمها: اللّون الإضافي (اللّون الخامس) Extra color print هو عبارة عن لون إضافي يُمكن إسقاطه بعد طباعة التّصميم بألوانه الأربع الأساسيّة CMYK، وعادة يكون هذا اللون فضيًّا أو ذهبيًّا أو حتى أسود، ويُستخدم لأمرين أساسيين: - إضفاء حركة جذّابة على الطّباعة للفت الانتباه (ألم تلحظ يومًا إعلانًا مُميّزًا داخل مجلّة يحوي لونًا فضّيًّا أو ذهبيًّا بارزًا وبقوّة). - يُستخدم أيضًا لإضافة معلومات قابلة للإزالة أو التّعديل على الطّبعة الأساسيّة (مثل الوزن – التّاريخ – عنوان مُعيّن .. الخ)، فلو افترضنا على سبيل المثال تصميمًا لمُنتج مُعيّن يحوي شفرة خيطيّة "Barcode" مطبوعًا فوق التّصميم على هيئة لون خامس إضافي، وتغيّرت هذه الشفرة لاحقًا لسبب مُعيّن، بالإمكان هُنا عدم التكلّف بعمل المُسوّدات والصفائح المعدنيّة الطباعيّة مُجدّداً، وإنما الاكتفاء فقط بتعديل صفيحة الشّفرة الخيطيّة إلى صفيحة أخرى. مُلاحظة: اللّون الإضافي قد لا يكون لونًا خامسًا فقط بل قد يكون لونًا سادسًا أو سابعًا ... الخ (الفكرة هي أنه لون يُضاف بشكل مُنفصل بعد الطّباعة)، ويُسمى هذا اللون في Photoshop بـ Special color، وله قناة لونيّة مُستقلّة داخل مكان الألوان. الختم الحراري Hot Foil Stamping بعد الانتهاء من الطّباعة، بالإمكان وفي مواضع مُعيّنة إضافة طباعة حراريّة فوق التّصميم، كزخرفة أو ما شابه، ويُستخدم اللّون الذّهبي في الغالب لهذا الإجراء. التقنيّة عبارة عن ورق يوضع بين الطّبعة وبين مكبس حراري (جهاز يدوي بسيط غالبًا) بحيث يُطبع الشّكل (المحفور على المعدن) على التّصميم، ويُطلق على هذا النّوع من الطّباعة أيضًا اسم "البصمة”. لتوجيه الموضوع إلى المطبعة يتوجب على المُصمّم إرسال ملف مفتوح مُنفصل يحوي رسمة الشّكل المطلوب طباعته باللون الأسود الدّاكن مع توضيح مكان تموضع الشّكل داخل الطّبعة وإعلام المطبعة باللون المُراد (ذهبي – فضي .. الخ). يُنفّذ هذا النّوع من الطّباعة على الجلد أو الأوراق المُلوّنة غير المطبوعة في الغالب (تُستخدم بشكل كبير في الطّباعة على المصاحف والأجندات المُغلّفة بجلد أو ورق جلدي). التلميع البُقعي Spot UV عبارة عن تقنية جماليّة تُستخدم في مطبوعات المُنتجات أو المجلات أو البطاقات لإضافة لمعة بلاستيكيّة ضمن مواضع مُحدّدة للفت الانتباه، وتُعدّ من أكثر التّقنيات الطّباعيّة الإضافيّة استخدامًا، وتتوفر طبقات مُختلفة من التّلميع البُقعي بحيث تكون النّتيجة ملساء مع السّطح أو تُشعر اللّامس ببروز نافر عن الطبعة. السُلفان Lamination عبارة عن طبقة حماية بلاستيكيّة رقيقة تُلصق بشكل آلي على الطّبعة، تُساهم في حماية الطّبعة من عوامل الجوّ وتزيد الورق أو الكرتون المطبوع متانة، وتُضفي عليه ثقلًا لونيًّا. هُناك نوعان من السُلفان (اللّامع Gloss – والمت أو المطفي Matte ). على المُصمّم أن يكون حريصًا على توجيه المطبعة إلى أفضل نوع يُناسب تصميمه بحسب الشّكل العام للتّصميم وحسب الأسواق الموجّهة إليه. مُلاحظة: يبرز السُلفان اللّميع بشكل أفضل في تصاميم المُنتجات ذات الألوان البرّاقة وتُعطيها شكلًا بلاستيكيًّا لميعًا، أما السُلفان المت أو المطفي تزيد من ثقل المطبوعات التي تحمل الطابع الفخم (مثال: مطويّة "Brochure" لشركة أزياء بألوان بنّية فاتحة وتدرّجات البُني سيكون السُلفان المت أفضل عليه من اللميع). إرشادات عليك اتباعها كمُصمم عند إرسالك التصميم إلى المطبعةللمُنتجات أو المطبوعات ذات الأحرف المقصوصة بطرق غير مألوفة يجب أن تُرفق قوالب القص "die cutting" إلى المطبعة بشكل مُنفصل. رسم قوالب القص بسيط ويُفضّل أن يتم باستخدام برنامج Adobe illustrator نظرًا لدقّة الرّسم، بحيث يُعبّر الخط المُتّصل عن حد القصّ، أما الخط المُتقطّع فيُعبّر عن الطّي (الثّني). يُفضّل إرسال نماذج مطبوعة بشكل مُسبق (إن وجدت) إلى المطبعة لتقوم بدورها بمُطابقة الألوان عند الطّباعة، وإن لم يتوفر الأمر وكان لديك تصميم مُهتم بوصوله إلى أفضل نتيجة خاصّة ترغبها بإمكانك حينها أن تطلب من المطبعة بالتّواجد لديها عند بداية الطّباعة للاطلاع على النّماذج الأوّلية قبل إتمام كامل الطّبعة. معلومات وإرشادات هامّة لضمان أفضل نتائجللحصول على لون صافي اجعل نسبته 100% وباقي النّسب 0%. لاستعراض الألوان الأساسية الأربع بشكل سريع عبر برنامج أدوبي فوتوشوب اضغط Ctrl + 1 و Ctrl + 2 و Ctrl + 3 و Ctrl + 4. يتوجّب عليك كمُصمّم (مُتخصّص في التّصاميم الطّباعيّة) امتلاك كُتيّب (جدول النِمَر اللونيّة - Pantone Color Chart) خاص بالألوان CMYK لسحب أرقام الألوان المرغوبة مُباشرة، وهو يأتي عادة مع الطابعات الكبيرة عند شراءها، لكن بإمكانك البحث عنه بشكل مُنفصل وشراءه عبر أحد المتاجر الإلكترونية. * بالإمكان تحميل الجداول على هيئة ملفات PDF مجانيّة باستخدام الرابط التالي: http://www.tidyform.com/cmyk-color-chart.html حاول على الدّوام استخدام نِمَر لونيّة ثابتة، وخاصة في تصاميم المُنتجات للشركات وأيضاً الهويات Brands، بحيث أنه وببساطة لن تقلق بتغيير المطبعة وستضمن ظهور المطبوعات بنفس درجة اللون بالضبط في كُل مرة. ابتعد عن التدرجات اللونيّة الكثيرة واستخدم التقنيّة التي تجمع بين البساطة والأناقة عبر استخدام ألوان ثابتة واضحة موزّعة بشكل سليم. ابتعد عن الألوان الفاتحة جدًّا (الباهتة) وعلى أقل تقدير اختر كثافة اللون أكثر من 8% حتى تظهر بعد الطباعة، وتذكّر كُلما كانت كثافة اللّون أكثر وقلّ اختلاطه مع ألوان أخرى كُلما كانت النتائج أفضل. استخدم برنامج Adobe illustrator في حالة النّصوص الصّغيرة جدًّا، لأنه يعتمد على التصميم الشُّعاعي عالي الوضوح مهما كبر أو صغر الحجم، بينما Adobe Photoshop يُظهر تكسيرًا في الخطوط الصغيرة جدًّا كونه يعتمد نظام النُقاط Pixels. بالإمكان الدّمج في العمل بين فوتوشوب للرّسوميات والتّعديل على الصّور، وإليستريتور للكتابة. سوف تحتاج أحيانًا كمُصمّم لأن تضع نُصوصًا كتابيّة مُتناهية في الصّغر لسبب صغر حجم المُنتج أو كثرة المعلومات الكتابيّة المطلوبة (كالمُحتويات والقيمة الغذائية التي تُوضع في مواضع مُعينة خلف المُنتج).1 نقطة
-
الفرق هو أن حلقة each تنفذ الكتلة المُقدمة لكل عنصر من المصفوفة ومن ثم ترجع المصفوفة نفسها. أما map فهي تنفذ الكتلة المُقدمة لكل عنصر من المصفوفة أيضًا لكنها ترجع مصفوفة جديدة بالقيم الجديدة التي تم إرجاعها بعد تنفيذ الكتلة (block). فعلى سبيل المثال لنفترض أن لدينا المصفوفة التالي: arr = ["tokyo", "london", "rio"] عندما ننفذ عليها حلقة each ستكون النتيجة كالتالي: arr.each { |element| element.capitalize } # => ["tokyo", "london", "rio"] نلاحظ أن النتيجة هي نفس المصفوفة على الرغم من تنفيذ الشيفرة البرمجية الموجود داخل كتلة each لكن القيم التي تغيرت لم يتم إرجاعها. لاحظ أنه عندما نعمل نفس الشيء مع map فسيتم إرجاع مصفوفة بالتغييرات التي أردناها: arr.map { |element| element.capitalize } # => ["Tokyo", "London", "Rio"]1 نقطة
-
يعتبر مفهوما Overriding و Overloading من المفاهيم الهامة جدًا في البرمجة غرضية التوجه OOP. Overriding: هو نوع من الدوال أو التوابع تحدث أو تُنشأ في صف class عندما يرث من صف آخر، حيث يقوم التابع Overriding باستبدال التابع الموروث من الصف الأساسي وتنفيذ سلوك آخر مثال: public class Car { public static void main (String [] args) { Car a = new Car(); Car b = new Ferrari(); //Car ref, but a Ferrari object a.start(); // Runs the Car version of start() b.start(); // Runs the Ferrari version of start() } } class Car { public void start() { System.out.println("This is a Generic start to any Car"); } } class Ferrari extends Car { public void start() { System.out.println("Lets start the Ferrari and go out for a cool Party."); } }أما Overriding فهو عبارة عن عملية تقوم بتعريف عدة توابع methods بنفس الاسم ولكن بمعاملات parameters مختلفة. يمكن عمل Overriding لتابع إما بتغيير عدد المعاملات (number of arguments) أو نوعها (Data Type) مثال: class CalculateArea{ void Area(int length){System.out.println(length*2);} void Area(int length , int width){System.out.println(length*width);} public static void main(String args[]){ CalculateArea obj=new CalculateArea(); obj.Area(10); // Area of a Square obj.Area(20,20); // Area of a Rectangle } }1 نقطة
-
للأسف حتى بالنسبة للكثير من الأجهزة متوسطة القدرات تزداد المتطلبات التشغيلية للكثير من البرامج بما يُشعر الكثيرين بضرورة شراء الأجهزة الأحدث باستمرار. بكل الأحوال فكما قلتي تُوفّر عدد من الشركات نسخ مُخففة من برامجها للأجهزة القديمة بعض الشيء وإليك قائمة بأهم هذه التطبيقات: تطبيق فيس بوك لايت، بحجم أقل من 500 كيلوبايت.تطبيق الدردشة لاين لايت، بحجم 1 ميغابايت.متصفح الوِب الشهير uc mini (أفضل متصفح خفيف عن تجربة).مدير الأمان 360s بنسخة لايت.كيبورد go بنسخة لايت.1 نقطة
-
هناك العديد من التقنيات التي تتيح للمصور التقاط صور ليلية بدقة عالية، منها: تقنية التصوير الحراري 'Termal Imaging':وتعتمد بالأساس على التقاط الأشعة تحت الحمراء Infrared بعيدة المدى (9.000-14.00 ملم)،أي بصيغة أخرى تعتمد على حرارة الأشياء. ومعظم الحيوانات أكثر حرارة من الوسط المحيط بها، مما يجعلها تظهر بشكل أكثر وضوح ودقيق. من بين سلبيات الكاميرات الحرارية أنها مكلفة للغاية وتتميز بدقة ضعيفة بالمقارنة مع باقي الكاميرات، وتعتمد بشكل أساس على الحرارة كمعيار للالتقاط الصور أي أنها لا يمكن أن تُظهر المحيط بدقة جيدة كتلك المتعلقة بالحيوانات، لعدم توفر نفس الحرارة. تقنية الأشعة تحت الحمراء القريبة مع وجود الإضاءة:نفس المبدأ السابق لكن مع تواجد بعض الإضاءة، تصل إلى مدى (700-1000ملم) ،وتستعمل الضوء المثبت على الكاميرا كمصدر للإضاءة أو الفلاش في حالة تسجيل فيديو، ويتميز هذا لنوع من الضوء بعدم رؤيته من قبل العديد من الحيوانات، مما يساعد على عدم نفورها والتقاط الصور أوضح، كما أنه ذو إضاءة خافتة. تقنية تكثيف الصورة 'Image Intensification':وهي بالاعتماد على تكثيف الضوء المُستَقبل من طرف الكاميرا، مما يتيح رؤية أفضل، بالإضافة إلى تقنية الأشعة تحت الحمراء التي تعتبر الركيزة الأساسية للالتقاط والتصوير ليلا. بالنسبة للمهتمين بالتصوير، التقاط الصور الليلية -كما أسلفت الذكر- يستوجب التوفر على كاميرا بمميزات عالية، ويلجأ البعض إلى توفير عامل الإضاءة للتمكن من التصوير ليلا وتفادي التكاليف المرتفعة للكاميرات الخاصة، أما الهاتف الذكي أظنه محدود المميزات في هذا الجانب.1 نقطة
-
ساد اتجاه قويّ هذا العام بين المسوقين من مختلف أنحاء العالم لتأكيد قدرتهم على زيادة الاستثمار ضمن مواقع التواصل الاجتماعي، حيث انتشرت العديد من الدراسات التي تبرهن على الدور الكبير لهذه الوسائل بوصفها إحدى أهم أدوات المسوقين، كما تدعي الكثير من الدورات التدريبية المتاحة على الإنترنت – المجانية منها والمدفوعة - قدرتها على تحويلك إلى "ساحر" على وسائل التواصل الاجتماعي في دقائق معدودة. باختصار، أمدت وسائل التواصل الاجتماعي المسوقين بالقدرة على العمل بشكل عالمي بعد أن كان عملهم قاصرًا على نطاق ضيق. من هذا المنطلق سأفترض حضورك على وسائل التواصل الاجتماعي أو أنك ستسعى إلى ذلك قريبا. في العموم إن كنتَ تُدير حسابك الشخصي على الشبكات الاجتماعية بطريقة مذهلة لسنوات عدّة، فإنه ينبغي عليك معرفة أن تسويق الأعمال على هذه الشبكات أمرٌ مختلفٌ تمامًا. فما قد يحقّق نتائج رائعة على حسابك الشخصي قد يأتي أحيانًا بنتائج كارثية لعلامتك التجارية. إليك بعض الأخطاء الشائعة والقاتلة على مواقع التواصل الاجتماعي والتي ينبغي عليك الابتعاد عنها على الفور: 1. العدوانية مع العملاءرغم بداهة ذلك إلا أنّه من الجيد التأكيد على أن مواقع التواصل الاجتماعي هي أدوات للتواصل مع المعجبين والمتابعين، لذا ينبغي عليك كسب صداقتهم وعدم الدخول في خلافاتٍ معهم.ففي حين أنه من السهل جدًا بالنسبة للمستخدمين تنفيس الإحباط والغضب على علامتك التجارية باستخدام الشبكات الاجتماعية، رغم ذلك فإن الرد بنفس الإساءة والغضب على العملاء مهما كان أسلوبهم سيئًا فكرة أكثر سوءًا . فعملك كراعٍ لعلامة تجارية هو تهدئة العملاء الغاضبين والحفاظ على انطباع لائق بعلامتك أمام باقي المعجبين، تذكّر دومًا أنه لا مجال لمشادة كلامية مع العملاء الساخطين. 2. مشاركة محتوى غير ذي صلةتؤّكد جميع نصائح التسويق على الإنترنت ودون استثناء على أهمية نشر المواضيع التي تلقى اهتمام جمهورك فقط وذات الصلة الوثيقة بعلامتك التجارية، فالجمهور إذا لم يهتمّ لمنشوراتك فإنه بطبيعة الحال سيفقد اهتمامه بعلامتك التجارية، وكما أن تراجع معدل المشاركة يقلل من استخدام العلامة التجارية وبالتالي يخفّض من المبيعات، لذا لا تتورط منذ البداية في هذه المتتالية وتجنب المواضيع غير المرتبطة بك لأنها وباء مميت للمبيعات. 3. تكرار نشر ذات المواضيع مرات عديدةما هو الأسوأ من نشر المواضيع غير المرتبطة بعلامتك التجارية؟ إنه إعادة نشر المواضيع لمرات عدّة. لا أحد يُحب الملل؛ لذا اسعَ جاهدًا كي لا تكون واحدًا من أولئك المُملين على وسائل التواصل الاجتماعي، وإن كنتَ تواجه مشكلة في إيجاد مواضيع جديدة ذات صلة بعلامتك التجارية كل يوم، فاطّلع على ما تنشره العلامات التجارية الأخرى ذات الصلة بك وأعد نشرها بعد تصريح منهم. إليك أسلوبًا آخر، أجرِ مسابقات أو اطرح بعض الأسئلة على متابعيك في تلك الأيام التي لا تجد فيها أفكارًا للكتابة، افعل أي شيء باستثناء تكرار نفس المضمون عدّة مرات. بكل الأحوال إذا كنت لا تزال مُصرًا على إعادة استخدام محتوىً قديم، فاعمل على إعادة توظيفه "كتغيير هيئته؛ فإن كان نصًا حوّله إلى فيديو مثلا أو غيّر منصة النشر، وهكذا باختصار بثّ حياة جديدة في الموضوع القديم ثم أعد نشره مجددًا. 4. صفحات التواصل الاجتماعي الميتةيشتدّ حماس العديد من أصحاب العمل عند إنشائهم حسابات العلامة التجارية الخاصة بهم على منصات التواصل الاجتماعي، وفي حين يتمكّن عدّدٌ منهم من الحفاظ على حضورهم الفعّال على وسائل التواصل الاجتماعي وإبقاء حساباتهم نشطة وتنمية المزيد من المعجبين، إلا أن جزءًا آخر كبير من الشركات تنشغل عن القيام ببعض الأعمال اليومية اتجاه حساباتها على مواقع التواصل الاجتماعي أو تتشتت جهودها في عدد كبير من هذه المنصات وتكون النتيجة هي صفحات اجتماعية ميّتة.تجنب هذا الخطأ عن طريق البدء مع أكثر منصة اجتماعية ملائمة لجمهورك المستهدف، واحصر جهودك بدايةً بها ، وما أن تبدأ بتحقيق المبيعات انتقل إلى منصة أخرى ملائمة لعملائك. على سبيل المثال: إذا كانت علامتك التجارية تستهدف النساء، يمكنك أن تبدأ على موقع Pinterest ثم توسّع ببطء إلى فيس بوك وتوتير و LinkedIn بهذا الترتيب . 5. الإلحاح بطلبات الشراءكيف يمكن للتركيز الزائد على المبيعات في منشوراتك ضمن وسائل التواصل الاجتماعي أن يؤثر سلبًا عليها ؟ أليس في ذلك تناقضًا؟ لا ليس هناك تناقض، يعود ذلك لسبب وجيه وهو أن وسائل التوصل الاجتماعي ليست المكان الذي يقصده المشتركون من أجل التسوق، بل بهدف التواصل مع الأهل والأصدقاء. لذا إن قاموا بمتابعتك فهذا شيءٌ ثانوي لهم ، وليس الغرض الأساسي من وجودهم هناك. لذا تجنب وضع المنشورات التي تجعلك تبدو كالباعة المتجولين والذين يُلحّون على الزبائن بالشراء، فهذه الطريقة ستفقد متابعيك اهتمامهم بعلامتك التجارية ومن ثم البحث عن خيارٍ أفضل. 6. عدم الرد على التعليقات أو الاستفساراتليست الشبكات الاجتماعية مجرد منبر للتعبير عن وجهات نظرك فقط ، فهي علاوةً على ذلك منصة للحوار بين علامتك التجارية والمستخدمين. لذا لا تكتفي بنشر آرائك ومنشوراتك ومن ثم الاكتفاء بالمرور السريع على تعليقات المستخدمين. توقف خذ نفسًا عميقًا ثم قم بالرد عليهم كلًا على حدا، أشعرهم بالاهتمام ، أجب عن الاستفسارات بشأن منتجاتك، عالج طلبات خدمة العملاء وأنهِ أيّة قضايا عالقة بأسرع ما يمكن. أشعرهم بأن خدمة العملاء لديك موجودة وقوية، وأنك تتحكم في زمام الأمور. 7. عدم تخصيص ساعة على الأقل يوميا لوسائل التواصل الاجتماعيالشبكات الاجتماعية أدوات قوية للغاية حيث يمكنها أن تقدّم لك كل ما تريد معرفته كنِسب المشاهدين، النقرات، التحويلات والمبيعات. رغم ذلك فإنه لن يمكنك تحقيق نتائج مرضية بمجرّد إنشاء حساب ثم الجلوس ساكنًا ، بل تحتاج إلى متابعة العمل لجني ثماره. في العموم تُخصّص الشركات عادةً أفرادًا بعينهم للتعامل مع حسابات التواصل الاجتماعي، أما إذا لم تملك ميزانية كافية لذلك ، فكن متأكدًا أنت وفريقك من تخصيص ساعة واحدة على الأقل كل يوم كي تقوم بالآتي: متابعة ما ينشر حول العلامة التجارية الخاصة بك.الرد على استفسارات العملاء والتعليقات.إنشاء ومعالجة ونشر المحتوى.تتبع وقياس وتحليل أثر وسائل التواصل الاجتماعي في إجمالي الحركة على موقعك والتحويلات المتحققة من هذه الشبكات.المزيدكانت هذه أهم تعليقاتي على عاداتنا في التعامل مع وسائل التواصل الاجتماعي والتي يمكن أن تؤثر مباشرة على المبيعات. هل تنطوي تجربتك على أي من العادات السامة الأخرى؟ بادلنا الأفكار، فنحن نُحب أن نسمع منك. ترجمة - وبتصرّف- للمقال Toxic Things You Do on Social Media That Are Killing Your Sales لصاحبه Simon Horton.1 نقطة
-
هذا هو فهرس مواضيع كتب ردهات الرسمية وتحتوي على كل ما يجب تعلمه للحصول على الشهادة: 1- نظرة عامة على أنظمة لينكس وشهادة ردهات. 2- الوصول إلى سطر الأوامر. 3- إدارة الملفات عن طريق سطر الأوامر. 4- الحصول على المساعدة في نظام ردهات. 5- الإطلاع على الملفات النصية وإنشاؤها وتعديلها. 6- إدارة المستخدمين والمجموعات المحلية. 7- الصلاحيات في نظام لينكس. 8- مراقبة وإدارة عمليات لينكس. 9- التحكم بـ services و Daemons. 10- تكوين وتأمين خدمة OpenSSH. 11- تحليل وخزن السجلات. 12- إدارة الشبكة في نظام ردهات. 13- أرشفة ونسخ الملفات بين الأنظمة. 14- تثبيت وتحديث حزم البرامج. 15- الوصول إلى أنظمة ملفات لينكس. 16- استخدام الأنظمة الافتراضية. 17- تشغيل التثبيت بشكل آلي باستخدام Kickstart. 18- استخدام التعابير النمطية في grep. 19- إنشاء وتعديل الملفات النصية باستخدام VIM. 20- جدولة مهام لينكس المستقبلية. 21- إدارة أولوية عمليات لينكس. 22- تحكم بالوصول إلى الملفات باستخدام قوائم تحكم الوصول -Access Control Lists (ACLs)- 23- إدارة أمن SELinux. 24- الاتصال بمستخدمي ومجموعات شبكة مُعرفة. 25- إضافة أقراص وأقسام وأنظمة ملفات لنظام لينكس. 26- إدارة LVM. 27- الوصول إلى تخزينات الشبكة عن طريق استخدام نظام ملفات الشبكة (NFS). 28- الوصول إلى تخزينات الشبكة عن طريق استخدام SMB. 29- التحكم وكشف الأخطاء وإصلاحها في عملية إقلاع نظام ردهات. 30- تَقْييد اتصالات الشبكة باستخدام firewalld.1 نقطة