كيف تكون مبدع فى كل شئ؟
الإبداع (Creativity) هو إنتاج أشياء جديدة ذات قيمة. وذكرت فى التعريف “أشياء” للتعميم، فمن الممكن أن تكون هذه الأشياء هى أفكار أو أعمال فنية أو اختراعات .. إلخ. وعبارة “ذات قيمة” مهمة فى التعريف لكى لا يعتبر أى شئ جديد أو مختلف إبداع لمجرد أنه مختلف عن المعروف. من أهم الصفات المميزة للإبداع أنه 🔗 الإبداع غير مرتبط بمجال معين أو عدة مجالات محدودة. فى أى عمل هناك مجال للإبداع طالما العمل قائم بشكل كُلّى أو جزئى على المجهود الذهنى.
لماذا لا تحتوى لغة جو على Generics ؟
فى الحقيقية، تحتوى لغة جو على generic types وهم: slice[] و map و chan هذه الـ buit-in types فى الحقيقية هم عامَّيْن (generics) كما ترى فى هذا الكود . الذى أهمله مصممى لغة جو، هو إنشاء custom generic constructs. هذا القرار لم يكن هاماً ﻷن اللغة صُمِّمَت فى الأساس لكتابة بنية الشبكات فى جوجل. لذلك البساطة وسرعة تحويل الكود إلى ملف تنفيذى (compilation speed) كانوا العوامل المهمه فى اللغة. بدأوا بالفعل فى التفكير فى إضافة الـ generic programming capabilities وغالباً ستُضاف هذه الخاصية فى اصدار لغة جو ما بعد الـ Go 1.
هل واوى قادرة على انشاء نظام تشغيل جديد؟
شركة واوى (Huawei) واجهت قرارات صعبة ومصيرية فى الأيام القليلة الماضية. بعد قرار الرئيس الأمريكى ترامب بإلغاء التعامل التجارى مع شركة واوى، قامت جميع الشركات الأمريكية بإيقاف كل التعاملات التجارية المُستقبلية مع شركة واوى الصينية. من أهم هذه الشركات التى أوقفت التعامل مع شركة واوى هى شركة جوجل التى تملك أهم البرامج على منصة أندرويد ( متجر جوجل بلاى، خدمة جوجل بلاى بروتكت، تطبيق يوتيوب، تطبيق جوجل كروم، .. إلخ) و__شركة آرم__ (ARM) المتخصصة فى ترخيص معمارية آرم ﻹنشاء معالجات الهواتف المحمولة، و__شركة مايكروسوفت__ صاحبة نظام التشغيل ويندوز الذى يعمل على أجهزة لابتوب شركة واوى.
علامات تدل على أنك مبرمج مبتدئ
هذا المقال يحتوى على عيوب تكون موجودة فى المبرمجين المبتدئين تمنعهم من التطور فى بداية طريقهم فى مجال البرمجة. فلنبدأ بهذه العيوب ونرى كيف نفعل فى كل حاله من هذه الحالات لكى نحول هذا العيب إلى ميزة. 1. كتابة الكثير من الأكواد ودفعها مرةً واحدة إلى برنامج إدارة المشاريع (commit it to Git) 🔗 عندما تبدأ العمل كمبرمج مبتدئ فى شركة متخصصة فى تطوير البرامج والمواقع سيكون عليك إضافة مميزات أو حل مشكلات فى الكود الحالى.
البرمجة فى عام 2025
فى هذا الموضوع سأتكلم عن لغات البرمجة وتوقعاتى للمستقبل القريب لعام 2025 وما بعدها. فى البداية أريد أن أقوال أنه ليس هناك توقع بزوال لغة معينة. كل اللغات ستكون مُستخدمة. ولكن توقعاتى هى أىّ اللغات سوفر يزيد مستخدميها وتنتشر أكثر مقارنةً باللغات المنافسة فى نفس المنصة أو الـ stack ودعونا نبدأ بأول تغيير. توقعاتى لمجال برمجة الويب والإنترنت 🔗 أعتقد أن المبرمجين سيبدأوا فى استخدام لغة Go بدلاً من NodeJS للسيرفرات وبرمجة الـ back-end.
هل يمكن تخزين الإنترنت؟
لكى نعرف هل الإنترنت يمكن تخزينه أم لا، لابد أن نعرف ما هو الإنترنت. الإنترنت هو إتصال بين جهازك الذى تستخدمه الآن وأجهزة أخرى ضخمة حول العالم. أى أن الإنترنت هو عبارة عن تواصل بين جهازين عبر شبكة من الأسلاك (أو الموجات التى تمر فى الهواء). عندما تدخل على موقع جوجل مثلاً فإنك تقوم بطلب موقع جوجل، يرد عليك الإنترنت بالموقع المحفوظ على جهاز آخر يُسمى خادم إلكترونى (server). إن لم تن متصل بالإنترنت فلن يصل طلبك إلى السيرفر أصلاً وبذلك لن يرد عليك ﻷنه لم يرى طلبك من الأساس.
تخزين انترنت من الواى فاى إلى بيانات الهاتف
الإنترنت هو مجرد تواصل بين الأجهزة على مستوى العالم. جهازك يطلب معلومات معينة من أجهزة ضخمة موجودة فى دول ومدن مختلفة حول العالم. هذه المعلومات التى يطلبها جهازك هى الصور والنصوص والفيديوهات الموجودة فى المواقع التى تتصفحها. عندما تدخل على موقع أبانوب حنا للبرمجيات فإنك تطلب من الخادم (الكمبيوتر الضخم المحفوظ عليه الكثير من المواقع) أن يعطيك الصفحة الرئيسية من موقع أبانوب حنا للبرمجيات مثلاً. يقوم الخادم الإلكترونى (السيرفر) بإرسال الصفحة التى تطلبتها وبعد أن يستلمها جهازك يقوم بعرضها فى صفحة المتصفح الذى تستخدمه.
لماذا لا يوجد نظام تشغيل تعمل عليه كل البرامج (apk, exe, app) ؟
هذا السؤال يأتى فى عقلنا جميعاً فى بداية دخولنا فى مجال البرمجة والإلكترونيات. لماذا لا يوجد نظام التشغيل الذى تعمل عليه كل البرامج والتطبيقات بلا استثناء؟! ولكن قبل الرد على هذا السؤال الجميل علينا أولاً أن نعرف كيف تعمل البرامج والتطبيقات! التطبيقات والبرامج هى عبارة عن كود مكتوب بلغة من لغات البرمجة. فى هذه اللغة تستخدم مكتبات موجودة بالفعل فى نظام التشغيل. هذه المكتبات خاصة بواجهة التطبيق والتواصل مع الهادوير. إذن أنت كمبرمج تستخدم معرفتك بلغة البرمجة وتكتب كود يستغل الـ APIs الخاصة بنظام التشغيل لكى تصمم وتكتب الوظائف التى يوفرها برنامجك للمستخدمين.
شرح مبسط تنظيم ملفات ومجلدات لينكس
تحدثنا كثيراً عن نظام لينكس و برامجه و مقارنته بأنظمة التشغيل الأخرى . والآن دعونا نعرف ما هى المجلدات والملفات الموجودة فى لينكس وماذا يحتوى على مجلد من هذه المجلدات. فلنبدأ، انظر إلى هذه الصورة التى تحتوى على كل المجلدات والملفات الموجودة فى نظام لينكس. لاحظ: يمكنك الحصول على هذه المجلدات والملفات لديك عن طريق أمر ls / داخل التيرمينال. أو عرض كل المجلدات فقط كما فى الصورة التالية: مجلدات bin و sbin و snap تحتوى على البرامج المثبتة على الجهاز.
مواقع مهمة لكل المبرمجين
سواء كنت مبرمج محترف أو مبتدئ أو قررت تبدأ فى مجال البرمجة فى أى مسار من المسارات (الويب، الموبايل، تطبيقات سطح المكتب، أو حتى البرمجة السحابية). اهتم بهذه المجموعة من المواقع التى ستفيدك فى مجالك، وتسهل عليك صعوبة تطوير التطبيقات لكل المنصات 😲 ستحتاج إلى أكواد جاهزة تختصر عليك الوقت والجهد لكى تتعلم وتطبّق وتنهى مشاريعك بشكل أسرع وتصل إلى الإحتراف والفهم العميق ومعرفة المزيد عن كتابة الكود وتصميم البرمجيات بشكل عام وكيف تتواصل أجزاء البرنامج مع بعضها البعض.