ما الذي يمكنك فعله بالضبط ببايثون؟ فيما يلي تطبيقات Python الثلاثة الرئيسية.

إذا كنت تفكر في تعلم Python - أو إذا بدأت في تعلمها مؤخرًا - فقد تسأل نفسك:

"ما الذي يمكنني استخدام Python لأجله بالضبط؟"

حسنًا ، هذا سؤال صعب الإجابة عليه ، نظرًا لوجود العديد من التطبيقات لبايثون.

لكن بمرور الوقت ، لاحظت أن هناك 3 تطبيقات شائعة رئيسية لبايثون:

  • تطوير الشبكة
  • علم البيانات - بما في ذلك التعلم الآلي وتحليل البيانات وتصور البيانات
  • البرمجة النصية

دعونا نتحدث عن كل منهم بدوره.

تطوير الشبكة

أصبحت أطر الويب التي تعتمد على Python مثل Django و Flask مؤخرًا شائعة جدًا لتطوير الويب.

تساعدك أطر عمل الويب هذه في إنشاء كود من جانب الخادم (كود الواجهة الخلفية) في Python. هذا هو الرمز الذي يتم تشغيله على الخادم الخاص بك ، على عكس الأجهزة والمتصفحات الخاصة بالمستخدمين (رمز الواجهة الأمامية). إذا لم تكن على دراية بالفرق بين كود الواجهة الخلفية ورمز الواجهة الأمامية ، فيرجى الاطلاع على الحاشية أدناه.

لكن انتظر ، لماذا أحتاج إلى إطار عمل ويب؟

ذلك لأن إطار عمل الويب يجعل من السهل بناء منطق خلفي مشترك. يتضمن ذلك تعيين عناوين URL مختلفة لأجزاء من كود Python ، والتعامل مع قواعد البيانات ، وإنشاء ملفات HTML يراها المستخدمون على متصفحاتهم.

ما هو إطار عمل ويب Python الذي يجب علي استخدامه؟

يعد Django و Flask من أكثر أطر عمل ويب Python شيوعًا. أوصي باستخدام واحد منهم إذا كنت قد بدأت للتو.

ما الفرق بين Django و Flask؟

هناك مقال ممتاز حول هذا الموضوع بقلم غاريث دواير ، لذا دعني أقتبس منه هنا:

te>

التناقضات الرئيسية:

  • يوفر Flask البساطة والمرونة والتحكم الدقيق. إنه غير معلن (يتيح لك تحديد الطريقة التي تريد بها تنفيذ الأشياء).
  • يوفر Django تجربة شاملة: تحصل على لوحة إدارة ، وواجهات قاعدة بيانات ، و ORM [تعيين ارتباط كائني] ، وبنية دليل لتطبيقاتك ومشاريعك خارج الصندوق.

ربما يجب أن تختار:

  • Flask ، إذا كنت تركز على الخبرة وفرص التعلم ، أو إذا كنت تريد المزيد من التحكم في المكونات التي يجب استخدامها (مثل قواعد البيانات التي تريد استخدامها وكيف تريد التفاعل معها).
  • Django ، إذا كنت تركز على المنتج النهائي. خاصة إذا كنت تعمل على تطبيق مباشر مثل موقع إخباري أو متجر إلكتروني أو مدونة ، وتريد أن تكون هناك دائمًا طريقة واحدة وواضحة للقيام بالأشياء.

te>

بمعنى آخر ، إذا كنت مبتدئًا ، فمن المحتمل أن يكون Flask خيارًا أفضل لأنه يحتوي على مكونات أقل للتعامل معها. أيضًا ، يعد Flask خيارًا أفضل إذا كنت تريد المزيد من التخصيص.

من ناحية أخرى ، إذا كنت تتطلع إلى بناء شيء ما بشكل مباشر ، فمن المحتمل أن يتيح لك Django الوصول إليه بشكل أسرع.

الآن ، إذا كنت تتطلع إلى تعلم Django ، فإنني أوصي بالكتاب المسمى Django for Beginners. يمكنك العثور عليها هنا.

يمكنك أيضًا العثور على فصول مجانية من هذا الكتاب هنا.

حسنًا ، دعنا ننتقل إلى الموضوع التالي!

علم البيانات - بما في ذلك التعلم الآلي وتحليل البيانات وتصور البيانات

بادئ ذي بدء ، دعنا نراجع ما هو التعلم الآلي .

أعتقد أن أفضل طريقة لشرح ماهية التعلم الآلي هي إعطائك مثالًا بسيطًا.

لنفترض أنك تريد تطوير برنامج يكتشف تلقائيًا ما هو موجود في الصورة.

لذا ، بالنظر إلى هذه الصورة أدناه (الصورة 1) ، تريد أن يتعرف برنامجك على أنه كلب.

