في المرحلة المدرسيّة لم يصادفني مفهوم البرمجة بشكله الصحيح . ولم أكن على علمٍ بلغات متدنيّة المستوى أو حتى خصائصها. حيث كان الفصل الدراسي يتألف من حصصٍ ومحاضرات تَجرى ولمرة واحدة في الأسبوع في تطبيق بعض شيفرات Visual Basic. بالإضافة لم يسدي لي أحد بشرح أي مسألة تتعلق بلّغات الويب.
فضلاً عن ذلك متجاهلاً حقيقة العالم وإلى أين يتّجه. ومن ناحية أخرى. كانت الولايات المتحدة المصنع الأم للبرمجيات. حيث تعمل على إعداد طُلاّبها في فصول الدراسة الجامعية ليظهر بذلك علماء تكنولوجيا المعلومات وهواة أنظمة التشغيل بأُمّ عينهم .
وكان على أشهرهم الرئيس التنفيذي لشركة Microsoft ، و James Gosling ، مبتكر لغة جافا ، ومارك Zuckerberg ، مؤسس Facebook و Bjarne Stroustrup مؤسس لغة سي بذاتها.
تعود علوم الخوارزميات البرمجية والجبر الخطي ظهرت ولأوّل مرّة على يد العالم محمد بن موسى الخوارزمي.
قمت بدراسة تخصص الاقتصاد والمحاسبة والنظريات ولم يكن هناك أيّة نشاطات أتطرق بالقيام بها. حيث كان تخصصاً في قرارة نفسي ينتابه بعض الغرابة والملل.
بالتالي بقيت على هذا الحال مرتبكًا ومتشائماً وألقيت باللوم على نفسي كثيرًا لتغيير مسار حياتي ، حتى تخرجت وعملت في شركة في قسم تكنولوجيا المعلومات. بعد ذلك ، أدركت مدى إهمالي تجاه نفسي ودارت من حولي مشاعر بدء البرمجة من جديد.
حيث كانت تأتي بعض الشركات الداعمة وتُقدم على عملياتٍ عدة على سبيل المثال, إجراء تحديثات حول مراكز و خوادم قواعد البيانات في الشبكة وكنت أشاهد بعض الكود يحيط من حولي.
كانت رحلة البرمجة كابوسًا مزعجاً بالنّسبة لي ، حيث أنني بدأت متأخرًا في صقلها وتعلُّمها، لكننّي حدّدت أهدافي ووضعت خِططي التعليمية. وتعهّدت في قرارة نفسي بالمثابرة والاستمرار.
بالتالي, وضعت المال جانباً وركنت تقنيات الكسب السريع بعيداً عني ولم تكن لتعني لي أيّ شيءٍ. في الوقت الذي كانت فيه فرص الاستثمار عبر شبكة الإنترنت أشبه بآبارٍ من الذهب والفضّة!!.
مجتمع التقنية
قدّم لي بعض المتخصّصين نصائح مفادها اللّهث وراء الأموال على شبكة الإنترنت بتركيز العمل على المنصات التجاريّة. لكنّني ركنتها جانبًا ظنّاً مني بكيفية الخوض في أساسيّات أي شيء فذلك أفضل من كل شيء. الراحة والرفاهية في الحياة شيء جيد , لكنها ليست كذلك في علوم التقنية . فعندما تجد منصّة مجانية يتظاهر أصحابها بخدمتك , هذا لن يعني أنك أصبحت عالماً في أسرار الحاسبات.
هذا بمثابة غشّ أو خداع على حساب شغفك وطموحاتك مقابل ترويج العمل على تقنياتٍ أنت أولى من غيرك في صنعها. وقس على ذلك الكثير. بالإضافة إلى أن معرفتك ببعض أساسياتها على الأقل أفضل بكثير من الولوج بتلك الخدعة. بالتالي بدأت في تعلم لغة C ++ ، والتي أجدها حتى الآن أقوى لغة في صنع المستحيل.
جعلني ذلك الأمر أكثر تجاهلاً لمدى أهمية لغاتٍ أخرى مثل C Sharp وجافا سكريبت وتجاهلت أيضا مزايا لغة الويب PHP .
و التي كان لها الفضل الكبير في بناء منصاتٍ مثل WordPress و غيرها. تجاهلت أيضاً أن لكل قطرٍ أغنية في مجال الحاسبات. حيث أن كل تلك التقنيات كانت هي بذاتها لتقوم بأدوارٍ جيّدة أيضاً , ولكنها خلدت تحت مسميّات أخرى ودواع استخدامٍ مختلفة.
البدء في لغة سي
كانت البداية قاسية حقًا. حيث لم أكن لأعلم شيئًا عن لغات البرمجة على الإطلاق. ولم أكن لأعلم شيئاً حتى عن أنظمة Windows وأنظمة Linux التي بُنيت بمزيج من لغات عريقة ومنحدرة الجانب مثل لغات التجزئة. بعد ذلك أُصبت بالدّهشة وبدأت في تعلم الوظائف والحلقات التكرارية ونسخ الكود ، وأحيانًا الارتجال في كتابته.
استغرقني الأمر حوالي عام ونصف أوقات فراغي كانت تقتصر فقط على تشغيل الحاسب الآلي. والتصفح عبر الإنترنت وإتقان بعضُ أساسيات ومهارات البحث.
إتقان الأساسيات
لقد كانت تجربة مريرة حقًا عند البدء في تعلم لغة لا تصلح لمستوى عقلي بتاتاً فهي صعبة جداً على المبتدئين. والبعض يعي جيداً حقيقة ما أقوله. لكنّها كانت مرحلةً جيدة لفهم آلية عمل لغات البرمجة والانخراط في آلية عمل الحواسيب.
تم إتقان الأساسيات ، وبدأت في تطبيق وإنشاء Header مجرّدة ودعوتها على الصفحة الرئيسية Void. وبدأت الأمور تتضح شيئاً فشيئا وبدأت تؤتي بثمارها ، وأشكر الله على أن دراستي لتلك اللغة لم تذهب سدىً.
بيئةِ العمل
الفضول دائمًا جميل ، والأجمل من ذلك إن عزمت بالدّخول في التقنية من أوسع أبوابها ، حيث ذلك من شأنه مساعدتك على التنقّل من بيئةٍ إلى أخرى.
محرر Visual Studio
يعتبر محرر Visual Studio أفضل محرر تعليمات برمجية يمكنك التعامل معه ، وأسهل محرر كود برمجي للمبتدئين والمحترفين أيضاً. بالتالي هو يلقى بتحديثاته السنوية من Microsoft. ويمكنك امتلاك نسخة مجانية منه عبر منصّاتهم.
لقد قمت بالتبديل بين محرري الكود وذلك باستخدام CMake و DEVc ++ ، ولكنّ جُلّ تركيزي كان يدور حول محرر Visual Studio. حيث أنّه متوافق جداً مع بيئة Win32 كما يوفّر لك استدعاء مكتبات ويندوز بشكل تلقائي. بالتالي تتلاشى معه الكثير من الأخطاء.
الاستمرارية والتطبيق
عندما تقوم بربط وتشغيل بيئة عمل الرّسومات في لغة سي . سيتسنّى لك الكثير من المعلومات الإضافية وتتقن فنّ استدعاء الشيفرة. بالإضافة ستتحكم في الذاكرة جيدًا وهذا ما كنت أصبو إليه من خلال ممارستي اليومية.
أنصح من هم على وشك تعلم هذه اللغة أن يقوموا بالكتابة ولقرابةِ ساعتين في اليوم على الأقل. حيث يساعدك ذلك على الانضباط في تنظيم اولويّاتك كما سيمكّنك أيضاً من التطور وتجاوز عقبات اللغة بشكلٍ لا مثيل له.
شراء الكتب التعليمية
إنّ معرفة لغات البرمجة لا تقتصر فقط على المكتبات المجانيّة المتوفّرة عبر الانترنت. في بعض الأحيان تدفعُك قلّةِ المصادر إلى شراء بعض الكتب التعليميّة لأكثر من لغة . كتاب أساسيات البرمجة للعالم Brian Kernighan.
في هذه المرحلة ، أصبحت متقناً تطبيق مكتبات الرسومات Windows WIN32 وتنشيط الواجهات مع ربط العناصر والمؤشرات.
وذلك عن طريق إضافة الأزرار والتمرير والقوائم ، وكانت تلك مهمتّي الرئيسيّة ولمدة عام تقريبًا. المدهش في ذلك أن اللغة تتماشى معك أينما ذهبت وأينما رسيت. وذلك من شأنه تعزيز مهارات المعرفة لديك في لغاتٍ أخرى. حيث بالكاد أن تخلو أيّ منها على سطور لغة سي وان اختلفت بنيتها الخارجية ، فتلك هي الحقيقة.
نصائح قبل البدء في لغة سي
- الاعتماد على المصادر في تعلم لغة سي تحول بك دون الوقوع في المتاهات وإضاعة الكثير من الوقت.
- التقيّد في كتب البرمجة و شيفراتها.
- التطبيق والتدوين باستمرار, وذلك لصقل مهارة المنطق لديك.
- الانضمام للمبرمجين ذوي الخبرات والكفاءات, للمساعدة على تجاوز العقبات البرمجية.
- تعلم أساسيات التنقيح والتعديل وإصلاح أخطاء المترجم, وذلك خوفاً من ظهورها مجدداً عند ازدياد حجم المشروع.