طريقك نحو تعلم لغات البرمجة ( الجزء الأول )

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

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

لماذا يجب عليك تعلم البرمجة؟

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

بعد هذه المقدمات سنتطرق الى بعض المفاهيم و التعريفات التي يمكن أن تثير الحماس للبدأ منها
تعريف البرمجة
من الممكن تعريف البرمجة بأنها عملية كتابة تعليمات وأوامر لجهاز الحاسوب أو أي جهاز آخر، لتوجيهه وإعلامه بكيفية التعامل مع البيانات أو كيفية تنفيذ سلسلة من الأعمال المطلوبة.و تتبع عملية البرمجة قواعد خاصة باللغة التي اختارها المبرمج.
كل لغة لها خصائصها التي تميزها عن الأخرى وتجعلها مناسبة بدرجات متفاوتة لكل نوع من أنواع البرامج والمهمة المطلوبة من هذا البرنامج.
تقسم لغات البرمجة بناء على قربها من اللغات الإنسانية إلى لغة عالية المستوى (قريبة من اللغة التي يفهمها البشر) مثل سي وجافا ولغة منخفضة المستوى (كلغة الأسيمبلي Assembly وهي قريبة من لغة الآلة).
أمثلة لبعض لغات البرمجة للحاسوب عالية المستوى:
سي،سي++،سي شاري (سي #)،جافا،ليسب،برولوغ،بايثون،فورتران،روبي،أدا،دلفي،بيسك،كوبول،باسكال،إس كيو إل،بي إتش بي،جافا سكربت،جيم،لغة لوغو Logo،أطلس أوتوكود،لغة دارت
يمكن تصنيف لغات البرمجة من حيث طريقة بناء البرامج إلى لغات إجرائية (Basic، Fortran) وهي لغات تسلسلية، أساس بناؤها هو الإجراءات المطلوب تطبيقها على المعطيات والمتحولات. ولغات شيئية (C، Java، Delphi) وهي لاتسلسلية، وتقوم على أساس العناصر والمتحولات المستخدمة ضمن البرنامج المطلوب تحويلها، من خلال تطبيق مجموعة معينة من الإجراءات عليها.
كما أن للغات البرمجة أيضاً خصائص مشتركة وحدود مشتركة بحكم أن كل هذه اللغات صممت للتعامل مع الحاسوب.
وتتطور لغات البرمجة (البرمجيات Software) بتطور الحاسوب (الهاردوير Hardware). فعندما ابتكر الحاسوب الإلكتروني في الأربعينيات والخمسينيات من القرن الماضي (بعد أجهزة الحساب الكهربائية في العشرينات)- وكان الكمبيوتر يعمل بأعداد كبيرة من الصمامات الإلكترونية ، كانت لغة البرمجة معقدة هي الأخرى، وكانت عبارة عن سلسلة من الأعداد وتكتب على شكل اكواد برمجية طويلة هذي الاعداد هي الرقمين الصفر 0 والواحد 1 ، وكان ذلك صعبا على المبرمجين. ولكن بابتكار الترانزيستور صغر حجم الحاسوب كثيرا وزادت إمكانياته، واستطاع المختصون والمبرمجون في نفس الوقت أن يبتكروا لغات برمجة أسهل للاستخدام، وأصبحت لغات البرمجة مفهومة إلى حد بعيد للمختصين. ولا يزال التطوير والتسهيل قائماً.
خصائص لغات البرمجة
 توفر لغة البرمجة المختارة مجموعة من الأسس للاستناد إليها أثناء عملية تكوين البرنامج ومجموعة من القواعد التي تمكن من التعامل مع المعلومات وتنظيمها بغرض أداء العمل المطلوب.
تتمثل هذه الأسس والقواعد بصفة عامة في: المعلومات وتخزينها ،الأوامر وتنظيم سيرها ،التصميم الخاص
المعلومات وتخزينها
يتم تخزين المعلومات في الأجهزة الرقمية الحالية في هيئة أرقام طبقا لنظام العد الثنائي (أي المعتمد على 0 و 1). و بصفة عامة فان المعالجات الحديثة لا تقوم بالتعامل مع البت الواحد بل مع مجموعات من البتات يمكن أن تضم :
8 بت = 1 بايت وهي أصغر وحدة تخزين معلومات في الحواسيب الحديثة
وباستعمال 8 بت مثلا، يمكن تشكيل 256 قيمة مختلفة، ويمكن أن تكون هذه القيمة بين 0 و 255 وتمثل وظيفة لغة البرمجة استغلال وحدة أو مجموعة من الوحدات (رموزا) لتخزين معلومات من الحياة الواقعية مثل الأسماء أو القياسات أو أرقام الحسابات البنكية.
الأوامر وتنظيم سيرها
يقوم المبرمج باجراء عمليات على وحدات المعلومات مثل تخزينها وقراءتها ومقارنتها، كما يمكن إجراء عمليات حسابية عليها أيضا، وتتبع العمليات القواعد المحددة للغة. و للغة البرمجة دور آخر وهو التحكم في تنظيم إجراء العمليات، حيث توجه تنفيذ خطواتها بنفس تتابع كتابتها من طرف المبرمج،
التصميم الخاص
تتمتع كل لغة بتصميم خاص من حيث التعامل مع المعطيات، ومن حيث الطرق والتسهيلات التي توفرها اللغة للتعامل مع مشكلة معينة.
أفضـل لغات البــرمجة التي يمكنــك البــدء فى تعلمهــا
الآن الجميع يتسائل عن ما هي افضل لغة برمجة  للبدء في التعلم ؟.. لكن الحقيقــة أنه لا يوجد اجابة مناسبة..
للبــدء في تعلم لغات البرمجة يجب اولاً ان تسأل ما هي اللغة الانسب التي تلبي احتياجاتي ؟ .. فمثلاً هل تريد ان تقوم ببرمجة المواقع ، او البرامج ، او برمجة تطبيقات للموبايل
لغات البرمجة عديدة وليس هناك لغة قديمة او حديثة ، المهم ان تلبي حاجات المشروع التي ترغب بالعمل به .. كما ان هناك العديد من الشركات التي تفضل أن يكون الشخص ان يكون ملم بأكثر من لغة برمجية..
العوامل المساعدة في اختيار اللغة البرمجية المناسبة :
– اللغة التي سوف توفر لك افضل أساس مفاهيمي جيد
– اللغة التي ستساعدك الى الانتقال الى اللغات الاخرى بكل سهولة
– اللغة التي تساعدك في التسويق لعملك
لتعلم اساسيات البرمجة اعتقد ان لغة python  و ruby  مفيدة جداً, لكن انا انصح بلغة c# و java لأنها تساعد كثيراً للأنتقال الى لغات اخرى بكل سهولة , طبعاً اضيف عليهم لغة  c++
جولــة سريعـــة فى لغــات البرمجة:
Java
لغة غرضية التوجه ظهرت لأول مرة عام 1995 حيث قام بتصميمها جيمس جوسلينغ , كما انها تعد الأكثر شعبية من بين جميع لغات البرمجة
الاستخدامات : برمجة الشبكات , تطوير تطبيقات الوب , تطوير البرامج , تطوير واجهات المستخدم الرسومية GUI
مستخدمة من قبل اندرويد (نظام التشغيل , التطبيقات)
C#
لغة غرضية التوجه ظهرت لأول مرة عام 2000 قام بتصميمها شركة  مايكروسوفت , شبيها بلغة java  تمتاز بسرعة الاداء , لكن نقطة الضعف انها تعمل فقط على بيئة windows
C++
الجميع يعتبر هذه اللغة الأفضل في بناء التطبيقات , ظهرت لأول مرة عام 1983 قام بتصميمها بيارن ستروستروب , ميزاتها انها سريعة , نقطة الضعف يعتقد البعض انها اصبحت قديمة
الاستخدامات : برمجة الالعاب , كما انها تعتبر جزء لا يتجزء في بناء البرامج
مستخدمة في :Mozilla Firefox , Adobe  Google Chrome , Internet Explorer
Python
لغة برمحة غرضية التوجه , تتميز بسهولة تعليمها , وببساطة كتابتها و قرائتها , ظهرت لأول مرة عام 1991 قام بتصميمها جايدو فان روسم
الاستخدامات : تطبيقات الويب , تطوير البرامج , امن المعلومات
مستخدمة من قبل Google , Yahoo
Ruby
ظهرت هذه اللغة لأول مرة عام 1993, قام بتصميمها الياباني يوكيهيــرو ماتسوموتو , وهي غرضية بشكل كامل, كما انها سهلة التعلم
الاستخدامات : تطوير تطبيقات الويب , Ruby on Rail
مستخدمة في : twitter , hulu
اللغات التي تساعدك على التسويق ، ذلك يعتمد على ما الذي ترغب بالقيام به .. مثلاً :
# تريد العمل في بناء المواقع لديك PHP
# بناء تطبيقات ابل Objective-C
# تطبيقات اندرويد java
Objective-C
لغة برمجة مستخدمة بشكل رئيسي من قبل شركة ابل ظهرت لأول مرة عام 1983 قام بتصميمها براد كوكس وتوم لوف
الاستخدامات: برمجة تطبيقات ابل
Php
ظهرت لأول مرة عام 1995 قام بتصميمها راسموس ليردور  , وهي اللغة الأكثر شعبية في بناء تطبيقات الويب التفاعلية , كما انها مفتوحة المصدر
مستخدمة في : Facebook , Wikipedia , WordPress , Joomla
******************
بالنهاية فان امتلاكك لمهارة البرمجة تجعلك شخصا مبدعا و لا يشترط أن يكون إختصاصك متعلق بالإعلام الإلي فكثير من المبرمجين الكبار طوروها إبتداءا من موهبة وللبدء في تعلم لغة برمجة ، تعلم لغة تساعدك بتعلم لغات برمجية اخرى ولتكن مثلا لغة c#  و java ، والله أعلم
شاهد أيضا : طريقك نحو تعلم لغات البرمجة ( الجزء الثاني )
المصادر بتصرف : 1  2  3  4  5