بالنظر إلى هذا الآخر أدناه (الصورة 2) ، تريد أن يتعرف برنامجك على أنه جدول.

قد تقول ، حسنًا ، يمكنني فقط كتابة بعض التعليمات البرمجية للقيام بذلك. على سبيل المثال ، ربما إذا كان هناك الكثير من وحدات البكسل ذات اللون البني الفاتح في الصورة ، فيمكننا القول إنه كلب.

أو ربما يمكنك معرفة كيفية اكتشاف الحواف في الصورة. بعد ذلك ، قد تقول ، إذا كان هناك العديد من الحواف المستقيمة ، فهي طاولة.

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

هذا هو المكان الذي يأتي فيه التعلم الآلي.

ينفذ التعلم الآلي عادةً خوارزمية تكتشف تلقائيًا نمطًا في الإدخال المحدد.

يمكنك إعطاء ، على سبيل المثال ، 1000 صورة لكلب و 1000 صورة لجدول إلى خوارزمية التعلم الآلي. بعد ذلك ، ستتعلم الفرق بين الكلب والطاولة. عندما تعطيه صورة جديدة لكلب أو طاولة ، فسيكون قادرًا على التعرف على أيهما هو.

أعتقد أن هذا يشبه إلى حد ما كيف يتعلم الطفل أشياء جديدة. كيف يتعلم الطفل أن شيئًا ما يشبه الكلب والآخر يشبه الطاولة؟ ربما من مجموعة من الأمثلة.

ربما لا تخبر الطفل صراحةً ، "إذا كان هناك شيء فروي وشعر بني فاتح ، فمن المحتمل أنه كلب."

ربما ستقول فقط ، "هذا كلب. هذا ايضا كلب وهذه طاولة. هذا هو أيضا طاولة ".

تعمل خوارزميات التعلم الآلي بنفس الطريقة.

يمكنك تطبيق نفس الفكرة على:

  • أنظمة التوصية (فكر في YouTube و Amazon و Netflix)
  • تمييز الوجوه
  • التعرف على الصوت

من بين التطبيقات الأخرى.

تتضمن خوارزميات التعلم الآلي الشائعة التي ربما سمعت عنها ما يلي:

  • الشبكات العصبية
  • تعلم عميق
  • دعم آلات ناقلات
  • غابة عشوائية

يمكنك استخدام أي من الخوارزميات المذكورة أعلاه لحل مشكلة وضع العلامات على الصور التي شرحتها سابقًا.

بايثون للتعلم الآلي

هناك مكتبات وأطر عمل شائعة للتعلم الآلي في Python.

اثنان من أشهرها هما scikit- Learn و TensorFlow .

  • يأتي scikit-Learn مزودًا ببعض خوارزميات التعلم الآلي المضمنة الأكثر شيوعًا. ذكرت بعض منهم أعلاه.
  • TensorFlow عبارة عن مكتبة منخفضة المستوى تتيح لك إنشاء خوارزميات مخصصة للتعلم الآلي.

إذا كنت قد بدأت للتو في مشروع التعلم الآلي ، فإنني أوصيك أن تبدأ أولاً بـ scikit-Learn. إذا بدأت في مواجهة مشكلات الكفاءة ، فسأبدأ في البحث في TensorFlow.

كيف يمكنني تعلم التعلم الآلي؟

لتعلم أساسيات التعلم الآلي ، أوصي إما بدورة التعلم الآلي في ستانفورد أو معهد كاليفورنيا للتكنولوجيا.

يرجى ملاحظة أنك بحاجة إلى معرفة أساسية بحساب التفاضل والتكامل والجبر الخطي لفهم بعض المواد في تلك الدورات.

بعد ذلك ، سوف أمارس ما تعلمته من إحدى تلك الدورات مع Kaggle. إنه موقع ويب يتنافس فيه الأشخاص لبناء أفضل خوارزمية للتعلم الآلي لمشكلة معينة. لديهم دروس تعليمية لطيفة للمبتدئين أيضًا.

ماذا عن تحليل البيانات وتصور البيانات؟

لمساعدتك في فهم الشكل الذي قد تبدو عليه هذه الأشياء ، دعني أقدم لك مثالًا بسيطًا هنا.

لنفترض أنك تعمل في شركة تبيع بعض المنتجات عبر الإنترنت.

بعد ذلك ، بصفتك محلل بيانات ، يمكنك رسم رسم بياني شريطي مثل هذا.

من هذا الرسم البياني ، يمكننا أن نقول أن الرجال اشتروا أكثر من 400 وحدة من هذا المنتج وأن النساء اشتروا حوالي 350 وحدة من هذا المنتج يوم الأحد بالذات.

بصفتك محلل بيانات ، قد تأتي ببعض التفسيرات المحتملة لهذا الاختلاف.

