أهمية تكنولوجيا المعلومات فى حياتنا اليومية

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

أكمل القراءة Résuméabuiyad

محرك بحث للبحث عن الأكواد البرمجية

في العديد من الأحيان و في تفيذ البرمجيات , قد تحتاج إلى كود برمجي أو دالة لكن يصعب برمجتها في بعض الأحيان و الأمر يتطلب وقت و جهد , مع العلم انك ستجد من قام ببرمجة هذه الدالة مسبقا و ماعليك انت الا اخذها و اعادة استخدامها و تعديلها إن اردت .
هذا البحث قد يكون نوعا ما صعب للغاية , لأنه يتوجب عليك البحث وسط آلاف النتائج في بعض الأحيان و اختيار الأكواد إلى غير ذلك . لكن الآن اصبح الأمر مختلف بوجود محرك بحث للبحث فقط عن الأكواد و الشفرات البرمجية , فكل ماعليك فعله هو الدخول علي الرابط : https://searchcode.com/ و البحث عن ماتريد لتجد النتيجة وسط ازيد من 5 ملايين مشروع .


أكمل القراءة Résuméabuiyad

هل سينجح مشروع شبكة إجتماعية جديدة أو تطبيق تواصل جديد؟

أقرأ أحيانا عن بعض المشاريع المتحمسة التي يريد أصحابها بناء شبكة اجتماعية جديدة لتنافس شبكات إجتماعية عملاقة مثل الفيسبوك واليوتيوب أو تطبيق تواصل ودردشة لينافس الواتساب، فهل هذا ممكن؟
في البداية أود أن أوضح أنني لست من الأشخاص الذين يحبطون الأفكار المتحمسة بل على العكس أنا من أكبر الداعمين للأفكار المجنونة والتي يحكم عليها الناس بالفشل لكن سأناقش هذه الفكرة بشكل سريع ومبسط بموضوعية ومنطقية وواقعية
سأعود إلى السؤال هل يمكنني تأسيس شبكة إجتماعية جديدة تكون بحجم الشبكات الإجتماعية العملاقة؟
الجواب نعم لكن بشروط:
في حال حظر أغلب هذه الخدمات في بلدك كما يحدث في الصين مثلا فشبكة الفيسبوك محظورة هناك وأشهر شبكة إجتماعية هي Sina Weibo وأشهر تطبيق دردشة هو WeChat وليس whatsapp كذلك الأمر شبيه في روسيا (لست متأكد من الحظر هناك) فأشهر شبكة إجتماعية هناك هي vk.com.
في حال قدمت شئ جديد مثلما فعل SnapChat الذي اصبح ينال شهرة واسعة بين المراهقين وكذلك تطبيق Telegram الذي اعتمد على ميزة الأمن والتشفير وحماية الخصوصية.
في حال استطعت أن تقنع الناس لماذا عليهم ان يتركوا ما اعتادوا على استخدامه ويقوموا هم وأصدقائهم بالإنتقال لشبكتك أو تطبيقك.
في حال كنت تمتلك البنية التحتية من حيث التخزين وسرعة الشبكة والمعالجة فلا تتوقع أن تستخدم استضافة مشتركة لتقديم هكذا خدمة وكذلك كادر من الخبرات التقنية والأمنية.
في حال وجدت شريحة لم تستهدفها أي من الشبكات الإجتماعية الحالية.
في حال كنت تمتلك الكثير من المال لتستمر شبكتك لعدة سنوات دون تحقيق دخل.
في حال قدمت تجربة مستخدم تتفوق على الفيسبوك والواتسأب مثلا.
في حال استخدمت منصة جديدة لم تصل إليها الشبكات الإجتماعية الحالية ربما أدوات الواقع الإفتراضي، الملبوسات الذكية أو أجهزة المنزل والمكتب الذكية IoT.
هنا استطيع أن أقول لك إن استطعت أن تملك أجوبة لما ذكرت سابقا قد تستطيع النجاح.
أكمل القراءة Résuméabuiyad

تعلُّم برمجة المواقع ..

