تعلّم المبادئ الحصول على وظيفة تطوير برنامج
يوجد نوعان أساسيان فيما يخص تطوير البرامج: تطوير التطبيقات و تطوير أنظمة التشغيل. يرتكز تطوير التطبيقات على إنشاء برامج لتلبية احتياجات المستخدمين، بدءًا بتطبيقات الهواتف المحمولة ووصولًا إلى ألعاب الفيديو التي تُنشر على نطاق واسع وبرامج المحاسبة المصممة لاستخدام الشركات وغيرها. بينما يرتكز تطوير النظم على على إنشاء وتطوير أنظمة تشغيل باستخدام أسلوب تطوير "دورة الحياة" ويتضمّن تطوير الأنظمة عادة قابلية استخدام الشبكة وأمان البيانات. يمكن لأي شخص ابتكار أفكار جديدة، وما يميز مطوّري البرمجيات هو تمكنهم من تحويل هذه الأفكار إلى شيء ملموس. يجب أن تمتلك خبرة جيدة في كتابة الرموز البرمجية وأن تتمكن من إنتاج نماذج مبدئية بسيطة حتى إن كنت ترغب بالعمل على تصميم البرامج فقط. يوجد الكثير من لغات البرمجة التي يمكن أن تتعلمها بنفسك. إليك بعض لغات البرمجة المفيدة والمهمة:   سي: لغة سي أحد أقدم لغات البرمجة التي لا تزال مستخدمة حتى عصرنا الحالي وهي أساس معظم لغات البرمجة الأخرى في هذه القائمة. تستخدم لغة سي لتطوير برمجيات ذات مستوى منخفض وهي تتفاعل مع عتاد جهاز الكمبيوتر عن قرب. سي بلس بلس: هذه هي النسخة غرضية التوجّه من لغة سي وهي أكثر لغات البرمجة شيوعًا حول العالم. يتم تطوير الكثير من البرامج مثل كروم وفايرفوكس وفوتوشوب وغيرها الكثير باستخدام لغة سي بلس بلس، كما أن هذه اللغة تشتهر باستخدامها في إنشاء ألعاب الفيديو. هناك طلب كبير على مطوّري لغة سي بلس بلس دائمًا. جافا: تعدّ لغة جافا تطورًا للغة سي بلس بلس وهي تستخدم بسبب سهولة جعل تطبيقاتها محمولة. يمكن لأي نظام تشغيل تقريبًا تشغيل بيئة جافا افتراضية مما يسمح له بتشغيل برامج جافا. تستخدم هذه اللغة عادة لتطوير ألعاب الفيديو وبرامج الشركات، كما ينصح بها الكثير من الأشخاص كلغة برمجة أساسية. سي شارب: لغة سي شارب عبارة عن لغة برمجة مبنية على نظام التشغيل ويندوز وهي جزء من بيئة دوت نت التي تصدرها مايكروسوفت. هناك ارتباط وثيق بين لغتي جافا وسي شارب ويمكنك على الأرجح الانتقال إلى لغة سي شارب بسرعة إن تعلّمت لغة جافا. هذه اللغة مفيدة على وجه الخصوص للمطوّرين الذين يعملون على نظام التشغيل ويندوز أو ويندوز للهواتف المحمولة.  سي غرضية التوجه: تعدّ هذه اللغة أحد لغات البرمجة الأخرى المشتقة من لغة سي وهي معدّه خصيصًا لأنظمة أبل. تشتهر هذه اللغة بين مطوّري تطبيقات آي فون وآي باد وهي أحد اللغات الرائعة التي يمكن تعلّمها إن كنت تفكّر بالعمل الحرّ.  بايثون: لغة بايثون واحدة من لغات البرمجة التي يسهل تعلّمها على الإطلاق وتختص لغة بايثون بتطوير برمجيات ويب. بي اتش بي: لا تختص لغة بي اتش بي بتطوير البرامج بشكل صريح، إلا أنها لغة أساسية إن كنت مهتمًا بتطوير برامج ويب. هناك دائمًا الكثير من العمل لمطوّري لغة بي اتش بي، على الرغم من أنها ليست مربحة بقدر تطوير البرامج. تمتلك معظم المكتبات أقسامًا كاملة مخصصة لكتب البرمجة وهناك الكثير من كتب البرمجة المتاحة على منصة أمازون والمتاجر الإلكترونية الأخرى. كتب البرمجة الجيدة هي أفضل مصدر تعليمي يمكنك أن تجده، حيث يمكنك استخدامها كمرجع سريع أثناء العمل على مشروعاتك البرمجية. إضافة إلى الكتب، تعدّ شبكة الإنترنت كنزًا ثمينًا يحتوي على الكثير من الأدلة الإرشادية والمقالات التعليمية. يمكنك البحث على شبكة الإنترنت عن مصادر لتعلم لغة البرمجة التي ترغب بها عبر منصات مثل: كوود أكاديمي و كود.أورج وبينتو وأوداسيتي وأوديمي وخان أكاديمي ودابليو 3 سكوولز وغيرهم الكثير. سوف تستفيد بالتأكيد من الانضمام لبعض صفوف تعلّم البرمجة في جامعة أو مركز تعلّم، على الرغم من أنك لا تحتاج لدرجة علمية حتى تبدأ في مجال تطوير البرامج، حيث يمنحك ذلك فرصة للتعلّم بشكل فردي ويضعك في تحديات لحل مشكلات لن يتاح لك حلها إن كنت تتعلّم من تلقاء نفسك.  تكلّف الصفوف الدراسية المال، لذا احرص على الانخراط في صفوف دراسية تساعدك على تعلّم ما تحتاج إليه. على الرغم من تمكّن العديد من مطوّري البرامج من الدخول إلى مجال تطوير البرمجيات اعتمادًا على مهاراتهم فقط، يمكن تمييز نفسك عن الباقين إن كنت تمتلك درجة جامعية في مجال علوم الكمبيوتر. تمنحك الدرجة الجامعية خلفية معرفية أوسع وتمكّنك من الوصول إلى صفوف تعليمية أكثر إفادة، مثل: الرياضيات والمنطق. ابدأ بالعمل على مشروعات شخصية قبل تجربة تطبيق مهاراتك البرمجية في العالم الحقيقي وتحدّ نفسك لحل المشكلات باستخدام لغة البرمجة. يساعدك ذلك على تطوير مهاراتك وتحسين سيرتك الذاتية.  حاول مثلًا أن تصمّم برنامج تقويم خاص بك عوضًا عن استخدام برنامج التقويم الموجود في جهاز الكمبيوتر. إن كنت مهتمًا بتطوير الألعاب، اعمل على ألعاب فيديو بسيطة لا ترتكّز على الرسوميات أو القواعد الميكانيكية المعقدة واعمل عوضًا عن ذلك على جعل الألعاب مرحة وفريدة. وجود مجموعة ألعاب صغيرة أنشأتها بنفسك في معرض أعمالك سيكون أمرًا رائعًا. شبكة الإنترنت طريقة رائعة للتواصل مع مطوّرين آخرين، لذا اطلب المساعدة على مواقع إلكترونية، مثل: ستاك أوفر فلو، إن واجهت عثرة في مشروعك. احرص على طرح سؤالك بشكل ذكي وتأكد من أن بإمكانك إثبات تجربتك للعديد من الحلول الممكنة. اعمل على مشروعاتك الشخصية كل يوم، حتى وإن كان لمدة لساعة واحدة فقط، حيث يساعدك ذلك على تجديد نشاطك والاستمرار بتعلّم تقنيات جديدة. نجح الكثير من المطوّرين في تعلّم لغة برمجة عن طريق الحرص على التعامل معها بشكل يومي. خصّص وقتًا كل يوم للبرمجة أو حدّد وقت تسليم يجب الالتزام به. حاول أن تعمل على مشروعاتك يوميًا على مدار الأسبوع حتى تتمكن من الاستراحة في عطلة نهاية الأسبوع. على الرغم من أن هذه المشروعات لن تربحك بقدر وظائف الدوام الكامل وأنها أقل اعتمادية، يمكنك إضافة مشاريع جديدة إلى معرض أعمالك بهذه الطريقة. تفقّد مواقع مثل إي لانس أو أوديسك (الذي يعرف حاليًا باسم أب وورك) للبحث عن مشاريع عمل. على الرغم من أن الحصول على عمل للمرة الأولى أمر صعب، ستسهل الأمور كثيرًا بعد الحصول على عقدك الأول.  هاكرز نيوز مصدر رائع للحصول على عقود عمل حرّة. تفقّد قسم "اسأل". على الرغم من أنك قد تشعر بالإغراء لتقديم سعر زهيد لقاء الحصول على عقد عمل، لا تعرض خدماتك بسعر زهيد للغاية حيث أن ذلك سيؤدي إلى عملك لقاء أجر أقل من الأجر الذي تستحقه وسيغضب الآخرين في مجال عملك مما سيقلل اتصالك بالآخرين. يمكن أن يؤدي العمل الجيد على التعاقدات الفردية إلى التحوّل لعمل بدوام كامل أحيانًا لذا قدّم أفضل ما لديك دائمًا. احضر أكبر عدد ممكن من المحادثات ومسابقات البرمجة حيث أن ذلك سيعرّضك لمزيد من الرموز البرمجية والمشكلات التي يمكن حلها وسيساعدك كذلك على مقابلة أشخاص آخرين في مجالك. التواصل عامل مهم في مجال مطوّري البرمجيات كما هو الحال مع أي مجال عمل آخر على الرغم من النظرة المعتادة لعمل المبرمجين وحدهم في قبو المنزل. بعد التمكن من إنهاء بضعة عقود فردية، يمكنك البدء بإرسال سيرتك الذاتية ومعرض أعمالك لمنظمات أكبر للحصول على وظيفة بدوام كامل. إضافة إلى مواقع مونستر وإنديد، هناك الكثير من المواقع الإلكترونية المخصصة لوظائف مطوّري البرامج مثل جيت هب جوبز وستاك أوفرفلو جوب بورد وأنجل ليست وكرانش بورد وهاير لايت وهاكر نيوز. مطوّر البرامج الجيد هو ذلك الذي يحترف أكثر من لغة برمجة عادة ويجب عليك تفريغ بعض الوقت لتوسيع معرفتك حول أساسيات لغة برمجة أو لغتين إضافيتين إضافة إلى المجهود الذي تبذله لتعلّم اللغة التي تعمل بها حيث يسهّل ذلك الانتقال إلى مشروعات جديدة ويزيد من رغبة أصحاب المشاريع بتوظيفك لتنفيذ مشروعاتهم. لن تحصل على مبلغ ضخم في المشاريع الأولى التي تعمل عليها كمطوّر برمجيات مبتدئ على الإطلاق والمهم في هذا الصدد هو أن سوق العمل في مجال البرمجيات قوي للغاية. يمكنك الانتقال إلى منصب جديد في شركة جديدة بسهولة إن لم تكن تحصل على مال كافٍ في منصبك الحالي (بشرط امتلاك المهارات اللازمة). تعامل مع وظائفك الأولى على أنها خبرة واجبة عوضًا عن التركيز على خطة تقاعدك في هذا الوقت المبكر. البرنامج الجيد هو الذي ينفذ مهمة تسهّل حياة المستخدم، لذا ابحث عن برنامج متاح حاليًا للمهمة التي ترغب بأدائها وابحث ما إن كان هناك طرق لتسهيل العملية أو تحسينها. ما يميّز البرنامج الجيد هو إيجاد المستخدم للكثير من الوظائف فيه.  افحص مهماتك اليومية على جهاز الكمبيوتر. هل يمكنك أن تصنع برنامجًا يقدر على إنجاز جزء من هذه المهام بشكل أوتوماتيكي؟ اكتب كل فكرة. يمكن أن تتحوّل فكرتك إلى شيء مفيد أو حتى عبقري حتى وإن بدت غريبة في بداية الأمر. تفقّد برامج أخرى. ما الذي تفعله هذه البرامج؟ هل يمكن تحسين أداء المهمة؟ ما الذي تفتقده هذه البرامج؟ يمكن أن تساعد الإجابة على هذه الأسئلة في ابتكار أفكارك الخاصة حول هذه البرامج. يحدّد هذا المستند خصائص المشروع وما تسعى إلى تحقيقه ويمكنك الرجوع إلى هذا المستند أثناء عملك على المشروع لمساعدتك أثناء عملية التطوير. اطّلع على هذا الدليل للحصول على إرشادات حول كتابة هذا المستند. النموذج الأولي عبارة عن برنامج يستعرض الوظيفة التي تسعى إلى تحقيقها والنموذج الأولي عبارة عن برنامج سريع يمكن العمل عليه لحين الوصول إلى تصميم يمكن استخدامه. إن كنت تُنشئ برنامج تقويم مثلًا، يفترض أن يكون النموذج المبدئي عبارة عن تقويم بسيط (يحوي تواريخ صحيحة!) وطريقة لإضافة الأحداث إليه.  يتغيّر النموذج المبدئي كثيرًا أثناء دورة التطوير عندما يخطر في بالك طرق جديدة للتعامل مع المشكلات أو عندما تفكر في فكرة جديدة ترغب بتضمينها. لا يشترط أن يكون النموذج الأولي جميلًا. في الحقيقة، يفترض أن يكون التصميم والمظهر آخر ما تفكّر فيه، بحيث تكون معظم البيانات عبارة عن نصوص فقط في حالة تطبيق التقويم مثلًا. المشكلات البرمجية مزعجة لكل مطوّري البرمجيات. قد يؤدي وجود أخطاء في الرموز البرمجية، وحالات الاستخدام غير المتوقعة، إلى الكثير من المشكلات في المنتج النهائي. اختبر المشروع قدر الإمكان أثناء استمرارك بالعمل عليه وابذل كل ما في وسعك لتعطيل البرنامج، واستفد من ذلك على منع تعرّضه للتعطّل في المستقبل. اطلب من أصدقائك وعائلتك أيضًا اختبار البرنامج وإعلامك بالنتائج. تساعدك أي طريقة لاختبار ردود فعل برنامجك عليه تحسينه وتطويره.  حاول أن تُدخل تواريخ غريبة إن كان برنامجك يتعامل مع التواريخ. يمكن أن تؤدي التواريخ الغريبة في أوقات مستقبلية إلى ظهور ردود فعل غريبة من البرنامج. أدخل أنواع متغيرات خاطئة. إن كنت تمتلك برنامجًا يطلب عمر المستخدم على سبيل المثال، اكتب كلمة عوضًا عن ذلك وراقب ردة فعل البرنامج. انقر على كل شيء إن كان لبرنامجك واجهة رسومية. ما الذي يحدث عند العودة إلى الشاشة السابقة أو النقر على الأزرار بترتيب خاطئ؟ يمكنك بالطبع إنشاء برامج شديدة البساطة لأغراض طور النماذج الأولية أثناء البرمجة، إلا أنك ستحتاج إلى بعض الوقت لتجميل المشروع إن كنت ترغب بأن يستخدمه أشخاص آخرون. يعني ذلك التأكد من سير البرنامج بشكل منطقي ووجود واجهة مستخدم نظيفة وسهلة الاستخدام وعدم وجود أخطاء برمجية كبيرة للغاية والتأكد من تجميل واجهة الاستخدام النهائية.  يمكن أن تكون مهام تصميم واجهة الاستخدام ووظائفها صعبة ومعقّدة للغاية وهناك أشخاص محترفون يمتهنون تصميم واجهات الاستخدام فقط. احرص فقط على أن يكون مشروعك الخاص سهل الاستخدام وغير مؤذٍ للعينين حيث أنك قد لا تتمكن من امتلاك واجهة استخدام احترافية بدون ميزانية وفريق مخصّصين لذلك. إن كنت تمتلك ميزانية مخصصة لواجهة الاستخدام، ستجد الكثير من مصمّمي الرسوميات الذين يعملون بشكل حرّ والذين يمكنهم تصميم واجهة استخدام لبرنامجك. ابحث عن مصمّم واجهات برمجية جيد واجعله جزءًا من فريق عملك إن كنت تمتلك مشروعًا قويًا ترى بأنه سيكون طفرة جديدة. جيت هب عبارة عن مجتمع مفتوح المصدر يسمح لك بمشاركة رموزك البرمجية مع الآخرين ويسمح لك ذلك بالحصول على أفكار حول الرمز البرمجي الذي كتبته وإفادة الآخرين الذين يبحثون عن حلول يمكن أن تكون قد توصلت إليها. جيت هب مصدر تعليمي رائع وطريقة جيدة لبناء معرض لمشروعاتك. يمكنك اختيار توزيع البرنامج أو عدم فعل ذلك بعد الانتهاء من برمجته وهناك عدة طرق تمكّنك من فعل ذلك في عصرنا الحالي اعتمادًا على نوع البرنامج الذي قمت بإنشائه.  امتلاك موقع إلكتروني شخصي أحد الطرق الشائعة لتوزيع المطوّرين المستقلين أو فرق التطوير الصغيرة لبرامجهم ولكن احرص على توثيق كل خصائص البرنامج وتضمين بعض لقطات الشاشة والأدلة الإرشادية. إن كنت تبيع برنامجك، احرص على امتلاك نظام دفع رقمي جيد وخادم لتوزيع البرنامج منه. هناك عدة متاجر إلكترونية يمكن الاستفادة منها عند تطوير برامج لأجهزة أو أنظمة تشغيل محددة حيث يمكنك مثلًا أن تبيع التطبيقات عبر متجر جوجل بلاي متجر تطبيقات أمازون أو موقعك الشخصي إن كنت تطوّر تطبيقات لأجهزة أندرويد.
حدّد النوع المبدئي للبرامج التي تهتم بتطويرها. تعلّم لغة برمجة. ابحث عن مصادر تساعدك على التعلّم. انضم لبعض صفوف التعلّم. اعمل على مشروعات شخصية. اطرح الأسئلة. تدرّب كل يوم. اقبل العقود الفردية. تواصل مع الآخرين على قدر الإمكان. تقدّم لوظائف الدوام الكامل. امتلك مجموعة متنوعة من المهارات. لا تشغل بالك بشأن الأجر. استجمع أفكارك. اكتب مستند تصميم. أنشئ نموذجًا أوليًا. اختبر البرنامج مرارًا وتكرارا. جمّل مشاريعك. ضع مشروعاتك على منصة جيت هب. انشر برنامجك.
https://www.wikihow.com/Develop-Software https://www.wikihow.com/Develop-Software https://www.wikihow.com/Develop-Software
Learning the Ropes Getting Work Developing a Program