الخطوات الأولى لتصبح مطور برمجيات

Written by Mohamed Balam – Data analyst and mobile developer

عند سماع كلمة “مطور برمجيات” في الغالب سوف تراودك تلك الصورة النمطية التي كانت هوليوود جزءًا كبيرًا في تعميمها بأنها حرفة حصرية على أولئك العباقرة الغير اجتماعيين. 

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

تصبح حياتك كمهتم  بتطوير البرمجيات أكثر تعقيدًا عندما نبدأ في تقسيم مجالات  تطوير البرمجيات المختلفة، مثل برمجة الواجهات الأمامية “Frontend” ،برمجة العمليات الخلفية “Backend” ، مصمم UX ، مطور واجهة المستخدم “UI”، المطور الشامل “Full-Stack” ، مشرف قاعدة البيانات(Database Admin) ، مطور الهاتف المحمول (Mobile Developer) ، وما إلى ذلك، كل هذا الكلام كما سبقت فالقول قد يجعل أي شخص مهتم يخاف وربما يترك المجال من الأساس.

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

ابدأ بالأساسيات

تشترك لغات البرمجة في الأساسيات والمفاهيم التي من الواجب على كل مطور فهمها وإتقانها بشكل جيد، مثل الخوارزميات “Algorithms “، والتحكم في التدفق”Flow-control”، والمقارنات، والمتغيرات، والبرمجة الكائنية “OOP”، وهياكل البيانات، وغيرها من المفاهيم.

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

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

أقوم غالبًا بتوجيه الوافدين الجدد والمهتمين بهذا المجال الرائع إلى freeCodeCamp 

Image source: FreeCodeCamp – https://www.freecodecamp.org

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

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

تخصص في إحدى المجالات

كما ذكرنا بأن تخصصات تطوير البرمجيات عديدة، لذلك  بعد تعلم الأساسيات ستأتي اللحظة لكي تسأل نفسك “ما المجال الذي يثير اهتمامي في البرمجة؟ هل استمتع بإنشاء مواقع ويب ذات واجهات جميلة؟ أم سأختار تطوير تطبيقات الهاتف المحمول؟ أم هل سأتطرق لمجال تعلم الآلة “Machine Learning “؟.

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

هناك العديد من التخصصات التي يمكنك الاختيار من بينها ، ولكن في النهاية التخصص الذي يثير شغفك هو الذي يحفزك على البدء في التعلُّم و تنمية جميع المهارات التي يتطلبها هذا التخصص.

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

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

الحصول على موجّه

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

لا يجب أن يكون موجّهك شخصًا تراه أمامك، بل مع التطور الملحوظ ووجود بعض المنصات العالمية التي تمكنك من العثور على شخص يفيدك عبر الإنترنت وأنت في منزلك ، ومن أشهر هذه المنصات؛ منصة StackOverflow التي يمكنك طرح العديد من الأسئلة فيها وستجد استجابة من العديد من الأشخاص ذوي الخبرة في تخصصك بالإضافة أنك مع الوقت ستصبح أحد هؤلاء الموجهين، أيضا هناك مجموعات فيسبوك، تويتر، إلخ…

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

بالطبع يمكنك القيام بكل ذلك بنفسك ، ولكن لماذا الموجه؟ لا أستطيع أن أخبرك كم مرة أمضيت أيامًا في القراءة حول بعض المفاهيم وما زلت لا أفهمها حتى يشرحها لي شخص آخر في خمس دقائق بطريقة قد تراها خرافية جداََ.

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

لذلك الموجه الجيد، هو هذا الاختصار الذي تحتاجه للحفاظ على زخم الذهاب إلى الأمام!

قم ببناء شيء ما

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

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

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

يمكن أن يكون المشروع شيئًا بسيطًا مثل “تطبيق المهام- TODO app”، أو موقع ويب لبيع الفطائر المنزلية التي تصنعها أمك أو جدتك ، أو مشروع بسيط يصنع وميض LED على لوحة Arduino.

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

بعض المنصات والبرامج التعليمية المفيدة التي أنصح بها

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

بداية سأبدأ بمجال عملي اليومي، تطوير برمجيات الهاتف المحمول، عندما سألت نفسي مسبقا، قمت باختيار  مجال تطوير تطبيقات الهاتف المحمول، واخترت لغة دارت “Dart” و إطار عملها “Flutter” الذي يسمح لك بإنشاء تطبيقات على نظامي “Android” و “iOS” بنفس الكود البرمجي، وقمت باتقانها في مدة سريعة جدا، ليس لأنني رجل خارق، لا، ولكن كما ذكرت في حضور الشغف والرغبة كل شيء ممكن.

سأشارك معك الآن بعض البرامج التعليمية التي اتبعتها أولها كان برنامج تعليمي من منصة Udemy باسم (Flutter & Dart – The Complete Flutter App Development Course) 

Image source: Screenshot from Udemy course
https://www.udemy.com/course/flutter-dart-the-complete-flutter-app-development-course/

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

إضافة إلى بعض قنوات اليوتيوب الرائعة مثل:

Image source: Raja Yogan YouTube channel
https://www.youtube.com/channel/UCjBxAm226XZvgrkO-JyjJgQ


هذه القناة مفيدة جدا لك اذا كنت تتجه إلى تطوير تطبيقات الهاتف المحمول باستخدام إطار عمل “Flutter” حيث يعلمك كيفية بناء واجهات رائعة جدا لتطبيقك وجعلها مليئة بالأناقة.

Image Source: Reso Coder YouTube channel
https://www.youtube.com/channel/UCSIvrn68cUk8CS8MbtBmBkA

أيضا كمطور للهاتف المحمول بإطار عمل “Flutter” يجب عليك تعلم العديد من الأمور المنطقية مثل “State Management” وغيرها من المفاهيم، ولن تحصل على المعلومات الرائعة إلا من هذا الشخص في قناته على يوتيوب.

الآن سأتحدث عن ثاني مجال وهو تطوير واجهات الويب “Frontend”:-

إذا كنت من هواة الويب ولديك اهتمام بتطوير الواجهات بشكل رائع وتبحث عن برنامج تعليمي آخر يرشدك ويعطيك الخبرة الكافية لبناء الواجهات بطريقة رائعة جدا ويمكنك من التعامل مع أنواع البيانات المختلفة، هناك برنامج تعليمي رائع من منصة “Udemy” عن تعلم إطار عمل الواجهات الخاص ب “Javascript” والمسمى “Angular js”

Image source: Screenshot from Udemy course
https://www.udemy.com/course/the-complete-guide-to-angular-2/

هذا الكورس ملم من الأساسيات إلى مرحلة المتمرس ولكن يتطلب خبرة مسبقة في لغة”Javascript”.

هنا وضعت بعض البرامج التعليمية التى أنصح بها وفقا لتجربتي الخاصة، ولكن يوجد العديد من المجالات الأخرى التي ربما تكون هي مصدر إلهامك مثل أن تكون مبرمج شامل “Full-stack” أو مطور البرامج الذكية لتعلم الآلة، سأضع بعض روابط المنصات التعليمية المفيدة لك والتي ستجد فيها كل ماتود معرفته كمطور برمجيات، وهي:ـ

  1. Udacity.
  2. Udemy.
  3. Coursera.
  4. Edx.
  5. Youtube

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

تحدى نفسك

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

الخلاصة

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

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

Leave a Reply

Your email address will not be published. Required fields are marked *