البداية في تعلم البرمجة والهاكر

تعلم البرمجة
أولاً في البداية مصطلح تعلم البرمجة مصطلح خاطئ وذلك لسبب انها كلمة عامة لا تحدد نوع من البرمجة بعينه فهناك أكثر من نوع 
حسب المجال الذي تريد ان تتخصص فيه .

لغة البرمجة (بالإنجليزية: Programming language)، هي مجموعة من الأوامر، تكتب وفق قواعد تُحَدَّد بواسطة لغة البرمجة، ومن ثُمَّ تمر هذه الأوامر بعدة مراحل إلى أن تنفذ على جهاز الحاسوب. تقسم لغات البرمجة بناء على قربها من اللغات الإنسانية إلى: ... لغة منخفضة المستوى (قريبة من لغة الآلة) مثل: لغة التجميع.
هناك برمجة مكتبية Desktop Programming:

-:يعتمد ذلك علي عدة عوامل
العامل الأول
اذا كنت تريد لغة سهلة و تستطيع تعلمها في وقت قصير
VB.Net
    العامل الثاني تريد لغة اقوي تعمل علي عدة منصات
انصح بـ C++
ولكنك تحتاج الي مكتبات لعمل ذلك 

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

:وهناك طبعاً خيارات أخري مثل 

C#
Java
وايضاً يدعمان عدة منصات

العامل الثالث

 أما أنك أردت لغة برمجة لنظام لينيكس
 Python اسهل واقصر لغة للتعلم بالتأكيد هي بايثون

ولكن هناك عامل أخير وهو الأهم وهو قدرة المبرمج
_______________________________________________

لغة البرمجة سي++ _C++

من أقوى لغات البرمجة تقريبًا مقارنًة بأداء بايثون وجافا، كما أنها متعددة الاستخدمات، سواءً في التطبيقات أو الألعاب، وإحدى مميزات اللغة أنّه يُمكن استخدامها على أنظمة تشغيل مُختلفة، بمعنى يُمكن استخدام الكود على نظام مُختلف دون الحاجة إلى التعديل عليه.
وتم استخدام هذه اللغة ببرمجة أشهر الالعاب مثل (GTA 5، Far Cry ...إلخ)، ومن البرامج المكتوبة باللغة مثل (Mozila, Google Chrome, Photoshop ...إلخ).
وللتعرف على لغة سي++ بشكل موسع يُنصح بقراءة المقال الموجود على سي++ على ويكبيديا

لغة البرمجة جافا _Java

يُمكن من خلال هذه اللغة صناعة وبرمجة تطبيقات الويندوز والهواتف بالإضافة إلى برمجة الالعاب، وقد كانت لغة الجافا تطويرًا للغة السي بلاس بلاس (C++‎).
تتميز لغة جافا بمميزات خاصة حيث أن ما يميزها الآتي:
  • السهولة.
  • داعمة و موجهة للكيانات.
  • سهولة الحصول عليها.
  • امنة.
  • قابلة للنقل و التنفيذ.
  • إضافة الحركة والصوت إلى صفحات الويب.
  • كتابة الألعاب والبرامج المساعدة.
  • إنشاء برامج ذات واجهة مستخدم رسومية.
وللتعرف على لغة جافا بشكل موسع يُنصح بقراءة المقال الموجود على جافا على ويكبيديا

لغة البرمجة سي شارب _C#

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

مجالات استخدام لغة سي شارب _C#

  1. صناعة وبرمجة تطبيقات نظام التشغيل ويندوز.
  2. برمجة تطبيقات الإنترنت (الويب) وذلك عبر منصة ASP.NET.
  3. برمجة تطبيقات الهواتف وتعتمد على منصة التشغيل WINDOWS CE.
  4. برمجة تطبيقات الجرافيكس والوسائط المُتعددة.
  5. تطبيقات التعامل مع قواعد البينات باستخدام مكتبة ADO.NET.
  6. تطبيقات إدارة المحتوى.
برأيي هذه اقوى اللغات والتي يُمكن الاعتماد عليها في برمجة تطبيقات سطح المكتب ويُنصح استخدام C++ فهي الأقوى حاليًا في هذا المجال
___________________________________________________________________________________

برمجة الويب Web Programming

