126

أنا مازن مليباري مبرمج منذ السابعة من عمري إسألني ماتشاء

السلام عليكم، أنا مازن مليباري:

  • بدأت البرمجة في سن مبكرة جدا و الآن -بحمد الله- طالب دكتوراة في مجال الذكاء الإصطناعي و معيد بجامعة أم القرى بمكة المكرمة.

  • عايشت مجال تطوير الويب العربي منذ بداياته في منتصف التسعينات ... وكنت ممن يبرمجون المواقع باستخدام Perl (أعاذنا الله و إياكم :))

  • مررت برحلة طويلة بين لغات البرمجة، و مؤمن ان من يراهن على لغة برمجة غير C فإحتمالية خسارته للرهان كبيرة جداً :)

  • عملت كمبرمج حر ثم أسست مؤسسة برمجية صغيرة و كانت لي عدد من المشاريع الريادية التي حققت نجاحات مالية أنا سعيد و فخور بها.

  • لدي قناعة أن المبرمج الذي لم يطّلع على مجال "علوم الحاسب الآلي" فغالباً لم يجد من حلاوة البرمجة إلا نصفها.

  • مدونتي:

http://mazen.ws
  • تويتر:
http://twitter.com/mkhDev

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


14

السلام عليكم ..

حبيبنا ممكن تتكلم قليلا عن منصة عملك برامج التحرير التي تفضلها برامجك التي تستخدمها لزيادة الانتاج ؟

طريقتك في تحليل البرنامج قبل البدء في كتابة الاكواد ؟

مع الخبرة الطويله والاكادمية وانتاجك اعمال متعددة ،، خطوات تنصح بها قبل وعند البدء في تعلم لغة برمجية للويب ؟

سؤال اخير .. هل تعتقد بأن الذكاء الصناعي طريق مسدود ( اقصد الوصول الى تجربه مماثله للعقل البشري ) لاعتماد بعض الاحكام على العاطفه والمشاعر واعتقد مستحيل خلق تجربة تقنيا مماثل لها ؟

19

خطوات تنصح بها قبل وعند البدء في تعلم لغة برمجية للويب ؟

  • قم بعمل مشروع حقيقي متكامل باللغة التي تقوم بتعلمها، بناء CMS قد يكون فكرة جيدة.

  • تأكد من أنك تتبنى عقلية المبرمجين باللغة التي تتعلمها، فليس من الجيد على سبيل المثال أن تبرمج بلغة Python لكنك تفكر كما لو كنت مبرمج بلغة PHP.

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

17

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

ممكن تتكلم قليلا عن منصة عملك برامج التحرير التي تفضلها برامجك التي تستخدمها لزيادة الانتاج ؟

  • كنت أستخدم Vim ثم تحولت إلى Emacs و الآن أعتقد أن Sublime text هو أحد المحررات الجيدة الموجودة (أتمنى بصدق أن يتحول إلى مشروع تجاري مفتوح المصدر!).

  • أستخدم IntelliJ IDEA منذ سنة و نصف تقريباً و أنصح به بقوة.

  • على لينكس أستخدم GNU Screen or Tmux لتقسيم الشاشات.

  • أستخدم مؤقت Countdown ليساعدني على التركيز و أستخدم تقنية Pomodoro لإدارة الوقت.

  • عند العمل على مشاريع متعلقة بالأبحاث العلمية أستخدم iPython بشكل كبير و خصوصاً ميزة Notebook.

انا اعرفك واتابعك من زمن طويل ومنذو يومين واثناء البث المباشر لعملية البرمجة التي قمت بها استنتجت انك هجرت vim واصبحت من اصحاب sublime text رغم حبك السابق والشديد لـ vim :)

ولكن اخي مازن هل انت من اصحاب استخدام كمبيوترين للبرمجة او كمبيوتر واحد يكفي للغرض؟؟؟

14

أشكرك و تشرفني متابعتك، الذي رأيته ذلك اليوم كان IntelliJ IDEA لكني كنت أستخدم لوحة الوان غامقة و أخفيت أشرطة الأدوات فظهر كأنه Sublime :)

بخصوص سؤالك عن كمبيوترين .. فيعتمكد على طبيعة المشروع الذي تعمل عليه .. لكن بشكل عام المبرمج الذي لا يستخدم Virtual Machines يحتاج يراجع نفسه :)

17

هل تعتقد بأن الذكاء الصناعي طريق مسدود ( اقصد الوصول الى تجربه مماثله للعقل البشري ) لاعتماد بعض الاحكام على العاطفه والمشاعر واعتقد مستحيل خلق تجربة تقنيا مماثل لها ؟

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

14

طريقتك في تحليل البرنامج قبل البدء في كتابة الاكواد ؟

يعتمد على طبيعة البرنامج و طبيعة العميل، بعض المشاريع تحتاج مرونة فيناسبها العمل بأسلوب Agile و بعضها (خصوصا عند التعامل مع جهات كبيرة) قد يكون الـ Waterfall هو الأفضل رغم كل الإنتقادات عليه.

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