أصبحت برمجة المواقع مطلوبة جدا في سوق العمل حيث يوما بعد يوم تتزايد المواقع اليكم هذ الموقع من أفضل المواقع التي يمكنك من خلالها تعلم البرمجة.
موقع مطوري الويب ..
هذا الموقع عربي مصري من بين اللغات التي تدرس بهذا الموقع HTML، CSS، PHP، JQUERY، PHP SCRIPT، و كذلك شرح بالفيديو و باللغة العربية انصح لكل من يريد تعلم البرمجة ان يبدا من هذا الموقع.http://www.advphp.com/
أكمل القراءة Résuméabuiyad

سندوتشات برمجية !



بسم الله والحمد لله و الصلاة والسلام على سيدنا محمد وعلى آله وصحبه أجمعين وبعد :
عندما تقرأ العنوان فقد يتبادر إلى ذهنك السؤال التالي : ما العلاقة بين السندوتش والبرمجة ! — حسناً كما تعلم عزيزي القارئ أن السندوتش يصنف ضمن المأكولات (السريعة) أي التي لا تأخذ وقت ويفضلها كثير من الناس الذين لا يملكون الوقت لتحضير الطعام أو المشغولين بعمل معين ولو قمت بفتح السندوتش لوجدت أنه خليط من أمور كثيرة وغير مرتبة ولكن هذا لا يهم من سيأكله فهو يفكر في الطعم وهذا صحيح بالنسبة للسندوتشات فالمظهر العام غير مهم وأما المقصود بالسندوتشات البرمجية (وأعتقد أنك فهمتها) — هي البرامج سريعة التحضير !.
البرامج سريعة التحضير أو السندوتشات البرمجية هي البرامج التي يكتبها المبرمجين دون تنظيم وفقط لكي يكون لها مظهر جذاب من الخارج ومشاكل كثيرة في الداخل — وللتوضيح لو دققت النظر في البرمجيات العربية لوجدت أنها (في الغالب) ليس لها الكثير من الإصدارات لأنها لم تبنى بنظرة مستقبلية صحيحة فمثلاً في البرمجيات الأجنبية يتم ترتيب الكود بشكل جيد لأن هذا يساعدهم في صيانة البرنامج بسهولة وتعديله وإضافة الخصائص في الإصدرات الحديثة أما البرامج العربية فهي في معظمها فقط تحاول (الظهور) وعندما يظهر البرنامج مثلاً ويرى النور (ولنفرض) أنه أيضاً حقق شهرة كبيرة — فعندها تأتي مشاكل كثيرة للمبرمج عندما يريد اصدار النسخة الجديدة لأن خلف ذلك الشكل الجذاب للبرنامج يقبع الكثير من المايونيز والكاتشب — عفواً أقصد من الأكواد الغير مرتبة وهنا تأتي مشكلة أخرى للمبرمج فهو أمام خيارين فإما أن يعيد كتابة البرنامج من الصفر ليسهل التعامل مع الإصدارات ويقدمها كنسخة جديدة للمستفيدين أو أن يواصل بتخريب ما يمكن تخريبه في الشفرة وذلك بإضافة القليل من الفلفل الأسود عفواً أقصد من الأكواد بحيث تصبح الأمور فوق بعضها البعض!.
ببساطة سبب كل تلك الفوضى هو حب الظهور — نعم حب الظهور وعدم الصبر — وهذه في الغالب تجدها بكثرة في مبرمجينا إلا ما رحم ربي — وهاتان النقطتان هي من يجعل المبرمج يصدر سندوتشات برمجية بحيث تأتيه خيالات أن فكرته لم يسبق إليها أحد وأنه سيفجر الكرة الأرضية عندما يظهر البرنامج أو السكربت وأن الناس سيعجبون به فور نزوله وهذا يجعله يكتب أكواد أي كلام في أي كلام وبسرعة لينتج لنا سندوتش برمجي جاهز للأكل ‏‎smile‎‏ رمز تعبيري وهذا للأسف كله أيضاً بسبب التوقعات الوهمية وعدم الصبر كما ذكرت.
أما نصيحتي لك كمبرمج وبما أنك اخترت هذه المهنة فيجب أن تكون صبوراً وإن لم تكن كذلك فيجب أن تتدرب على الصبر وأن لا تجعل أحلام اليقظة تذهب بك بعيداً أنت وسندوتشك البرمجي عفواً أقصد برنامج — لذلك كن حكيماً وهدئ من روعك واصبر على انتاج البرنامج حتى لو كلفك ذلك عاماً كاملاً ولكن عندما يظهر للناس فعندها بالفعل سيكون اسمه (برنامج) !
أكمل القراءة Résuméabuiyad

