المشاركات الشائعة

الثلاثاء، 29 مايو 2012

ماهي البرمجة ؟

ماهي البرمجة ؟ 


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

من يقوم بالبرمجة ؟


من يقوم بالبرمجة ؟
الانسان هو الوحيد في الوقت الحاضر الذي يقوم بالبرمجة , فالحاسوب آلة غبية بدون انسان.

ماهي لغات البرمجة المشهورة ؟

ماهي لغات البرمجة المشهورة ؟

هناك العديد من اللغات التي لا يمكن حصرها هنا , مثل فيجوال بيسك , فيجوال بيسك دوت نت , سي# "سي شارب" , سي++ ولغة سي , جي# , دلفي , بايثون و هناك لغة برمجية عربية اسمها ج.

أي لغات البرمجة أسهل ؟

أي لغات البرمجة أسهل ؟

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

كيف أتعلم البرمجة ؟

كيف أتعلم البرمجة ؟


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

لقد قرات كتب كثيرة , لكني سئمت من بدايتها "Hello World" , لماذا جميع الكتب هكذا ؟

لقد قرات كتب كثيرة , لكني سئمت من بدايتها "Hello World" , لماذا جميع الكتب هكذا ؟

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

لقد قرات الكتب , وتخطيت المرحلة الاولى , مع ذلك لا أعتقد أني تعلمت شي , لماذا ؟

لقد قرات الكتب , وتخطيت المرحلة الاولى , مع ذلك لا أعتقد أني تعلمت شي , لماذا ؟

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

تعلمت , وصنعت أول برنامج لي , ما التالي ؟

تعلمت , وصنعت أول برنامج لي , ما التالي ؟

تعمق في ما تعلمته أكثر , فالبرمجة شعاع , لها بداية وليس لها نهاية , ابتكر أسئلة 
 Problems وحلها , اذا لم تستطع فلديك المنتديات والخبراء اطرح عليهم الأسئلة وسيساعدونك , وحاول دائما أنك تبتعد عن منهج نسخ ولصق لأنها لن تفيدك

..

ما الفرق بين فيجوال بيسك 6 ودوت نت؟

ما الفرق بين فيجوال بيسك 6 ودوت نت؟

لعل الكثير من مبرمجي vb6 سمعوا عن الدوت نت و من لم يسمع فإليك مميزات هذه التقنية الجديدة

يحتوي إطار العمل .net framework على العديد من class التي تساعد المبرمج
وهو نظام معقد و بحر ليس له بداية أو نهاية .
يمكن برمجة الدوت نت بالعديد من اللغات مثل vb.net و delphi .net و c sharp و iron pyton …
اللغات لها نفس القوة فمعايير clr تنطبق على جميع لغات الدوت نت
لأن الكل يترجم إلى msil
تمنحك الدوت نت إستقلالية عن منصات العمل فبإمكانك كتابة برامج ويندوز . برامج pocket pc .خدمات ويندوز . خدمات ويب . مواقع asp.net إلخ ...
كما أن الدوت نت يدعم العربية أحسن من vb6
هذا إضافة إلى الترجمة jit و دعم الدوت نت لمختلف التقنيات المعاصرة
هذا إضافة لعملية compile الأوتوماتيكية حيث يعرض لك vb.net رسائل الخطأ عند كتابة الكود
عموما عليك الإنتقال إلى الدوت نت لأن win32 على حافة الإنقراض .
ستقول لماذا ؟ win32 لن تدعمه معالجات 64bit الجديدة و أظن أن windows vista هو أخر نظام مايكروسوفت يدعم win32
أما عن توقف دعم مايكروسوفت ل vb6 فهذه مشكلة أخرى


هذه مقدمة في عجالة لإستعراض كيفية الإنتقال من vb6 إلى vb.net




- الإختلافات بين vb و vb.net

أول شيء يجب أن تعرفه هو أن vb.net لغة قوية جدا أي أنها تدعم كل مميزات oop و هي مبنية بالكامل عليها لذا إنسى تسلط مبرمجي c + + و سخريتهم من مبرمجي vb



