لغة سي : 6 نصائح للمبتدئين بالبرمجة


لغة سي وفي كل مرة وما زلت أجدُ أنني لن أكون جيدًا في ذلك ، أشعر بأنني بحاجة إلى البدء من جديد. ربما أشعر بالخيبة عندما أُجيد التعامل مع لغات البرمجة المتعددّة في نسخ ولصق الكود وأرى وظائف ومتغيرات C plus plus في الشيفرة على هيئة لغاتٍ أخرى.

ربما افتقدت لأن أكون بارعًا في التعامل معها.

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

بالرغم من أنّ لغة جافا كانت مطلبًا رئيسيًا في مجال أنظمة معلومات الحاسوب. إلا أنني تجاهلت ذلك تمامًا مُتّجهاً إلى كليات الاقتصاد.


مفاهيم البرمجة


في المرحلة المدرسيّة لم يصادفني مفهوم البرمجة بشكله الصحيح . ولم أكن على علمٍ بلغات متدنيّة المستوى أو حتى خصائصها. حيث كان الفصل الدراسي يتألف من حصصٍ ومحاضرات تَجرى ولمرة واحدة في الأسبوع في تطبيقٍ لبعض شيفرات  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 كما يوفّر لك استدعاء مكتبات ويندوز بشكل تلقائي. بالتالي تتلاشى معه الكثير من الأخطاء.


أهم الاستخدامات في لغة سي



لا تزال مجالات العمل  بلغة سي محدودة ، حيث يقتصر استخدامها على الطبقات الدنيا من البرامج مثل:

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

بقيت فقط في مجال الرسومات ، وكان في ذلك شغفٌ كبيرٌ بالنسبة لي ، ولذلك علمت الكثير عن مكتبات OpenGL. و DirectX9 ، و10 و 11.بالرغم من النتائج الطفيفة على الشّاشة إلاّ أنّ فرض الشيفرة على موارد الحاسبات أمرٌ يكاد يثير الدهشة!.

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

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


الاستمرارية والتطبيق



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

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


شراء الكتب التعليمية



إنّ معرفة لغات البرمجة لا تقتصر فقط على المكتبات المجانيّة المتوفّرة عبر الانترنت. في بعض الأحيان تدفعُك قلّةِ المصادر إلى شراء بعض الكتب التعليميّة لأكثر من لغة .

كتاب أساسيات البرمجة للعالم Brian Kernighan.

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

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


نصائح قبل البدء في لغة سي


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

أتمنى أن تكن على يقين أنّ الاستمرار في العلوم البرمجية يتطلّب منك الصّبر والمثابرة في بادئة الأمر,  فتحلى بالصبر تاركاً من ورائك النتائج السريعة لمن هم أولى بها.

الخلاصة

  • تتطلب هذه اللغة معرفة جيدة في الخوارزميات والجبر الخطي.
  • جميع معادلات الرياضيات والإحصاء والفيزياء مستخدمة بشكل واسع في عالم البرمجة.
  • البرمجة علم قائم يشبه علوم الرياضيات التحليلية فهو يقوم على الفهم والاستيعاب وليس الحفظ.
  • شكرا لقراءتك هذه المقالة, للمزيد من المعلومات تواصل معنا:admin@hiperaktif.org.

هل أعجبك المقال؟

اترك تعليقاً

لن يتم نشر عنوان بريدك الإلكتروني.

 - 
Arabic
 - 
ar
Bengali
 - 
bn
German
 - 
de
English
 - 
en
French
 - 
fr
Hindi
 - 
hi
Indonesian
 - 
id
Portuguese
 - 
pt
Russian
 - 
ru
Spanish
 - 
es