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