وصفة علاجية لمبرمج يعاني من الإستعجال في التعلم

العجلة والإستعجال والسرعة في التعلم كلها مصطلحات تشير إلى شئ واحد تقريباً فكثير من الناس وليس فقط في مجال البرمجة يستعجلون التعلم ليحصلوا على أكبر قدر من المعلومات في زمن قياسي ..
حسناً..
دعنا نقول : لمن تتعلم ؟ أليس لنفسك .. جميل .. ودعنا نقول : متى يتوقف العلم ؟ والجواب البديهي أن الإنسان يتعلم حتى الممات .. جميل .. إذاً فلماذا العجلة ؟
في الغالب يحاول المبرمج تعلم كل شئ بين ليلة وضحاها ولكي نكون منصفين فإن أغلب المبرمجين الذين يستعجلون في تعلم الأمور البرمجية تجدهم في الغالب أصحاب برامج ضعيفة وغير قوية وذلك لأنه أخذ المعلومات بسرعة عالية والذي يترتب عليه ترك أمور كثيرة مما يجعل المبرمج يتخبط يمنى ويسرى ولا يدري من أين يذهب .. وسأعطيك الآن مثال واقعي جداً على مايحدث :
الآن افرض أنك تريد تعلم لغة برمجة جديدة ولنفرض لغة بايثون .. انظر ماذا يفعل اغلب المبرمجين .. يحضر الكتاب أو يتابع موقع ويقرأ بسرعة عالية جداً ولا يطبق وينظر إلى العناوين ويحاول الوصول لنهاية الكتاب بأي طريقة .. وبعد أن ينهي الكتاب والذي ربما لم تتجاوز الإستفادة منه سوى 30 في المئة يحاول بناء البرمجيات على أنه فعلاً مبرمج بايثون وليس شخص مبتدئ ويحاول سبر أغوار اللغة بشكل جيد .. وعندما يبدأ في كتابة البرمجيات المعقدة فإنه يقف لأنه تنقصه بعض المعرفة .. وبعدها سيعود ويقرأ من الكتاب وهكذا ليضيع شهراً كاملاً أو شهرين على هذا الحال وربما عام كامل ..
دعنا ننظر من زاوية اخرى .. ماذا لو اخذ المبرمج نفس الكتاب وقرأه مثلاً على عشرة أيام أو 15 يوم بروية وفهم عميق .. عندها سيغنيه ذلك من الشهر الذي ضاع سدى وهذا مانقصده ..
أي بكلام أخر فإنك تتعلم ولايهم متى ولكن ما يهم أن تستمر في عملية التعلم أي أنك كل يوم تتعلم شئ جديد وأما الإستعجال في التعلم .. فأنا لا أظنك تتعلم من أجل الناس حتى تتسابق معهم .. على مهلك واحرص أن يكون في كل يوم لديك شئ جديد تتعلمه ولا تستعجل فإنك لو قرأت 100 كتاب في اليوم فلن تدرك العلم كله ولو عشت مليون عام ..
أكمل القراءة Résuméabuiyad

توضيح لمفاهيم خاطئة لكثير من الناس في عالم البرمجيات ..

