كيف تصبح مبرمجاً و مطوراً أفضل؟ 6 خطوات و نصائح لتصبح كذلك


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


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

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


- تعلم التقنيات .. لا الأدوات : 

لغات البرمجة و البرامج المخصصة لها و ما إلى ذلك ما هي إلا أدوات تنجلي و تظهر في كل يوم، أن تتعلم الجافا اليوم أمرٌ جيد، لكن من يدري؟؟ ربما غداً لن يكون هناك شيء اسمه الجافا و هذا واقع حقيقي فهل تذكر ما حدث للنظام iOS؟ إذ تم استبدال لغة البرمجة من C++ إلى سويفت و لـ iOS مطورين كثر عملوا على C++ و لم يكذّبوا الخبر بل باشروا في تعلم اللغة الجديدة و ما سهل عليهم هو أن أساس سويفت هو نفسه و آلية عمل أدواته متشابهة و الشيء نفسه ستراه بين الجافا و سي شارب، و الوقت الذي قضيته في تعلم الجافا ستقضي أضعافه في تعلم اللغة البرمجية الجديدة، فلا تتعلم الأدوات، بل تعلم تقنيات البرمجة، تعلم أسسها الخالصة، فالرواد و أصحاب الأعمال يدفعون للمبرمجين لمن يعرف أكبر عدد من لغات البرمجة، و أنت مطالب بتعلم أكبر قدر، لكن لا تتعلم لغة البرمجة، بل تعلم أساسياتها، فمهما تغيرت لغة البرمجة، الأساس يبقى هو الأساس، ركز على البنيات الخاصة باللغة، تعلمها، و طبقها في مجموعة من اللغات البرمجية، و تعلم أكثر و أكثر عن الكثير و الكثير حتى تعرف كل شيء عن كل شيء، و صدقاً هذه الطريقة هي المفتاح للقضاء على صعوبة التعلم لغات جديدة.


- ذكر نفسك أنه عليك تعلم الكثير : 

أمرٌ بديهي، في كل مرة تتعلم فيها شيئا ما، و تعتقد إنه بتعلمك لتلك التقنية أو تعلمك تلك اللغة البرمجية أو ما شابه، فإن العالم سيتوقف تحت قدميك ينتظرك لتظهر لنا مهاراتك في التقنية التي تعلمتها، بل تعتقد ان تلك المهارة ستستمر أبد الدهر و ان من لم يتعلمها خاب، عندما تصل الى هذه النقطة، عندما تفكر و تفكر بهذا المنطلق، ذكر نفسك دائما بـ : " توقف، لم أتعلم شيئاً، ما زال علي تعلم الكثير و الكثير" – يسمى هذا النوع من المبرمجين/المطورين كما يحبون المبرمجين/المطورين أن يسموه بـ "Average programmer" -، فأول خطوة تقوم بها نحو التعلم، هو أن تدرك جهلك التام للشيء، استثمر في التعلم، العلم لا يُفنى، فهو موجود منذ الأزل، فلا تتوقف عن التعلم، و ذكر نفسك دائما انه عليك التعلم، لا يهم ماذا تتعلم، سواء كان سيفيدك في حياتك المهنية او الدراسية، سواء كانت لغة برمجة جديدة او قديمة، لغة مستخدمة بكثرة أم لا، لكن أضفها إلى قائمة الأشياء التي تعلمتها، و تذكر دائماً، أن تتعلم التقنيات لا الأدوات.

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

Average programmer: تصنيف غير رسمي من أصل 8 من وحي أفكار المبرمجين و تعني المبرمج الذي يريد تخطي مستوى المبتدئين في البرمجة أو لغة ما و وصل به العلم أو الإدراك بأنه يحتاج للكثير بأن يتعلمه و هذا النوع يتمتع بالرغبة القوية بأن يشارك في المشاريع و يتطوع؛ جميع المبرمجين ما أن يبدؤا بالتعلم يكونون كما يسمون باسم Bad programmer و هذا الصنف يعاني الكثير و لا ينخرط في المشاريع و لا يطبق أساليب البرمجة ما يجعل هذا الصنف سيء حرفياً نعم إنه المبرمج السيء؛ في الحقيقة هذا الصنف يطلق على المهمل و لا يتطور أو الذي لا يعمل في المجال البرمجي و يطلق أيضا على المستجد الذي يريد تعلم الكثير من أساليب البرمجة و أهمها التخطيط و التنظيم، لكن لا تقلق جميعنا كنا مبرمجين سيئين و تعلمنا و تطورنا و لكي تصبح وحشاً و متمكناً في اللغات عليك العمل لسنوات.