سأعرض بعض أمثلة الأكواد المتبدلة بين vb6 و vb.net إلا أنك يجب أن لا تتوقع مني أن أعرض لك كل التغيرات لأن هذا يحتاج إلى كتاب كامل

أولا لاحظ الكود التالي:
كود PHP:
Dim str As String
str = "Ma chaine de caracteres"
str = UCase(str)
MsgBox str

الكود ب vb6 لاحظ شبيهه بالدوت نت
كود PHP:
Dim str As String
str = "Ma chaine de caracteres"
str = str.ToUpper()
MessageBox.Show(str

لاحظ أنك عندما تكتب str. تظهر لك قائمة intelissence مما يغنيك عن دراسة كافة طرق الفئة string

المثال الثاني .: الدوال
لاحظ الكود ب vb6
كود PHP:
Private Function x(str As String) As String
MaFonction = LCase(str)
End Sub

لقد ظهرت كلمة محجوزة جديدة هي return
ترجع هذه الكلمة القيم المحصل عليها بالدالة
لاحظ الكود
كود PHP:
Private Function x(ByVal str As String) As String
Return str.ToLower()
End Function

ملحوظة : برامترات الدالة في vb6 كانت ترسل بالمرجع أما في الدوت نت فهي ترسل بالقيمة
يمكنك إرسالها بالمرجع عبر الكلمة المحجوزة byref
لاحظ الإختلافات عن vb6 في الكود الأول
لاحظ الكود الأول ب vb.net
كود PHP:
Public Class Form1
Inherits System.Windows.Forms.Form
Public Sub New()
MyBase()
InitializeComponent()
End Sub

Protected Overloads Overrides Sub Dispose(ByVal disposing As Boolean)
If disposing Then
If Not (components Is Nothing) Then
components.Dispose()
End If
End If
MyBase.Dispose(disposing)
End Sub

Private components As System.ComponentModel.IContainer < System.Diagnostics.DebuggerStepThrough() > Private
Sub InitializeComponent()
Me.AutoScaleBaseSize = New System.Drawing.Size(5 , 13)
Me.ClientSize = New System.Drawing.Size(292 , 266)
Me.Name = "Form1"
Me.Text = "Form1"
End Sub

End Class

بينما في vb6
كود PHP:
Option Explicit

أكبر الإختلافات هي في oop

لاحظ الكود التالي ب vb6
كود PHP:
Public tata As String
Private m_toto As Integer

إستعمال الخصائص '
Friend Property Let toto(ByVal vData As Integer)
m_toto = vData
End Property

Friend Property Get toto() As Integer
toto = m_toto
End Property
إستعمال الدوال '
Public Function maFonction() As String
Dim str As String
...
maFonction = str
End Function

إستعمال الإجرائات '
Public Sub MaSub()
...
End Sub

لا حظ الكود بالدوت نت
كود PHP:
الوراثة '
Inherits classbase

Public tata As String
Private m_toto As Integer مشيد '
Public Sub New()
' ...
End Sub
مهدم '
Public Sub Finalize()
' ...
End Sub
إستعمال الخصائص '
Friend Property toto As Integer
Get
Return m_toto
End Get
Set(ByVal vData As Integer)
m_toto = vData
End Set
End Property

إستعمال الدوال '
Public Function maFonction() As String
Dim str As String
' ...
Return str
End Function

إستعمال الإجرائات '
Public Sub MaSub()
' ...
End Sub
End Class

كما تلا حظ vb.net لغة قوية في oop وليست ك vb6

يوجد إختلاف أخر عن vb6 حيث يبدأ ترقيم في الجداول بــ 0 سواء أردت أم كرهت حيث لم يعد بإمكانك تحديد البداية 

هل يمكن الحصول على أكواد وشفرات جاهزة ؟

هل يمكن الحصول على أكواد وشفرات جاهزة ؟

بالطبع يمكن , فهناك مواقع مختصة بالشفرات المصدرية Open sources تسمح لك بتحميل برامج جاهزة بكل سهولة , كما أنه هناك ما يسمى بمكتبة أكواد تسمح لك بحفظ أو الحصول على أكواد حفظت مسبقا من قبل مبرمجيها.