برمجة الويب   Web programming المعروفة أيضًا باسم تطوير الويب   web development
هي إنشاء تطبيقات الويب الديناميكية. من أمثلة تطبيقات الويب مواقع الشبكات الاجتماعية مثل  Facebook  أو مواقع التجارة الإلكترونية   مثل  Amazon
والشئ الجميل هو أن تعلم تطوير الويب ليس بهذه الصعوبة
في الواقع انه أفضل طريقه لتعليم المبتدئين البرمجه هو تعلم برمجه الويب . إنه سهل الإعداد ، وتحصل على نتائج فورية ، ويتوفر الكثير من التدريب عبر الإنترنت
يتعلم الكثير من الأشخاص برمجه الويب لأنهم يريدون ذلك أو للعثور على وظيفة في المجال نفسه ولكنه أيضًا خيار جيد إذا كنت تريد مجرد مقدمة عامة للتشفير ، حيث إنه من السهل البدء في ذلك. بغض النظر عما إذا كنت تبحث عن مهنة أو ترغب فقط في تعلم الترميز فإن تعلم كيفية التطوير للويب هو لك
فى هذه التدوينه وهى ستكون سلسله من 3 ثلاث مقالات سنلقى الضوء على برمجه الويب واللغات المستخدمه و بعض الامثله و طريقه كتابه الكود ’ و ليس الهدف هو تعليم البرمجه و انما توضيح الصوره فقط .
ونذكر اهم المواقع التعليميه لهذه اللغات
وننصح دائما بالاعتماد على المواقع الانجليزيه حيث ان المواقع العربيه فقيره جدا أوهى ترجمه ركيكه لما تحويه المواقع الاجنبيه

اولا : نظرة على البرمجه بصفه عامه

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

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

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

ثانيا : نظرة عامه على تطوير الويب

هناك قسمان عريضان لتطور الويب - تطوير الواجهة الأمامية (يسمى أيضًا تطويرالعميل )   client-side development
البرمجة من جانب العميل هي كتابة التعليمات البرمجية التي سيتم تشغيلها على جهاز العميل ، وتتم باللغات التي يمكن تنفيذها بواسطة المتصفح
والتطوير الخلفي ( يطلق عليه أيضًا تطوير جانب الخادم )   server-side development
البرمجة من جانب الخادم هي كتابة التعليمة البرمجية التي يتم تشغيلها على الخادم وذلك باستخدام اللغات التي يدعمها الخادم
البرمجة من جانب العميل او تطوير الواجهة الأمامية هو موضوع حديثنا فى هذه السلسله من المقالات.
لتطوير الواجه الاماميه او برمجه الوب يجب تعلم 3 ثلات لغات برمجه هى التى تكون صفحه الوب التى تراها امامك فى المتصفح .
هذه اللغات هى

HTML         CSS        JavaScript

اضغط عليها للحصول علي افضل موقع للشرح

اذا كنت تريد تعلم الهاكر فأرجوا أن تبدأ بلغات الويب السابقة بداية الطريق.
____________________________________________________________________

برمجة اندرويد android Programming

المجال الأول - برمجة التطبيقات عن طريق لغة جافا

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

اولا : تعلم الجافا وبرمجة الكائنات Java and Object oriented

كورسات باللغة العربية

Abdullah Almehmadi1

Code Masry1

Muhammad Yassein

Bahaa Aladdin

Abdurrahman Khamis

Mustafa Saad

رواق

Abdullah Almehmadi2

Code Masry2

كورسات باللغة الانجليزية

Thenewboston1

Thenewboston2

John Purcell

Chad Darby

Tim Mertens

Wesley Carlsen

هنا لا تقوم بمتابعة كل الدورات السابقه لان الاندرويد لا يطلب منك احتراف الجافا بشكل كامل، بل يكفى معرفة الاساسيات و يكفى اختيار متابعة دورتين محتلفتين حتى يمكنك البدء فى تعلم الاندرويد بشكل جيد.

ثانيا : تعلم برمجة الأندرويد Android Developer

كورسات باللغة العربية

Abdullah Almehmadi1

Abdullah Almehmadi2

Adel Sabour1

Adel Sabour2

Ohood ALi

Bassam Badr

MENA GSA

Mustafa Saad

كورسات باللغة الانجليزية

Thenewboston1

Thenewboston2
Thenewboston3

Eduonix Learning

Ragunath Jawahar

udacity

xdadevelopers

Johnny Manson

Edureka 1

Edureka 2

المجال الثانى - برمجة التطبيقات بلغات اخرى

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

لغات أخرى


المجال الثالث - صنع التطبيقات بدون كتابة أى كود

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

أولا : مواقع لصنع تطبيقات خلاصات الأخبار RSS


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

ثانيا : أستخدام مشروع App Inventor

وهو برنامج بدأت فيه جوجل عام 2010 ثم أوقفته عام 2011 وجعلته مفتوح المصدر ليقوم معهد MIT ، بتبنى المشروع بالكامل. الفكرة هنا هي انشاء التطبيقات عن طريق السحب والافلات وتركيب الاجزاء مع بعضها مثل قطع البازل دون كتابة اى كود
بالطبع هذة الطريقة هى الافضل لمن ليس لديه اى خلفيه مسبقه بالبرمجة ولا يريد تعلمها وبالاخص للاطفال يمكنه البدء بها.

# أولا : تحتاج الى تثبيت Java Development Kit
http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html

ثم قم بتحميل النسخه المناسبة لجهازك 32 او 64 بت.

