إعلان

Collapse
No announcement yet.

كيف أصبح مبرمجا محترفا?

Collapse
X
  • تصفية
  • الوقت
  • عرض
مسح الكل
مشاركات جديدة

    كيف أصبح مبرمجا محترفا?

    كيف أصبح مبرمجا محترفا?

    الاجابة تتمثل في اجابة السؤال التالي (لمن؟.)
    - لمن ؟!!! ، هل قرأت خطأ ؟!!
    - كلا
    - اذن ما هذا الكلام الغريب ماذا تقصد بذلك (لنفسي بالطبع)
    - خطأ اخر يا عزيزي
    - ماذا تقصد اذا؟
    - أقصد أنه يجب عليك أن تعرف هل تريد أن تكون مبرمج محترف لأصدقائك، أم لاشباع مواهبك الشخصية في عمل فيروسات مدمرة مميتة (اللهم احفظنا)، ام لتري خطيبتك أنك تستطيع أن تصمم لها برنامج يعد النجوم في عز الظهر أم ... أم لكي تجد لك مكانة محترمة في سوق العمل، مبرمج ترحب به الشركات و تتمني أن يدعم فرق عملها، و علي المستوي البسيط مبرمج يثق به العملاء و لا يلعنوا الفكرة التي جعلتهم يتعاملون مع الكمبيوتر و تكنولوجيا المعلومات اساسا لأنك صممت لهم برنامج يرحل المدين في الدائن و الدائن في المدين و خربت بيت الشركة.
    لو أن اجابتك غير الاجابة الاخيرة فلا أظن أن المقال سيفيدك كثيرا باعتبار أن (هدفك الاساسي) ليس سوق العمل
    مشكلتنا في الوطن العربي عامة – لو تسمحوا لي فأنا لا أحب الكلام المزوق و أكرم لنا أن نبحث عن حلول لمشاكلنا – أقول مشكلتنا هي أننا لسنا قادرين علي وضع تصور منطقي للأهداف في اطار يراعي الواقعية و البيئة المحيطة التي نعيش فيها و نتعامل معها، و كما درسنا في العلوم مبدأ هام جدا و هو أن البيئة هي كل ما يحيط بنا نؤثر فيها و تؤثر فينا.
    - مازلت لا أفهم
    - و ما الذي لم تفهمه؟
    - ما معني أننا لسنا قادرين علي وضع تصور منطقي للأهداف في اطار يراعي الواقعية و البيئة المحيطة التي نعيش فيها و نتعامل معها؟
    - سأخبرك
    - و لكن جزء جزء
    - من عيني الاثنتين

    أولا : وضع تصور منطقي للأهداف

    فهدفي هو أن أصبح مبرمج محترف و مطلوب و لكن لمن؟ و مطلوب من أي جهة ؟؟؟
    مطلوب من الشرطة أو المباحث مثلا؟
    أم هارب من الخدمة العسكرية و مطلوب من الجيش؟
    كلا ...
    خذها كقاعدة عامة في حياتك ( لا تفكر في الامور دائما من المنظور الذي تفكر انت به، بل تقمص انت جميع الادوار و فكر بعقليتها و استنتج ما الذي يجب ان تفعله) و صدقني النتائج سوف تكون مذهلة للغاية.
    - أعطني مثال
    - حسنا:
    المستخدم يا عزيزي لا يسأل بأي لغة تمت برمجة البرنامج الفلاني، بل يسأل الأسئلة التالية:
    (1) السعر
    (2) الجودة
    (3) السهولة و السرعة
    (4) امكانيات الترقية و الصيانة و الاعتمادية
    (5) و الكثير من الأسئلة الأخري التي لا تتعلق بأي من لغات البرمجة تبرمج لا من قريب و لا من بعيد
    و بالتالي لا يهمه أي اللغات تمت البرمجة بها تماما كل ما يريده هو برنامج ذو مظهر أنيق سريع و قوي و قابل للاعتمادية و التحديث و سوف ترتسم بسمة كبيرة علي شفتيه طالما حققت كل هذه الاهداف له و حتي ان برمجت هذا البرنامج بالأسمبلي.
    اذا فتصورك لهدفك لابد وأن يكون منطقيا و لا أتوقع من مبرمج عربي مثلا أن يتجه - في الوقت الحالي علي الأقل- الي برمجة الألعاب ليس لأننا لا نملك الكفاءات أو المواهب، و لكن هناك أسباب أخري كثيرة، علي الأقل يكفيك أن تعرف أن كثير من الألعاب تحتاج الان الي كروت شاشة معينة (امكانيات رهيبة طبعا و أيضا مبالغ رهيبة - في أحد الايام وجدت كارت شاشة علي النت جي فورس ثمنه 650 دولار يعني ثمن جهاز كامل – ) و هو ما يقودنا الي استنتاج العلاقة بين مصنعي الألعاب و مصنعي الهاردوير؟؟؟؟!!.
    اذا فالموضوع ليس محصورا في نطاق مجالنا العلمي البحت كمبرمجين انما يمتد الي أمور تجارية و هذا هو لب الموضوع .
    و لسوف يزيد اهتمامك بمعرفة ما يدور في الاروقة الادارية لشركات البرمجة بوجه خاص و شركات تكنولوجيا المعلومات بوجه عام، فلقد نسينا أو بتعبير أكثر دقة تناسينا أن هذه الشركات (هادفة للربح في المقام الأول) فلو أن الفيجوال بيسك مثلا سوف يكلفهم أقل و ينتج أكثر و في وقت أقصر و بمستوي جودة ملائم فمرحبا وأهلا به و لتذهب اللغات الأخري للجحيم (مثال لا أكثر)، و بالتالي لابد و أن أكون منطقيا وانا أحدد هدفي فليس من المنطقي أن أؤسس شركة أحمد و شركاه للألعاب و يوجد بجانبي فرع e a games مثلا لأنني بالتأكيد سأخسر و هذا ينطبق عليك كمبرمج.
    و سأحكي لكم قصة بسيطة لنتعرف علي موضوع الامكانات و بعدها نتكلم عن تجربة الهند - التي أصبحنا نتمني أن نصل لمستواها الان للأسف الشديد –
    في بداية التحاقي بكلية التجارة كان يوجد cyper قريبا من الكلية و كان به العديد من الأجهزة و لكنها كانت كلها قديمة – أفضلهم كان Pentium ii - و المكان غير منظم و الي حد ما يفتقر الي الذوق و الاناقة و كنا نعاني من أن السرعة بطيئة و لم يكن الانترنت المجاني قد ظهر في مصر في تلك الاونة، و بالتالي كان هذا ال cyper هو البديل الوحيد في كثير من الاحيان و مرت الايام و فجأة ظهر cyper اخر بجانب الاول القديم و اجتذب جميع الزبائن لم يكن أكبر من الاول و لكنه كان جميلا منظما وواضح انه تم الاستثمار فيه بشكل جيد و كان أجر الساعة في الجديد ضعف أجرها في القديم و كانت السرعة فظيعة و حاول القديم يائسا أن يعيد بعض من الزبائن مرة أخري اليه حتي وصل الي ان أجر الساعة به يساوي ثمن قطعة حلوي و لكن ..... لم تجد محاولاته نفعا و اضطر في النهاية الي أن يغلق المكان و يعتزل المجال للأبد و يقلبه ( كافي شوب ) .
    يسألني الأخ المشاغب :
    - معذرة و لكن كلامك غير منطقي
    - ولم؟!!
    - الهند دولة فقيرة و متخلفة و مع ذلك أصبحت عملاق من عمالقة البرمجة فما السبب بالرغم من أنك تتكلم عن فرق الامكانات
    - يا عزيزي انا لا أتكلم عن الامكانات لأحبطك بل لأرشدك الي ان تراعي كافة الجوانب و اهمها امكاناتك عندما تصمم الهدف الذي ينبغي عليك الوصول اليه، و لقد ضربت الهند أروع مثل في ذلك فالهند عرفت واقعها و لم تتخلي عن طموحاتها و عندما نافست محليا وصلت عالميا و السؤال هل نافسنا محليا؟؟؟؟؟ فكيف تطمع أن تصل عالميا و مازال بنو جلدتك يفضلون برامج ابناء العم سام عن برامجك و لا ألومهم علي ذلك فمعيار السوق هو كم سأدفع و كم سأجني في المقابل؟.
    و هو ما سيقودنا للشق الثاني كما سوف تري
    كان هذا فيما يتعلق بوضع التصور المنطقي للأهداف.


    ثانيا : وضع هذا التصورفي اطار يراعي الواقعية و البيئة المحيطة التي نعيش فيها و نتعامل معها:

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

    البداية:
    موضوع تصنيع البرمجيات:

    بالنسبة لموضوع تصنيع البرمجيات نجد ان الموضوع لا ينطوي علي لغات البرمجة فقط ويا للعجب .. كيف ذلك؟

    بالطبع فالبرنامج ما هو الا منتج و سأضرب لذلك مثال للتوضيح:
    لنفترض أننا دخلنا مصنع للسيارات فما الذي نتوقع أن نجده بالداخل
    - سيارات !!!
    - لا و الله ذكي و دي جبتها لوحدك تقصد مراحل الانتاج ، نعم بالفعل السيارة تمر علي العديد من المراحل و ليست كلها مراحل تصنيع أجزاء ميكانيكية أو أوتوماتيكية!!!
    بل هناك مقاعد جلدية و أجهزة cd و سماعات و زجاج و تكييف و .... تري اذا رجعنا بالذاكرة الي العهود الاولي لتصنيع السيارات هل سنجد كل هذه الاشياء؟
    بل سنجد مجرد أجزاء ميكانيكية ضخمة تحبو علي الارض و لا تقدم مستوي عالي في خدمة النقل و ظل الكثير يفضلون عربة الخيول عليها لفترة ليست بالقصيرة
    - و ما العلاقة .. ( الأستاذ مشاغب يسأل)
    - العلاقة وطيدة جدا فكلاهما منتج و كلاهما حدث له تطور و كلاهما زاد الاعتماد عليه بعكس الماضي و كان لابد من وجود مساندة قوية للغات البرمجة كما كان لابد أن تساند المصنوعات الجلدية و الكهربائية و التبريد صناعة السيارات
    - هل تعني أن لغات البرمجة وحدها لا تكفي؟
    - في كثير من الأحيان نعم
    - و ماذا تقصد بذلك الكل لا يعرف الا لغات البرمجة و مع ذلك يبرمجون
    - نعم يبرمجون و لكن لا ينتجون منتجا منافسا
    - اشرح أكثر
    - حسنا ، لو طلب مني أحد العملاء تصميم برنامج معين و لم أستعن بأي أدوات خارجية سوي لغة البرمجة فقط فلن يشعر نحوي بالامتنان و التقدير هل تعلم لماذا؟
    - لماذا
    - لأنني اعتمدت علي اللغة و أدواتها المدمجة فقط و لم أعتمد علي امكانيات برامج يشهد لها بالكفاءة و القوة و هي (أدوات) استخدمها بجانب لغة البرمجة فمثلا:
    ما الذي يدفعني الي عمل ملف ال set up بواسطة برنامج ال set up الخاص بالفيجوال بيسك مع أنه يوجد set up factory و هوما يزيد من سهولة برنامجي علي الاقل للوهلة الاولي لأن الانطباعات الاولي بالفعل تدوم و أخشي ما تخشاه أن يشعر المستهلك الأخير (المستخدم) أن برنامجه قد تم عمل بعض مكوناته بأدوات بدائية، مما سيحرمك ثقته و أظنك الان تعي أن حرمانك ثقته يعني و بكل بساطة أن يوليك ظهره و يتجه للغرب و ... و يدفع ، و سوف يدفع بسخاء لو قدموا له ما يريده و بالشكل المناسب.
    و هذا مثال بسيط جدا و يكفي أن نتعرض للكثير من البرامج المساعدة كالفلاش و الادوات الجاهزة و غيرها الكثير
    - اذا فالحل من وجهة نظري هو الاتي
    (1) ادرس لغة تحبها و تكون مطلوبة و لها سوق عمل في بلدك و لا تهم الطريقة فكل الطرق تؤدي الي روما و لكن بالطبع أقصرها أفضلها... و في رأيي ابدأ التدريب بنظام ورش العمل بالتوازي مع الاطلاع و الدراسة النظرية و سوف يفيدك احتكاكك بالمحترفين افادة عظيمة جدا، و احذر المؤسسات التي لا هم لها الاجمع المال.
    (2) بالنسبة لموضوع الشهادات العالمية أرجوا أن أوضح لك عزيزي أنها ليست شهادات تعلمك البرمجة بل ستزيد دهشتك اذا عرفت أنها تنتظر منك العكس!!!
    - و كيف ذلك؟
    - اذا عرفت طبيعتها لن ترتسم علامة التعجب الكبيرة تلك علي وجهك
    - و ما هي طبيعتها؟
    - حسنا في البداية كانت فكرة عمل الشهادات العالمية هو أن تتعرف كل شركة علي الخبراء في (منتج معين) أو مجال معين أي أنها شهادة خبرة حتي لا تتعب الشركات في عمل المقابلات الشخصية و تحتار في اختيار الكفاءات و يكون عمل الشهادة هو تسهيل العثور علي أولئك الأشخاص و كذلك الشهادة لهم بالخبرة في التعامل مع هذا المنتج مثل visual basic.net أو c#.net مثلا من خلال العديد من الامتحانات و اذا اجتزتها تصبح certified أو مؤهل للتعامل مع هذا المنتج بكفاءة باعتبارك خبير فيه.
    - مازلت لا أفهم
    - هذا يعني أنك لازم تكون ( خبير جاهز) و تتقدم لنيل الشهادة
    - و هل هذا يعني أنني بعد حصولي علي هذه الشهادة عن طريق الكورسات المكثفة ليس بالضرورة أن أكون مبرمجا محترفا؟
    - للأسف الاجابة بالايجاب
    - فمتي أتخذ خطوة الشهادات العالمية؟
    - بعد أن تتم تعليمك كمبرمج محترف
    - و هل بدون ذلك تكون لشهاداتي العالمية أي قيمة
    - لن تكون لها قيمة لأن شركات السوفت وير ليست ساذجة و حتما اهم شيء عندهم هو الخبرة و المهارة الفعلية فالشركة ليست مستعدة لتعلمك بل تريدك (جاهز) في كثير جدا من الحالات
    و من الممكن أن تكون هذه الشهادات مفيدة جدا لك بعد أن تكمل تعليمك الأساسي كمبرمج محترف، فقد جاء علي لسان المهندس الذي أعمل معه الان في الدبلومة أن الشهادات العالمية ممكن تكون عامل تصفية للخبرات ( ازاي يعني)
    في مصر و أكيد في دول تانية برضه كل سنة ينزل فريق من كبريات الشركات العالمية للعمل في هذه الشركات في أمريكا و ألمانيا و غيرها و طبعا يتقدم لهم أعداد ضخمة جدا و يكون من غير المنطقي أن يتم اختبار كل هؤلاء و في هذه الحالة يطلبوا المبرمجين ال certified فقط لتقليل و حصر نطاق الاختبارات... و ربنا يوفقنا جميعا (ونحب الخير لبعض)
    (3) حاول دائما أن تكون علي علاقة بالمحترفين و ان يزيد احتكاكك بهم دائما و ما أكثرهم في منتدانا و الحمد لله و ان كان عليك أيضا أن تجد من يسعفك علي سماعة الهاتف.
    (4) حاول أن تتعلم كيف تم عمل المشاريع الكبيرة من الالف للياء و لو في بعد الياء أيضا اعرفه و هو موضوع هاااااااااااااااااام جدا جدا جدا و كل المحترفين وصلوا من هذا الطريق و الذي سوف يختصر لك الكثير من الوقت و الجهد
    و علي فكرة يوجد الكثير من الكتب التي تشرح المشاريع التجارية الواقعية المطلوبة في سوق العمل، من المفيد أن تدعم نفسك بواحد أو أكثر من هذه الكتب.
    (5) بعد ذلك عليك أن تسأل من تتدرب علي يديهم عن أفضل التقنيات الموجودة حاليا لعمل شيء ما فالتقنيات صارت متسارعة بشكل مذهل و كل يوم يوجد جديد
    (6) بعد أن أكملنا دراسة اللغة الأساسية بالنسبة لك حاول أن تتعلم العديد من اللغات و الادوات المساعدة ولن تتعلم اللغات الأخري بشكل ثانوي كما يتصور البعض فانتقالك من لغة الي لغة أخري لن يكلفك حتي ربع الوقت الذي أنفقته لتعلم الاولي طالما أنك فهمت (كيف تبرمج) اما موضوع ال syntax و بعض الامكانات الاخري فهو بالتأكيد في نطاق امكاناتك التي أثق بها
    (7) ضع نصب عينيك البرامج التي تنجز لك المهام بشكل ممتاز جدا و في وقت خرافي و هذا سوف يكون له موضوع قادم ان شاء الله
    (8) تدرب علي المشاريع الكبيرة و كيفية عملها و اطلب دائما في المشاريع الكبيرة أن تكون في فريق عمل فأي شركة (محترمة) سوف تضعك في موقف مشابه
    (9) احصد ما تشاء من الشهادات العالمية و الله معك و لن يضيع تعبك



    منقووووووووول

    #2
    الله ينور عليك mshassona

    كلام سليم ومنطقي

    احب اضيف انه أهم حاجة في تعلم البرمجة هو التعليم الموجه

    يعني تختار مشروع او برنامج فعلي وتبدأ العمل والتعلم من خلاله

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

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

    ليست ميزة ان ترهق ذهنك في تعلم مجموعة كبيرة من لغات البرمجة والاهم من ذلك هو ان تتمكن من اتقان لغة واحدة او لغتين وتنجز برامجك من خلالهما

    حاول يكون تصميم برنامجك جذاباً ولكن دون المغالاة في استخدام الالوان والصور وان يكون البرنامج friendly بالنسبة للمستخدم وان لا ترهقه اثناء التنقل بين القوائم ( خاصة ذات الاكثر من مستوى ) لتنفيذ امر معين


    والله الموفق

    تعليق


      #3
      اشكركم على هذه الافادة الرئعة وانا اايدكم فى موضع التعليم الموجة
      وارجوا من الله ان يوفقنا الى ما فية صالح انفسنا وصالح الامة

      تعليق


        #4
        you are welcome tarek_net

        تعليق


          #5
          شكرا عزيزي على نقل الموضوع الجيد والمفيد
          والشكر موصول لكاتب المقال وجزا الله خير الاخت المشرفه ازهارو على الاضافه المفيده وتحياتي لكم اخوكم فالله

          تعليق


            #6
            المشاركة الأصلية بواسطة ProGramer
            شكرا عزيزي على نقل الموضوع الجيد والمفيد


            والشكر موصول لكاتب المقال وجزا الله خير الاخت المشرفه ازهارو على الاضافه المفيده وتحياتي لكم اخوكم فالله
            عفواً اخي ProGramer

            وأهلاً بك في بوابة داماس الرائعة

            تعليق


              #7
              شكر موصول للأخ والأخت الشارحين

              تعليق


                #8
                عفوا اخي ايمن واهلا بك

                تعليق


                  #9
                  الشكر وكل الشكر لك يا أخي على هذا المقال الرائع الذي بالفعل يلامس الواقع ويوضح الطريق للمبرمج المبتدئ
                  جزاك الله كل خير
                  وجعله الله في ميزان حسناتك


                  بوابة الداماس بالفعل موقع متميز

                  تعليق


                    #10
                    بجد كلام فى الصميم

                    تعليق


                      #12
                      مشكور على الموضوع الجميل بس ياريت اتعرف على الاخت ازهار علشان انا مبتدى برمجة وياريت المراسلة على يجب التسجيل لمشاهدة الروابط

                      تعليق


                        #13
                        مشكووووووووووووووووووور

                        تعليق


                          #14
                          من فضلكم اريد معرفه كيف ابدأ واي اللغات ابدأ بيها ويقولون ان السوق غير الدراسه النظري وتقولون يجب محاكاه المبرمجين الخبراء من اين احصل عليهم وكيف يتم محاكاتهم وكيف يتم اكتساب الخبره مثلهم وتقولون ان هناك مشاريع كبيره من واقع سوق العمل للتدريب عليها وكأنك في السوق اين يمكن الحصول عليها وهل يتم اولا معرفه اساسيات لغه من اللغات وتطبيقها ام ماذا ارجو الافاده وشكرا

                          وهذا الايميل لمناقشه****** معلش يا اختي مشرفه قسم البرمجه زي ما استغليتي اخوكي هستغلك معذرا وشكرا

                          تعليق


                            #15
                            يا جماعه الرد السابق كتبته يوم 9/10 واليوم 29/10 يعني فات 20 يوم هو محدش بيدخل القسم ده ولا ايه

                            تعليق

                            تنفيذ...
                            X