المبرمج الناجح

  • المهارات التقنية التي يجب على كل مبرمج معرفتها

    ما هي المهارات التي يجب علي كمبرمج امتلاكها ؟!

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

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

    في هذا المقال سأشرح ما هي المهارات التي يجب عليك امتلاكها لتصبح مبرمجا محترفا وناجحا :

    مهارات المبرمجين

    1- الخوارزميات وحل المشاكل برمجياً: بحيث يتمكن المبرمج من تحليل مشكلة معينة وتحويلها إلى أكواد باستخدام عناصر البرمجة الأساسية مثل الجمل الشرطية (مثل if) وجمل التكرار (مثل for و while) واستخدام المصفوفات (arrays) وغيرها.

    2- البرمجة الكائنية Object-Oriented: بحيث يتمكن المبرمج من تمثيل الأشياء في الحياة الواقعية على هيئة Classes و Objects، واستخدام المفاهيم المساعدة مثل Inheritance و Abstraction و Encapsulation و Polymorphism.

    3- تراكيب البيانات Data Structures: وهي حاويات لحفظ عناصر داخلها بترتيب معينة، بحيث يكون الوصول إلى عناصرها وإجراء بعض العمليات عليها (مثل search و sort) ذو كفاءة عالية. ومن أمثلتها: List, Queue, Set, Tree, Map.

    4- أنماط التصميم البرمجية Design Patterns: وهي عبارة عن حلول ونماذج جاهزة تستخدم لتصميم هيكلة الـ Objects وطرق إنشائها وكيفية التواصل بين بعضها البعض. من أمثلتها: Singleton, Builder, Factory method, Adapter, Composite, Decorator, Facade, Command, Iterator, Strategy, Visitor.

    5- البرمجة المتوازية Concurrent Programming: بحيث يتم تنفيذ البرنامج باستخدام أكثر من Thread. كل Thread يقوم بتنفيذ عدة أوامر متتالية، والـ Threads جميعها يتم تنفيذها بشكل متزامن أو في آن واحد. توجد مفاهيم ذات علاقة، مثل: synchronization, locks, mutex, semaphore, race condition.

    6- التعامل مع الملفات: يجب على المبرمج أن يفرق بين الملفات النصية والملفات الغير نصية (binary) (مثل ملفات الصور والفيديو وغيرها) وكيفية قراءتها وتخزينها على المساحة التخزينية، ويتعرف على مفهوم الـ Encoding (مثل UTF-8) وهي الطريقة المستخدمة لتمثيل النصوص على هيئة binary.

    7- الملفات النصية الشائعة: هناك عدة أشكال formats تستخدم لتخزين البيانات على هيئة نصوص. مثل: CSV, XML, JSON, YAML.

    8– التعابير المنطقية Regular Expressions أو اختصاراً Regex: وهي سلسلة من الحروف تستخدم للبحث عن تطابق داخل نص معين، ويمكن استخدامها أيضاً لتبديل كلمات بأخرى داخل النص أو للتحقق من مدخلات نصية Text Validation. أنصح باستخدام هذا الموقع أثناء بناء regex معين: https://regex101.com

    9- التعامل مع قواعد البيانات Databases: بحيث يتمكن المبرمج من كتابة برنامج يتصل بقاعدة بيانات ويستخدم لغة SQL للبحث داخل الجداول أو لإضافة أو تعديل سجلات. معظم لغات البرمجة بها أدوات تساعد في هذه العملية. فمثلاً في لغة جافا، يمكن استخدام JDBC.

     

    10- استخدام أدوات إدارة وحفظ الأكواد Version Control Systems: وهي أدوات تساعد في حفظ الأكواد مع جميع التغييرات التي طرأت عليها، مع إمكانية استرجاع نسخ سابقة من الكود. من أشهرها: git أيضاً GitHub.com يعتبر أشهر المواقع التي تستضيف برامج مفتوحة المصدر داخل مستودعات git.

    11- استخدام بيئات التطوير IDEs: وهي برامج ومحررات نصوص مع العديد من الأداوت التي تسهل من عملية كتابة الأكواد. أنصح باستخدام الاختصارات shortcuts والتعود عليها بشكل دائم للقيام بالمهام والعلميات داخل الـ IDE والتي تزيد من الإنتاجية. أنصح الجميع بالـ IDEs الرائعة من تطوير @JetBrains

    12- قراءة التوثيق الرسمي للغة البرمجة documentation: وهو مستند يحتوي على وصف لجميع الـ classes والدوال الموجودة في مكتبات اللغة الرسمية مع توضيح لطريقة عملها. مثلاً في لغة جافا، لا غنى عن JavaDoc.

    https://docs.oracle.com/en/java/javase/11/docs/api/index.html

    13- مهارة الـ debugging: بحيث يتمكن المبرمج من إيجاد الأخطاء البرمجية داخل الكود. ويمكن استخدام الـ debugger Tools التي تزودها اللغة أو تجدها داخل الـ IDE. ملاحظة: أحياناً طباعة جمل معينة على الـ console بداخلها قيم لمتغيرات داخل الكود تكون عملية كافية وسريعة لإيجاد الأخطاء.

    14- استخدام الـ Build Tools: وهي أداوت تسهل عملية الترجمة compiling وإدارة الـ dependencies وبناء الحزم النهائية للبرنامج مع الأخذ بالاعتبار اختلاف البيئات. في لغة جافا مثلاً، يوجد maven و gradle.

    15- اختبار البرمجيات: وهي القيام بكتابة أكواد جانبية تختبر جميع وظائف البرنامج الأساسية للتأكد من صحة عملها. بحيث لو تم تغيير جزء من البرنامج الأساسي، تكشف هذه الاختبارات عن أي خلل في التغيير. أشهر مثال على هذه الاختبارات: Unit Testing. وفي لغة جافا، أشهر مكتبة للقيام بذلك هي JUnit.

    16- التعامل مع HTTP: وهو بروتوكول الإنترنت الأشهر، ويستخدم للتواصل بين الـ Client والـ Server لإرسال بيانات. يجب معرفة الفروقات بين الـ HTTP Methods، وأشهرها GET و POST. أيضاً يجب معرفة مكونات الـ HTTP Request والـ HTTP Response ومعرفة أشهر الـ HTTP Headers و HTTP Status Codes.

    17- التعامل مع RESTful Web Services: الـ REST هو آلية لتنظيم الخدمات الموجودة على سيرفر على هيئة APIs، بحيث يمكن لأي Client استخدام هذه الخدمات بالاتصال عبر البروتوكول HTTP. أنصح أي مبرمج بالاطلاع على GitHub REST API كمثال وكتابة HTTP Client يستخدمها: https://developer.github.com/v3

  • مصطلحات هامة لكل مبرمج يجب معرفتها

    البرمجة هي عملية إعطاء التعليمات لجهاز الكمبيوتر. أجهزة الكمبيوتر حرفية ودقيقة للغاية ، يجب أن يكون هيكل التعليمات دقيقًا.

    يعرف المبرمجون ما يكتبونه عند البرمجة لأننا نعرف ما نريد تحقيقه ونفهم الخطوات اللازمة للقيام بذلك.Guide to Programming Languages for Software Developers

    درس شائع جدًا يستخدمه المبرمجون المبتدئون لإظهار نوع التفكير الذي تحتاجه هو درس “أخبرني كيف أصنع شطيرة زبدة الفول السوداني والجيلي”.

    من المفترض أن يعطي الطالب تعليمات لعمل شطيرة ، بينما يأخذ المعلم الكلمات حرفياً للغاية … لدرجة أن تكون سخيفة.

    إذا قال الطالب “ضع زبدة الفول السوداني على الخبز” ، فسيقوم المدرب بوضع البرطمان فوق كيس الخبز. إذا قال الطالب “افتح كيس الخبز” ، فقد يقوم المعلم بتمزيق الكيس وفتحه وسكب الخبز في كل مكان.

    سيدرك الطالب بسرعة أنه يتعين عليه تقديم تعليمات دقيقة للغاية مثل “أمسك شريحة خبز في يدك اليسرى بحيث تكون مسطحة على راحة يدك بأصابعك تمسكها برفق” و “يغمس طرف السكين ثلاثة أرباع شبر واحد في زبدة الفول السوداني “.

    مصطلحات هامة لكل مبرمج :

    Programmer مبرمج
    Developer مطور
    Programme برنامج
    Application تطبيق
    Website موقع انترنت
    المعامل Operand
    عامل التشغيل Operator
    المؤشر Pointer
    واجهة برمجة التطبيقات APl
    الوسيطة Argument
    التجميع Compilation
    Hosts استضافة
    Server خادم
    Algorithms خوارزميات
    Flow chart رسم بياني للخوارزميات
    Tool /tools اداة/ادوات
    Database قاعدة بيانات
    نوع البيانات Data types
    data structures هياكل البيانات
    Code (سطر برمجي (كود
    كود صلب Hardcode
    Object oriented برمجة كائنية
    Classes اصناف / انواع
    Methods طرق
    Interfaces واجهات
    Variable متغير
    Constant ثابت
    البيان Statement
    بناء الجملة Syntax
    Declare اعلان لمتغير
    اعلان Declaration
    الحزمة Package
    Function مهمة /وضيفة
    Execute تنفيذ
    استثناء Exception
    Implementation تشغيل /تنفيذ
    Parameters عوامل متغيرة
    Greater than >اكبر من
    Less than <اصغر من
    Equal = يساوي
    Not equal !=لايساوي
    Loop =حلقة متصلة من الاوامر
    حلقة لانهائية Endless loop
    Condition =شرط
    العبارات الشرطية Conditionals
    Integer (int)متغير رقمي
    Flowchart (flow) متغير رقمي
    Character (char) متغير حرفي
    التكرار Iteration
    الكلمات الأساسية Keywords
    Decimal عشري
    binary ثنائي
    Body مجسم الموقع
    Head رأس الصفحة
    Div قسم من اقسام الصفحة
    Style شكل الصفحة
    Attributes خصائص
    التعبير Expression
    إطار العمل Framework
    الخلفية Backend
    الواجهة الأمامية Front-end
    لا شيء Null
    وقت التشغيل Runtime

  • اهم 10 نصايح لأي مبرمج

     

    بعد خبرة كبيرة في عالم البرمجة دول اهم 10 نصايح لأي مبرمج , انصح اي مبرمج حابب يكون متميز في عمله و اسلوبه وتطوير ذاته يفكر بالنصايح دي بشكل جدي لانه انا بعتبرهم اساسيات النجاح للمبرمجين ونبتدي بأول نصيحة :

    1 – اولاََ ابعد عن اي شخص يحبطك لأنة شخص مؤثر بالسلب عليك و دة اكبر اسباب الفشل👎🏼

    2 – وجهة نظر الناس لمعني النجاح الشخص الناجح مش شرط يكون بيصحا من 6 الصبحو يجري علي شغلة عشان يبقي ناجح المكسب هوه الاستمرار في طريق النجاح 🏃‍♂️〽️

    3 – كتير جداََ الأهل بيبقوا فاكرين ان دة ضياع وقت بيفتكروا انك بتلعب مش بتتعلم بس انت دة دورك تفهمهم الفرق و اية هوة المجال دة و هتلاقي التشجيع جي منهم هما 🤲🏼🙌🏼

    4 – مش اي شخص بيبقي فاهم يعني اتعلم من شخص يكون فاهم كل كبيرة و صغيرة في المجال دة 👨‍💻💪🏼

    How to be an independent Computer Programmer – Future Beyond Technology

     

    5 – اعرف الفرق بين البرمجة ولغة البرمجة وهنا لغة البرمجة هية العصاية السحرية اللي بتبرمج بيها بمعني أن اللغة هية اداة ✴️ لكن البرمجة هوة مجال متعدد التخصصات
    انواع اللغات اية؟ كل اللغات مبنية علي منطق واحد ولكن المصطلحات تختلف في طريقة الكتابة بس ومن اشهر المصطلحات هي..
    if
    else
    true
    false
    functions
    class
    var
    string
    object
    null… وغيره من المصطلحات

    الاساسيات دي لو عرفتها وفهمتها صح هتفهم اي لغه برمجة في اقل وقت حرفيها

    6 – اتعلم لغة صعب قبل السهلة 🔣🦾 الفكرة أن انت كا شخص مبتدئ بتبقي زي المبني اللي تحت الانشاء يعني بتحتاح اساسات صلبة وقوية عشان تقدر تفضل واقف قوي منغير ما تقع من اول مشكلة✊🏼 اكيد سألت نفسك طيب لية اتعمل لغات سهلة؟ 🤷🏼‍♂️ اللغات السهلة معمولة للي فاهم الصعبة عشان تختصر الوقت علية مش اكتر ودي مينفعش تستخدمها إلا لما تفهم الاول هيا اتعملت ازاي

    7 – وقت تعلمك الاساسيات حل تطبيقات واسئله برمجيه 🕵🏻‍♂️ سؤال هجيب الاسئله دي منين ؟
    اكتب علي يوتيوب مثلا او علي جوجل المواقع دي كنز لائ مبرمج مبتدئ و اتفرج علي طرق كتير لحل السؤال لأن 2+1=3 وممكن 2+1=3 وممكن 1+1+1=3 المقصود ان في اكتر من طريقك للحل و الافضل تعرف اكبر عدد من الطرق دي

    8 – حاول تتعلم علي مهلك وبتركيز 👨‍🏫🖇️ مثلاََ كورس لغة البرمجة مثلاََ 50 حلقة
    حاول متزودش عن حلقتين في اليوم او 3 لو نفسك مفتوحة للتعلم عشان لو ضغط علي نفسك هتنسا و هتتلغبط

    9 – بعد الاساسيات خلاص ابدأ اي لغة حديثة 🔣✍🏻

    مدة تعلم لغة بكل محتوياتها مش هتكمل شهر معاك يعني ممكن في 3 شهور يبقي معاك 3 لغات وممكن 4 لان بمجرد تعلمك اول لغة هتلاقي ان الفرق بين اللغات طرق كتابة الكلمة لكن الاتنين بينفذو نفس الوظيفة

    10 – اعمل مشروع كامل بنفسك🖲️🖥️

    المشروع ما هو إلا حل اسئلة المشروع عباره عن 50 سؤال مثلا بيتحلو ورا بعض وانت كدا كدا بتحل اسئله كتير. زي ما قلتلك في النقطه رقم 7 حلتهم خلاص مبروك عليك بقيت مبرمج ناجح 👨🏻‍💼 طور بقي من نفسك كل يوم ومتوقفش☝🏻 عشان المجال ده متجدد كل يوم 🔂♾️

     

زر الذهاب إلى الأعلى
إغلاق

أنت تستخدم إضافة Adblock

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