يوجد كثير من المقالات التعريفية عن تخصص علوم الحاسب، ولكن هنا سأحاول عرض التخصص بطريقة مختلفة نوعا ما (قد يكون هناك من سبقني لذلك لكن لم أطلع عليه). سأتحدث هنا باختصار عن التخصص وفروع، ومجالات العمل المستقبلية فيه. أنا هنا لا أدعو القارئ أن يتخصص في علوم الحاسب، لكن أوضح له ما هو التخصص حسب خبرتي ودراستي.
ما هو تخصص علوم الحاسب Computer Science؟
أولا ما هو الحاسب Computer؟ الحاسب باختصار هو آلة قابلة للبرمجة لتنفيذ سلسلة من الأوامر المنطقية والحسابية. فاللابتوب والجوالات الذكية وغيرها مما ينطبق عليها التعريف هي أنواع من الحاسبات.
علوم الحاسب هو تخصص يهتم بدراسة الحاسب كآلة والأنظمة الحاسوبية المبنية على هذه الآلة من حيث الأسس النظرية لها، والتصميم، والتطبيقات. وبعكس تخصص الهندسة الكهربائية (الالكترونيات على وجه التحديد) وهندسة الحاسبات، تخصص علوم الحاسب يهتم أكثر بالأنظمة البرمجية software وليس العتاد الصلب hardware. فيمكن القول أن تخصص علوم الحاسب منفصل تقريبا عن صناعة الحاسب ماديا (الذي هو من اختصاص مهندسي الحاسبات والالكترونيات).
فروع التخصص:
كغيره من التخصصات القديمة نسبيا، تخصص علوم الحاسب متفرع لتخصصات فرعية عديدة، وهنا سأتبع التقسيم الموجود في جامعة كولومبيا وبعض الجامعات الأخرى (تقسيم افتراضي).
1- التطبيقات والذكاء الصناعي Applications and Artificial Intelligence: تتسم التخصصات تحت هذا المسار أو الفرع بدراسة تطبيقات علوم الحاسب، والمقصود بالتطبيقات التي تتطلب الحاسب أصلا حتى تعمل وليس أي تطبيق مثل استخدام الحاسب في الإدارة مثلا فهذا مجال ليس له علاقة بعلوم الحاسب. تشمل مجالات مثل رؤية الحاسب Computer Vision، معالجة اللغات الطبيعية NLP وتعلم الآلة Machine Learning والروبتات Robotics. غالب هذه التخصصات تحتاج معرفة بالرياضيات خاصة الجبر الخطي (linear algebra) والإحصاء والتفاضل والتكامل.
2- النظري Theory: هذا الفرع يهتم بدراسة الأسس النظرية لعلوم الحاسب، وهي الأسس التي يبنى عليها الأنظمة الحاسوبية الهندسية وتكون هذه الأنظمة (الفرع الثالث) محدودة بهذه الأسس. تشمل تخصصات مثل الخوارزميات Algorithms، التعقيد الحاسوبي Computational Complexity والتشفير Cryptography. تحتاج هذه التخصصات إلى معرفة بطرق البرهان والرياضيات المجردة abstract mathmatics.
3- الأنظمة Systems: يهتم هذا الفرع بدراسة تطوير أنظمة هندسية مبنية على الحاسب كآلة، وتشمل تخصصات مثل الشبكات Networks وقواعد البيانات Databases وأنظمة التشغيل Operating Systems وهندسة البرمجيات Software Engineering. تحتاح هذه التخصصات إلى معرفة بالتقنيات الموجودة أكثر من الجانب النظري التي تبنى عليه.
يعتقد البعض أن البرمجة تخصص جامعي بحد ذاته، وهذا غير صحيح، ففي كل مجالات وتخصصات علوم الحاسب تقريبا توجد البرمجة، فالبرمجة مجرد لغة للتواصل مع الحاسب. في مجال التطبيقات والذكاء الإصطناعي غالبا ما يستخدم المتخصص لغات عالية المستوى مثل بايثون Python، بعكس مجال الأنظمة التي يستخدم فيها لغات مثل C/C++. بينما في الجانب النظري غالبا لا تهم كثيرا لغة البرمجة وغالب المسائل يتم التعامل معها بالسودوكود pseudocode.
مجالات العمل:
مثل معظم التخصصات العلمية والهندسية، فإن المتخصص في علوم الحاسب لديه خيارات للعمل في عدة مجالات: التشغيل operations، الصناعة industry، البحثي والأكاديمي Academic and Research.
1- التشغيل: المقصود به العمل في إدارات تقنية المعلومات IT والتي توجد في أغلب الجهات. فمثلا يستطيع المتخصص في علوم الحاسب العمل في قسم الشبكات مثلا أو قواعد البيانات لجهة ما، وهذه غالبا أكثر الجهات توظيفا، ويتطلب هذا المجال معرفة بالتقنيات والمنتجات الموجودة وتطوير نفسه فيها بحسب تخصصه. يفضل من يختار هذا المجال أن يحصل على شهادات احترافية مثل شهادات سيسكو في الشبكات أو أوراكل في قواعد البيانات.
2- الصناعة: المقصود بها العمل في شركات متخصصة في تقنية المعلومات تنتج برمجيات متخصصة، وهي غالبا محدودة في السعودية والعالم العربي، ومعظمها تنتج برمجيات بسيطة مثل تطبيقات الجوالات والمواقع الالكترونية. بينما عالميا هذه الشركات مثل قوقل وأبل ومايكروسوفت وغيرها. غالبا تتطلب هذه الجهات مهارات برمجية عالية، ومعرفة نظرية جيدة بحسب تخصص الشخص.
3- الأكاديمي والبحثي: وهو العمل على تطوير المعرفة في مجال علوم الحاسب، غالبا تكون في الجامعات أو المراكز البحثية سواء الحكومية أو الخاصة. كثير من الشركات الكبرى مثل قوقل وفيسبوك لديها مراكز بحثية متقدمة. يتطلب العمل في هذا القطاع (غالبا) الحصول على درجة الدكتوراه في تخصص دقيق في علوم الحاسب.
هناك مجالات أخرى مثل التسويق والمبيعات وغيرها، لكن هذه لا تحتاج غالبا لشخص متخصص في علوم الحاسب لشغلها، لذلك استبعدتها من القائمة أعلاه.