أنا مازن مليباري مبرمج منذ السابعة من عمري إسألني ماتشاء
السلام عليكم، أنا مازن مليباري:
بدأت البرمجة في سن مبكرة جدا و الآن -بحمد الله- طالب دكتوراة في مجال الذكاء الإصطناعي و معيد بجامعة أم القرى بمكة المكرمة.
عايشت مجال تطوير الويب العربي منذ بداياته في منتصف التسعينات ... وكنت ممن يبرمجون المواقع باستخدام Perl (أعاذنا الله و إياكم :))
مررت برحلة طويلة بين لغات البرمجة، و مؤمن ان من يراهن على لغة برمجة غير C فإحتمالية خسارته للرهان كبيرة جداً :)
عملت كمبرمج حر ثم أسست مؤسسة برمجية صغيرة و كانت لي عدد من المشاريع الريادية التي حققت نجاحات مالية أنا سعيد و فخور بها.
لدي قناعة أن المبرمج الذي لم يطّلع على مجال "علوم الحاسب الآلي" فغالباً لم يجد من حلاوة البرمجة إلا نصفها.
مدونتي:
- تويتر:
أنا بين أيديكم و حاضر للإجابة على أسئلتكم ...
التعليقات
أعتقد أن البدايات مضحكة بعض الشيء .. :)
أتذكر أنه كان لدينا جهاز صخر MSX في البيت، و كان يوجد كتاب أصفر لتعليم البرمجة بلغة Basic، كنت مولع في صغري بتقليد شخصية "الشرطي/العسكري"، أتذكر أن أحد الفصول في الكتاب كانت بعنوان "العبارات الشرطية" ظننت وقتها أن الكتاب له علاقة بالعساكر و الشرطة و لم أكن اعلم أنه يقصد if statement :)
فبدأت بطريقة لا أذكرها بنقل الاكواد الموجودة في الكتاب إلي الكمبيوتر، كنت لا أعرف الحروف الإنجليزية وقتها فكنت أقوم بالنظر للحرف و البحث عن مثيله في لوحة المفاتيح، أتذكر أن أحد المصاعب كانت أن بعض الحروف في الكتاب مطبوعة small letters بينما على الكيبورد capital letters، فكنت أتردد على أحد إخواني أسأله: "الحرف b كيف شكله على الكيبورد؟" :)
أتذكر أيضاً أني نقلت كود طوله صفحتين من الكتاب حرف حرف، ثم ضغطت زر التشغيل فلم يظهر شيء، فجاء أخي و ساعدني و قرا الكود فلم يجد أي خطأ، ثم اكتشفنا في الأخير أن الكود الطويل كان بهدف رسم نقطة بيضاء (بيكسل) في منتصف الشاشة :) ...
هذا كان حديث البدايات :)
اعتقد انه جيل كامل :) انظر :
السلام عليكم ..
حبيبنا ممكن تتكلم قليلا عن منصة عملك برامج التحرير التي تفضلها برامجك التي تستخدمها لزيادة الانتاج ؟
طريقتك في تحليل البرنامج قبل البدء في كتابة الاكواد ؟
مع الخبرة الطويله والاكادمية وانتاجك اعمال متعددة ،، خطوات تنصح بها قبل وعند البدء في تعلم لغة برمجية للويب ؟
سؤال اخير .. هل تعتقد بأن الذكاء الصناعي طريق مسدود ( اقصد الوصول الى تجربه مماثله للعقل البشري ) لاعتماد بعض الاحكام على العاطفه والمشاعر واعتقد مستحيل خلق تجربة تقنيا مماثل لها ؟
خطوات تنصح بها قبل وعند البدء في تعلم لغة برمجية للويب ؟
قم بعمل مشروع حقيقي متكامل باللغة التي تقوم بتعلمها، بناء CMS قد يكون فكرة جيدة.
تأكد من أنك تتبنى عقلية المبرمجين باللغة التي تتعلمها، فليس من الجيد على سبيل المثال أن تبرمج بلغة Python لكنك تفكر كما لو كنت مبرمج بلغة PHP.
في بداية تعلمك حاول أن تعتمد على ملفات التوثيق الخاصة باللغة Documentation، حتى و إن كنت تقرأ من كتاب فحاول أن ترجع للـ Documentation، هذا سيساعدك على فهم اللغة بشكل أعمق و أقرب للطريقة التي يريدك مصمم اللغة أن تفكر بها.
يا هلا و مرحبا، سأقسم إجابتي على أسئلتك إلى عدة ردود ..
ممكن تتكلم قليلا عن منصة عملك برامج التحرير التي تفضلها برامجك التي تستخدمها لزيادة الانتاج ؟
كنت أستخدم Vim ثم تحولت إلى Emacs و الآن أعتقد أن Sublime text هو أحد المحررات الجيدة الموجودة (أتمنى بصدق أن يتحول إلى مشروع تجاري مفتوح المصدر!).
أستخدم IntelliJ IDEA منذ سنة و نصف تقريباً و أنصح به بقوة.
على لينكس أستخدم GNU Screen or Tmux لتقسيم الشاشات.
أستخدم مؤقت Countdown ليساعدني على التركيز و أستخدم تقنية Pomodoro لإدارة الوقت.
عند العمل على مشاريع متعلقة بالأبحاث العلمية أستخدم iPython بشكل كبير و خصوصاً ميزة Notebook.
انا اعرفك واتابعك من زمن طويل ومنذو يومين واثناء البث المباشر لعملية البرمجة التي قمت بها استنتجت انك هجرت vim واصبحت من اصحاب sublime text رغم حبك السابق والشديد لـ vim :)
ولكن اخي مازن هل انت من اصحاب استخدام كمبيوترين للبرمجة او كمبيوتر واحد يكفي للغرض؟؟؟
هل تعتقد بأن الذكاء الصناعي طريق مسدود ( اقصد الوصول الى تجربه مماثله للعقل البشري ) لاعتماد بعض الاحكام على العاطفه والمشاعر واعتقد مستحيل خلق تجربة تقنيا مماثل لها ؟
للامانة هذا سؤال عميق و يحتاج إجابة مطولة لإيصال الفكرة بشكل كامل غير مقتطع من سياقها، أقول دائماً أن مشكلتنا أعقد من بناء أجهزة ذكية أو لديها مشاعر، مشكلتنا أننا أساساً لا نعرف ماهو الذكاء ولا ماهي المشاعر، إذا أستطعنا أن نتفق على تعريف محدد لهم فبإمكاننا محاولة الغجابة على الأسئلة الفلسفية المتعلقة بهم.
طريقتك في تحليل البرنامج قبل البدء في كتابة الاكواد ؟
يعتمد على طبيعة البرنامج و طبيعة العميل، بعض المشاريع تحتاج مرونة فيناسبها العمل بأسلوب Agile و بعضها (خصوصا عند التعامل مع جهات كبيرة) قد يكون الـ Waterfall هو الأفضل رغم كل الإنتقادات عليه.
بشكل عام أعتقد أن عدم التحليل يؤدي إلى كارثة، و كذلك التحليل المبالغ فيه يؤدي إلى كارثة من نوع آخر، الأول دائماً يودي إلى فشل المشروع، و الثاني يؤدي إلى تأخر المشروع. كثير من المشاريع لاتحتاج أكثر من ورقة و قلم و قليل من الرسومات قبل البدء في كتابة الكود.
حين تحدثت عن النجاحات المالية التي حققتها مشاريعك، هل نفترض أنها جعلته من الممكن لك أن تتوقف عن البحث عن وظيفة ومصدر دخل ثابت؟
نعم، إثنان من المشاريع التي كنت أعمل عليها حققت أرباح مالية كان يمكن إن ركزت عليها أن تكون نواة لشركة تقنية رابحة، لكني اتخذت قرار أن التحق بالمجال الأكاديمي لأني وجدته أقرب إلى نفسي. العمل في المجال الأكاديمي يتشابه إلى حد كبير مع ريادة الاعمال و يختلف في طبيعته مع الوظيفة التقليدية.
تعديل: أعتقد الجواب مختصر و يحتاج إضافة .. سأشرح اكثر بعد قليل :)
تابع للرد السابق:
كانت مشكلتي الرئيسية مع المشاريع التجارية التي بدأتها أنها تكبر بسرعة كبيرة و من ثم تحتاج إلى جهد روتيني لإدارتها و ضمان إستمراريتها لكني لم أكن أملك الوقت الكافي لتقديم جهد من هذا النوع، كنت ولازلت أضع "طلب العلم" هدف أساسي يتقدم على كل الأهداف الثانية، لذلك كنت كل مرة أبدأ مشروع تجاري ناجح ثم يصل إلى مرحلة أجده يتعارض مع هدف "طلب العلم" أقوم بإغلاق المشروع أو البحث عن طريق خروج Exit strategy. الآن أتمنى بعض إنهائي للدكتوراة بإذن الله أن أجد بعض الوقت للعمل على مشروع تجاري صغير أطبق فيه بعض الأحلام التقنية الوردية التي تدور في خاطري :)
اخي مازن ، ماهو التوجه البرمجي الذي تعتقد انه الانسب هذه الايام ؟
اعني برمجة مواقع الويب ، او برمجة برامج لانظمة الاندرويد او غيرها .
أعتقد الإستثمار في تعلم برمجة الويب أفضل على المدى الطويل و يمكن استخدامه أيضاً لتطوير برامج للأجهزة المحمولة باستخدام أدوات مثل PhoneGap أو Appcelerator، في المقابل برمجة الاجهزة المحمولة سواء iOS أو أندرويد هي "الموضة" هذه الأيام. إذا كنت مبرمج مبتدئ ابدأ بتعلم برمجة الويب قبل تعلم برمجة الاجهزة المحمولة.
السلام عليكم اخي مازن انا عبدالرحمن من السعودية عمري 17انا حلمي وهدفي اني اسوي احسن موقع تواصل اجتماعي في العالم اية لغة تنصحني عشان اعمل شي زي كدا ومن فين اتعلمها
استاذي مازن ما رأيك في الشهادات التقنية ! مثل شهادات Microsoft certified Development Specialist
و غيرها
هل تجد من المهم ان يعمل المبرمج على تقديم اختبارات للحصول على هكذا شهادات ؟
اذا كانت اجابتك بنعم فماهي الشهادات المهمة في مجال البرمجة التي تنصح بالحصول عليها ؟
انا حاليا اعمل لعبة الكترونية اللعبة قريبة من رسك ان لم تكن تعرف رسك فامكاني تشبيهها بلعبة الشطرنج واللعبة تحتاج لذكاء اسطناعي ذكي و انا عملت ذكاء اسطناعي لالعاب سابقة ولكن النتيجة انك تلعب مع خصم سهل الهزيمته هل تعرف كم سيكلف لو اني ابحث عن شركات او اشخاص هم من يعملون الذكاء الاسطناعي ؟؟ او ان تدلني عن اي شي ممكن ان يفيدني
حقيقة يا عمار ما أعرف كم يكلف، لكن أعتقد إنه ابدا ماراح يكون مبلغ بسيط، هذا النوع من البرمجة غالباً ليس سهل و أي مبرمج لديه معرفة بهذا المجال يستطيع الحصول على وظيفة أو العمل على مشاريع مربحة جداً. أفضل طريقة أن تتعلم بنفسك إن كان المشروع صغير، و أكيد لايخفى عليك أن هناك كتب متخصصة في برمجة الذكاء الإصطناعي للألعاب.
عملت كمبرمج حر ثم أسست مؤسسة برمجية صغيرة و كانت لي عدد من المشاريع الريادية التي حققت نجاحات مالية أنا سعيد و فخور بها.
ماذا يحتاج المبرمج ليكون رائد أعمال. من حيث المهارات؟ أقصد مالا يتعلق بالبرمجة (المهارات الشخصية) ؟
أصدقك القول يا أخي إسلام أني اعتقد أن المبرمجين بالذات بحاجة لمهارات كثيرة جداً للدخول في هذا المجال، صحيح ان لديهم الآداة الأهم (البرمجة) لكن العمل في السوق و التعامل مع العملاء مهارات نحن لا نتقنها بطبيعتنا، بل في كثير من الأحيان تتعارض مع ما نتقنه، نحن بطبيعتنا جيدين في التعامل مع الكمبيوتر لكن ليس مع البشر :)
في جانب المهارات الشخصية أنصح بكتاب ديل جارنيجي: كيف تكسب الأصدقاء و تؤثر على الناس how to win friends and influence people. أما في مجال ريادة الأعمال فاعتقد كتاب The Startup Owner's Manual من أفضل الموجود حالياً.
من وجهة نظري , ريادة الأعمال تحتاج دراسة مجال ريادة الأعمال أكثر مما تحتاج لدراسة موضوع الاعمال نفسه
بمعنى , من الممكن انك تكون مش خبير في مجال البرمجة لكن تقوم بانشاء شركة تعمل في مجال البرمجيات وتنجح نجاح كبير
والعكس , ممكن تكون خبير وعبقري في البرمجة مثلا , وتقوم بانشاء شركة ولا قدر الله تخسر , نتيجة عدم خبرتك بعوامل السوق ونظم الادارة والتسويق , الخ
في اكثر من موقع بيقدم مقالات عن ريادة الأعمال تقدر تستفيد منهم , او تقوم بدراسة جزء بسيط من ادارة الاعمال
استلف اي كتاب من حد دارس مجال ادارة الاعمال واقرا عن الموضوع
بالتوفيق
صحيح، غالبية مشاريعي الأخيرة كانت إما بـ Ruby أو Python، لكن قبلها و لأكثر من عشرة أعوام كانت معظم مشاريعي باستخدام (محبوبة الجماهير) PHP.
برأيي أن كل اللغات المذكورة وصلت لمرحلة متقدمة جداً من النضج تجعل البرمجة و التطوير بها لايقل كفائة عن الأخريات، سواء من ناحية توفر أدوات برمجية مساعدة أو من ناحية وجود مجتمعات برمجة قوية و كبيرة تستخدم هذه اللغات، لذلك أصبح الإختيار بين هذه اللغات الآن إلى حد كبير يتوقف على التفضيل الشخصي للمبرمج (وأحياناً عوامل أخرى مثل سهولة الإستضافة و غيره).
تفضيلي لـ Ruby في هذه الأيام هو بسبب -إعتقادي الشخصي- أن إطار العمل Rails هو أكثر Web Framework موجود حالياً يتم إضافة ميزات قوية و جريئة فيه مع كل نسخة جديدة.
أما Python .. فلاتكفي الكلمات للتعبير عن إمتناني العميق لهذي اللغة :) .. كل شيء فيها رائع و جميل .. أستخدمها أحياناً في تطوير المواقع (وغالباً أعتمد على إطار العمل Flask)، و تقريباً هي اللغة الأساسية التي أستخدمها في أبحاثي الأكاديمية. أظن أن السبب الرئيسي وراء هذا التعلق بلغة Python هو كونها لغة Strongly & Dynamically Typed (المعذرة لا أعرف تعريب لهذي المصطلحات) و تعمل بشكل سلس على أكثر من منصة بدون مشاكل، بالإضافة إلي المكتبات البرمجية الممتازة التي يصعب أن تجد لها بدائل خارج عالم Python :).
أستاذ مازن هل تنصح المبرمجين العرب بالانخراط في مشاريع المفتوحة المصدر ؟
وكيف هي الطريقة الامثل لعمل ذلك فالمشاريع كثيرة جدا على github و sourceforge لكن صعب جدا ان يستطيع احد منا المشاركة ولو بتعديل بسيط جدا على احد هذه المشاريع !
نعم لاشك أن المشاركة في المشاريع المفتوحة المصدر باب واسع لتطوير مهاراتك البرمجية ووضع خبرتك تحت النقد من قبل مبرمجين آخرين وهو أمر مهم و صحي جداً، ساخبرك بطريقة بسيطة لتبدأ:
توجه إلى Github في مربع البحث في الأعلى اكتب التالي:
created:>2013-12-31 language:javascript
مع تغيير التاريخ إلى تاريخ سابق بيوم أو يومين وتغيير اللغة إلى لغة البرمجة التي تفضلها، ستظهر لك مشاريع جديدة تم إضافتها مؤخراً، إبحث بينها عن شيء يثير إهتمامك و حاول المساعدة فيه. هذي المشاريع جديدة و غالباً ستحتاج لجهد أقل حتى تنضم لها. مع الوقت يمكنك التوجه إلى تطوير برمجيات أكبر.
اسمحلي اخي الكريم لكن بعد التخرج بحوالي سبع سنين و البقاء بعيد عن كل من السي بلس بلس والرياضيات لا اظن انني استطيع العمل على هذا المشروع فقدت الكثير و الكثير من مهاراتي في جو العمل الروتيني و البيروقراطي لهذا اود الدخول في مشاريع الاوبن سورس لكن لا استطيع الدخول في سي بلس بلس ولا الرياضيات في الوقت الحالي
بسم الله الرحمن الرحيم
السلام عليكم ورحمة الله وبركاته
اهنيك استاذ مازن على تعلمك للبرمجه في وقت مبكر جدا ونحن الآن في زمن التكنلوجيا والتطوير ويحتاج الشخص الى المعرفه والتعلم
واذا ممكن استاذ مازن ان تشور الي الى بعض الكتب لكي اتعلم البرمجة واي شي لاستطيع ان اكون مبرمجه فأنا جدا احب مثل هذه الاشياء ولدي شغف كبير في التعلم ولكن لا ادري من اين ابدأ ؟
كل التقدير والاحترام لك
استعن بالله و أبدأ بهذا الكتاب للتعلم أساسيات لغة Python:
إذا واجهت أي مصاعب بإمكانك مراسلتي و سأحاول مساعدتك قدر المستطاع :)
Perl جميلة لكن الجمال ليس كل شيء هروب تام منها معظم من اعرفهم هرب منها رغم اني مستخدم لها ومازلت .
المهم سؤالي يقول يا ألبي , لماذا العربية اخر اهتمام المواقع الضخمة برأيك ؟
مع ان المجمتع الانترنتي العربي ضخم
بإعتقادي أن الذكاء الاصطناعي هو مجرد تهيئة النظام لإتخاذ قرارات معينه لكل المعطيات الممكنه في أمر محدد، هل هذا صحيح؟
أتمنى ذكر أمثله لتقنيات تستخدم "الذكاء الاصطناعي".
بإعتقادي أن الذكاء الاصطناعي هو مجرد تهيئة النظام لإتخاذ قرارات معينه لكل المعطيات الممكنه في أمر محدد، هل هذا صحيح؟
هذا تعريف جميل لكنه ضيق جدا، و الحقيقة لايوجد تعريف واحد شامل و متفق عليه عن مجال الذكاء الإصطناعي، البعض يقول أنه فرع العلم الذي نحاول من خلاله جعل الكمبيوتر يقوم بعمل أشياء يحتاج البشر فيها للتفكير، بينما آخرين يقولون أنه الفرع الذي نحاول من خلاله جعل الكمبيوتر يقوم بعمل أشياء يؤديها البشر بسهولة (مثل التعرف و القراءة .. الخ). أعتقد أن مشكلة تعريف المجال أساسها عدم إتفاقنا على تعريف محدد لكلمة "ذكاء" في الأصل.
أتمنى ذكر أمثله لتقنيات تستخدم "الذكاء الاصطناعي"
Siri، الربوتات، السيارات ذاتية القيادة، الكثير من الألعاب المتقدمة، .. الخ
انت نشرت حلقة تعريفيه لسلسه يوتوب لتعليم الذكاء الاسطناعي ولكن توقفت بعد المقطع التعريفي ماالسبب؟؟
ثلاثة أسباب:
عندما بدانا بتسجيل الحلقات اللاحقة وجدنا صعوبة كبيرة في تبسيط المادة العلمية و جعلها مناسبة لليوتيوب، أكثر الإنتقادات التي وصلتنا كانت أن الفيديو طويل! فكان من الصعب ان نختصره أكثر.
بعد الفيديو مباشرة بدأت مرحلة الدكتوراة و رزقت بإبن و تغيرت حياتي كثيراً :)
لم أكن راضي ولا مقتنع أن هذه المادة يمكن أن تقدم بهذا الشكل، ولازلت لا أعرف ماهي أفضل طريقة لتقديمها.
عندي سؤالين اخ مازن
1 - لماذا تراهن على ان من يراهن على لغه برمجية غير لغة الـ C فاحتمالية خسارته للرهان كبيرة ؟
2 - ما المقصود بآخر نقطه ؟
وشكرا :)
1- رأيت خلال الـ 15 سنة الماضية الكثير يراهنون على لغات برمجة أنها هي الأفضل و أنها ستحل كل مشاكل ماقبلها، و في كل مرة تأتي لغة جديدة تأخذ البريق و الإهتمام .. قبل عدة سنوات فقط كانت Ruby هي اللغة الاكثر جاذبية، و اليوم نرى عودة قوية لـ Javascript .. هذا المجال متقلب بشكل كبير لذلك الرهان فيه صعب :) .. لغة C كانت بنظري اللغة الوحيدة التي لم يتمكن أحد حتى الآن من منافستها بشكل قوي.
2- المقصود أنه يوجد مجال علمي يسمى Computer Science يدرس البرمجة (و بشكل أعم الخوارزميات) بطريقة علمية، هذا المجال يظهر لك جانب مختلف من البرمجة غالباً لا يهتم به المبرمجين الهواة.
ما رايك بالانتقادات الموجهة للغة الي اتش بي مثل هذه المقال الطويل الجارح
اعمل على البي اتش بي منذ فترة طويلة تقريبا ٦ سنوات و مؤخرا بدات اعمل على البايثون ونود جي اس، من كثر الانتقادات الموجهه للبي اتش بي اشعر احيانا انها سوف تنهار غدا لكن في الحقيقة هناك العديد من المشاريع تعمل على بي اتش بي " زي الحلاوة "
عالم الحاسوب الكبير "Bjarne Stroustrup" الذي صمم و أنشئ لغة C++ قال عبارة جميلة جداً:
There are only two kinds of languages: the ones people complain about and the ones nobody uses.
يوجد نوعين فقط من لغات البرمجة: لغات الجميع يتذمر منها الجميع، و لغات لايستخدمها احد.
نصيحتي لك ولكل مبرمج أن لايكون هذا النوع من المقالات ضمن المؤثرات التي تجعله يغير و يتقلب بين اللغات، لأنه ببساطة سيجد مقالة مشابهة تذم في أي لغة أخرى سيتحول لها.
اختيارك للغة برمجة مثل إختيارك لشريكة حياتك :) مع الوقت ستكتشف فيها بعض العيوب، لكن يجب أن تعود نفسك النظر للمحاسن، في الوقت الذي تكثر فيه العيوب و تصبح الحياة مستحيلة يمكنك المتابعة للغة أخرى .. :)
هذا الكتاب بسيط و قد يكون مناسب:
يمكنك البحث عن أي كتاب أو دروس عن الخوارزميات باللغة التي تفضلها لتبدأ بها.
ما الذي يلزم لكتابة خوارزمية تشفير جديدة ؟
و كيفية معرفة ان هذه الخوارزمية قوية و صعب كسرها ؟
و شكرا للرد اخ مازن
اخ مازن عندي سؤالين بعد اذنك
الاول ما هو رايك بلغة البرمجة بي اتش بي كلغة تطوير تطبيقات الانترنت وهل تعتقد انها ما زالت قادره على مواكبة تطور لغات البرمجة؟
الثاني: ما هو رايك بالمشاريع العربية مفتوحة المصدر ان وجدت؟ وهل تعتقد ان فكر المبرمج العربي يسمح له بالانخراط في مجموعات عمل؟
وكنصيحة اخيرة ارغب منك ان تقدم نصيحة للمبرمجين العرب لتطوير المحتوى العربي
وشكرا جزيلا لك
لغة PHP لازالت قوية و محافظة على مكانة جيدة بين لغات تطوير الويب، و رأيي انه لاينقصها شيء عن بقية اللغات الثانية، بل قد تتفوق على لغات ثانية في نقاط مثل سهولة الـ Deployment و توفر استضافات رخيصة لها.
أما بخصوص سؤالك الثاني فللأسف تجاربنا العربية في مجال المشاريع مفتوحة المصدر ليست جيدة أبدا، لا أعرف أين المشكلة حقيقة، لكن أتمنى أن يتحسن الوضع قريباً.
نصيحتي للمبرمجين هي أن لايهجرو المجتمعات العربية بعد أن يحترفو، وأن يتذكرو أن زكاة العلم تعليمه. وهي نصيحة أقدمها لنفسي قبل ان أقدمها لاحد آخر.
فعلاً جزيت على هاذه الفكرة الموضوع ...
بما إنك مبرمج ,, لو تم إنشاء مشروع ويب حديث و متطور .. كمثال موقع إجتماعي .
هل سينجح و ينضم ضمن المواقع الإجتماعية المعروفة , إذا كان الجواب نعم ما هي الأمور التي يجب إتباعها ومراعتها ..
شكراً مقدماً يا غالي ..
مهم أن نؤكد أن هذا النوع من المشاريع "صعب" لكن ليس "مستحيل" .. فرق عظيم و كبير بين الإثنين. لا أعتقد أنه يوجد أي مانع من أن يقوم أي مبرمج ببناء مشروع و يصبح هذا المشروع أحد المشروعات المهمة على الويب .. إن كان هناك درس يمكننا تعلمه من السنوات السابقة في برمجة الويب هو أن كل مبرمج كبّر أو صغ{ لديه فرصة جيدة ليغير شكل العالم.
السلام عليكم ورحمة الله، تحية اليك من المغرب :) أريد أن أسألك عن الخوارزميات.
ما أهمية الخوارزميات في حياة المبرمج؟ فهي تعتمد على أمور نظرية مما يشعرني بالملل لما أدرسها. كمبتديء، ما الذي يجب علي معرفته فيها؟
وعليكم السلام ورحمة الله و بركاته،
حيا الله أهلي و اخواني من أرض المغرب المبارك ..
سؤالك جميل جدا ..
الخوارزميات Algorithms و هياكل البيانات Data ٍStructures و أنماط التصميم Design Patterns و غيرها من المجالات تجعل المبرمج يفكر بطريقة أفضل و أعمق عندما يقوم بحل المشكلات البرمجية. مهم أن تضع في بالك أثناء تعلمك هذي الأشياء أنك قد لاتحتاجها بذاتها أثناء برمجتك لكن تطور في "دماغك" مهارات خاصة لحل المشكلات .. على سبيل المثال لا أعتقد أنه ستمر عليك حالة تحتاج فيها لكتابة خوارزمية بحث في مصفوفة بنفسك لأنك في معظم الحالات ستجدها جاهزة في لغة البرمجة التي تستخدمها، لكن معرفتك بخوارزمية بحث مثل خوارزمية البحث الثناي Binary Search ستجعلك تفهم بشكل أعمق لماذا البحث الثنائي يعطي نتائج أفضل و أعظم بكثير من البحث الخطي Linear Search ...
هذا النوع من الفهم يجعلك تنظر للكود بعيون مختلفة ..
جميل، حسب ما فهمت من كلامك أنك تؤكد ما جاء في سؤالي بأن الخوارزميات أمور نظرية، لكنها تساعد في تطوير نظرتي للكود مع المدة.
أنا أدرس السي والسي++ والجافا في الجامعة، ودرست مفاهيم البرمجة الأساسية (المتغيرات، LOOPS، IF .. ELSE، FUNCTIONS...) من أين تنصحني أن أكمل الخوارزميات التي بدورها تعتمد على هذه المفاهيم؟ يعني ما هي الأشياء التي تنصحني أن أتعملها في الخوارزميات بعد أن فهمت الأساسيات؟
السلام عليك أخي مازن...أنت قلت في التعليق
بأن الإستثمار في تعلم برمجة الويب أفضل علي المدى الطويل لماذا في رأيك؟؟
مرحباً دكتورنا الفاضل
هل ما زلت معيداً في جامعة أم القرى؟
سأكون أحد تلامذتك في المستقبل القريب
أنا طالب في جامعة أم القرى في السنة التحضيرية مسار هندسة و حاسب آلي , و قد وضعت هدفي منذ زمن .. سأتخصص بمجال علوم الحاسب في العام القادم إن شاء الله , سأتوجه بعد ذلك إلى مجال الذكاء الصناعي إن شاء الله .
مررت برحلة طويلة بين لغات البرمجة، و مؤمن ان من يراهن على لغة برمجة غير C فإحتمالية خسارته للرهان كبيرة جداً :)
ما مدى أهمية لغة C بمجال الذكاء الصناعي بشكل عام , و مجال معالجة اللغات الطبيعية على وجه الخصوص ؟
لقد بدأت حديثاً بتعلم لغة C منذ الأسبوع المنصرم , و هي أول لغة برمجة أبدأ بتعلمها (لدي بعض المعلومات عن لغة java بنسبة 0.01%) , إذا كان هدفي الذكاء الصناعي , هل تنصحني بالاستمرار بلغة C ثم C++ , أم أنه من الأفضل لي أن أتوجه للغات أخرى؟
وعليكم السلام ورحمة الله وبركاته.
ما هي أول لغة تعلمتها؟ وما هي اللغة التي بعدها؟ (أخبرنا بتدرجك في اللغات)
أول لغة كانت Basic على جهاز صخر MSX، بعدها تعلمت على لغة Visual Basic، أما اللغات التي بعد ذلك فلا أتذكر ترتيبها، أعتقد أني تعلمت Perl قبل C، ثم عملت بشكل بسيط على Assembly، بعدها عملت على Java و PHP، و أظن أني بدأت البرمجة بلغة Python قبل فترة طويلة لكن لم أستخدمها بشكل فعلي إلا في سنة 2008، و إن لم تخني الذاكرة فلغة Ruby أيضاً كانت في نفس السنة.
السنة الماضية بدات في تعلم Scala و Golang :)
حالياً لدي مشروع "أجبتك
" اما المشروعات التي كنت أقصدها في حديثي اعلاه فالأول هو مشروع ضخم بإسم "نظام الفجر" وكان عبارة عن CMS for Enterprise و الثاني كان نظام يسمى Maaref2net متعلق بالمدارس. هذه المشروعات قديمة و مر عليها أكثر من 10 سنوات.
تطوير برمجيات يحتاج جلوس لوقت طويل أمام شاشة الحاسوب فهل أثر هذا الأمر على صحتك وبمذا تنصح لتفادي المشاكل الصحية المترتبة عن الإستعمال الطويل للحاسوب كأمراض العيون والضهر . شكرا.
صدقت، بدأت احس بأعراض الشيخوخه و آلام الظهر :) كنت قد كتبت قبل ستة سنوات تقريبا موضوع في مدونتي عن ما أسميته "كرسي المبرمجين
" لكن حقيقة حتى أفضل كرسي في العالم لن يفيدك إذا كنت تجلس بطريقة غير صحيحة، أو إذا كنت لا تتحرك من وقت للثاني. لذلك قبل سنة تقريبا بدأت بتجربة العمل (البرمجة) وأنا واقف باستخدام مايسمى Standing Desk، حتى الآن النتائج مرضية و أفضل من السابق بكثير.
هل يمكن استخدام بايثون ضمن برمجية php
اي الدمج ما بين اللغتين في تطبيق ؟
اذا نعم هل من روابط لأمثلة ؟
بما انك تحب "بايثون" كما قرأت فى الردود :)
انا امامى اسبوع واحد لتعلم هذه اللغة وبعد هذا الاسبوع عندى امتحان شامل
وحاليًا ليس عندى معرفة بها .. ما رايك ؟ كيف ابدأ ؟ هل لديك مصادر تنصحنى بها ؟
تحياتى :)
شكرا لك على الموضوع مازن .. وشكرا " Arabia " على الاستضافة ..
لي مجموعة من الأسئلة محيراني .. أبدأ بأولها ..
- هل هناك مدارس .. يعني مدارس متخصصة في تعليمك شيئا يؤهلك إلى أن تصبح مبرمجا محترفا يستطيع بناء موقع خاص من الصفر بدون الاعتماد على أكواد موجودة سابقا ؟ أم هذا يعتمد على اجتهاد الفرد ولا دخل للمدرسة فيه ؟
أشكرك،
توجد كثير كتب و مواقع تعليمي (فيديو) تعلمك كيف تبني موقع كامل بنفسك، لكن حتى تصل إلى مرحلة جيدة من التعلم تحتاج إلى ممارسة و تدرب لفترة طويلة .. لذلك أنا مع الشق الثاني من سؤالك: الإجتهاد الفردي بعد توفيق الله عز و جل هو سر التفوق في هذا المجال.
ما رأيك بمنتجات ميكروسوفت؟ كلغة فيجوال بيسك وسي شارب؟
واي لغة تنصح بها اذا كان الشخص يريد تعلم لغة واحدة فقط؟
هل ترى أن Python لغه منافسه حقيقيه للغة php في تطوير الويب ؟ أم أن php هي الأفضل بلا منازع في هذا المجال ؟ طبعاً لا ننسى محبوبتك Ruby ;)
أهلاً عيسى :)
على المدى القصير لا أظن أن أي من اللغات جاهز لإزاحة PHP من الصورة.
على المدى البعيد لا أعتقد أيضاً أن أي من اللغات المذكور يمكن أن يحل محل PHP بشكل كامل .. لكن قد تأتي لغة مستوحاة من Python أو Ruby و فيها ميزات PHP فتأكل الجو :)
لا أرى أي بوادر أمل في أن تتزحزح PHP من مكانها في الوقت القريب.
حسب تجربتك وخبرتك الطويلة ما شاء الله، هل اذا تعذر علي فهم شيء في بداية مسيرتي أو استخدمه دون أن أفهمه يمكن أن أفهمه مع المدة وتراكم الخبرات؟
اخ مازن انا من احد المتابعين لك من ايام سوالف من سنين طويلة ذادك الله علمآ ونفعآ
اتمنى لو تساعدى انت والاخوة لحل هذة المشكلة وهى تنصيب Xcode على ويندوز
مرحبا استاذ مازن
انا بدأت تعلمي البرمجة في عمر 13-14 سنة وعمري الان 20 سنة
اجيد كتابة الدوال الكلاسات الخوارزميات وتقريبا 90% من ما افكر به استطيع تحويله الى برمجة واي موقع اراه استطيع ان ابرمج واحد بنفس فكرته وعمله حتى تقسيم قواعد البيانات وتخطيطها لم اتعلمها سوى من تجاربي
المشكلة اني معظم ما اعلمه اكتسبته من نتيجة تجاربي وخبرتي ببرمجة المشاريع والمواقع ربطت بين اللغات والمنصات من خلال TCP/IP & HTTP
هل تعتقد اني احتاج ان ادرس هندسة البرمجيات علما اني سوف ادرسها لوحدي وليس ظمن نطاق الجامعه لاني تركت الدراسة لاتفرغ لمشروعي
فهل ترى ان ادرس هندسة البرمجيات او اي اختصاص اخر تنصحني به في مجال الكمبيوتر
او ابقى بدراسة اللغات والعمل وانسى فكرة دراسة تخصص جامعي
السلام عليكم ,,,, كيف حال اخ مازن ...
انا مبتدى فى برمجة ,,, عندى سؤال هل قبل دخول فى عالم البرمجة تحتاح الى معرفة قوية و جيد فى علم الرياضات و شكرا لك على معلومات القيمة و رائعة .. افاتنا فى اشياء كلنا نجاهله جزاك الله الف خير
السلام عليكم ورحمة الله
بارك الله فيك
معلومات قيمة جداً جداً جداً
لدي سؤال يحيرني
لماذا كل لغات البرمجة هذه ؟ و من المنتجين لهذه اللغات ؟ ولماذا لا يتم عمل لغة شاملة تسد احتياجات كل المبرمجين ؟
ودائماً أيضاً أفكر كيف أخاطب الآلة ؟ أنا أعرف أن البعض سيقول أن خطاب الآلة بالنظام الثنائي وهذه صعب ، ولكن من المؤكد أن من يقومون بتصنيع هذه اللغات هم يعرفون جيداً كيفية التعامل مع الآلة ؟
السلام عليكم أخي
كانت بدايتي مع البرمجة منذ 4 سنوات مع لغة الباسكال و منها تعلمت المنطق البرمجي ثم انتلقت الى الدلفي ثم إلى الفيجوال بيزك و لكن أحسست أن تلك اللغات غير مفيدة إن قررت أن أعتمد على البرمجة كمصدر دخل لي لذا قررت الإنتقال إلى الphp و xhtml و قريبا الجافا سكربت فهل كنت محقا بهذا القرار ؟
و سؤالي الثاني هل من الممكن أن أصبح مبرمج محترف في الphp و أنا لا أعرف شيء عن الخورزميات و هل في حال قررت أن أتعلم الخورزميات سوف أواجه صعوبة بها لأن مجال دراستي كان بعيدا عن الرباضيات
و شكرا
طيب بسم الله كده !
أنا إتعملت تصميم المواقع من الـHTML وصولاً للجافا سكريبت والـJQuery،
عندي ليك أسئلة.. أنا كانت بتواجهني دايماً مشكلة فى التصميم بشكل عام وهي أني بحث كل شوية إن التصميم والبرمجة دي مش مجالي مع العلم إني حببها جداً، سؤالي بقي... هل ده شعور مرّ عليك ؟! ولا ده معناه إن أوقف وإنه فعلاً مش مجالى ؟!
الحاجة التانية إني درست PHP وجافاسركيبت حوالى مرتين ومطبقتش نهائي ! وخفت جداً أطبق.. وفى نفس الوقت ! بحث كل مرة إن مش فاهم حاجات ! ولما بفهم حاجة حاجة تانية تضيع مني !
معلش طولت وأرجو الإفادة.. وإعطاء النصيحة
السلام عليكم اخي مازن
انا طالب هندسة كمبيوتر
جديد يعني ههه
لي عشق للبرمجة بشكل عام
المهم
هل تنصحني ان اكمل دراستي بتخصص البرمجة ام انظر لتخصصات اخرى
الصراحة خايف من مستقبلها :اولا لصعوبتها وثانيا لانها تاخذ قسطا كبيرا من الوقت
أحتاج نصيحتك
هناك تخصصات حاسوب كثيرة ولكن كل من قال لي انها قد تفيدني اول عشر سنوات ولكن بعد ذلك سيكون هناك شئ اجدد وسأجلس جانبا
السلام عليكم
انا طالبة نظم حاسب مستوى ثالث في جامعتي الى الان تخصص نظم وعلوم حاسب نفس المواد بإختلاف مادتين هم اخذو مادة تنظيم الحاسبات مع لغة اسمبلي احنا اخذنها بدون لغة الاسمبلي و المادة ثانية هي فيزياء التطبيقية اشوف اني جدا اميل للفهم و اواجه صعوبة في الحفظ جدا حبيت مادة المنطق والتنظيم خاصة الهاردوير للكمبيوتر جبت درجات كويسة في برمجة بلغة C++ واحب البرمجة حابه استشيرك احول للعلوم او لا ؟
ممكن تعطيني نبذة عن مادة هندسة البرمجيات و مادة تصميم وتحليل الخوارزميات؟
اخر سؤال كيف انظم وقتي بالدراسة ؟(تجربتك بتظيم وقتك)
شكرا مقدما
السلام عليكم أخ مازن
أبغى أسألك سؤال
1-بالنسبة للشخص الي بيدخل في عالم البرمجة ما هي الأساسيات أو الأشياء الي يجب أن يتعلمها قبل البدئ في عالم البرمجة ؟
وهل يشترط أن يتعلم الفرمتة والأشياء المشابهة لها ؟
2-ما هي لغات البرمجة التي ترى أنها مناسبة للتعلم بالنسبة للشخص المبتدئ حتى يستوعب البرمجة قبل التعمق فيها ؟ بغض النظر عن ميول الشخص.
السلام عليكم ورحمة الله وبركاته
تشرفت بمعرفتك يا دكتور مازن
طلب الاستشارة
انا مبرمج VB6 منذ زمن طويل وانشأت بها برامج فى مجالات عدة لشركات صغيره او مكاتب او مدارس ومستخدم معه CR8 للتقارير و MDB لقواعد البيانات وكان هذا يكفي فى الحدود النشاطات الصغيرة
اعلم ان هذه التركيبة الان مثل جهازك الصخر الذى اخبرت به .. والذى عاصرته انا ايضا ... فانا ايضا عملت بلغة COBOL و Fox pro وكل هذا يعد من الأثار الان
وقد حولت البرامج التى اعددتها من Foxpro الى Vb6 فى 2002 ولم ابدا بشكل جدي فى التحويل او دراسة لغات جديده لعدة اسباب منها كثره ما هو موجود الان واختلاف الاراء على الافضل
والان انهيت اعداد برنامج ادارة مشاريع وارشيف لشركة مقاولات صغيره وأرغب فى تطويره لتقديمه لشركة إستشارات هندسية - لعل الله يجعل فيه خير ويفتح به أبواب رزق لى ولعباده
ولكن بامكانيات VB6 اعتقد انه لا يمكن تقديم البرنامج على هذا الشكل خاصة ان الشركة لها فروع داخل المملكة يجب ان يتم الربط بينها
لذا اطلب استشارتك لابدا فى تعلم احد اللغات الحديثه وذلك لتطوير البرامج التى قمت باعدادها من قبل للجهات السابق وكذلك افضل انواع قواعد البيانات
ولك خالص التحية
وللسادة المشاركين بالموقع
السلام عليكم لو سمحت ابغاك تساعدني ببرنامج الفبجوال وهذا واجب طالبه استاذي بالمدرسه ابغا اسوي مصفوفه واللي ابغاه انو ادخل اسماء طلاب في المصفوفه لكن مع العلم انو الطلاب اللي ادخلهم ما يكونو محددين يعني اول مافتح البرنامج يطلبني عدد الطلاب واكتب العدد اللي ابغاه بعدين ادخل الطلاب واحد واحد اتمنى انك فهمت اللي اقصده وافيدني الله يسعدك
السلام عليكم ورحمة الله اخوتي الكرام انا مبتدئ في بحر البرمجة ولغاته . لدي المام بالكمبيوتر وبالفوتوشوب و مهنتي الأساسية هي في قنوات التلفزيون كالبث المباشر و التصوير والمونتاج .ولكن اريد دخول عالم البرمجة واخترت طريقي في الأندرويد. تطبيقات. و العاب ان شاء الله .ولكن سؤالي هو اي لغة برمجة يجب ان اتعلم لكي اصمم تطبيقات اندرويد و بنفس الوقت العاب 3D. يعني لغة واحدة استطيع استعمالها في يونيتي للألعاب و فيسوال استوديو او اندرويد استوديو بالنسبة للتطبيقات. ولكم جزيل الشكر
ازاى اقدر اعوض مثلا كل اللى فاتنى من وانا عندى 11 سنه زى حضرتك
لحد دلوقتى 20 سنه
مزاكره :] عايز نصايح
لأن انا عندى الاراده الحمد لله
السلام عليكم و رحمة الله
أخي العزيز مازن , لدي استفسار برمجي , هل من الممكن طرحه هنا
و لك جزيل الشكر و التقدير
السلام عليكم اخوي مازن
اخوي لدي فكره لموقع ديناميكي مثل هذا الموقع المشهور " الفوتوشوب اون لاين "
ولكن ليس لدي اي فكره عن البرمجه ولا لغات البرمجة الواجب استخدامها في صناعه مواقع مثل هذه
اتمني ان تفديني بخبرتك وترشدني للغات البرمجه الواجب استخدامها في مثل هذه المواقع الغير تقليدية بالمرة
وعليكم السلام و رحمة الله و بركاته،
أي لغة من لغات البرمجة المشهورة ستكون مناسبة لك، ستحتاج لتعلم طريقة معالجة الصور Image Processing لتنفيذ مشروعك.
إذا كنت مبتدئ في مجال البرمجة فأنصحك ان تبدأ بتعلم الأساسيات أولاً و القيام بمشاريع بسيطة قبل القفز إلى مشروع من هذا النوع.
اشكرك اخوي + هل لغه بايثون تفيدني في صناعه الويب ام انها فقط للتطبيقات لانني اريد صناعه موقع وليس تطبيق
عذرا أخي اسمحلى بالمداخلة
Python لغة متعددة الأغراض لكل شئ تقريبا حتى برمجة المتحكمات الدقيقة (مؤخرًا) تستطيع ان تفعل بها ما تشاء ... بما في ذلك تطوير الويب
الكلام أدناه للاستاذ مازن في هذا الرد
أما Python .. فلاتكفي الكلمات للتعبير عن إمتناني العميق لهذي اللغة :) .. كل شيء فيها رائع و جميل .. أستخدمها أحياناً في تطوير المواقع (وغالباً أعتمد على إطار العمل Flask) ، و تقريباً هي اللغة الأساسية التي أستخدمها في أبحاثي الأكاديمية. أظن أن السبب الرئيسي وراء هذا التعلق بلغة Python هو كونها لغة Strongly & Dynamically Typed (المعذرة لا أعرف تعريب لهذي المصطلحات) و تعمل بشكل سلس على أكثر من منصة بدون مشاكل، بالإضافة إلي المكتبات البرمجية الممتازة التي يصعب أن تجد لها بدائل خارج عالم Python :).