ماذا بعد الـ HTML , CSS, JavaScript؟!
السلام عليكم إخواني الكرام ,.
بداية أحبّ أن اعبّر عن شعوري بالسرورِ كلما رأيتُ موقعاً عربياً جديداً بمحتوى عربيّ :) فشكراً لكم
أحبائي , لقد أنهيت هذا الثلاثية من اللغات البرمجية : [HTML , CSS, JavaScript] : واتقنت البرمجة بها على أمل أن أكون قادراً على بناءِ تطبيقات الويب [Web Applications].
إلا اني كنتُ مخطئاً! إلى حد ما!. فتطبيقات الويب لا تعمل بثلاثة لغاتٍ فحسب وانما بحاجةألى لغاتٍ أخرى وقواعد بيانات.
لذا , المشكلة التي واجهتني هي في الخطوة التالية من بعد الثلاثية التي ذكرتها.
نعم هناك خياراتٌ متعددة : [PHP, Python , Ruby .. etc]. وانا أميل الى الـ Python , لكنّي لا أدري من اين ابدأ بها؟!
في تلك الثلاثية مصادر التعلم متعددة ومعروفة , أما في الـ Python , لا ادري حتى أين اكتب الكود البرمجي! أو كيف اربطه مع تلك الثلاثية!
هل من مساعدة؟ مصادر بدائية لتعلم الـ Python , أية كتب , أية ملاحظات من خبرتكم , أية تعليقات؟
عبّر بما شئت :)
وشكراً لكم
التعليقات
وعليكم السلام ورحمة الله وبركاته
اخي الكريم الفاضل ، اخواني الاعزاء ..
مازال هناك الكثير من المبرمجين يحصرون الجافاسكريبت في اطار "مكمل" وانه لغة هامشية تساعد على بعض الامور البسيطة هنا وهناك !!
وهذا خطأ كبير .. لقد اصبحت الجافاسكريبت هي عالم وبنية والنواة الاساسية لمكونات صناعة الويب .. لديها قصور "نعم" .. لديها نقص "نعم" .. لكنها هي النواة والمستقبل والنجاح المكتمل لاي مشروع ..
اولا اخي الفاضل .. انصحك ان تتعمق اكثر واكثر في الجافاسكريبت فهناك اطر عمل حقيقة جبارة ومازال المشوار امامك طويل وهناك ما يستحق ان تتعلمه منها :
1- twitter bootstrab
2- AngularJS
3- Nodejs
4- jQuery
وجميعها مبني على مفهوم اتقانك للجافا سكريبت واحترافك لها، رغم اختلاف ما بنيت عليه ..
الخلاصة .. لا تستهين بالثلاثية التي ذكرتها فهي عالم البرمجة الحقيقي في هذا الوقت ولم تبلغ بعد منه شيئ ..
ثانياً عليك ايضا ان تختار امر مهم جدا مبني على مبدا يكمل نقص ما تحدثت عنه وهو يسمى Framework MVC .. ممكن تتجه للPHP ممكن تتجه للjava ، انت حر ، لكن ثق تماما ان php فقط لكي تقوم بعملية MC لا اكثر يعني ليس اكثر من 10-20 % من مهام البرمجة لموقعك .. وستكون فقط في "ادرة الاتصال بقواعد البيانات + طبقات الحماية واساسيات التعامل من حفظ وتعديل وحذف وخلافة + سهولة زرع وتركيب المكونات عبر منظومة الاطار الذي ستعمل عليه بمعزل عن المنظومة ككل "
ارجو ان اكون اوضحت لك ما يفيدك ولو قليلا مما تريد ..
مع تمنياتي لك بالنجاح والتوفيق
حسناً صديقي ,
سمعت عن Node.js بأكثر من موقع , هلّا شرحت لي قليلاً عن فائدتها؟ وبماذا تُستعمل؟
شكراً لك , ووفقك الله لما تُحب وترضى ,.
الـ node.js خادم جديد يعتمد على الجافا سكربت بتشغيل تطبيقاته وهو مختلف تماما عن كل ماعرفناه سابقا بما يتعلق بلغات برمجة الويب والخوادم الاخرى .. فكرته ان المطور يعتمد بالجهتين ، جهة التصميم " وهو المتعارف عليه " و جهة الخادم " الامر الجديد " ، على لغة الجافا سكربت ولانه سريع مقارنة بال PHP او ال PYTHON والRUBY ايضا ، معظم الشركات والمواقع تستخدمه في تطبيقاتها المباشره ( real-time ) مثل تطبيقات المحادثه وهناك امثله كثيره اخرى على استخداماته لو بحثت عنها ستجد مشاريع تذهلك ، شكل الاكواد ( بالنسبه لي ) يشابه مكتبات الجافا السكربت مثل jquery ، وهو مبني اساسا من محرك قوقل كروم اعتقد اسمه google v8 ، .. كذلك يختلف عن الباقي بنوعية قواعد البيانات التي لاتعتمد على استعلامات مثل Mongodb لكن توجد هناك مكتبات اضافية تتيح لك استخدام قواعد البيانات التقليديه كالmysql ، ولانه حديث العهد ( اعتقد ظهر في ٢٠١٠ ) مازال دعم مجتمع المطوريين له في مراحله الاولى
HTML, CSS, Javascript مهمة جداً حتى مع تعلم اللغات الأخرى فاللغات الأخرى تمكنك من تطوير هيكل متقدم ومتطور وسهل الاستخدام والتعديل لكن تجربة المستخدم والمظهر لا يمكن تحسينهما دون اللجوء إلى هذه الأدوات الأساسية. تعلمت الـPHP من قبل ولم أحبها على الأطلاق. بايثون أفضل وأكثر متعة في التعلم والاستخدام لكن الأفضل هي لغة Ruby واندهشت لبعض قدراتها ومزاياها التي لم أكن لأتخيل أنها موجودة. لغة روبي وحدها لغة جميلة وقوية لكنها لا تقدم شيئاً جديداً في حد ذاتها لكن بدمجها مع خليط معين من الأدوات تتوفر لديك بيئة تطوير متقدمة بالمقارنة مع الخيارات الأخرى بالذات للمشاريع الضخمة فهي توفر الوقت والجهد والمال وتضمن الجودة أيضاً.
هذه هي الأدوات التي قمت باستخدامها:
0- Rails: الأداة الأساسية والأهم برأيي فهي توفر لك بيئة متكاملة بقاعدة بيانات يتم توليدها وتعديلها دون حاجة إلى تدخل المطور. الأداتان الأخرتان تسهلان عملية التطوير وهما ليستا ضروريتان على الإطلاق.
1-Cucumber: هي أداة تقوم باختبار "قصة مستخدم" (سيناريو أو مثال لطريقة عمل خاصية أو متطلب للمشروع بلغة مفهومة وليس كود) وهي توفر لك القدرة على تحديد كم من الخصائص تم إنهاؤها وكم تبقى كما أنها تخبرك فور قيامك بتغيير يعطل أي من هذه الخصائص. هذا النوع من الأدوات يسمى behavior-driven development وهو تتأكد من وجود وعمل كافة الخصائص التي تريدها في المشروع ففي كل مرة تبني فيها المشروع تظهر لك قائمة بكل الخصائص وكل خاصية تجتاز كافة الاختبارات تظهر باللون الأخضر. الأداة يعمل بشكل مثالي بدمجه مع أداة capybara وهي تقوم بتطبيق الأمثلة مثل النقر على هذا الزر والذهاب لتلك القائمة كما لو أن مستخدماً عادياً هو من يقوم بفعلها لكن في الخفاء وفي لحظات.
2- Rspec: هي أداة تقوم باختبار الكود الذي تقوم بكتابته والتأكد من أنه يتوافق مع الوظائف التي حددتها له. هذا الشيء يتم عن طريق كتابة اختبارات للكود قبل أن تبدأ به وفي كل مرة تبني فيها المشروع تظهر الاختبارات باللون الأحمر حتى تنتهي من كتابة تلك الجزئية من الكود بالطريقة التي كنت تخطط لها. روعة هذه الأداة تتلخص في كونها تخبر الجزئية من الكود بمعزل من بقية الكود حتى لو كانت تعتمد عليه وبهذا تعرف بالتحديد أين الخطأ ولن تضيع وقتك في البحث عن المشاكل في جزء لتكتشف أنها في جزء آخر كما أنك لن تضطر لتنتظر لتكتب كل الأجزاء التي تعتمد على بعضها البعض للتأكد من أنها متوافقة مع بعضها.
أنصحك بكورس (Software as a Service (SaaS عن طريق موقع edx.org من جامعة University of California at Berkeley
بعتبار انك على معرفة بالجافاسكربت لماذا لاتبدأ في node.js
ام عن المصادر لتلعم البايثون انصحك في ان تقرأ شيئ بسيط عن الاوامر الاساسية (الاخراج والادخال والتكرار والشروط و ...) وبعدها تبدء بتطبيق افكارك فان من افضل الطرق للتعلم هي عن طريق الممارسة لذلك ضع لنفسك كل يوم فكرة وبرمجها بالبايثون وسوف ترى نفسك بشكل تلقائي ترجع الى مراجع اللغة وتتعلم منها لكي تساعدك على تطبيق افكارك
مو مهم اللغة قد اهمية هندسة المشروع والتخطيط !
يعني على سبيل المثال انا نويت اسوي موقع تسجيل دخول وخروج
اسوي الخوارزمية والفلو شارت
بعدها لمن ادخل مرحلة التصميم او البرمجة
بكل بساطة لو انا مستخدم لغة php
ممكن اكتب في قوقل او موقع githup
login php tutorial
وايضا هذه ليست الطريقة الكاملة
مايجب ادراكه ياخي الكريم
ان لغة البرمجة وحدها لاتكفي
مثلا لو قررت استخدام javascript لوحدها لتادية اعمالك ستجدها صعبة
بينما لو استخدمت ال framework
jQuery
ستسهل لك العملية وتختصر الوقت
وال jQuery ماهي الا مكتبة مساعدة مبنية على javascript
وايضا يجب ادراك ان المواقع تبرمج الان باطار MVC
اقرأ عنه فهو مهم ايضا
وفي النهاية احب ان اختم كلامي
بان بايثون لغة سريعة ورائعة
ولكن ان كنت تسئل ماللغة المستقبلية
فهي node.js
تعلمها ثم تعلم ال framework الخاص بها
هذا اذا اردت افضل تطور !
والله اعلم
مثلك تماماً، وبدأت بالميل الى البايثون بحكم خبرتي البسيطة حيث كنت أترجم وأعدل تطبيقات سمبيان الجيل الثالث وكان ذلك منذ 3 سنوات، والآن رجعت لها بسبب رغبتي بتطوير الويب، ولتطوير الويب بالبايثون تحتاج الى إستخدام إطار ويب مثل جانغو وهنالك أطر عمل أخرى لكني بدأت بتعلم جانغو.
للأسف المصادر العربية ضعيفه في جانغو، لو كانت إنجليزيتك جيدة ستتعلمها بشكل أسرع عن طريق توثيق إطار العمل من الموقع الرسمي:
وعليكم السلام ورحمة الله وبركاته،
أود أن أشير إلى أن العمل في تطبيقات الوب لم يعد ينظر إليه على أنه تخصص واحد. مبدئياً، يشمل تخصصين رئيسيين:
تصميم الوب Web Design أو Front-End Design: أي تطوير تطبيق الوب من طرف الزبون، ويتطلب ذلك بصور رئيسية خبرة في HTML/CSS/jQuery.
تطوير الوب من طرف الزبون Back-End Development: ويتطلب ذلك خبرة بلغات كـ PHP أو Python، بالإضافة إلى أنظمة قواعد البيانات كـ MySQL وغيرها.
أعني يمكنك الاكتفاء بأحد التخصصين دون الآخر.
صحيح البايثون موجهة للويب..
لكن قبل ذلك هي موجهة للديسكتوب أيضا.
عليك تعلمها اولا كلغة سطح مكتب ثم بعد ان تنتهي يمكنك إستعملا أحد اطر العمل المعروفة للغة لأجل التطوير للويب.
لتطوير الويب من خلال بيثون؛ تحتاجُ إلى تعلّم بيثون ثم إطار ويب بيثونيّ (أشهرهم جانغو) وحينها ستعلم أين تضع أكواد هذه الثلاثية :)
بالنسبة للغات الأخرى: فطبعًا تتربّع على عرش لغات تطبيقات الويب PHP حيثُ هي الأشهر وهي الأكثر رواجًا في سوق العمل. بينما تأتي ASP.Net في مصافّ اللغات الأولى المفضّلة للمواقع الحكومية والبوّابات الإلكترونية للشركات الكُبرى رغم انحصارها في العمل على منصة واحدة Windows وما بها من المشاكل والعيوب وخروقات الحماية!!
تُنَافِس بيثون على حياء روبي في مجال التطبيقات المتقدّمة، والتي تُقدّم ما هو أكثر من مجرد موقع إنترنت (ربما تطبيقات متكاملة تنافس تطبيقات سطح المكتب -أوفيس وفوتوشوب وخلافه-).
هناك لغات خارج هذه التصنيفات وهي اللغات المبنية على جافاسكربت (سواءًا كانت تعمل لدى المستخدم أو لدى الخادم) منها ما ذكره الإخوةُ مسبقًا: jQuery و NodeJs.
بالنسبة لمصادر لتعلم python يمكنك البدأ بهذا الدرس التفاعلي http://www.codecademy.com/t...
أيضا حاول دراسة php فهي الأكثر إستعمالا حاليا.