# ثانيا : قم بالذهاب الى موقع المشروع من هنا
http://ai2.appinventor.mit.edu

طريقة الاستخدام سهلة جدا وهذا شرح مبسط وجميل جدا
http://appinventor.mit.edu/explore/ai2/tutorials

المجال الرابع - برمجة الألعاب

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

ألعاب 2D

هنا تستطيع برمجة الالعاب بنفسك بشكل كامل او يمكنك الاستعانة ببعض المكتبات الجاهزة ستسهل عليك كثيرا جدا.

مكتبات بلغة Java
1. Andengine

دورات عليها
http://www.raywenderlich.com/12065/how-to-create-a-simple-android-game
https://www.youtube.com/playlist?list=PLHPcpp4e3JVq16LzcnqPtJLkKFuVQl52d

2. Cocos2d

دورات عليها
http://dan.clarke.name/2011/04/how-to-make-a-simple-android-game-with-cocos2d

مكتبات بلغة++C

http://www.ogre3d.org
http://irrlicht.sourceforge.net
http://www.linderdaum.com/home/index.php?title=Main_Page

ألعاب 3D

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

1. http://unity3d.com

دورات على البرنامج
https://www.youtube.com/playlist?list=PL506E2704E1C1B387
https://www.udemy.com/unity3d-concepts/?dtcode=0nojVS637Jnf
https://www.udemy.com/unity-2d-bouncing-and-sliding-with-physics/?dtcode=kYWnSrv37Jnf

2. https://www.unrealengine.com/what-is-unreal-engine-4

دورات على البرنامج
https://docs.unrealengine.com/latest/INT/Platforms/Android/GettingStarted

نصائح لك من مطور
  1. أذا كنت ستبدا فى تعلم الجافا او الاندرويد فأهم شئ هو التطبيق على ما شاهدته اذا قمت بمتابعة كل الدورات كمشاهدة فقط فاضمن انك لن تستطيع صنع اى تطبيق لوحدك قم بمشاهدة الفيديو او الشرح ثم قم بالتطبيق عليه فى الحال حتى لو كان جزء بسيط جدا ولكن يجب ان تكتب كود وتحاول بنفسك على كل جزء.
  2. عندما تبدا التعلم سترى مشاكل كثيرة وستقع فى اخطاء كثيرة هذا لابد ان يحدث وحدث معى لفتره طويله، ولكن اذا تراجعت من اول مشكلة فلن تتعلم اى شئ، المثابرة اساس النجاح.
  3. عود نفسك على البحث، لديك مشكله وتبحث عن حل وتقوم بسؤال الناس لا بأس ولكن ستصل بصعوبة الى الحل وايضا من اعطاك الحل فى المرة الاولى لا تضمن وجودة فى المرة الثانية لذا أجعل جوجل صديقك وعود نفسك على البحث عليه على اى مشكله قبل السؤال وانا واثق انك ستجد الحل اذا بحثت جيدا حتى لو لم يظهر معك من اول مره.
  4. لا تخجل من الاستعانه بكود جاهز، لا احد يقوم ببناء كل شئ من الصفر لوحدة ولن تقوم باختراع العجلة مرة اخرى، لذا تريد صنع شئ معين فى الكود ولا تستطيع قم بالبحث عنه واذا وجدت الكود جاهز فى اى مكان قم باستخدامه ولكن تعلم منه اولا وافهم كيف يعمل جيدا.
  5. البرمجة ليست شئ تتعلمه وانتهى فى وقته، البرمجة تعتبر اسلوب حياه، فى كل يوم ستجد تحديثات ومعلومات جديدة فى كل مكان. حاول ان تبقى على اطلاع دائع بكل جديد.

مواقع ستساعدك 
  1. http://stackoverflow.com
    الموقع الأول لاى مطور او مبرمج فى العالم وستجد به حلول لاى مشكله ستواجهك. ويمكنك طرح مشكلتك كاملة وستجد مبرمجين من كل العالم سيقومون بالرد عليك بالحل.
  2. https://developer.android.com/develop/index.html
    الموقع الرسمى للاندرويد وعليه الكثير جدا من الشروحات التى ستفيدك.
  3. http://www.vogella.com/tutorials/android.html
    شروحات متقدمة كثيرة جدا فى جميع اجزاء التطبيقات والالعاب . حاول البحث فيه دائما.
  4.  http://arabandroid.net
    موقع عربى جيد به شروحات للتطبيقات يمكنك متابعته.
  5. http://andrody.com/category/developer_android
    موقع عربى اخر جيد يمكنك الاستعانه به.
  6. https://www.facebook.com/groups/276774565848218
    https://www.facebook.com/groups/878443552205701
    جروبات عربيه على الفيسبوك . ستجد فيها مبتدئين ومبرمجين ،يمكنك طرح مشكلتك بها ومساعدة الاخرين.
  7. _____________________________________________________________

ليست هناك تعليقات:

إرسال تعليق

|