الاثنين، 30 نوفمبر 2009

كتابة السيرة الذاتية و المقابلات للمبرمجين

مؤخرا كنا نحتاج إلى مجموعة من المبرمجين المبتدئين (بدون خبرة) في شركتنا فكنت أراجع مجموعة من السير الذاتية للمتقدمين كي أقابلهم فكان لي مجموعة من الملاحظات على طريقة كتابتها و على المقابلات أحببت أن أشارككم بها.

  • السيرة الذاتية تخبرني من انت لذا يجب أن تكون مرتبة و أنيقة وهناك الكثير من الامثلة لقوالب جيدة و بالنسبة لي أرى أن معظم القوالب في مايكروسوفت أوفيس جميلة.
  • لا تضع شيئا لست متمكنا منه أو على الأقل ضع مستو معرفتك به,فلقد فوجئت بالكثيرين يضع كل لغة او تقنية سمع بها  ومثال على ذلك تراه يضع C, C++ , C# , JAVA, Java Script , VB.NET , عندما أرى هذا أسأل عن معلومات بديهية موجودة بأول جزء في أي كتاب يشرح تلك التقنية فلا يعرف, و مرد ذلك بالحقيقة بعود إلى أن الطالب يمر على هذا كله في الجامعة و لكن لنقص الكفائة الحقيقية في المدرسين أو في المتعلمين لا يستطيعون تغطتية إحداها كليا و ما يخرج به الطالب هو فتات من العلم لا يقيت البدن و لا ينفع العقل , و الحل أكثر من واضح كما ذكرت في تدوينة سابقة أن أفضل طريقة لتعلم تقنية جديدة هو الكتاب. مثال :

- C# Very good

- JavaScript Beginner

- C++  good 

أسد لنفسك معروفا و أترك الكسل إلتقط كتابا يتحدث في تخصصك و أقرأه كاملا أنت مدين لنفسك بذلك

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

 

الجمعة، 30 أكتوبر 2009

الرياضيات و مشاكل الكون

بالأمس ناولني أبي إحدى أعداد مجلة العربي الكويتية في عام 1987 لأقرا مقالا عن الحاسوب و تأثيرة على الإقتصاد – لا أكذبكم أني لم أتوقع أي فائدة من المقال – لكن كانت مفاجئتي كبيرة.

كان المقال يتحدث عن عام يدعى جاي فورستير كان يدرس في MIT بعد الحرب العالمية و خرج بنظرية تدعى بالأنظمة الديناميكية Dynamics Systems و هو علم مبني على الكامل على التفاضل والتكامل في الرياضيات إستطاع من خلال نظريتة تحليل السلوك الإجتماعي و الإقتصادي لمجتمع معين ( شي عجيب جدا ) حتى توصل إلى محاكاة الإقتصاد والنمو الأمريكي .

تفاجئ بالنتائج فقد كانت تقول أنه خلال كل مئة عام من عمر الأمة الأمريكية يحدث أنهيار قوي في الإقتصاد , بعد بحثة هو و مجموعته عن التفسير في كتب علم الإقتصاد و الإجتماع و جدوا أنه يحدث بسبب النمو المطرد المتزايد و دفع كميات ضخمة من الأموال في السوق اكثر مما يستطيع السوق إحتمالة فيحدث الكساد الكبير.

لطالما كان الرياضيات تأسرني غير أنني لم أستطع يوما أن أفهمها بشكل جيد بمجموعة من الأرقام والمعادلات إستطاع فورستر توقع ما يمكن أن يحدث في العالم فمتى يمكنن تقديم شي مماثل للحضارة الإنسانية؟

الخميس، 8 أكتوبر 2009