- إشتغال الكود البرمجي ليس النهاية .. بل فقط البداية : 

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


- اقرأ الأكواد ... اقرأ الكثير الكثير من الأكواد:

"الكلام سهل ... أرني الكود الخاص بك" - لينوس تورفالدوس ( مؤسس نظام اللينكس )

دعني أخمن قليلاً، ربما أنت تتقن لغة البرمجة السي شارب، حسناً دعني أخبرك كيف تعلمتها، في الغالب توجهت إلى اليوتيوب، ثم كتبت "دورة كاملة لتعلم لغة البرمجة سي شارب" ربما ظهرت لك دورة الأستاذ خالد السعداني – واحدة من الصفحات في يوتيوب ننصحك بمتابعته -، ثم بدأت تشاهدها فيديو بفيديو حتى أصبحت قادراً على إنتاج برنامج مكتبي جيد و قوي بهذه اللغة، ... لكن ...، هل جربت يوماً أن تقرأ مشاريع تمت برمجتها بالسي شارب؟ مشاريع موجودة بكثرة على الـGithub و مواقع أخرى أيضاً، ربما عندما تقرأ الآن هذه الفقرة و ترى انك لم تقرأ يوماً مشروعاً برمجياً لأشخاص آخرين يوماً، ستذهب الآن لتحمل مشروع مفتوح المصدر و تفتحه لتجد ان المشروع قد كُتب بلغة السي شارب حقا، لكن لم تفهم و لا كود واحد، كود برمجي واحد لم تفهم دوره في ذلك المشروع، تباً ! هل حقا انا أتقنت السي شارب؟. 

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

على سبيل المثال، هل أنت مبرمج VB.net أو C#.net و لديك خبرة في برمجة تطبيقات الويب و سطح المكتب؟ إذا إجابتك نعم، حسنا!، لابد أنك تعرف عن ما نقول و تبحث عن أكواد، هذا جيد، و الآن إليك هذا: (هل سمعت عن vb.net OS؟) إنها عبارة عن تطبيقات تعمل مثل النظام التشغيل و لكنها ليست كذلك، ابحث عنها إذا لم تكن تعرف شيئا فستتعلم كيف تبني نظام تشغيل باستخدام vb.net و COSMOS و غيرهما.

هل لديك خبرة لا بأس بها في C++ و تريد تعلم المزيد ما رأيك بأن تشارك أو تبحث في المصادر المفتوحة للبرامج؟ لعلمك في Linux هناك مصادر مفتوحة كثيرة فقط اشترك و اطلبها بنية التعلم.


- حادث مطورين و مبرمجين آخرين: 

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


- على الجميع ان يتعلم كيف يبرمج ... لأن البرمجة تعلمك التفكير "ستيف جوبز – مؤسس شركة أبل":

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

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

لا بأس بالفشل، فالفشل هو بداية النجاح فهناك قصة عن مبرمج دخل عالم اللانسر و لكنه نال الكثير من الانتقادات و الآراء السلبية لأن أسلوبه في البرمجة ليس مرناً و ليس سهل التعلم أو التطوير في Github و لا يعمل و بعض الانتقادات في اللانسر، كذلك وجد نفسه لم يكن ينظم وقته جيدا للتواصل معهم و هذه مهارة مهمة في عالم اللانسر "التواصل مع المستخدمين المشترين" فاعتبر ذلك فشلاً ذريعاً فماذا فعل بعدها، هل توقف؟ 

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

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

ليست هناك تعليقات