أحد التفسيرات المحتملة الواضحة هو أن هذا المنتج أكثر شيوعًا لدى الرجال منه لدى النساء. قد يكون التفسير الآخر المحتمل هو أن حجم العينة صغير جدًا وأن هذا الاختلاف كان بسبب الصدفة فقط. وقد يكون التفسير الآخر المحتمل هو أن الرجال يميلون إلى شراء هذا المنتج أكثر يوم الأحد فقط لسبب ما.

لفهم أي من هذه التفسيرات هو الصحيح ، يمكنك رسم رسم بياني آخر مثل هذا.

بدلاً من إظهار البيانات ليوم الأحد فقط ، فإننا نبحث في البيانات لمدة أسبوع كامل. كما ترون ، من هذا الرسم البياني ، يمكننا أن نرى أن هذا الاختلاف ثابت إلى حد كبير على مدار أيام مختلفة.

من هذا التحليل الصغير ، قد تستنتج أن التفسير الأكثر إقناعًا لهذا الاختلاف هو أن هذا المنتج ببساطة أكثر شيوعًا بين الرجال منه لدى النساء.

من ناحية أخرى ، ماذا لو رأيت رسمًا بيانيًا مثل هذا بدلاً من ذلك؟

ثم ما الذي يفسر الاختلاف يوم الأحد؟

قد تقول ، ربما يميل الرجال إلى شراء المزيد من هذا المنتج يوم الأحد فقط لسبب ما. أو ربما كانت مجرد مصادفة أن الرجال اشتروا المزيد منها يوم الأحد.

إذن ، هذا مثال مبسط لما قد يبدو عليه تحليل البيانات في العالم الحقيقي.

كان عمل تحليل البيانات الذي قمت به عندما كنت أعمل في Google و Microsoft مشابهًا جدًا لهذا المثال - فقط أكثر تعقيدًا. لقد استخدمت Python في Google لهذا النوع من التحليل ، بينما استخدمت JavaScript في Microsoft.

لقد استخدمت SQL في كلتا الشركتين لسحب البيانات من قواعد بياناتنا. بعد ذلك ، سأستخدم إما Python و Matplotlib (في Google) أو JavaScript و D3.js (في Microsoft) لتصور هذه البيانات وتحليلها.

تحليل البيانات / التصور باستخدام بايثون

تعد Matplotlib واحدة من أكثر المكتبات شيوعًا لتصور البيانات.

إنها مكتبة جيدة لتبدأ بها للأسباب التالية:

  • من السهل أن تبدأ
  • بعض المكتبات الأخرى مثل seaborn مبنية عليه. لذلك ، سيساعدك تعلم Matplotlib على تعلم هذه المكتبات الأخرى لاحقًا.

كيف يمكنني تعلم تحليل البيانات / التصور باستخدام بايثون؟

يجب أن تتعلم أولاً أساسيات تحليل البيانات والتصور. عندما بحثت عن موارد جيدة لهذا عبر الإنترنت ، لم أتمكن من العثور على أي منها. لذلك ، انتهيت من إنشاء مقطع فيديو على YouTube حول هذا الموضوع:

لقد انتهيت أيضًا من إعداد دورة كاملة حول هذا الموضوع في Pluralsight ، والتي يمكنك الحصول عليها مجانًا من خلال الاشتراك في الإصدار التجريبي المجاني لمدة 10 أيام.

أوصي بهما.

بعد تعلم أساسيات تحليل البيانات والتصور ، سيكون تعلم أساسيات الإحصاء من مواقع الويب مثل Coursera و Khan Academy مفيدًا أيضًا.

البرمجة النصية

ما هي البرمجة النصية؟

تشير البرمجة النصية عادةً إلى كتابة برامج صغيرة مصممة لأتمتة المهام البسيطة.

لذا ، اسمحوا لي أن أقدم لكم مثالاً من تجربتي الشخصية هنا.

كنت أعمل في شركة ناشئة صغيرة في اليابان حيث كان لدينا نظام دعم عبر البريد الإلكتروني. لقد كان نظامًا لنا للرد على الأسئلة التي أرسلها العملاء إلينا عبر البريد الإلكتروني.

عندما كنت أعمل هناك ، كان لدي مهمة حساب عدد رسائل البريد الإلكتروني التي تحتوي على كلمات رئيسية معينة حتى نتمكن من تحليل رسائل البريد الإلكتروني التي تلقيناها.

كان بإمكاننا القيام بذلك يدويًا ، لكن بدلاً من ذلك ، كتبت برنامجًا بسيطًا / نصًا بسيطًا لأتمتة هذه المهمة.

في الواقع ، استخدمنا روبي في ذلك الوقت ، لكن بايثون هي أيضًا لغة جيدة لهذا النوع من المهام. تعتبر Python مناسبة لهذا النوع من المهام بشكل أساسي لأنها تحتوي على بناء جملة بسيط نسبيًا وسهلة الكتابة. من السهل أيضًا كتابة شيء صغير به واختباره.

