معرفة المهارات التي عليك اكتسابها كمبرمج امر في غاية الاهمية.
لذلك استكمالا لسلسلة مقالات البرمجة التي بدءناها دعني اخبرك بمهارات المبرمج الاساسية التي عليك اكتسابها.
ولكن من المهم ان تعرف جيدا ان بعض تلك المهارات ضرورية والبعض الاخر اضافي.
من الضروري ايضا الا تثقل علي نفسك فمع مرور الوقت سوف تكتسبها.
ما اقصده هنا هو انك لا تحتاج الي تطوير جميع تلك الاشياء الموجودة في هذا الموضوع في يوم او اثنين او حتي شهر بعض الامور تحتاج الي سنوات من العمل والاجتهاد والصبر.
لذلك….
لا تضغط نفسك وقم بتجزئة الامر واعمل علي مهارة او اثنتين فقط وانتهي منهم وابدأ في المهارة الاخري وهكذا.
والان هل انت مستعد للبدء؟
الجزء الاول: مهارات المبرمج التقنية
نبدأ بالاهم ثم ننتقل الي المهم…
حتي تصبح مبرمج محترف عليك بالتأكيد تمنية بعض المهارات التقنية لديك في البداية ثم تطوير بعض المهارات الاخري.
لذلك دعنا نبدأ بالمهارة التي اعتبرها الاهم وهي…
1- تعلم الخوارزميات وهيكلة البيانات
Algorithms بالانجليزية وهي بالتأكيد ليست من لغات البرمجة.
ولكن هي طريقة عامة يقوم بها المبرمج بالتفكير وتحليل البيانات الموجودة لدية حتي يستطيع كتابة تلك الاكواد البرمجية بشكل صحيح وحل المشكلات التي تواجهه اثناء العمل.
فبالتأكيد اذا واجهت مشكلة ولم تكن تعرف كيف تقوم بالتحليل لحلها سوف تحبط وتجد نفسك في موضع الفاشل وهو ما لا نريدك ان تشعر به.
اي بأختصار الخوارزميات هي الخطوات العملية التي عليك اتباعها من اجل حل مشكلة ما.
تعلم الخوارزميات يعتبر الجزء الاصعب علي الاطلاق في البرمجة ولكن بمجرد احترافه اي شئ اخر سوف يكون سهل جدا.
اما عن….
هياكل البيانات او Data structure فهي:
المهارة التي تتيح لك تخزين البيانات بصورة منظمة وسليمة في الكمبيوتر حتي تتمكن من استخدامها في النهاية بشكل اسهل.
وهي تضم الكثير من الانواع اهمها:
- Array
- Stack
- Queues
- Trees
- وانواع بدائية اخري.
الخوارزميات وهياكل البيانات يسيران معا في نفس الطريق والمبرمج الذي يستطيع احتراف كل منهما يستطيع حل المشكلات بسرعة شديدة.
اذا استغرقت المشكلة علي سبيل المثال عدة ايام من قبل مبرمج لم يتعلم هاتين المهارتين، يمكنك حلها في خلال ساعة.
من المصادر السهلة لتعلم هذه المهارة:
- دليل Harmash ( باللغة العربية ومناسب جدا للمبتدئين لتعلم الخوارميات )
- دليل Elzero we ( باللغة العربية ويساعد المبتدئين في تعلم هياكل البيانات ).
- الكورس الكامل لتعلم الخوارزميات وهياكل البيانات من Freecodecamp ( فيديو بالانجليزية ).
- كتاب Cracking the coding interview بواسطة McDowell ( به 189 سؤال في تقريبا 690 صفحة ) سعره تقريبا 25 دولار علي امازون ( يمكنك الاطلاع علي السعر من هنا )
هذا الكتاب ضخم جدا والانتهاء منه قد يكون بمثابة التحدي الاكبر لك ولكن ثق تماما انه يستحق.
2- احتراف لغات البرمجة
حتي تستطيع ان تصبح مبرمج ناجح بالتأكيد عليك احتراف بعض اللغات.
استخدمت كلمة بعض لانك في الحقيقة تحتاج الي احتراف اللغات التي تشكل مجال البرمجة الذي اخترته.
فبالتأكيد لن تستطيع تعلم جميع اللغات الموجودة لذلك من الضروري تركيز طاقتك واستيعابك علي تلك التي سوف تستعملها بشكل اساسي في عملك.
من المهم جدا ان تصل الي الاحتراف في لغتين او 3 لغات علي الاقل حتي تستطيع ان تجد فرص عمل او شغل فريلانس بسهولة.
3- كتابة اكواد نظيفة ومنظمة
تعلم البرمجة امر ووضعها في صورة نظيفة ومنظمة امر اخر.
بعض المبرمجين بمجرد النظر الي الكود الخاص بك يحددوا ما اذا كانوا سوف يقوموا بتوظيفك معهم ام لا.
حتي ان بعض الخبراء وصفوا هذه العملية بكونها الفن المرتبط بالبرمجة لانها تحتاج الي تركيز شديد وتنسيق وتنظيم افكار.
الخلاص انك هنا تتعلم وضع الكود البرمجي بصورة منظمة مفهومة وبدون تعقيدات وبهذا تضع نفسك كمبرمج محترف حتي وان كنت لا تزال في بداية الطريق.
لذلك احرص علي تعلم هذه المهارة وتطوير نفسك بها بشكل مستمر بمجرد التفكير في تعلم البرمجة.
افضل مصادر يمكنك من خلالها احترف هذه المهارة وتصبح لا تقاوم بها هما كتابي:
- The clean Coder بواسطة Robert C. Milton سعر النسخ الالكترونية من امازون 19.75 دولار ( اطلع علي احدث سعر )
- Code compelete بواسطة Steve Mcconell سعر النسخة الالكترونية من امازون 25 دولار تقريبا وهو دليل ضخم مكون من 925 صفحة يستحق كل دولار سوف تقوم بدفعه ( اطلع علي احدث سعر علي امازون ).
حتي تقوم بكتابة الاكواد عليك ان تمتلك برنامج لذلك احضرت اليك افضل برامج كتابة اكواد يمكنك استخدامها احرص علي الاطلاع عليها.
4- احترف احد انظمة التشغيل
اذا كنت تعتقد ان تعلم لغات البرمجة الاساسية امر كافي فعليك اعادة التفكير قليلا.
من المهم ان تكون لديك خبرة جيدة بواحد او اكثر من انظمة التطوير او بشكل عام انظمة التشغيل.
سواء كنت تعمل كمطور برامج فتحتاج مثلا الي IOS او اندرويد او ماك او ويندوز.
ولكن ليست انظمة التشغيل فقط بل تحتاج الي خبرة بجميع الاطارات المرتبطة بنظام التشغيل هذا.
ملحوظة: بالاعلي بمجرد امثلة ولكن يمكنك ان تتخصص في تطوير تطبيقات الويب فتحتاج الي زيادة خبرتك في منصات الويب علي سبيل المثال مطور وردبريس يحتاج الي احتراف التعامل مع المنصة وهكذا.
لماذا احتراف منصة تطوير مهمة؟
بكل بساطة لان الشركات او الاشخاص الذين يقومون بتعيينك كمبرمج لديهم يحتاجوا الي خبراتك في التعامل مع منصة محددة لذلك الحصول علي وظيفة او تقديم خدماتك كعمل حر سوف يكون اسهل اذا كنت متخصص في منصة ما.
ولان استخدام اللغة لا يقتصر علي منصة واحدة ويمكن استخدام اللغة الواحدة علي اكثر من منصة مثل لغة C# مثلا من المهم لك ان تحدد انظمة معينة وتركز مهاراتك كمبرمج بها.
5- اختر Stack او Framework مناسب
Stack تعني مجموع كاملة من التكنولوجيا علي عكس framework والتي تعني اطار برمجي يضم مجموعة من المكتبات التي تساعدك علي كتابة الكود بسهولة علي نظام تشغيل معين او اكثر من نظام.
ملحوظة: قد يكون ال Framework جزء من ال Stack.
تعرفت علي فائدة الاطار والان دعني اخبرك بأهمية ال Stack…..
ال Stack او اذا قمنا بترجمتها سوف نجد انها تعني ( كومة ) هي عبارة عن مجموعة انواع متكاملة من التكنولوجيا تساعدك علي بناء تطبيق برمجي بصورة اسهل واسرع وبما ان العديد من الشركات قامت بالفعل ببناء تطبيقاتها بأستخدام اي من ال Stacks المشهورة اذا ايجاد وظائف برمجة لك سوف يكون امر في غاية السهولة لانك تستطيع بالفعل تطوير ابليكيشن كامل.
- اشهر انواع ال Frameworks تبعا لموقع Stackoverflow هي: ( React – Jquery – Angular – .Net – Express – Numpy – وغيرها ) ويعتبر .net هو الاشهر والمطلوب بشكل كبير في مواقع التوظيف.
- اشهر انواع ال Stacks هي: ( MEAN – MERN – MEVN – LAMP – Flutter )
من المؤكد انك وجدت تلك المعلومات معقدة بعض الشئ ولكن لا تقلق بمجرد ان تختر تخصصك وتبدأ في احد كورسات البرمجة في هذا التخصص سوف تجد جميع المعلومات التي تحتاجها بالتفصيل وسوف تجدها سهلة جدا.
لا تنسى قراءة: الفرق بين backend و frontend
6- اتعلم مهارة التصحيح Debugging
والان قد تعلمت مجموعة من اللغات بالاضافة الي احتراف نظام محدد وايضا تستطيع العمل علي بعض الاطر وربما تكون قد اخترت حزمة معينة.
والان قد قررت كتابة كود ما وانتهيت بالفعل منه.
هل الكود يعمل؟
بنسبة كبيرة لا!!!!!
بالنسبة للكثير من المبرمجين المبتدئين هذه مشكلة شائعة جدا وعلي الرغم من ان كتابة الكود امر في غاية المتعة الا ان عملية تصحيح الاخطاء لا يرغب احد بالقيام بها.
لذلك عليك تعلم مهارة تصحيح الاخطاء البرمجية واحترافها فربما تكون تلك الوظيفة الخاصة بك والتي تقوم بها بدلا من شخص اخر.
مصادر تعلم هذه المهارة:
- الفيديو المقدم من Livecode قد يساعدك كثيرا.
- موضوع Debugging tutorials المقدم من موقع happycoding.
هناك الكثير من المصادر الاخري التي يمكنك التعلم منها فقط ابحث في جوجل وستجد الكثير.
7- تعرف بشكل اكبر علي قواعد البيانات Database
مهارات المبرمج الناجح لا تقتصر فقط علي تلك الادوات التي سوف يستخدمها.
ولكن من المهم ان تتعرف علي اهم الاساسيات الاخري.
فعلي الرغم من انه في الغالب سوف تجد مبرمجين متخصصين في ادارة قواعد البيانات وعلي الرغم من انه قد لا يكون تخصصك.
ولكن في الغالب سوف نستخدم قواعد البيانات في تخزين البيانات الخاصة باي تطبيق.
لذلك من الضروري ان تتعرف علي الاساسيات الخاصة بأدارة قواعد البيانات والتي منها:
- التعرف علي كيفية عمل ال Database.
- كيف تقوم بأضافة بيانات او تحديثها واسترجاعها او حتي مسحها.
- الاكواد التي تتفاعل مع قواعد البيانات.
- والكثير…
هناك الكثير من المواقع لتتعرف بشكل مبدئي علي تلك المهارة ولكن ربما سوف تجد دليل قواعد البيانات من happycoding جيد.
8- مهارة اختبار الكود البرمجي
الكثير من المهارات تم ذكرها ولكن هذه المهارة التقنية الاخيرة بالنسبة لنا ولكن ليست الاخيرة في طريق احترافك البرمجة.
بالتأكيد لن تقوم بكتابة الكود وتجهيز البرنامج ونشره ثم تجد المستخدمين يشتكون منه بالتأكيد.
لذلك من اهم مهارات المبرمج هي اختبار الكود الخاص به Testing وهي خطوة تسبق عملية ال debugging التي ذكرتها بالاعلي.
ولكن لاهمية مهارة تصحيح الاخطاء الشديدة وضعتها في البداية.
سابقا كان السيناريو بالاعلي يحدث المبرمجين يقوموا بنشر الكود البرمجي ثم ينتظروا اراء المستخدمين في وجود اخطاء.
ولكن الان من المهم ان تتعرف علي طرق اختبار الكود وهي كثيرة ولكن بالتأكيد لا يجب ان تهملها اذا كنت تدرك مدي اهمية الجودة الخاصة بمنتجك.
والان ما رأيك في بعض المهارات المهمة جدا ولكنها ليست تقنية او لها اي علاقة بالبرمجة؟
الجزء الثاني: مهارات المبرمج الحياتية
في هذا الجزء حديثنا بالكامل عن تلك المهارات التي عليك تطويرها لنفسك في الحياة العملية كمبرمج ولكن بعيدا عن كل تلك المصطلحات التقنية.
بمعني اوضح هذه المهارات تعتبر مهمة للتواصل وتنظيم العمل وليس لاتقان البرمجة.
والان دعنا ننتقل سريعا الي…
9- مهارة البحث علي الانترنت
مهارة البحث ضرورية لكل شخص يعمل علي الانترنت ليس فقط للمبرمجين.
ولكن كمبرمج مبتدئ في الغالب سوف تحتاج اليها بشكل كبير.
- الكثير من الاخطاء سوف تواجهك وبالتأكيد انت لست الاول الذي تواجه هذا الخطأ لذلك يمكنك بالتأكيد البحث عن الحل.
- سوف تحتاج الي تعلم شئ محدد لذلك عليك البحث بأستخدام الالفاظ الدقيقة والعلامات المختلفة مثل ( علامات الاقتباس – علامة الطرح لاستبعاد شئ ما – وغيرها ).
يمكنك مهارة البحث علي جوجل من خلال البحث علي جوجل بالتأكيد.
10- مهارة التحليل وحل المشكلات
من اهم مهارات المبرمج علي الاطلاق وذلك بكل بساطة لان كل كود يتم كتابته هو عبارة عن مشكلة يتم حلها.
مهما كانت خبرتك في البرامج واللغات والاطر سوف تواجه يوما ما احدي المشكلات التي قد تكون صعبة.
لذلك سوف يصبح امامك الان خيار من اثنين:
- اما الاحباط والقلق والشعور بالعجز.
- او يمكنك التركيز وتحليل المشكلة وتقسيمها الي اجزء صغيرة ثم حل كل جزء منها.
وعلي الرغم من سهولة القول وصعوبة الموقف ومن سيواجهة الا ان مهارة تحليل المشكلات وحلها مهارة ضرورية جدا للنجاح كمبرمج.
جميع المبرمجين المحترفين يعتقدوا بالفعل ان تلك المهارة تساوي في اهميتها المهارات البرمجية.
لذلك ربما ادركت الان مدي اهميتها.
ملحوظة: هذه المهارة بالتحديد لا يوجد كتب او مصادر يمكنها تعليمك اياها بل ستحتاج الي الكثير من الاختبارات والتجارب لتطور تلك المهارة لديك وكأنك تمرن عقلك علي مواجهة نفس الظروف لايجاد حلول لاي مشكلة اخري والتفكير خارج الصندوق.
11- الفضول
كما اخبرتك بالاعلي فالبرمجة تتعلق بشكل اساسي بحل المشكلات وحتي تستطيع حل اي مشكلة تواجهك من المهم ان يكون لديك الفضول الكافي لتتعرف اكثر عن الامر الذي يواجهك.
ولكن الفضول ليس فقط لحل تلك المشكلات التي تواجهك بل ايضا لديك الفضول والرغبة المستمرة في تعلم كل ما هو جديد.
ذلك بالتأكيد سوف يجعلك بشكل مستمر مؤهل لسوق العمل وبالتالي تستطيع تحويل مهارة البرمجة الي ماكينة اموال.
وهو الهدف النهائي بالتأكيد.
لذلك من المهم ان تستمر في تعلم ما هو جديد في المجال الذي اخترته ثم يمكنك التشعب لتتعرف علي مهارات اخري وتنميها.
12- الصبر والتفكير الايجابي
الصبر عملة نادرة في هذه الايام.
في الحقيقة انا اشفق عليك كمبتدئ تحاول جمع اكبر قدر ممكن من المعلومات قبل الدخول الي هذا المجال.
بالتأكيد شعرت بالاحباط والتوتر من كثرة المعلومات التي قرأتها ولكن ماذا لو اخبرتك ان هذا حال الجميع عند البدء!!!
استغل هذه الفترة من الاحباط في تعلم مهارة الصبر وهي مهارة في غاية الاهمية خاصة للمبرمجين.
بعد احتراف هذا المجال سوف تجد نفسك تعرف تماما كيف تقوم بكتابة هذا الكود ومتأكد تماما انك علي صواب ولكن قد تجد النتيجة مخيبة لامالك فأما تبدأ في الانزعاج او تصبر وتحاول من جديد حتي تصبح محترف عن حق.
اما عن التفكير الايجابي فهو ضرورة ملحة وخاصة في حالات التوتر والقلق.
لذلك فهو يسير جنبا الي جنب مع الصبر والقدرة علي التحمل.
ماذا لو وجدت نفسك لا تستطيع ان تكمل في المجال الذي اخترته؟
التفكير الايجابي سوف يجعلك تفكر في النقاط التي قصرت بها وسوف يجعلك تفكر في حلول ايجابية لها.
او يجعلك بالتأكيد تذهب لتبدأ من الصفر في مجال جديد دون ان تستلم وانت واثق انك هذه المرة سوف تنجح.
لذلك هاتين المهارتين اعتبرهما اساس النجاح في اي شئ طويل المدي.
13- مهارة التدقيق
التدقيق والانتباه للتفاصيل الصغيرة بالتأكيد من اهم مهارات المبرمج المحترف.
وذلك لان المجال يعتمد بشكل اساسي علي الدقة في كتابة الاكواد البرمجية والدقة ايضا في التحليل والتفكير في الحلول.
الانتباه للتفاصيل من اهم ادوات المبرمج التي عليك امتلاكها طوال رحلتك في هذا المجال.
في الغالب سوف تخطئ مرات عديدة وربما تجد نفسك تقول لك كم انت فاشل ولكن هذا غير صحيح كل ما عليك فقط هو مراجعة العمل الذي قمت به مرات عديدة والانتباه الي الاخطاء البسيطة به وتعديلها.
يمكنك ذلك بكل سهولة من خلال تطوير بعض الخطوات التي عليك القيام بها في كل مرة بعد ان تنتهي من المشروع.
المهم الا تقسو علي نفسك وكن متفاهم واعرف ان كل المهارات يتم تطويرها من خلال مراحل كثيرة.
وبالتأكيد تحتاج الي وقت.
14- مهارة التواصل
المشكلة الاكبر في جميع مجالات العمل الحر وخصوصا البرمجة هو انك لا تتعامل مع الاشخاص بشكل كبير وتقضي معظم وقتك اما شاشة الحاسوب.
لذلك في الغالب يعاني معظم المبرمجين من صعوبة في التواصل مع الاخرين.
سواء المديرين او زملاء العمل او العائلة او حتي الاصدقاء.
ولكن مع ذلك فسوف تضطر احيانا الي التواصل مع الاخرين واذا لم تطور من تلك المهارة لديك قد تشكل عائق كبير في حياتك المهنية.
بالاضافة الي ان العمل كمبرمج مستقل سوف يحتاج منك الي القدرة علي التواصل مع العميل وشرح التفاصيل له بصورة سهلة وبسيطة.
لذلك لا تهمل هذه المهارة وتطةور مهارات البرمجة التقنية التي ذكرناها بالاعلي.
15- مهارة الكتابة علي الكيبورد
مهارات المبرمج جميعها تعتمد علي في النهاية علي كتابة تلك الاكواد.
وبالتأكيد يتم ذلك عن طريق الكيبورد ( لوحة المفاتيح ).
لذلك تعلم الكتابة السريعة امر ضروري جدا لك كمبرمج حتي تستطيع الانتهاء من مشروعك بسرعة وفي نفس الوقت بدون اي اخطاء.
تعتبر الطريقة الاسهل لتطوير هذه المهارة هي الكتابة بشكل مستمر ومع مرور الوقت سوف تجد نفسك تكتب بشكل اسرع وبكفاءة افضل.
ولكن بالتأكيد هناك الكثير من الكورسات والبرامج التي تساعدك في تطوير هذه المهارة احرص علي البحث عنها.
كانت تلك اهم مهارات المبرمج الضرورية من وجهة نظري هناك الكثير من المهارات الاخري التي يمكنك تطويرها واليك مجموعة منها.
الجزء الثالث: مهارات اضافية للمبرمجين
بعض المهارات التي سوف اضعها هنا في هذا الجزء ضرورية ولكن البعض الاخر ليس ضروري وهذه المهارات هي:
- تعلم الانجليزية.
- العمل الجماعي.
- المنظور التجاري من المشروع.
- التنظيم ( في غاية الاهمية )
- التعلم السريع.
- الذاكرة الجيدة.
- الاعتماد علي نفسك ( مهم جدا اذا كنت تعمل كمستقل ).
كانت تلك اهم المهارات التي علي المبرمج امتلاكها.
والان اخبرني….
اي من تلك المهارات تمتلك بالفعل وايها تعتقد انك تحتاج الي تطويره؟
هل تفتقر الي التنظيم ام تحتاج الي تعلم مهارة التركيز؟
ام تحتاج الي البدء في تعلم تلك المهارت التقنية؟
ايا كان ما تحتاج اليه ابدأ الان وطور نفسك حتي تصبح مناسب لسوق العمل.
اذا وجدت الموضوع مفيد لا تنسي مشاركته مع اخرين.
0 تعليق