ماهو الـ Framework؟؟
إذا سألت اي زول ... حيقول إجابة شائعة عندنا وهي "إطار عمل" زيها وزي "إطار صورة" "إطار شهادة" صح؟! ... هي نعم إجابة صحيحة ومختصرة ... بس ما بتوضح للناس فكرة الـ Framework.
لو رجعنا للزمن وراء ... أول ما ظهرت لغات البرمجة ... كان لغات البرمجة كل حاجة المفروض تتعمل على المبرمج نفسه من الصفر لحدي إنجاز المشروع .... الصفر هنا بمعنى الصفر تبدأ من لا شيء ... يعني هسي أنت مهما كانت صعوبة اللغة حالياً ما بتبدأ من الصفر زي ما بتتخيل .... لأنو حتلقى Framework جاهز للمبرمج .... جهز ليك الحاجات الأولية ... الحاجات الأولية دي شنو؟!
الحاجات هي الأدوات Tools زي الـ Textbox والـ Label والـ Checkbox والـ Charts وغيرها ... دي زمان المبرمجين كانوا ببرمجوها من الأول ... لكن أنت حالياً بتعمل ليها Drag and Drop في الــ Form أو Page وأنتهى الموضوع.
يعني بنستنتج من الكلام دا أنو كل لغة برمجة عندها Framework بيتعمل من البرمجين من اللغة نفسها ... يعني Codes و Functions و Methods مبرمجة جاهزة ... أنت بس بتستدعيها وبتمرر ليها الـ Parameters وهي زي الخلاطة بترمي ليها البرتقال والسكر والموية ... بتديك عصير جاهز ... دا بالضبط فهم الـ Framework حاجة بتجهزها ليك شركات أو جهات بغرض التسهيل على المبرمج وإختصار زمنه في كتابة الأكواد المكررة دي.
نديكم الـ Frameworks الجاهزة للإستخدام :-
الـ jQuery هو فريم ويرك جاهز من لغة الـ Javascript.
الـ .Net Framework هو فريم ويرك جاهز بـ ثلاثة نسخ لكل لغة عندها نسخة Visual Basic و C# و C++.
الـ Wordpress و Laravel و Joomla هم فريم ويركات من لغة الـ PHP.
الـ Bootstrap و Foundation هو فريم ويرك من تقنيات الـ HTML والـ CSS لتسهيل تصميم الواجهات.
الـ Oracle ADF والـ PL/SQL والـ Android هو فريم ويركات من لغة الـ Java
وفي Frameworks كثيرة لا حصر لها ... ودا غير أنو في مبرمجين عندهم Framework خاص بيهم.
في الـ Framework ميزته أنك ما بتضطر تتعامل مع اللغة مباشرة .... يعني بإمكانك تستخدم الـ Framework في إنشاء مشاريعك Drag and Drop بتختصر ليك الكثير من الوقت وبتقدر تنجز بسرعة أكبر .... بس ما بيغنيك من تعلم اللغة الأصلية في حال عندك تعديلات أو إضافات خاصة بك.
طيب هل ليهو علاقة بالـ Open Sourceو الـ Close Source في عالم البرمجيات؟؟
نعم ليهو علاقة وبشدة ... ما في لغة برمجة ممكن نقول عليها Open Source أو Close Source لكن بنقدر نقول أنو الـ Framework ممكن يكون الـ Open Source وفيهو الـ Close Source ... ودي بحددها صانع الـ Framework يعني لو شركة أكيد حتقفله وتبيعه عشان تربح بس في ميزة في الشركات أنها بتحاول تسهل ليك التعامل معاهو قدر الإمكان عشان أنت زبون ولازم ما تخسرك ... وأما لو فرد هاوي أكيد حيعملوا مجاني ويشارك بيهو المجتمع بغض النظر عن نوع لغة البرمجة.
الشركات برضو بتقفل الـ Framework حقها ... أنت ما بتقدر تتطلع على الأكواد ولا تعدل فيهو ... لأنو أي تعديل منك خاصة لو كنت مبرمج جديد في عالم البرمجة قد تعطل بعض الوظائف في الـ Framework ويتسبب ليك بمشاكل أنت في غنى عنها ... لكن ممكن تعمل Overriding للـ Functions و Methods وتكتب تعديلاتك الأنت عايزها بدون التعديل في الـ Framework الأصل ... وتطوير الـ Framework بيكون من الشركة ... ولكن إمكانك مراسلة الشركة للموافقة على تعديلاتك وإعتمادها بقانون الشركة نفسها.
طبعاً الـ Framework حق الشركة بيكون موحدين التسميات الـ Classes والـ Functions و الـ Methods بنظام معين مثلاً الحرف الأول Capital من كل كلمة وما في فواصل بين الكلمات ... ودي بتساعد المبرمج بعدين في الفهم والحفظ وبتكون عارف نمط الشركة في التسميات وبتقدر تنجز أسرع.
طبعاً الميزة هنا : أي مشكلة بتظهر في الـ Framework هي مسؤولية الشركة ... لا يتحملها المبرمج ... ولا يمكن إكتشاف الثغرات هنا إلا في حالة الحصول على Source Code الخاص بك .... لأنو حتى أي كود بتكتبوا بيتم تشفيره في مرحلة الـ Debug إلى EXE أو DLL ....إلخ وغير قابل للتعديل مهما كان.
بس العيب أنو الـ Framework من الشركات غالباً بيكون مدفوع ... بس هسي لاحظت الشركات بدت توفره مجاناً بضوابط وشروط معينة.
أما في الـ Frameworks جاهزة من جهات عادية أو مجتمع تقني Open Source ... والمجتمع التقني هم مجموعة مبرمجين بيستخدمو نفس اللغة وأتفقوا وصنعوا الـ Framework الخاص فيهم جاهز وبيشارك بيهو المجتمع .... هنا بيكون الـ Framework متاح مجاني وقابل للتعديل ... بس هنا الحكاية مش سايبة ساي ... كمان في جهات مسؤولة بتستلم من المبرمجين التعديلات وبتضيفها في الـ Framework برضو.
الميزة : أنو النسخة دائماً مجانية غير مدفوعة
العيوب :
- هنا أي مشكلة بتظهر في الـ Framework هي مسؤولية المبرمج ... لا تتحملها الجهة لأنها غير محددة يقبضوا منو ويخلوا منو.
- تسميات الـ Functions و Methods هنا بتكون غير خاضعة لنمط معين ... لأنو لكل مبرمج ساهم في الإضافة له تسميته بالطريقة الخاصة به.
هل ممكن أعمل Framework خاص بي؟!
نعم ممكن تعمل Framework خاص بيك على أي لغة برمجة لتسهيل شغلك ومهامك .... لأنو دا بند أساسي بالنسبة للمبرمج أنو يقدر يعمل Framework خاص بيهو بدون أي قيود ... وليك الحرية التامة أنك تشاركه مع الأخرين سواء كان مجاني أو مدفوع للأخرين على حسب رغبتك انت.
الخلاصة :
إختيارك للـ Framework بيعتمد على إرتياحك للـ Framework دا الحكاية ما تحدي ومحاكاة للأخرين ... ما عليك من المميزات والعيوب لأنو كل حاجة ببميزاتها وعيوبها ... ما في حاجة مثالية ... أنت أخترته عشان تحقق بيهو أهدف معينة وأنو يساعدك في إنجاز أعمالك ... ولكل مبرمج شغفه وحريته في إختيار لغته والـ Framework الخاص فيهو.
حكمة :
أنت ممكن تقارن عشان تحدد الأفضل بالنسبة لك وتبدأ تنجز فيها .... لكن ما تقارن عشان تثبت أنك الأفضل في إختياراتك وتنسى الحاجة الأهم وهي ضياع زمنك في المقارنة كان ممكن تستفيد منو في تعلم حاجة جديدة.
المفاهيم البرمجية واحدة في كل لغات البرمجة ... وأي حاجة في عالم تقنية المعلومات IT ... ممتعة وليها أهميتها. فكر بمنطق!!
.. بالتوفيق للجميع ..
أكمل القراءة Résuméabuiyad
جميع الحقوق محفوظة 2015 خالد عصام الدين للمعلوميات ©