يعد العصر الحالي هو العصر الأزهى للمبرمجين، فهم الآن الأعلى توسعًا في شتى المجالات المختلفة، فتقريباً لن تجد مجال عملي أو تخصص علمي أو حتى جانب من جوانب الحياة يخلو من البرمجة أو تستطيع البرمجة أن تساهم فيه، فنجدها في المستشفيات تعيّن الأطباء على تحليل مؤشرات وفحوصات المريض للوصول للتشخيص الصحيح أو تدخل في الروبوتات التي أصبحت الآن تعتني
بالمرضى في بعض الأماكن، وكذلك ستجد دور كبير جدًا للبرمجة في أفلامك المفضلة في المؤشرات الخاصة التي تعطي للفيلم واقعيته وتدخلك في الأحداث، ودور البرمجة في التعليم لا مثيل له فهي ساهمت في عمل قفزة فيه، فأصبح متاح لك أن تتعلم أي شيء في أي وقت من أي مكان، وهنا سنبدأ في تعلم البرمجة نفسها ونعرف طريقنا إلى هذا العالم.
والبرمجة هي كتابة أوامر وتعليمات لحاسوب أو جوال أو أي آلة أخرى لتوجهه إلى القيام بأفعال محددة عند مواقف معينة، فهي ببساطة - وبعيدًا عن أي مصطلحات معقدة - اللغة المتبادلة بين الإنسان والآلة، وتتفرع البرمجة إلى تخصصات عديدة ولغات مختلفة لكل تخصص، فستجد اللغات الخاصة بالتطوير ولغات خاصة بالتصميم ولغات تشترك في الاثنين.
وقبل أن ندخل في لغات البرمجة المختلفة والتي هي منطقة يتوه فيها المبتدئين في البرمجة فلا يعرفون بما يبدأون، سنتعرف أولاً على أقسام البرمجة الثلاثة الأساسية:
- تطوير المواقع.
- تطبيقات الحاسوب.
- تطبيقات الجوال.
- تطوير المواقع
وهو يتعلق بإنشاء المواقع الخاصة بالحاسوب بالأساس وتطويرها وذلك ينقسم إلى قسمين أساسيين:
- Front End
وهي الأوامر التي تظهر أمام المستخدم أثناء تصفح الموقع. - Back End
وهي تلك العمليات التي تحدث وراء الكواليس في الموقع عندما يضغط المستخدم على أمر ما كبحث أو خلافه فهي العمليات والمراحل التي تحدث خلال الموقع لتظهر النتيجة للمستخدم.
وتختلف اللغات الخاصة بكل من القسمين، ويترتب القسم الأول على الثاني وسنتعرض لذلك باختصار لاحقًا
- تطبيقات الحاسوب
وهذه في الأساس هي البرامج التي تستخدمها على جهازك الحاسوبي من برامج الكتابة إلى التصميم إلى الألعاب وغير ذلك كثيراً، وهي تختلف في اللغة التي تحتاجها في بناءها من نظام تشغيل إلى آخر سواء نظام Windows أو Mac أو Linux فستجد اللغات والبرامج المستخدمة ستختلف معك.
- تطبيقات الجوال
وهذا القسم الأخير ظهر بشدة مع طفرة الهواتف الذكية، فأصبحت أغلب المواقع تحتاج إلى صنع تطبيق يسهل على مستخدميها استخدام الموقع وخدماته من خلال الجوال وكذلك الألعاب المختلفة والتطبيقات التي تساعدنا في شتى أمور الحياة، وتنقسم التطبيقات هنا إلى ثلاثة أقسام فهي إما لنظام Android أو IOS أو Windows Phone وهناك لغات تخدم الثلاثة أيضًا.
ورغم أن اللغات المستخدمة في الأقسام الثلاثة مشتركة إلا أن كل قسم يعتبر تخصص، وستجد أكثر المبرمجين يركزون في أحد المجالات تلك، مع أن ذلك لا يمنع أن يكون لهم بعض الأعمال في المجالات الأخرى لكن يتميزون بأحدهم وذلك لاختلاف طبيعة تطبيق اللغة في كل واحد.
نصل إلى اللغات المختلفة وأيهم تختار لتبدأ به مسيرتك..
ستجد اختلافات في الآراء كثيرة وذلك سيختلف حسب مرادك من تعلم البرمجة قليلاً، ولكن ما أجمع عليه الكل أنه يجب عليك أن تعرف اللغات التي تحتاج لأن تتعلم غيرها قبلها فترتقي في المستويات بشكل سليم.
فهناك لغات برمجة أساسية مثل:
- C/C++/C#
- Java
- Python
- Ruby
وسيختلف اختيارك هنا حسب ما تريد أن تبدأ العمل فيه أولاً، اذا كنت تريد التعلم على تطبيقات الجوالات بنظام Android يجب أن تتعلم لغة الجافا أولاً، واذا كنت تريد التعلم على تطبيقات نظام Windows فهنا سيقع اختيارك على لغة C# مثلاً.
بعد ذلك تأتي لغات تطوير المواقع أو اللغات التي بعضها يحتاج إلى تعلم احدى اللغات السابقة:
- HTML
- PHP
- Javascript
- CSS
- Rails
وهؤلاء تحتاجهم في تطوير المواقع، فهم يختصون بجانب الـFront End الذي سبق وتحدثنا عنه وكذلك يدخلون في باقي الأقسام، ومنهم ما يحتاج لتعلم لغة سابقة مثل Rails فهي تحتاج منك إلمامًا بلغة Ruby قبلاً ومنها ما لا يحتاج كلغة PHP أو Javascript والتي يمكنك البدء بها دون أن تحتاج إلى غيرها.
وبعد تلك المقدمة فأنت تحتاج إلى المصادر التي تتعلم منها وهي لا بداية لها ولا نهاية ولكن هناك بعض المصادر الافضل من غيرها مثل:
Codecademy .. https://www.codecademy.com/
PHP Academy .. https://www.codecourse.com/
Harvard University’s CS50 class .. https://www.edx.org/course/introduction-computer-science-harvardx-cs50x
أكاديمية حاسوب .. https://academy.hsoub.com/programming/
خان أكاديمي .. https://www.khanacademy.org/computing/computer-programming
فاختر وابدأ في هذا العالم وحدد لنفسك خطة واضحة فالأمر لن يتم بين ليلة وضحاها وهو سبب يدفع كثير من المبتدئين إلى الإحباط لأنهم يتوقعون أن يتعلموا اللغة الواحدة في زمن قياسي، لكنك ستجد عندما تسأل مبرمجين آخرين أن الأمر يستلزم شهور عديدة، فاصبر وامضي بثبات إلى عالم البرمجة.