ماذا عن التطبيقات المضمنة؟

لست خبيرًا في التطبيقات المضمنة ، لكنني أعلم أن Python تعمل مع Rasberry Pi. يبدو أنه تطبيق شائع بين هواة الأجهزة.

ماذا عن الألعاب؟

يمكنك استخدام المكتبة المسماة PyGame لتطوير الألعاب ، ولكنها ليست محرك الألعاب الأكثر شيوعًا. يمكنك استخدامه لبناء مشروع هواية ، لكنني شخصياً لن أختاره إذا كنت جادًا في تطوير اللعبة.

بدلاً من ذلك ، أوصي بالبدء مع Unity مع C # ، وهو أحد أشهر محركات الألعاب. يتيح لك إنشاء لعبة للعديد من الأنظمة الأساسية ، بما في ذلك Mac و Windows و iOS و Android.

ماذا عن تطبيقات سطح المكتب؟

يمكنك إنشاء واحدة باستخدام Python باستخدام Tkinter ، لكن لا يبدو أنها الخيار الأكثر شيوعًا أيضًا.

بدلاً من ذلك ، يبدو أن لغات مثل Java و C # و C ++ أكثر شيوعًا لهذا الغرض.

في الآونة الأخيرة ، بدأت بعض الشركات في استخدام JavaScript لإنشاء تطبيقات سطح المكتب أيضًا.

على سبيل المثال ، تم إنشاء تطبيق Slack لسطح المكتب بشيء يسمى Electron. يسمح لك بإنشاء تطبيقات سطح المكتب باستخدام JavaScript.

أنا شخصياً ، إذا كنت أقوم بإنشاء تطبيق سطح مكتب ، فسأختار خيار JavaScript. يسمح لك بإعادة استخدام بعض التعليمات البرمجية من إصدار ويب إذا كان لديك.

ومع ذلك ، فأنا لست خبيرًا في تطبيقات سطح المكتب أيضًا ، لذا يرجى إعلامي في تعليق إذا كنت لا توافق أو تتفق معي في هذا الشأن.

بايثون 3 أو بايثون 2؟

أوصي باستخدام Python 3 لأنه أكثر حداثة وهو خيار أكثر شيوعًا في هذه المرحلة.

حاشية سفلية: ملاحظة حول كود الواجهة الخلفية مقابل كود الواجهة الأمامية (فقط في حالة عدم معرفتك بالمصطلحات):

لنفترض أنك تريد عمل شيء مثل Instagram.

بعد ذلك ، ستحتاج إلى إنشاء رمز أمامي لكل نوع من الأجهزة التي تريد دعمها.

قد تستخدم ، على سبيل المثال:

  • سويفت لنظام iOS
  • جافا للأندرويد
  • JavaScript لمتصفحات الويب

سيتم تشغيل كل مجموعة من الرموز على كل نوع من الأجهزة / المتصفح. ستكون هذه مجموعة التعليمات البرمجية التي تحدد شكل تخطيط التطبيق ، وكيف يجب أن تبدو الأزرار عند النقر فوقها ، وما إلى ذلك.

ومع ذلك ، ستظل بحاجة إلى القدرة على تخزين معلومات وصور المستخدمين. ستحتاج إلى تخزينها على الخادم الخاص بك وليس فقط على أجهزة المستخدمين حتى يتمكن متابعو كل مستخدم من عرض صوره / صورها.

هذا هو المكان الذي يأتي فيه رمز الواجهة الخلفية / رمز جانب الخادم. ستحتاج إلى كتابة بعض التعليمات البرمجية الخلفية للقيام بأشياء مثل:

  • تتبع من يتابع من
  • اضغط الصور حتى لا تشغل مساحة تخزين كبيرة
  • التوصية بالصور والحسابات الجديدة لكل مستخدم في ميزة الاكتشاف

إذن ، هذا هو الفرق بين كود الواجهة الخلفية ورمز الواجهة الأمامية.

بالمناسبة ، Python ليست الخيار الوحيد الجيد لكتابة التعليمات البرمجية الخلفية / من جانب الخادم. هناك العديد من الخيارات الشائعة الأخرى ، بما في ذلك Node.js ، الذي يعتمد على JavaScript.

أحب هذا المقال؟ بعد ذلك ، قد تعجبك أيضًا قناتي على YouTube.

لديّ قناة على YouTube لتعليم البرمجة تسمى CS Dojo تضم أكثر من 440.000 مشترك ، حيث أنتج المزيد من المحتوى مثل هذه المقالة.

على سبيل المثال ، قد تعجبك مقاطع الفيديو هذه:

على أي حال ، شكرا جزيلا لقراءة مقالي!