يا جماعة الخير، السلام عليكم ورحمة الله. اسمي أبو عمر، وأنا اليوم جاي أحكيلكم قصة من أيام ما كنت “صغيّر” في عالم البرمجة، قصة غيرت نظرتي كلها لموضوع البحث عن شغل.
قبل سنوات، بعد ما تخرجت من الجامعة متحمس ومليان طاقة، كنت مفكر إنه الدنيا راح تفتحلي ذراعيها. سيرتي الذاتية كانت جاهزة، فيها شوية دورات وتقدير جيد، ومهارات مكتوبة زي “خبير في لغة جافا” و”متمكن من قواعد البيانات”. كنت أصحى كل يوم الصبح، أفتح مواقع التوظيف، وأبدأ رحلة “التقديم العشوائي”. أقدم على 10، 20، 30 وظيفة في اليوم… وبعدين؟ ولا إشي. صمت مطبق. كأن سيرتي الذاتية بتدخل على جهاز الكمبيوتر تبع مدير التوظيف، ومنه مباشرة على سلة المهملات الرقمية.
بعد شهرين من الرفض الصامت، بلشت أحس بالإحباط. قعدت مع حالي وسألت: “يا زلمة، شو القصة؟ أنا بعرف أكتب كود، وفاهم الأساسيات، ليش ما حدا معبرني؟”. في يوم، كنت بحكي مع مبرمج قديم، “ختيار” في الكار زي ما بنحكي، وشكيتله همي. نظر فيّ نظرة أب حنون، وحكالي جملة بعدها بترن في وداني: “يا أبو عمر، سيرتك الذاتية بتحكي، بس ما بتثبت. ورجيني شغلك، مش تحكيلي عنه”.
هاي الجملة كانت زي كف صحاني من غفلة. أدركت وقتها إن سوق العمل ما بده شهادات وقوائم مهارات وبس، بده دليل ملموس. من يومها، قررت أوقف إرسال السير الذاتية، وأبدأ في بناء “البورتفوليو” تبعي. وهي القصة اللي راح أحكيلكم إياها اليوم.
من السيرة الذاتية “الصامتة” إلى السيرة الذاتية “الناطقة”
تخيل معي سيناريوهين:
- السيناريو الأول (سيرتي الذاتية القديمة): مدير توظيف يفتح السيرة الذاتية، يقرأ “مهارات: Python, Django, SQL”. يقول في نفسه: “تمام، زي الـ 100 واحد اللي قدموا قبله”. ثم يضعها جانبًا.
- السيناريو الثاني (السيرة الذاتية الجديدة): يفتح السيرة الذاتية، يقرأ نفس المهارات، لكن تحتها رابط لمشروع اسمه “نظام إدارة حجوزات عيادة طبية”. يضغط على الرابط، يجد صفحة على GitHub فيها كود منظم، ملف README يشرح المشروع بالتفصيل، ورابط للمشروع شغال أونلاين. هنا، مدير التوظيف ما راح يحكي “تمام”، راح يحكي “أوه، مثير للاهتمام!”.
الفرق يا جماعة هو إن البورتفوليو حوّل سيرتي الذاتية من مجرد ورقة فيها ادعاءات، إلى وثيقة حية فيها إثباتات. صارت “ناطقة” بقدراتي الحقيقية.
ما هو “البورتفوليو” وليش هو أهم من الشهادة أحياناً؟
البورتفوليو، أو معرض الأعمال، هو ببساطة مجموعة من المشاريع اللي اشتغلت عليها واللي بتعرض مهاراتك وقدراتك بشكل عملي. هو جوابك على سؤال “شو بتقدر تعمل؟” مش “شو درست؟”.
البورتفوليو ليس مجرد معرض أعمال
لا تفكر فيه كأنه ألبوم صور. البورتفوليو هو دليل على طريقة تفكيرك:
- إثبات المهارة: أنت تقول أنك تعرف React؟ مشروعك هو الدليل.
- القدرة على حل المشكلات: كل مشروع هو قصة عن مشكلة واجهتها وكيف حليتها بالكود.
- الشغف والالتزام: بناء مشروع من الصفر خارج إطار الدراسة أو العمل يدل على إنك بتحب المجال ومستعد تبذل مجهود إضافي.
- القدرة على التعلم: مشروع استخدمت فيه تقنية جديدة تعلمتها بنفسك هو أقوى دليل على أنك قادر على التطور.
“ورجيني شغلك، مش تحكيلي عنه”
هاي هي العقلية الجديدة في التوظيف التقني. الشركات، وخصوصاً الشركات الناشئة والحديثة، بهمها الموظف اللي “بجيب من الآخر”. مدير التوظيف ما عنده وقت يصدق كل كلمة مكتوبة في السيرة الذاتية، لكنه راح يخصص 5 دقائق عشان يشوف مشروع حقيقي عملته.
كيف تبني بورتفوليو يخلي الشركات تتصل فيك؟ (خطوات عملية من المطبخ)
طيب يا أبو عمر، حمستنا. كيف نبدأ؟ الموضوع أبسط مما بتتخيل. اتبع هاي الخطوات اللي أنا مشيت عليها شخصيًا.
الخطوة الأولى: ابحث عن مشكلة، مش عن فكرة
أكبر غلطة بيوقع فيها المبتدئين هي البحث عن “فكرة مشروع عبقرية”. انسى الموضوع. أفضل المشاريع هي اللي بتحل مشكلة حقيقية، حتى لو كانت صغيرة وشخصية.
- مثال شخصي: كنت أضيع وقت طويل كل يوم في تصفح عدة مواقع إخبارية عشان أتابع أخبار تقنية محددة. المشكلة: تضييع وقت. الحل: بنيت سكربت بسيط بلغة بايثون (باستخدام مكتبات
requestsوBeautifulSoup) يجمع لي الأخبار من هاي المواقع في ملف واحد. مشروع بسيط، لكنه حل مشكلة حقيقية. - أفكار أخرى:
- أداة لحساب ميزانيتك الشهرية.
- تطبيق صغير لتنظيم مهامك اليومية (To-Do list) لكن مع ميزة معينة (مثلاً يرسل لك تذكير على تيليجرام).
- سكربت لأتمتة مهمة مملة في عملك أو دراستك.
الخطوة الثانية: وثّق كل اشي بتعمله (الكود هو جزء من القصة)
لا يكفي أن تكتب الكود. لازم تعرضه بطريقة احترافية. وهنا يأتي دور منصة مثل GitHub.
- أنشئ حساب على GitHub: إذا ما عندك حساب، اعمله الآن. هذا هو معرض أعمالك الدائم.
- ارفع كل مشاريعك: حتى لو كانت بسيطة. تعلم استخدام Git. هذه مهارة أساسية بحد ذاتها.
- اكتب ملف
README.mdخرافي: هذا الملف هو واجهة مشروعك. مدير التوظيف سيقرأه قبل أن يقرأ الكود. يجب أن يحتوي على:- اسم المشروع وشعار بسيط.
- وصف موجز: جملة أو اثنتين تشرح ما هو المشروع.
- المشكلة والحل: اشرح المشكلة التي يحلها مشروعك وكيف يقوم بذلك.
- التقنيات المستخدمة: (مثال: Python, Flask, PostgreSQL, Docker).
- كيفية تشغيل المشروع محليًا: خطوات واضحة للمطورين الآخرين لتشغيل الكود.
- لقطات شاشة (Screenshots) أو GIF: صورة بألف كلمة.
- رابط مباشر للمشروع (Live Demo): إذا كان تطبيق ويب، ارفعه على خدمة مجانية مثل Netlify, Vercel, أو Heroku.
نصيحة من أبو عمر:
ملف README هو فرصتك لتسويق مشروعك ونفسك. لا تهمله أبدًا. اكتبه كأنك تشرح المشروع لمديرك المستقبلي. اشرح قراراتك التقنية: “ليش استخدمت NoSQL بدل SQL في هذا المشروع؟” هذا يظهر عمق تفكيرك.
الخطوة الثالثة: اختر 3 مشاريع “ذهبية”
الجودة أهم من الكمية. لا تضع 20 مشروعًا منسوخًا من فيديوهات يوتيوب. اختر أفضل 3-5 مشاريع وركز عليها في سيرتك الذاتية وموقعك الشخصي. حاول أن تنوع فيهم:
- مشروع (1): مشروع متكامل يظهر قدرتك على بناء تطبيق من الألف إلى الياء (مثلاً، تطبيق ويب بواجهة أمامية وخلفية وقاعدة بيانات).
- مشروع (2): مشروع يركز على مهارة معينة مطلوبة في السوق (مثلاً، مشروع يستخدم API خارجي، أو فيه تعامل مع البيانات الضخمة، أو يستخدم تقنيات الذكاء الاصطناعي).
- مشروع (3): مشروع شخصي إبداعي يظهر شغفك. ممكن يكون لعبة بسيطة، أو أداة مفيدة، أو مساهمة في مشروع مفتوح المصدر.
الخطوة الرابعة: اعرض مشاريعك بطريقة احترافية
بعد ما جهزت مشاريعك على GitHub، تحتاج لمكان مركزي لعرضها. أفضل طريقة هي إنشاء صفحة بورتفوليو شخصية بسيطة. لا تحتاج أن تكون مصممًا محترفًا.
- استخدم GitHub Pages: مجاني وسهل جدًا. يمكنك إنشاء موقع بسيط لعرض مشاريعك مباشرة من حسابك.
- استخدم قوالب جاهزة: يوجد آلاف القوالب المجانية لمواقع البورتفوليو (ابحث عن “Portfolio HTML Template”).
- ماذا تضع في الموقع؟
- اسمك وصورتك الشخصية ووصف بسيط عنك (مثلاً: مطور برمجيات متخصص في بناء تطبيقات الويب).
- قسم “المشاريع”: لكل مشروع، ضع صورة، واسم، ووصف قصير، ورابطين (رابط للكود على GitHub، ورابط للمشروع المباشر).
- معلومات التواصل (إيميل، رابط LinkedIn، رابط GitHub).
أمثلة على مشاريع بورتفوليو “تفتح النفس”
عشان أسهل عليكم، هاي شوية أفكار لمشاريع حسب مستواك:
للمبتدئين (Junior Developers)
- تطبيق طقس: بسيط، لكنه يعلمك كيف تتعامل مع واجهات برمجة التطبيقات (APIs) الخارجية.
- مدونة شخصية بسيطة: تتعلم منها أساسيات CRUD (Create, Read, Update, Delete) وقواعد البيانات.
- تطبيق Pomodoro Timer: تطبيق لإدارة الوقت، يعلمك التعامل مع الـ State والأحداث في الواجهات الأمامية.
للمتوسطين (Mid-level Developers)
- تطبيق دردشة فوري (Real-time Chat): باستخدام WebSockets. يظهر قدرتك على التعامل مع التقنيات المتقدمة.
- لوحة تحكم (Dashboard) لعرض بيانات: اسحب بيانات من مصدر معين (مثلاً، بيانات كورونا) واعرضها في رسوم بيانية تفاعلية باستخدام مكتبات مثل D3.js أو Chart.js.
- نسخة مبسطة من موقع تجارة إلكترونية: مع سلة تسوق ونظام دفع وهمي.
للمحترفين (AI / Senior)
- محرك توصيات (Recommendation Engine): مثلاً، يوصي بأفلام بناءً على تقييمات المستخدم باستخدام خوارزميات مثل Collaborative Filtering.
- أداة تلخيص نصوص: باستخدام نماذج معالجة اللغات الطبيعية (NLP) الجاهزة من Hugging Face.
- مشروع Infrastructure as Code (IaC): استخدم Terraform أو Ansible لأتمتة إعداد بيئة سحابية كاملة على AWS أو Azure.
وهنا مثال بسيط جدًا على الكود اللي حكيت عنه (سكربت جمع الأخبار)، عشان تشوفوا إنه البداية مش محتاجة تعقيد:
# A simple Python script to scrape tech news titles from a website
import requests
from bs4 import BeautifulSoup
def scrape_tech_news(url):
"""
Scrapes the main headlines from a tech news website.
Note: The selectors need to be updated based on the target website's structure.
"""
try:
response = requests.get(url, timeout=10)
response.raise_for_status() # Raise an exception for bad status codes
soup = BeautifulSoup(response.text, 'html.parser')
# This is an EXAMPLE selector. You need to inspect the website
# to find the correct one for headlines (e.g., 'h2.post-title a')
headlines = soup.select('h3 a')
if not headlines:
print("Could not find headlines with the specified selector.")
return
print(f"--- Top Tech Headlines from {url} ---")
for index, headline in enumerate(headlines, 1):
print(f"{index}. {headline.get_text(strip=True)}")
print(f" Link: {headline['href']}")
print("----------------------------------------")
except requests.exceptions.RequestException as e:
print(f"An error occurred: {e}")
# Example usage with a placeholder URL
# You should replace this with a real news website you have permission to scrape
if __name__ == "__main__":
# IMPORTANT: Always check a website's terms of service (robots.txt) before scraping.
tech_website_url = "https://www.example-tech-news.com"
scrape_tech_news(tech_website_url)
هذا الكود البسيط، لما تضعه على GitHub مع ملف README يشرح ليش عملته وكيف بيشتغل، قيمته أكبر بألف مرة من سطر “أعرف بايثون” في سيرتك الذاتية.
الخلاصة: البورتفوليو هو جواز سفرك في عالم التكنولوجيا 🗺️
يا جماعة، بعد ما بنيت أول 3 مشاريع، حدث شيئين: الأول، ثقتي بنفسي زادت بشكل لا يصدق. بطلت أحس إني “بشحد” وظيفة، صرت أحس إني بعرض قيمة حقيقية. الثاني، وهو الأهم، بلشت تجيني ردود. بدل الصمت، صرت أتلقى إيميلات “مرحبًا أبو عمر، رأينا مشروعك X على GitHub ونود الحديث معك”. المقابلات تغيرت، بطلت أسئلة نظرية جافة، وصارت نقاشات حول مشاريعي: “ليش اخترت هاي التقنية؟” و “لو بدك تطور على مشروعك، شو بتعمل؟”.
من الآخر، لا تستنوا الوظيفة عشان تبنوا خبرة. ابدأوا اليوم. اختاروا مشكلة صغيرة، وحلوها بالكود. وثقوا رحلتكم، واعرضوها بفخر. البورتفوليو تبعكم مش مجرد مجموعة أكواد، هو قصتكم، هو هويتكم التقنية، وهو جواز السفر اللي راح يفتح لكم أبواب كنتم تظنونها مغلقة.
بالتوفيق للجميع، وإذا عندكم أي سؤال، أنا موجود. الله ييسر أموركم.