هلو شباب
راح احاول اكتب فد شي هنا يساعد الي يريد يصير مبرمج قوي.
اول شي اعتمد على الانكليزي و لا تعتمد على العربي لأنه اكثر مصادر المعلومات بكل انواعها (الهلب، الشرح، لغة المبرمجين) هية بالانكليزي. المبرمجين الهنود و الاوروبيين و اليابانيين و الروسيين و العالم كلة يستعملون انكليزي.
اكو اكثر من شغلة لازم المبرمج يكون واعي الهة:
اكو لغات برمجة و هيكل برمجة او نوع برمجة
اكو انظمة تشغيل
اكو تكنلوجيا
اكو بروسسر و هاردوير
لغات البرمجة مثل Basic, Java, C, Pascal, C#, Perl, Python
نوع البرمجة مثل: Object Oriented Programming الي هسة بكل شي تقريباً يستعمل و اكو البرمجة الي تبدي بداية و الهة نهاية مثل الي كانت تستخدم سابقاً.
Object Oriented يعني بختصار معناها تستعمل Classes و Events.
انظمة تشغيل هواية لكن اكثرشي مستعمل بالعالم كلة هو Windows و يجي بعدة Unix و Linux و غيرهم.
اكو برامج مو مهم بيهة شنو نظام التشغيل مثل برنامج يجمع رقمين لكن برامج اخرى لازم تعرف على شنو دتشتغل مثلا برنامج تسجيل من المايكروفون لازم راح يكون معتمد على نظام التشغيل.
التكنلوجيا هية مو لغة برمجة و لا كيفية برمجة التكنلوجيا فد هيكل مبني من قبل مؤسسة او شخص ثاني و انتة تجي تبرمج شي يستخدم هذا الهيكل في البرنامج. مثل:
ActiveX, COM, Windows Sockets, DirectX, .NET Framework, MFC, C++ Standard Libraries, ADO/DAO/ODBC, XML, TAPI (Telephony API), OpenGL
و غيرها
البروسسر و الهاردوير: الخبرة بهذا المجال راح تخليك تعرف شون نظام التشغيل ديشتغل في ادنى لفل
انطيك مثال:
مثلا شون الوندوز ديشتغل Multitasking يعني اكثر من برنامج في وقت واحد مو مثل الDOS هاي ترجع الى امكانية بالبروسسر الي من ال 80386 بدت بالنسبة لل Intel و الي هية Protected Mode و خاصية اخرى الي هية Memory Management الموجودة بالبروسسر هذا و الي بعدة الي هية تسمح بال Virtualization يعني تخلي البروسسر ينفذ او يقرا كود او داتا من ادرس خيالي Virtual لكن بعد ان تصير الة عملية Mapping الى ال Physical Memory و بهاي الحالة ممكن ان يستعمل جزء من الهارد PageFile كذاكرة لما الرام مالتك متكفي. و كل برنامج على الوندوز لما يشتغل هو عندة صافي 2 Giga Byte حتى لو الرام مالتك 128MB. و شون انتة مشغل 10 برامج و كل واحد الة 2 GB هاي كلهة بسبب امكانية البروسسر قبل نظام التشغيل.
الوندوز نفسة يمثل هذا ال Multitasking بأنه يشغل كل برنامج شوية و ثم ينتقل لتنفيذ برنامج ثاني و ماكو توقيت مضبوط للعملية. العملية تعتمد على الافضلية في التنفيذ و هو ليس Parallel processing.
عملية تشغيل اكثر من شي بالوندوز تسمى Pre-emptive multitasking يعني مو كل برنامج الة 1 millisecond كمثال . لا و انما حسب الافضلية.
و لذلك اكو برنامج بالوندوز شغلتة ان يفتر على البرامج و ينفذهة واحد واحد و هذا البرنامج ديشتغل وحدة و يخليك تحس انه النظام ديشغل اكثر من برنامج في وقت واحد.
يعني هسة انتة تريد تصير مبرمج و تسوي كراك مثلا لأنه هذا الي ببال معظم العراقيين ياهو الجان اجة و كال اني هاكر و هو مستخدم برنامج يبوك الباسورد لو برنامج اختراق لو برنامج يوكف موقع البرامج هاي موجودة و اي واحد يكدر يسويلهة داونلود و يستعملهة و فعلا ينجح بأن يوكف موقع او يحصل باسورد او يعرف صاحبتة شدتكتب على الكيبورد لكن انتة اذا حصلت الباسورد انتة مو هاكر و لا حتى جزء من هاكر. اي شخص انطيه برنامج و طريقة الاستعمال و راح يكدر يخترق اي شخص او يوكف موقع.
اذا انتة هاكر انتة لازم تعرف ***تسوي هاي البرامج*** من الصفر حتى كود متستعمل من اي شخص و لا تجيب اي شي من الانترنت.
بالنسبة للكراك فمعناها مثلا تسوي كراك الى لعبة او برنامج و هاي لازم تسوي برنامج الهة.
اريد اوصل الفكرة المهمة التالية
انه انتة تريد تسوي كراك مثلا و تحتاج تشتغل بالاسمبلي لكن النقطة مو هية لغة الاسمبلي
لغة الاسمبلي
mov, add, sub, mul, int, jmp, jz, jc, jb, jnz, jnb, mov [928393h],eax الخ
لكن و بعدين انتة تعرف كل هاي الاوامر لكن هذا ميفيدك حتى تسوي كراك
لذلك اني كلت (في اعلاه) انه لازم تعرف شنو نظام التشغيل لكن محجيت عنة. نظام التشغيل هو انه تعرف هاي اللعبة شدسوي حتى متخليك تلعبهة و لذلك تريد تسويلهة كراك. اللعبة تعتمد على نظام التشغيل يعني لازم انتة تعرف بالاضافة الى انه البروسسر شون يشتغل ان تعرف هذا الوندوز الي دتشتغل عليه اللعبة شون ديشتغل و شون مبني و بهاي الحالة لما راح تكون فاهم نظام التشغيل شون مبني (والي هو معقد كلش) راح يكون التالي:
mov eax,039398h
add eax,[esp]
int 2fh
مفهوم الك. كلنة نعرف شنو العمليات الي دتصير لكن راح يصير الهة معنى لما نعرف الغاية منهة و الغاية مرتبطة بنظام التشغيل و تركيبتة و كيفية عملة.
اني هنا مداكولكم شون تصير كراكر لو هاكر بس حتى افصل بين الامور الي المبرمج المبتدئ يشوفهة كتلة وحدة بينما هية منفصلة. حتى يكون اكو فهم شون ديشتغل البرنامج.
اذا عندك سؤال اسألني.
هسة نجي مثلا على ال VB6 الي الها قاعدة مبرمجين كلش هواية بالعالم.
اللغة Syntax هية بيسك و بس.
و هية مو اكثر من Dim, for, while, public, private, class, type, if الخ
اما حتى تسوي برنامج فمعظم الاشياء بال فجوال بيسك 6 لازم يكون عن طريق ال Active X. (و اكو يستعملون win api لكن منحجي عنهة هسة).
كل الي تشوفة بال كونترولز هو ActiveX Control و هنا اتجاوزنة بعد مرحلة اللغة هسة احنة دنتعامل مع الكنترول برامج غير ناس مسويهة و مجرد انه نتعلم شون نشغلهة.
ابسط شي الText box مثلا هذا اكتف اكس مبرمج من قبل مايكروسوفت هو يحير بكلشي اني كل الي اريدة انه اخليه على الفورم مالتي و استعمل ال properties الي بيه او ال methods او ال events و هذا هو.
القصد: هو انك تفصل بين ال syntax مال اللغة و بين ال Control الي تحتاجة حتى تخليه على الفورم و تستعملة.
نفس الكونترول هذا الي هو Textbox اكدر استعملة بالفجوال سي او سي شارب او جافا او اي لغة ثانية لأنه هو ما الة علاقة باللغة.
فالخلاصة لمبرمجي فجوال بيسك 6 هو انك اذا تريد تسوي شي فيجب عليك ايجاد الاكتف اكس الي يسوي هذا الشي و تجيبة و تستعملة بالفورم مالتك. مثلا تريد شبكات راح تروح تستعمل ال Winsock Control تريد تقرا صفحة من الانترنت راح تروح على ال Inet Control تريد تسوي برنامج عرض يشغل mp3 و تكول انه طاك و مسوي مثل الميديا بلير فراح تدور على MP3 Player ActiveX و تجيبة و تخليه بالفورم و تشتغل.
و النتيجة انه هاي الاكتف اكسات الي تخليهة على الفروم انتة مو مبرمجهة و فقط تستعملهة. فمعناها انتة بعيد عن دواخل نظام التشغيل.
هسة خلي نجي على الفجوال سي:
ال syntax هية مال السي اما الشغل فهمين راح تدورلك على Technology حتى تشتغل عليهة مثل
Win 32 API
MFC
بالحالتين الفوك انتة ممكن ان تستعمل نفس الكونترول ال Text box الي حجينا عليه بالفجوال بيسك لكن بال اي بي اي راح تحتاج ان تكتب فد 10 لو عشرين سطر و حتى تسوي الوندو فد 20 سطر لكن الفرق شنو عن مبرمج الفي بي
انتة راح تكون مضطر ان تسوي الخطوات الاساسية حتى تنفذ كل عملية و معناها انتة دتعرف كل خطوة صغيرة بالبيسك شون اصلا صايرة على حقيقتها بينما ابو البيسك مراح يعرف كل خطوة يكتبهة شديسوي الوندوز حتى ينفذلهيا.
ارجع على نفس النقطة الي اريد اأكد عليهة و هو الفرق بين اللغة و التكنلوجيا
مثلا قبل كم يوم عجبني اسوي برنامج VOIP فلازم اسجل من المايك و استخدم كودك و اشفرة gsm لو mp3 مثلا و ادزة بالانترنت لو لان و هناك يستلمة البرنامج و يعرضة حتى يسمعني و نفس الشي كذالك من يمة حتى نكدر نحجي سوة و هذا البرنامج سويتة بال فجوال سي 6 و نفسة سويتة بال في بي دوت نت و نفسة بالسي شارب دوت نت.
شنو الي يجمع كل هذولة بهيج برنامج:
انه التكنلوجيا الي دتسويلي عملية اخذ الصوت من المايك هية ال Windows API.
و لازم اني اعرف الجزء الي يخص ال Multimedia من هاي ال win32 api و اكون فاهمة زين يلة اكدر اسوي البرنامج بأي لغة من هاي الغات. يعني المهم بهيج شي هو الـ Audio capturing بالوندوز شون يشتغل مو مهم شون اعرف سي شارب لو اعرف سي لو بيسك.
يبقى بالسي شارب او الفي بي دوت نت ثنينهم ديستعملون نفس الaudio capture win 32 api's و ثنينهم يستعملون ال دوت نت فريم ورك (الي هو ايضا technology) و الفرق بينهم هو ال Syntax بس بهاي الحالة.
غايتي من هذا الحجي هو ان انتة المبرمج تفرق بين شنو لغة و شنو تكنلوجيا و شنو نظام تشغيل.
اي اسئلة اني حاضر و تدللون و اذا متغلط فد 50 مرة يلة ينجح البرنامج ترة مراح تصير مبرمج.
صانع برامج
- المدير العام
- عدد المساهمات : 415
0
تاريخ التسجيل : 05/04/2010
العمر : 39
الموقع : برامج x
-
صلاحيات هذا المنتدى:لاتستطيع الرد على المواضيع في هذا المنتدى