وصلات 8 تشرين الأول

  • الحلقة السادسة من دوت نت عربي أول بود كاست عربي يتحدث عن الدوت نت في هذه الحلقة يستمر عماد العشي بطرح موضوع ال ORM و لكن بعرض مكتبة جديدة من قبل مايكروسوفت لهذا الغرض تدعى بال Entity Framework و الذي يتكلم عنها هو مبرمج مصري قدير يدعى محمد موسى صاحب مدونة موسى المصري  يذكر أن محمد من النشيطين في مجتمع البرامج الحرة وله مشاركات في تطوير برنامجين مفتوحي المصدر على بدوت نت.
  • أصداء منع الطلبة السوريين من إستخدام الكمبيوتر شاهين في جامعة الملك عبدالله التقنية.
  • مراجعة كتاب Growing Software : من قبل صديقي العزيز عماد العشي ( عماد شكلي رح أستعير الكتاب لأنوا مراجعتك عجبتني :) )

السبت، 26 سبتمبر 2009

عرض الكود في مدونات بلوغرز

كنت ابحث عن طريقة لعرض الشيفرة المصدرية source code بالمدونة و كنت أستخد سابقا إحدا الإضافات التي تدعم ذلك على محرري العزيز Window Live Writer لكنها لم تعد تعمل الأن على النسخة الجديدة :(.

لذا بحثت من جديد و لفت نظري إضافة تستخدمها كثير من المدونات التقنية إسمها SyntaxHighlighter و الجميل فيها أنها إضافة جافاسكريبت أي تستطيع تستخدنها في أي مكان ومثال على ذلك.

لذا قررت أن أستخدمها عند و أنا كما تعلمون أستضيف مدونتي على بلوغرز و هنا سأشرح كيفية إضافتها إلى بلوغر .

  • فور دخولك لبلوغر إختر التخطيط –> تحرير HTML .
  • خذ نسخة إحتياطية من القالب عن طريق حفظ قالب.
  • ثم إبحث عن نهاية وسم Tag </head>d قبل نهايته ضع ما يلي .

<link href='http://alexgorbatchev.com/pub/sh/current/styles/shCore.css' rel='stylesheet' type='text/css'/>
<link href='http://alexgorbatchev.com/pub/sh/current/styles/shThemeDefault.css' rel='stylesheet' type='text/css'/>
<script src='http://alexgorbatchev.com/pub/sh/current/scripts/shCore.js' type='text/javascript'/>
<!-- add brushes here -->
<script type='text/javascript'>
SyntaxHighlighter.config.bloggerMode = true;
SyntaxHighlighter.all();
</script>



  • الأن بعد إضافة هذا الكود في رأس القالب نريد أن نضيف ما تسميها هذ الإضافة ب فرشاة كي تلون الكود حسب اللغة المستخدمة و ضع هذه الكود مكان التعليق



<!-- add brushes here -->



  • بالنسبة لي وضعت الفراشي التالية و هي ل HTML , XML , C#, Python , javascript و بإمكانك الإختيار من مجموعة واسعة من الفراشي هنا .



<script src='http://alexgorbatchev.com/pub/sh/current/scripts/shBrushJScript.js' type='text/javascript'/>
<script src='http://alexgorbatchev.com/pub/sh/current/scripts/shBrushCSharp.js' type='text/javascript'/>
<script src='http://alexgorbatchev.com/pub/sh/current/scripts/shBrushPython.js' type='text/javascript'/>
<script src='http://alexgorbatchev.com/pub/sh/current/scripts/shBrushSql.js' type='text/javascript'/>
<script src='http://alexgorbatchev.com/pub/sh/current/scripts/shBrushXml.js' type='text/javascript'/>
<script src='http://alexgorbatchev.com/pub/sh/current/scripts/shBrushCss.js' type='text/javascript'/>



  • بكل بساطة تستطيع أن تضيف الكود الذي تريده لكن إذا أردت أن تضيف كود HTML تأكد أن يكون مشفرا يعني بدل > تضع &lt; و ما إلى ذلك من علامات HTML و هناك خدمة بسيطة تفعل ذلك على هذا الموقع فتضع الكود الذي تريد عرضة هنا و تحولة.


لتكون نتيجة عرض ما الدالة التالية المكتوبة بجافا سكريبت


<pre class="brush:js">

function Sum(var1, var2)
{
var sum = var1 + var2;

//Return value;

return sum;
};
</pre>

كما يلي



function Sum(var1, var2)
{
var sum = var1 + var2;
//Return value;
return sum;
};


و أريد أن أذكر أن لن تستطيع أن ترى النتيجة النهائية إلا بعد نشر التدوينة .

الأربعاء، 23 سبتمبر 2009

هل أنت مبتدئ بالبرمجة ؟

أطلقت مايكروسوفت على بوابة المطورين الخاطبة بها   MSDN قسما للمبتدئين بالبرمجة MSDN Beginnerimage_3

تحتوي البوابة على أربعة أقسام مختلفة.

  • قسم الويب : لتعلم البرمجة للويب بواسطة ASP.NET .
  • قسم الويندوز: لتعليم برمجة الادوات والألعاب لويندوز.
  • قسم الطموح : لتعلم المهارات اللازمة للهواة حتى يصبحون محترفين في البرمجة أو لمن يريدون الإنتقال من تقنية ASP الكلاسيكية أو بي أتش بي PHP إلى دوت نت  (لا أعرف صراحة لماذا ما زال البعض يستخدم ASP Classic).
  • قسم الأطفال: لتعليم الأطفال في المراحل الأخيرة من المدرسة البرمجة بطريقة مسلية وجذابة( بالمناسبة لا أعتقد أن لغات مثل  C# أو JAVA أو فيجوال بيسبيك دوت نت أو حتى C++ لغات جيدة لتعليم البرمجة فهي تربك المتعلمين من كمية الكود المراد كتابتة أعتقد أن لغة مثل بايثون هي اللغة الأمثل لمثل هذا الامر ).

السبت، 19 سبتمبر 2009

مايكروسوفت والمصادر المفتوحة

في الأسبوعين الماضين قامت مايكروسوفت بإنشاء منظمة جديدة للماصادر المفتوحة Open Source بإسم CodePlex Foundation و هي شئ مختلف تماما عن موقع Codeplex.com لإستضافة المشاريع المفتوحة المصدر التابع لها أيضا.

وقد يستغرب الكثريين هذا الأمر لكن المتابعيين للأمور عن كثب يعرفون أن مايكروسوفت خطت عدة خطوات بإتجاه سوق المصادر المفتوحة فهي أنشأت رخصة مفتوحة خاصة بها كرخصة MIT و GPL تحت أسم MS-PL و التي تنص على حصولك على الكود الخاص بالبرنامج ولكن إذا عدلت علية فهي غير مسئولة عن أي شئ في هذا البرنامج. فأصدرت تحت هذه الرخصة عدة برامج منها

  • WTL : (لا أعرف لماذا ما زال مستضاف في Source Forge ) الذي أستخدم في متصفح غوغل كروم .
  • AJAX Control Toolkit : مكتبة الأجاكس الخاصة بمايكروسوفت.
  • ASP.NET MVC : مكتبة ASP.NET الجديدة لكتابة التطبيقات الويب على طريقة Model View Controller.

 

ولنعود لموضوعنا حددت مايكروسوفت هدف هذه المنظمة ب

Enabling the exchange of code and understanding among software companies and open source communities

 

تمكين التفاهم وتبادل الشيفرة المصدرية بين الشركات و ومجتمعات المصادر المفتوحة المختلفة.

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

كان حل ما يكروسوفت بالسابق هو أن تنشئ برنامجا يفعل ما يفعلة البرنامج مفتوح المصدر و الأمثلة كثيرة عندنا MS Test مقابل NUnit و هناك ASP.NET MVC مقابل Mono Rails و غيرهما,لكن مع هذه المنظمة ستساهم في زيادة ثقة الشركات التجارية بالبرامج مفتوحة المصدر لا بل ستتخطى ذلك إلى مشاركتها بالمشاريع مفتوحة المصدر سواء من خلال المصادر البشرية و حتى تصل إلى التمويل.

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

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

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

وما زالت الكثير من الأمور حول هذه المنظمة غير واضحة و ستتضح خلال الفترة القادمة.

وصلات

الثلاثاء، 1 سبتمبر 2009

روابط 1 أيلول