تمام، قررت تتعلم برمجة!
1-اول شئ لازم تعرفه ان الموضوع مش سهل مجرد يوم وخلاص بقيت مبرمج عظيم ولاحاجة ... ممكن تتعلم البرمجة في ١٠
émoticôneسنين مثلا (أو اكتر) émoticône grin
2- طيب، في لبس معين لازم تلبس اسود وتسمع روك؟ فكك كل دا كلام فارغ émoticône smile
3- استيعاب المفاهيم البرمجية بعيدا عن لغة البرمجة نفسها
مشكلة حقيقية لما تبقى بتحاول تعلم الناس البرمجة من خلال لغة صعبة ومليانة مطبات زي C/C++
4- أبعد عن البرامج الرسومية وال drag & drop ... لغات زي VB و C# لو متعلمتهاش صح مش هتروح مسافة بعيدة اكتر من انك تعمل drag و drop لمكونات على form! (كدا كدا طريقة تدخل ال gui designer في الكود طريقة متخلفة) (هتعرف بعد شوية)
لغات البداية
في الحقيقة مظنش قدامك غير اختيارات محدودة لموضوع السهولة والبساطة وللتركيز على المفهوم البرمجي اكتر من طريقة كتابة اللغة نفسها (python حاليا هي الأختيار الأمثل وتستخدم كلغة أولى لتعليم البرمجة في أماكن كتير جدا) وكان سابقا لغةScheme/Lisp
المسار التعليمي
==============
الخلفية المطلوبة:
فقط حس منطقي وبعض رياضيات الثانوية العامة
1- لازم كورس تمهيدي ومبسط عن البرمجة
في اختيارات كتير
programming for everybody
https://www.coursera.org/course/pythonlearn
Introduction to computer science with Python (MIT)
https://www.edx.org/…/introduction-computer-science-mitx-6-…
programming foundations (udacity)
https://www.udacity.com/course/ud036
introduction to computer science (udacity)
https://www.udacity.com/course/cs101
انهي واحد منهم وأتجه فورا لأهم كورس في ال computer science (يعتمد على SICP)
كتاب SICP من اهم الكتب على الأطلاق والكورس تم تدريسه بعدة لغات Lisp, Scheme, Python
اختياري هو كورس CS61A
http://cs61a.org
وكتاب composing programs ككتاب معدل من SICP موجه للغة بايثون
http://composingprograms.com
** اذا لديك فضول عن SICP (ملاحظة الكورس يتم تدريسه بلغة LISP)
الكتاب mitpress.mit.edu/sicp/full-text/book/book-Z-H-4.html…
الكورس الأصلي https://www.youtube.com/playlist?list=PLB63C06FAF154F047
يوجد اصدار اخر من CS61 A يقوم بتدريسه Brian Harvey ويعتمد على لغة Scheme
2- يلي ذلك تعمق اكبر في طريقة التفكير المنطقي والخوارزميات (كيف تنفذ برنامج وكيف تقيس مدى جودته)
هتحتاج كورس عن هياكل البيانات والخورازميات
هنا اغلب الناس هتكون مضطرة تتعلم لغة Java عشان الكثير من المصادر
اختياري هو
Algorithms, Part I (Coursera)
https://www.coursera.org/course/algs4partI
مع كتاب Algorithms 4th المستخدم في نفس الكورس
في ناس بتحب توصي بكورس CS 61B وانا منهم بس من تجربتي حاول تشوف اصدار منه ل فيديوهات ل Jonathan Shewchuk لأنه في رأيي احسن حد شرح الكورس دا (والكورس منقسم لجزئين الأول لتعليم اساسيات جافا والتاني للهياكل البيانات والخوارزميات)
الكتاب المستخدم Data Structures & Algorithms ل Robert Tamasia
**ملاحظة الكتاب السابق يوجد له اصدار بلغة بايثون émoticône smile
introduction to algorithms (udacity)
https://www.udacity.com/course/cs215
دلوقتي انت تعرف مقدار كافي لتشق طريقك
الخطوة التالية اختيارية::: استخدم Linux لأن البرمجة عليه ابسط بكتير من غيره
https://www.edx.org/…/introduction-linux-linuxfoundationx-l…
4-الآن وقت تعلم لغة C (هو كورس مقدمة كذلك عن البرمجة ويعرفك على لغات اخرى مثل PHP/Javascript --لم اهتم غير بالجزء الخاص بلغة سي)
وأفضل كورس وجدته هو CS 50 ل David Malan
http://cs50.tv/2013/fall/
وبالقطع كتاب The C Programming Language
5- تعلم عن هيكلية الحاسب ونظم التشغيل (جزء اختياري ولكن من اهم الأجزاء لحياتك ولأستيعابك للكمبيوتر)
أنا افضل ان تتعلم على MIPS (كثير من كورسات هيكلية الحاسب تفضل mips للشرح)
اختياري هو CS 61 C بالإضافة لكورس من جامعة Bilkent التركية
http://www-inst.eecs.berkeley.edu/~cs61c/fa14/
http://webcast.berkeley.edu/playlist…
https://www.youtube.com/playlist…
https://www.coursera.org/course/comparch
https://www.youtube.com/playlist…
الكتاب المستخدم للتدريس هو Operating System Concepts
سنة 2015 هتكون سنة خير ان شاء الله لأن edx ناوية تقدم كورسات في computer organization كمان
مصادر مفيدة للموضوع
http://rust-class.org/
http://web.stanford.edu/…/cgi-b…/cs140-spring14/lectures.php
https://www.udacity.com/wiki/ud156
لسه في حاجات كتير في البرمجة ومجالات كتير
منها مجال صناعة لغات البرمجة émoticône grin وحقيقي من الحاجات الي سعيد انها متوفرلها مصادر كويسة على الانترنت
وكورس اخر من udacity بيشرح على لغة بايثون
https://www.udacity.com/course/cs262
كورس عن ال automata
https://www.coursera.org/course/automata
كورس ل Alex Aiken
https://www.coursera.org/course/compilers
لقواعد البيانات
https://www.coursera.org/course/db
هتتعلم كتير عنها وعن الاستعلامات فيها (وهي شئ مهم جدا لأي مبرمج وادراة قواعد البيانات مجال كامل)
اختيارات عامة
sqlite, mariadb
مجال تطوير الويب
=================
1- اتعلم لغة HTML لكتابة صفحات الأنترنت ولغة CSS لتزيين الصفحة وتغيير الأستايل
2- تعلم لغة Javascript
(تطبيقك ينقسم لجزئين جزء يظهر للعميل عندما يفتح موقعك)وهذا جزء ال client side وللتحكم فيما يظهر يجب اجادة html,css,javascript
والجزء الاخر هو مايحدث على السرفرات الخاصة بك التي تقوم بإضافة وتعديل البيانات وهي جزئية ال server side
وله تحتاج لأختيار لغة برمجة ، يوجد اختيارات عديدة اشهرها
PHP, Python, Ruby
يوجد كورس من udacity لتطوير الويب يستخدم لغة بايثون
https://www.udacity.com/course/cs253
ويوجد العديد من الكورسات عن Ruby (قم بالبحث)
*قم بإستخدام اطار عمل framework ولاتبني كل شئ من الصفر مثلا بايثون لها django, flask و روبي لها rails و php لها laravel, codeigniter ...
ملاحظة:: الموضوع ترتيب منهجي لأول خطواتك وفي حاجات كتير هتهتم بيها في المستقبل
زي Go, Rust, MongoDB, Scheme, Haskell, Ocaml وكل حاجة فيهم عايزة قد البوست دا
====================
فديو مهم جداً لو لسة هتبدأ في الـ Computer science و عاوز تعرف عنها .. بس ملوش ترجمه للأسف
https://goo.gl/Myaf4N
=======================
2 - كورس عربى عبارة عن بداية و مقدمة في الـ Computer Science و شرح رائع لو مبتدأ و متعرفش يعنى اية برمجة وكمبيوتر فهو معمول علشانك و لو اشتغلت قبل كدة هفتستفاد منه بردة ..
https://goo.gl/OgIDfG
-------------------------
3 - دة كورس مقدم من جامعة Harvard من افضل جامعات على مستوى العالم .. بشرحوا فيه الـ Computer science بطريقة عملية و جذابة جداً جداً .. و انا استمتعت بيها جداً و كمان معترف به وبشهادة émoticône grin
https://goo.gl/SkjfXZ
------------------------
4 - لو عاوز الكورس رقم 2 بس الانجلش مقصر معاك شويتين .. دة نفس الكورس بترجمه و كمان ريح دماغك من وجع التسجيل في الموقع émoticône grin
https://goo.gl/rK06jV
------------------------------------
5 - الكورس دة بيشرح يعنى اية علوم الحاسب من البداية خالص و يعنى اية كمبيوتر أصلا ..
https://goo.gl/nFvbBJ
-----------------------------------
6 - أعلي 15 كورس مجاني في مجال الـ Computer Science
الكورسات في البرمجة والجرافيك وهندسة الحاسب - يعني سوفتوير وهاردوير وفيه كورسات كمان عن الـ #Algorithms
الكورسات تجميعة كويسة للي عايز يفهم أكثر عن المجال اللي هو فيه - بمعني أدق متبقاش شغال في حاجة مش عارف اصولها ايه
1.Visual Navigation for Flying Robots
http://goo.gl/23K2hx
2.Understanding #Computers and the Internet
http://goo.gl/mnZvoS
3.Search Engines: Technology, Society and Business
http://goo.gl/QgWnhY
4.Responsible Computing
http://goo.gl/YqZOxV
5.Programming for #Designers
http://goo.gl/2abyp8
6.Probabilistic Systems Analysis and Applied Probability
http://goo.gl/hMB6PD
7.Online Graphics
http://goo.gl/rYPBm6
8.Introduction to Problem Solving & Programming
http://goo.gl/Qv6Ku3
9.Introduction to Electrical #Engineering and Computer Science
http://goo.gl/ds3lnQ
10.Introduction to Computer #Graphics
http://goo.gl/GUUtuH
11.Introduction to Computer Science: #Programming Paradigms
http://goo.gl/7hHfC9
12.Introduction to Computer Science: Programming Abstractions
http://goo.gl/gFSUkF
13.Introduction to Computer Science: Programming Methodology
http://goo.gl/eihvyb
14.Introduction to Computer Science and Programming
http://goo.gl/AaYhnp
15.Introduction to Algorithms
http://goo.gl/e73Hxa
---------------------------------
عاوز يبدأ برمجة émoticône grin يبدأ ها .. يبدأ émoticône grin
١- كورس :Introduction to Computer Science and Programming
للبدء: http://buff.ly/1hWvYW0
---------------------------
٢- كورس: Android 101
للبدء: http://buff.ly/1hWvYW1
---------------------------
٣- كورس: Oracle Certified Professional Developer (OCP) - SQL
للبدء: http://buff.ly/1k9Wi3r
---------------------------
٤- كورس: HTML 5
للبدء: http://buff.ly/1k9Wi3q
---------------------------
٥- كورس: CSS & CSS3
للبدء: http://buff.ly/1k9Wi3p
---------------------------
٦- كورس: JavaScript - JS
للبدء: http://buff.ly/1g2vCM6
---------------------------
٧- كورس: PHP
للبدء: http://buff.ly/1g2EAcq
---------------------------
٨- كورس: PHP Object Oriented Programming - OOP
للبدء: http://buff.ly/1kaJmdz
---------------------------
٩- كورس: Algorithms & Data Structure - DSA
للبدء: http://buff.ly/1hXoNwI
---------------------------
١٠- كورس: SharePoint
للبدء: http://buff.ly/1hXzcIG
---------------------------
١١- كورس: Java 101
للبدء: http://buff.ly/1a41SOq
---------------------------
١٢- كورس: jQuery
للبدء: http://buff.ly/1a44coL
---------------------------
١٣- كورس: Python
للبدء: http://buff.ly/1cp6xGT
---------------------------
١٤- كورس: Ajax
للبدء: http://buff.ly/1cpeITD
------------------------------------------------
دي مجموعه كورسات computer science من أكتر من جامعه منهم هارفارد و بيركلي و MIT و بشهاده بعد ما تخلص الكورس في حالة لو لحقت تخلصه قبل ما تاريخ الانتهاء يجي لو الكورس كان بتاريخ قديم تقدر تستفيد بالمحتوى:
لو عاوز تتعلم لينكس او سمعت عنها émoticône grin الكورس دة هيبدأ معاك من البداية خااااااالص émoticône grin
Introduction to Linux
http://goo.gl/Xh4XnA
هنا مقدمة عن علوم الحاسب و عن لغة البايثون ..
Introduction to Computer Science and Programming Using Python
http://goo.gl/2CbwNk
Embedded Systems - Shape The World
http://goo.gl/3fctxY
The Computing Technology Inside Your Smartphone
http://goo.gl/cHXaiS
Artificial Intelligence
http://goo.gl/xbeOOg
Introduction to Big Data with Apache Spark
http://goo.gl/YaCrZs
Applications of Linear Algebra Part 1
http://goo.gl/XQNHfJ
---------------------------------------------
لو عايز كورسات أونلاين مجانيه وبتديك شهاده
يبقي لازم تتعب وتشوف الكورسات دي (في مختلف المجالات) ....
1-Java Tutorial
https://www.udemy.com/java-tutorial/
2- Computer Networks
https://www.coursera.org/course/comnetworks
3-C++ For C Programmers
https://www.coursera.org/course/cplusplus4c
4-The Growth Hacker Interviews
https://www.udemy.com/the-growth-hacker-interviews/
5- Interactive Programming in Python
https://www.coursera.org/course/interactivepython1
6-Learn English Basics
https://www.udemy.com/learn-english-basics-elementary-meth…/
7-C++, Short and Sweet
https://www.udemy.com/cpp-short-and-sweet/
8- Learn HTML5 Programming
https://www.udemy.com/learn-html5-programming-from-scratch/
9-Beginning Game Programming with C#
https://www.coursera.org/course/gameprogramming
10- Drawing basics بدون شهاده
https://www.khanacademy.org/…/co…/programming/drawing-basics
11- Project Management
https://www.udemy.com/project-management/
12- Photoshop CS6
https://www.udemy.com/adobe-photoshop-cs6-new-features/
13- Human Resources بدون شهاده
https://www.open2study.com/courses/human-resources
14- English Common Law
https://www.coursera.org/course/engcomlaw
15- Introduction to Finance
https://www.coursera.org/course/introfinance
16-Android Programming
https://www.udemy.com/learn-android-programming-from-scrat…/
17- Spanish for Beginners
https://www.udemy.com/learn-spanish/
18- Java Programming
https://www.udacity.com/co…/intro-to-java-programming--cs046
19- Operations Management
https://www.udemy.com/operations-management/
20- Microsoft Excel 2013
https://www.udemy.com/introduction-to-microsoft-excel-2013/
21- Computer Science
https://www.udacity.com/co…/intro-to-computer-science--cs101
22-Photoshop for Technical Drawings
http://www.pluralsight.com/cou…/photoshop-technical-drawings
23- Introduction to Marketing
https://www.coursera.org/course/whartonmarketing
24-Machine Learning
https://www.coursera.org/course/ml
25-The Landscape of English Language Teaching
https://www.coursera.org/course/shaping1landscape
26- Java Multithreading
https://www.udemy.com/java-multithreading/
27- Web Development
https://www.udacity.com/course/web-development--cs253
28-HTML Workshop
https://www.udemy.com/html-workshop/
29-Java Design Patterns
https://www.udemy.com/java-design-patterns-tutorial/
30- Learn Javascript
https://www.udemy.com/learn-javascript-jquery-from-scratch/
31-Foundations of Business Strategy
https://www.coursera.org/learn/business-strategy
32-Growth Hacking
https://generalassemb.ly/online/videos/growth-hacking
33-Project Management
https://www.open2study.com/…/principles-of-project-manageme…
34- FREE Photography Course
https://www.udemy.com/karl-taylors-free-photography-course/
35-Circuits and Electronics
http://ocw.mit.edu/…/6-002-circuits-and-electronics-spring…/
36-Foundations of Business Strategy
https://www.udemy.com/foundations-of-business-strategy/
37-SEO Training Course
https://www.udemy.com/whiteboard-seo/
38-Accounting in 60 Minutes
https://www.udemy.com/accounting-in-60-minutes-a-brief-int…/
39-Google Analytics
https://www.udemy.com/getting-started-with-google-analytics/
40-English Composition
https://www.coursera.org/course/composition
41-How To Make App For Iphone, Android
https://www.udemy.com/how-to-make-app-for-iphone-android-k…/
42- Android Apps
https://www.coursera.org/course/androidapps101
43-Introduction to Computer Science
https://www.edx.org/…/introduction-computer-science-harvard…
44-Introduction to Computer Science and Programming
https://www.edx.org/…/introduction-computer-science-mitx-6-…
45-JavaScript Road
https://www.codeschool.com/cour…/javascript-road-trip-part-1
46-Written English
https://www.edx.org/…/principles-written-english-part-1-uc-…
47-Financial Accounting
https://www.coursera.org/course/whartonaccounting
48-Fundamentals of Electrical Engineering
https://www.coursera.org/course/eefun
49-Animation basics بدون شهاده
https://www.khanacademy.org/…/…/programming/animation-basics
50- English Grammar and Style
https://www.edx.org/c…/english-grammar-style-uqx-write101x-0
51-Introduction to Data Science
https://www.coursera.org/course/datasci
52-Graphic Design
https://www.udemy.com/introduction-to-graphic-design/
53-Programming Mobile Applications for Android
https://www.coursera.org/course/androidpart1
54-PHP Programming Language
https://www.udemy.com/introduction-to-php-programming-trai…/
55-Learn to Program
https://www.coursera.org/course/programming1
56-Introduction to Computer Science and Programming
http://ocw.mit.edu/…/6-00-introduction-to-computer-science…/
57-Creating a Business Website
https://www.udemy.com/creating-a-business-website/
58-Android 2.X App Development
https://www.udemy.com/social-and-geolocated-android-apps/
59-Introduction to Python for Beginners
https://www.udemy.com/introduction-to-python-for-beginners/
60-Linux Command Line Basics
https://www.udemy.com/linux-command-line-volume1/
61-Prioritization for Product Managers بدون شهاده
https://generalassemb.ly/…/prioritization-for-product-manag…
62-Introduction to Electrical Engineering
http://ocw.mit.edu/…/6-01sc-introduction-to-electrical-eng…/
63-Entrepreneurship From Idea to Launch
https://www.udemy.com/entrepreneurship-from-idea-to-launch/
64-Learn Microsoft Excel Pivot Tables
https://www.udemy.com/learn-microsoft-excel-pivot-tables/
65-HTML5 Game Development
https://www.udacity.com/course/html5-game-development--cs255
66-Learning Java.
https://www.udemy.com/java-tutorial-video/
67-Mastering HTML5 Programming
https://www.udemy.com/html5-programming-tutorials/
68-Zero Cost Marketing Strategies
https://www.udemy.com/zero-cost-marketing-secrets-official…/
69-Excel for Business
https://www.udemy.com/draft/25178/
70-Conversational English Skills
https://www.edx.org/…/conversational-english-skills-tsinghu…
--------------------
-Creative Programming for Digital Media & Mobile Apps
نبذة عن الكورس :
كورس بناء تطبيقات وبرامج تتعامل مع الصوت والصورة والفيديو ، ينبغي أن يكون لدى المشترك خلفيات أساسية في علوم الحاسوب والبرمجة بشكل عام.
لينك الكورس :
https://www.coursera.org/course/digitalmedia
=========================
-Introduction to R Programming
نبذة عن الكورس :
المتخصصة فى علم الإحصاء و المشاريع الصغيرة .Rدورة مجانية من ميكروسوفت لتعلم لغة
لينك الكورس: https://goo.gl/GuQ23t
==========================
Software Security
نبذة عن الكورس :
دورة تغطي مجالات حماية البرمجيات بشكل عام ، سوف تتطرق إلى الحماية من عدة أنواع من الهجمات والاختراقات.
لينك الكورس: https://www.coursera.org/course/softwaresec
==========================
Computer Graphics
نبذة عن الكورس :
في هذا الكورس الذي يستمر لمدة 6 أسابيع ، سوف تتعلم مفهوم الرسوميات الثلاثية الأبعاد من زاوية برمجية وكيفية تطوير أدوات وبرامج تصنع رسوميات ثلاثية الأبعاد وكذلك طريقة استعمال الـ(OpenGL) ، هذه الدورة مقدمة من جامعة كاليفورنيا الأمريكية.
لينك الكورس: https://goo.gl/sYH8UW
==========================
Introduction to Computer Science and Programming Using Python
نبذة عن الكورس :
هذه الدورة موجهة للمبتدئين في عالم البرمجة ، تعطي القواعد الأساسية لبرمجة الحاسوب وتطوير التطبيقات ، ويتم استخدام لغة بايثون للتطبيق العملي ، فالمشترك سوف يتعلم اساسيات البرمجة وكذلك أساسيات لغة البرمجة (بايثون) ، الدورة مقدمة من معهد (Massachusetts) التقني في كامبردج الأمريكية.
لينك الكورس: https://goo.gl/nWKtZb
===============================
اكيد فكرت كتير انك تبقى هكر émoticône grin صح .. طيب تعرف ازاى émoticône devil
فى البوست دا حاولت بقدر الامكان انى اجاوب فيه على كل الاسئلة اللى اتسألتلى فى الفتره اللى فاتت وعن معظم الاسئلة اللى هتجول فى خاطرك علشان تبدأ فى مجالين متلازمين ببعض من منظورى الشخصى وهم 1- البرمجة 2- ومنها تقدر تبدأ بسهولة البدء فى مجال القرصنة الاخلاقية Ethical Hacking او تحديداً وبشكل ادق مجال حماية وامان واختبار اختراق تطبيقات الويب Web Application Penetration Testing فى صورة نصائح لراغبى البدء فى اى منهم، النصائح دى بتتلخص فى بعض النقاط وهى:
1-إتقان اللغة الانجليزية "اهم شئ" مش هتعرف تمشى كويس بدون الانجلش.
2-تعلم مبادئ البرمجة والمفاهيم العامة Programming Concepts and Fundamentals
3-التركيز على لغة برمجة واحده والبعد عن التشتيت والحشو المعلوماتى، لغات البرمجة اللى ممكن تعمل بيها تطبيقات ويب كتيره منها PHP و ASP و Java و Ruby و Python و Perl كلها لغات برمجة اتخلقت علشان تؤدى مهام واغراض كتيره متشابهه، تقدر بشكل عام تختار الانسب ليك منها وتبدأ تتعلمه، فكرة انك لازم علشان تبقى حد معدى ان يبقى معاك مليار لغة برمجة دى فكره خطأ جداً الحشو دا هيخليك متعرفش تمشى فى ولا واحده فيهم، اتعلم المفاهيم والاساسيات العامه للبرمجه هتلاقى نفسك لو بصيت على اى كود فى العالم هتفهم دا اتكتب بلغة برمجة ايه وبيعمل ايه ماعدا اكواد ال Assembly علشان مبقاش بغشك، بشكل عام دا انفوجراف هيبينلك مدى قوة كل لغة منهم على حده وهيساعدك تختار مابينهمhttp://goo.gl/1yQggG
4-تعلم واتقان تكنولوجيا الويب المختلفة مثل HTML & HTML5 و CSS & CSS3 و JavaScript و Ajax و Jquery و XML و json الحاجات دى بديهيه وضروريه وهتساعدك كتير جدا وبدونها مش هتقدر تفهم حاجات كتير جداً بردو.
5-لو انت بقى مش مهتم لا بالحماية والامان ولا اختبار اختراق تطبيقات الويب، وعايز تدخل مجال برمجة الموبايل فبالنسبة للمجال دا لازم تسأل نفسك الاول وتحدد ياترى انت ناوى تبرمج لأى منصة؟! حددت المنصة، بعدها تشوف بقى كل منصة بتتطلب اجادة اى لغة برمجة تحديدا بمعنى انك:
6-لو عايز تبرمج لنظام التشغيل Android يبقى لازم تتقن لغة البرمجة Java
7-لو عايز تبرمج لكل منتجات شركة Apple ففى الحالة دى يبقى لازم تتقن لغة البرمجة Objective C
8-لو عايز تبرمج لنظام التشغيل Windows Phone يبقى لازم تتقن لغة البرمجة C#.Net اوVB.Net او اى منصة عملتها او هتعملها مايكروسوفت بتدعم البرمجة لنظام تشغيلها
9-دا لينك فيه كورسات لكل ما سبق ذكره: http://goo.gl/IBxsfK
10-منتنظرش المعلومة فى طبق من دهب من اى حد بما فيهم انا، محدش هيساعدك غير نفسك، فى حاجه اسمها التعلم الذاتى والمثابره.
11-إتقان مهارات البحث على جميع محركات البحث واشهرها جوجل، هتلاقى الكلام دا هنا:http://goo.gl/oX5d9x وهنا: http://goo.gl/XD5lNp .
12-لازم تعرف ايه الفرق مابين نوعين من المواقع والتطبيقات على الانترنت، واللى هيا Static ودى ماهى الا صفحات غير تفاعليه بتعرض فقط بيانات على سبيل مثال جرائد الاخبار الموجودة على الانترنت، اما فى حالة لو سمحتلك الجرائد دى بأنك تتفاعل معاها من خلال التعليقات والاعجاب و و الخ فى الحالة دى بيطلق عليها تطبيقات ويب او Dynamic Web Applications.
13-الايمان بمبدأ الـ Ethical Hacking وإعلاء القيم الانسانية الحسنة عن تلك الشريرة الدفينة فى النفس البشرية بدون انتظار اى مقابل، بمعنى انك هتيجى عليك فتره وتسأل نفسك ياترى ايه اللى يجبرنى او ايه اللى يخلينى افضل ابلغ عن الثغرات والاخطاء دى لأصحاب المواقع؟! او او او كلها اسئلة هتجول فى فكرك يوماً ما، بس دايما حط فى دماغك ان اللى انت بتعمله دا فيه قيمة انسانية اكتر ما هتسرق مثلا او تخرب.
14-القيام بتنمية المهارات البرمجية دا هيساعد فى البداية لمعرفه ما هى اللغة التى تمت كتابة موقع ما بها حتى يقوم بالبحث والاستكشاف عن نقاط الضعف والابلاغ عنها.
15-دراسة الشبكات بشكل اساسى وبدون تعمق لأن فى حاجات كتير جداً هتمر بيها ولازم تكون عالاقل عارف معناها زى مثلا IP و Router و Access Control Level وغيرها من المصطلحات المرتبطة.
16-لازم ولابد تعرف يعنى ايه مخدم محلى او Local Web Server، يعنى ايه ويب سيرفر، هوا ايه الشئ دا اللى انا بروحله ويخدمنى ويجيبلى الصفحات والمواقع لحد عندى، مخدمات الانترنت وانظمتها جيداً.
17-خد بالك بردو ان فى مصطلحات كتيره بديهيه بقى لازم تاخد بالك منها وتجتهد وتبحث وتقرا فيها علشان تعرف معناها على سبيل المثال لا الحصر:
[*] يعنى ايه Web Server وانواعها المختلفه زى Apache و IIS و GWS و Nginx و Appserv و XAMPP؟! تقدر تعرف دا من هنا: http://goo.gl/9jjv0e
[*] يعنى ايه Request بالتفصيل وطرقة وانواعه؟! تقدر تعرف دا من هنا:http://goo.gl/XIW4rh
[*] يعنى ايه Http Headers بأنواعها؟! تقدر تعرف دا من هنا: http://goo.gl/iaiG2W
[*] يعنى ايه Response وانواعه واكواد الحالة الخاصه بيه وتفاصيله!؟ تقدر تعرف دا من هنا:http://goo.gl/LMt5PE
[*] يعنى ايه Mysql و Mssql و Postgresql و Phpmyadmin ؟!
[*] يعنى ايه http و https و ssl و certificate و interception و Proxy و Protocols و Framework و Authenticate و Authorize و Privileges و Escalation ولو معرفتش دور وابحث وترجم.!
[*] هتلاقى فى مصطلحات هتقابلك بردو مكعبله متعديهاش وتقول هقراها بعدين، اقف واقرا عن اللى وقفك دا، وبعدين كمل صدقنى هتحس بمتعة فعلا.
18-هيا الى العمل، ندخل بقى ف الجد شوية، بالنسبة لـ :
[*] مواصفات الجهاز: مش هتكلم فى الجزأية دى ولا اقول مواصفات جهاز بعينه بس بشكل عام كل ما كان الجهاز ذو معالج قوى ورامات قوية هيديلك اداء افضل واحسن.
[*] نظام التشغيل: المعلومة دى على مسؤوليتى الشخصيه، اى نظام تشغيل هيخليك تقدر تعمل اى شئ سواء كان ويندوز او لينيكس او ماك فى اى مجال سواء كان برمجة او تصميم او اختبار اختراق، كل الموضوع بس ان فى انظمة (افضل) وحط تحت كلمة افضل دى خط عريض افضل فى انها تؤدى مهام بعينها، دا يخليك تسأل نفسك، ليه الديزاينرز دايما بيستعملوا ماك؟! ليه الهاكرز دايما لينيكس؟! ليه فى مبرمجين بيستعملوا ويندوز؟! مش هقول ارهق نفسك واتعلم نظام تشغيل لان دا هيتوقف على كمية الشغف اللى هتكون فيها يعنى فى اللى شغفه ياخده انه يدوس ف لينيكس وفى اللى شغفه هيخليه يقول "ياه كل دا بوست" نفض ويرجع تانى للسرير، زى ما وضحت قبل كدا كل انظمة التشغيل تقدر تعمل كل حاجه بس القصة بقى ان بدل ما تضيع جزء كبير من وقتك فى انك تقوم بتهيئ الادوات علشان تتلائم مع متغيرات بيئة العمل فى نظام تشغيل ما، فى انظمة اتعملت خصيصا علشان تلاقى فيها الادوات دى موجوده وجاهزه للأستخدام بمعنى، عندك مثلا اداه زى SQLMap الاداه دى قوية جداً فى اكتشاف واستغلال ثغرات SQL Injections واحد مره سألنى وقالى عايز اشغلها على ويندوز، طبعا الموضوع مرهق شويه، الاداه تمت كتابتها بلغة البايثون ففى الحالة دى محتاج الاول تنزل Python على ويندوز!! وبعد ما تنزل البايثون وتنصبه محتاج انك تعمل بعض التعديلات فى ال Environment Variables ودا موضوع شاق، طيب ليه اعمل كل دا لما ممكن انزل اى توزيعة لينيكس مصممة خصيصاً لدا؟! بمعنى ان معظم توزيعات لينيكس ان لم يكن جميعها تحتوى "افتراضيا" على بايثون بل ومتناغم جدا مع النظام بمعنى انك مش محتاج انك تقوم بأى خطوات اضافيه علشان تخليه يشتغل، فأنا انصح اى حد هيدخل المجال دا بأنه يقوم بإختيار اى توزيعة من التوزيعات المبنية على لينيكس المخصصه فى المجال دا على سبيل المثال لا الحصر Backtrack او Kali Linux او Black Arch او Backbox او Pentoo او Cyborg Hawk Linux ، وبردو ارجع واذكرك لو انت على ويندوز مفيش اى مشاكل هتقابلك غير المشقه والتعب اما بالنسبه للتوافقيه فكل الادوات هتشتغل على كل الانظمة إلا فى حالة ان كان هناك ادوات تمت كتابتها خصيصا لتعمل على انظمة دون غيرها.
[*] الادوات: الادوات بتاعتك هيا مصدر قوتك، الجميل بقى انك فى المجال دا بالرغم من كل الادوات دى هتلاقى نفسك محتاج حاجات خرافيه محدش هيفهمها غيرك انك، فتقوم تعمل ايه؟!!! تكتبها بنفسك؟! ازاااى؟ زى ما ذكرت دا بيتم من خلال لغات برمجة كتير زى Ruby و Perl وافضلهم Python، بالنسبة للأدوات بقى لازم تدخل جوجل وتدور على الادوات دى وتشوفها بتشتغل ازاى وازاى هتقدر تفيدك، كل اللى اقدر اساعدك بيه انى هديلك اساميها وانت تعيش بقى، خد عندك:
Wireshark - Ettercap - Metasploit - Mantra Browser - Fiddler - Burp Suite - Owasp Zap - Vega Web proxy - DOMinator - Netsparker - SQLMap - IBM Security AppScan - Webinspect - OWASP Xenotix XSS Framework - Zenmap (the gui version of Nmap) - Havij - SwfScan - Acunetix - Web Application Fuzzers.
[*] هنا هتلاقى ادوات مفيده جداً بردو: http://goo.gl/Bs8afv
19-لازم تبقى برنس ومدقدق وتحاول حضور بعض المؤتمرات والمسابقات المهمة جدا على مستوى العالم سواء اونلاين او الحضور الفعلى والاستفاده مثل Defcon - Pown2own - Blackhat - NullCon - Hackthons - OWASP Meetings - AppSec واى ايفنت له علاقة بالسكيوريتى
20-تابع الناس المتميزه فى المجال وحاول تسألهم وتستفيد منهم، الناس دى متولدتش متعلمه كل واحد عمل حاجات كتير علشان يوصل للى وصله دا واكيد الحاجات دى جات على حاجات تانيه زى دراسته مثلا او صحته او او الخ فلاحظ انك مش بتطلب منه شئ سهل.
21-بالنسبة للدراسة الاكاديمية:
الجزء دا مش هقدر اوفى قدرة من الاهتمام ودا لأنى مدرستش دا بشكل اكاديمى بس ممكن اى حد درس يقدر يساعدك
[*] تقدر تدرس اى من مجالات الامن السيبرانى او امن المعلومات فى معهد تكنولوجيا المعلومات ITI او من خلال منحة وزارة الاتصالات MCIT حاول تدور بقى على التراكات دى لأنها ليها شروط قبول وحاول تعرف تفاصيلها.
[*] اما بالنسبه للشهادات ففى شهادات كتير تقدر تاخدها فى المجال دا ابرزهم OSCP اختصاراً لOffensive Security Certified Professional تقدر تعرف عنها اكتر من هنا:http://goo.gl/qM8o2I ودى تعتبر افضل شهاده، فى بردو شهادة CEH اختصاراً الى Certified Ethical Hacking وتقريباً احدث اصدار ليها هوا 8 وتقدر تعرف عنها هنا:http://goo.gl/UUUlUZ الشهادتين طبعاً بيكون فيهم منح تقريباً فخليك متابع بقى الاخبار دى علشان تستفيد.
22-بناء معمل اختبار امنى وهمى للقيام ببعض التجارب على سبيل المثال من خلال تطبيقات متخصصه لدا منها على سبيل المثال Virtual PC - VMWare - VirtualBox، بعد كدا ابدأ بقى نزل الويب سيرفر الخاص بيك على حسب نظام تشغيلك المفضل، وخد عندك الكلمة دى، DVWA اختصاراً ل Damn Vulnerable Web Applications ودى بقى تطبيقات ويب مصابه بثغرات كتيره جدا بشكل مقصود واتعملت خصيصا علشان تتدرب عليها حضرتك، فحاول تنزل كتير منها على الويب سيرفر بتاعك وابدأ انطلق، بس خد بالك حاول تعزل مختبرك الامنى الوهمى دا عن اى شبكات خارجيه علشان للأسف ممكن يكون سبب فى اختراق جهازك الوهمى والحقيقى!
23-انواع الهاكرز "هقول المختصر المفيد فيهم وتقدر تقراً تفصيلاً عنهم هنا:http://goo.gl/P5PEII
[*] Whitehat: الهاكرز ذوى القبعات البيضاء دول نوع من الهاكرز بيحاول يكسر قيود الحماية والامان بس لأسباب الابلاغ عنها واصلاحها مش لأسباب خبيثه خالص ودا علشان يختبر قوة النظام الامنيه وبيقوم بعمل اختبار الاختراق وتقييم نقاط الضعف بشكل متفق ومتعاقد عليه من قبل.
[*] تعريف ويكيبيديا له:
A white hat hacker breaks security for non-malicious reasons, perhaps to test their own security system or while working for a security company which makes security software. The term "white hat" in Internet slang refers to an ethical hacker. This classification also includes individuals who perform penetration tests and vulnerability assessments within a contractual agreement. The EC-Council, also known as the International Council of Electronic Commerce Consultants, is one of those organizations that have developed certifications, courseware, classes, and online training covering the diverse arena of ethical hacking
[*] Blackhat: دا على عكس ال White تماما، ومش محتاج تعريف غير انه بيخترق علشان يسرق وخرب ويعمل بلاوى.
[*] تعريف ويكيبيديا له:
A "black hat" hacker is a hacker who "violates computer security for little reason beyond maliciousness or for personal gain" (Moore, 2005).[9] Black hat hackers form the stereotypical, illegal hacking groups often portrayed in popular culture, and are "the epitome of all that the public fears in a computer criminal". Black hat hackers break into secure networks to destroy, modify, or steal data; or to make the network unusable for those who are authorized to use the network. Black hat hackers are also referred to as the "crackers" within the security industry and by modern programmers. Crackers keep the awareness of the vulnerabilities to themselves and do not notify the general public or the manufacturer for patches to be applied. Individual freedom and accessibility is promoted over privacy and security. Once they have gained control over a system, they may apply patches or fixes to the system only to keep their reigning control. Richard Stallman invented the definition to express the maliciousness of a criminal hacker versus a white hat hacker who performs hacking duties to identify places to repair.
[*] Greyhat: دا بقى وسط الاتنين السالف ذكرهم، بمعنى انه بيخترق النظام او التطبيق علشان يعرف صاحب التطبيق او الجهه المسؤوله عنه ان عندهم ثغرات ومشاكل بل وبيعرض عليهم بعد كدا انه يساعد فى سدها بشكل مجانى
[*] تعريف ويكيبيديا له:
A grey hat hacker lies between a black hat and a white hat hacker. A grey hat hacker may surf the Internet and hack into a computer system for the sole purpose of notifying the administrator that their system has a security defect, for example. They may then offer to correct the defect for a fee. Grey hat hackers sometimes find the defect of a system and publish the facts to the world instead of a group of people. Even though grey hat hackers do not perform hacking for their personal gain, unauthorized access to a system can be considered illegal and unethical.
[*] Bluehat: دا بقى الشخص اللى بيبقى من خارج الشركة او المؤسسه او المنشأه بيتم استخدامه علشان يعمل اختبار للانظمه او التطبيقات قبل اطلاقها بشكل عام علشان يتم اصلاحها.
[*] تعريف ويكيبيديا له:
A blue hat hacker is someone outside computer security consulting firms who is used to bug-test a system prior to its launch, looking for exploits so they can be closed. Microsoft also uses the term BlueHat to represent a series of security briefing events
[*] Elite hacker: دى عبارة عن وصف حالة مجتمعيه بمعنى ان الاليت دا من اخير الهاكرز الموهوبين
[*] تعريق ويكيبيديا له:
A social status among hackers, elite is used to describe the most skilled. Newly discovered exploits circulate among these hackers. Elite groups such as Masters of Deception conferred a kind of credibility on their members.
[*] Script kiddie: بالبلدى "اطفال الهاكر" واحد مبيعرفش اى شئ فى اى شئ غير انه لقى سكربت او تطبيق او شفره وقرأ دليل استخدامها وبالتالى استخدمها لكن فى مجملها ميعرفش تفاصيل، على الاغلب مستخدمى الادوات الاوتوماتيكيه بيطلق عليهم التعريف دا
[*] تعريف ويكيبيديا له:
A script kiddie (also known as a skid or skiddie) is an unskilled hacker who breaks into computer systems by using automated tools written by others (usually by other black hat hackers), hence the term script (i.e. a prearranged plan or set of activities) kiddie (i.e. kid, child—an individual lacking knowledge and experience, immature) usually with little understanding of the underlying concept.
[*] Neophyte: ال Noob او ال Newbie ودا الشخص الجديد او الشخص اللى لا يعرف ولا حاجه عن الهاكينج او التكنولوجيا المستخدمه، بيطلق عليه بردو The 0 Knowledge guy او الشخص اللى معلوماته صفر.
[*] تعريف ويكيبيديا له:
A neophyte ("newbie", or "noob") is someone who is new to hacking or phreaking and has almost no knowledge or experience of the workings of technology and hacking.[10]
[*] Hacktivist: هاكر ذو سمات وطبيعة مجتمعية، بيخترق من اجل نشر اهداف كتيره مختلفه منها السياسية والدينيه والفكرية وبردو له نوعين، نوع شرير والنوع الاخر بيخدم حرية المعلومات.
[*] تعريف ويكيبيديا له:
A hacktivist is a hacker who utilizes technology to publicize a social, ideological, religious or political message.
Hacktivism can be divided into two main groups:
Cyberterrorism — Activities involving website defacement or denial-of-service attacks; and,
Freedom of information — Making information that is not public, or is public in non-machine-readable formats, accessible to the public.
24-يعنى ايه ثغرات، انواعها، اكتشفها ازاى، اقدر استغلها ازاى:
قسمت OWASP اختصاراً ل Open Web Application Security Project وهى منظمة غير هادفة للربح، الثغرات الخاصه بتطبيقات الويب ل 10 انواع رئيسية، التقسيم دا ترتيبه بيبقى متوقف على عوامل كتيره منها الخطوره والانتشار والاثر، ال 10 انواع دول كالتالى:
1 - Injection
2 - Broken Authentication and Session Management
3 - Cross-Site Scripting (XSS)
4 - Insecure Direct Object References
5 - Security Misconfiguration
6 - Sensitive Data Exposure
7 - Missing Function Level Access Control
8 - Cross-Site Request Forgery (CSRF)
9 - Using Components with Known Vulnerabilities
10 - Unvalidated Redirects and Forwards
طبعا الانواع دى بتعتبر انواع رئيسيه، هتلاقى داخلها انواع تانيه فرعية وقمت بشرح بعض منها هتلاقيه فى جزء المصادر اخر البوست، كل نوع من الانواع الرئيسيه او الفرعيه قامت OWASP بشرح طرق اكتشافه واستغلالة بالامثله، عايز تقراً عنهم اكتر بشكل مفصل هنا:http://goo.gl/b2cn9a
[*] ملحوظة بسيطه: فى انواع وطرق وحيل متكشفه حديثاً مش هتلاقيها بتندرج تحت التصنيفات دى ، ودى غالبا بتكون من ابداع باحثين ومحللين امنيين هتقدر تعرفها من المدونات الشخصية بتاعتهم واللى هتلاقيها فى جزأية المصادر بردو.
25-التقارير الامنيه The Security report
التقرير الامنى هو همزة الوصل مابينك ومابين الشركة او المؤسسة اللى بيحتوى تطبيقها او موقعها او خدمتها على خلل امنى ما، كلما كان التقرير اوضح كلما ساعدت الفريق المسؤول عن الحماية والامان او فريق المطورين على فهم المشكله اكبر، حاول قدر الامكان تكون محدد وواضح ولو دعمت التقرير بتاعك بفيديو مفصل هيكون اضافه هايله وهيكون سبب فى قبول التقرير، بل من الممكن زيادة المكافأه بناء على جودة التقرير ووضوحه.
26- برامج المكافأت على الثغرات، الباونتى، المكافأه، ازاى اخد مكافأه، عايز فلوس، عايز اكسب :
مواقع كتير جداً بتؤمن بمبدأ المكافأه على الثغرات الامنية ودا اتبلور فى شكل "برامج المكافأت الامنية" او بإسم Bug Bounty Programs كانت ولازالت من اشهر المواقع اللى بتقدم المكافأت دى هى Facebook و Google و Yahoo و Microsoft طبعا مع اختلاف تفاصيل كل برنامج ففى شركات مش بتكافئ غير على جزء معين من تطبيقاتها او مواقعها، وفى المواقع اللى هتلاقيها عندها تسعيره محدده للثغرات زى جوجل مثلا وهتلاقى شركات اخرى بتحط حد ادنى ولا يوجد حد اقصى زى فيسبوك.
علشان تاخد مكافأت لازم تقرأ الاول قوانين كل شركة وكل برنامح، هناك انوع من الثغرات لا تقبلها الشركات، وهناك انواع تقدر بألاف الدولارات، اقرأ كويس القوانين وابدأ Hunt وقم بمراسلتهم زى ماهما محددين طرق التواصل، ويجب عليك احترام القوانين والا هتبقى بتخالف القوانين والشروط وساعتها هتعرض نفسك لمساءلات قانونيه كتيره.
طيب اكسب ازاى؟!
برامج المكافأت نوعين، نوع بيبقى على موقع الشركه نفسه، هيا اللى بتستضيفه وبتخصصله فريق كامل تحت ادارتها، زى ما بيحصل مع جوجل وفيسبوك مثلا، وفى شركات تانيه بتقوم بفتح برامج ليها على منصات كتيره زى مثلا اشهرها : HackerOne و BugCrowd و CrowdCurity كل اللى انت بتعمله بتدخل على اى موقع من المواقع دى وتبدأ تسجل حساب بإسمك وتستكشف البرامج الموجوده وترسل التقارير، روابط المواقع دى كالتالى:
https://www.hackerone.com
https://www.bugcrowd.com
https://www.crowdcurity.com
[*] فى ملاحظة مهمه اخيره لازم تاخد بالك منها، طيب دلوقتى عرفنا ان فى مواقع بتقدم مكافاّت بشكل قانونى، طيب وبالنسبة لباقى المواقع الموجوده على الانترنت من مواقع متنوعه، خدمات، مواقع بنوك، مواقع حكومية، مواقع خاصه وغيرها؟!
*خد بالك*،مينفعش تدور فى اى مواقع مش معلنه ان عندها برنامج مكافأت، وكمان ملكش الحق دا خالص، لأن دى بتعتبر جريمة ممكن يحاسبك عليها القانون وتبقى فى موقف سيئ قانونياً وبتوصل للحبس احياناً "فى حالات اعرفها حصل معاها دا" فدى نقطة لازم تحطها فى الاعتبار.
1-اول شئ لازم تعرفه ان الموضوع مش سهل مجرد يوم وخلاص بقيت مبرمج عظيم ولاحاجة ... ممكن تتعلم البرمجة في ١٠
émoticôneسنين مثلا (أو اكتر) émoticône grin
2- طيب، في لبس معين لازم تلبس اسود وتسمع روك؟ فكك كل دا كلام فارغ émoticône smile
3- استيعاب المفاهيم البرمجية بعيدا عن لغة البرمجة نفسها
مشكلة حقيقية لما تبقى بتحاول تعلم الناس البرمجة من خلال لغة صعبة ومليانة مطبات زي C/C++
4- أبعد عن البرامج الرسومية وال drag & drop ... لغات زي VB و C# لو متعلمتهاش صح مش هتروح مسافة بعيدة اكتر من انك تعمل drag و drop لمكونات على form! (كدا كدا طريقة تدخل ال gui designer في الكود طريقة متخلفة) (هتعرف بعد شوية)
لغات البداية
في الحقيقة مظنش قدامك غير اختيارات محدودة لموضوع السهولة والبساطة وللتركيز على المفهوم البرمجي اكتر من طريقة كتابة اللغة نفسها (python حاليا هي الأختيار الأمثل وتستخدم كلغة أولى لتعليم البرمجة في أماكن كتير جدا) وكان سابقا لغةScheme/Lisp
المسار التعليمي
==============
الخلفية المطلوبة:
فقط حس منطقي وبعض رياضيات الثانوية العامة
1- لازم كورس تمهيدي ومبسط عن البرمجة
في اختيارات كتير
programming for everybody
https://www.coursera.org/course/pythonlearn
Introduction to computer science with Python (MIT)
https://www.edx.org/…/introduction-computer-science-mitx-6-…
programming foundations (udacity)
https://www.udacity.com/course/ud036
introduction to computer science (udacity)
https://www.udacity.com/course/cs101
انهي واحد منهم وأتجه فورا لأهم كورس في ال computer science (يعتمد على SICP)
كتاب SICP من اهم الكتب على الأطلاق والكورس تم تدريسه بعدة لغات Lisp, Scheme, Python
اختياري هو كورس CS61A
http://cs61a.org
وكتاب composing programs ككتاب معدل من SICP موجه للغة بايثون
http://composingprograms.com
** اذا لديك فضول عن SICP (ملاحظة الكورس يتم تدريسه بلغة LISP)
الكتاب mitpress.mit.edu/sicp/full-text/book/book-Z-H-4.html…
الكورس الأصلي https://www.youtube.com/playlist?list=PLB63C06FAF154F047
يوجد اصدار اخر من CS61 A يقوم بتدريسه Brian Harvey ويعتمد على لغة Scheme
2- يلي ذلك تعمق اكبر في طريقة التفكير المنطقي والخوارزميات (كيف تنفذ برنامج وكيف تقيس مدى جودته)
هتحتاج كورس عن هياكل البيانات والخورازميات
هنا اغلب الناس هتكون مضطرة تتعلم لغة Java عشان الكثير من المصادر
اختياري هو
Algorithms, Part I (Coursera)
https://www.coursera.org/course/algs4partI
مع كتاب Algorithms 4th المستخدم في نفس الكورس
في ناس بتحب توصي بكورس CS 61B وانا منهم بس من تجربتي حاول تشوف اصدار منه ل فيديوهات ل Jonathan Shewchuk لأنه في رأيي احسن حد شرح الكورس دا (والكورس منقسم لجزئين الأول لتعليم اساسيات جافا والتاني للهياكل البيانات والخوارزميات)
الكتاب المستخدم Data Structures & Algorithms ل Robert Tamasia
**ملاحظة الكتاب السابق يوجد له اصدار بلغة بايثون émoticône smile
introduction to algorithms (udacity)
https://www.udacity.com/course/cs215
دلوقتي انت تعرف مقدار كافي لتشق طريقك
الخطوة التالية اختيارية::: استخدم Linux لأن البرمجة عليه ابسط بكتير من غيره
https://www.edx.org/…/introduction-linux-linuxfoundationx-l…
4-الآن وقت تعلم لغة C (هو كورس مقدمة كذلك عن البرمجة ويعرفك على لغات اخرى مثل PHP/Javascript --لم اهتم غير بالجزء الخاص بلغة سي)
وأفضل كورس وجدته هو CS 50 ل David Malan
http://cs50.tv/2013/fall/
وبالقطع كتاب The C Programming Language
5- تعلم عن هيكلية الحاسب ونظم التشغيل (جزء اختياري ولكن من اهم الأجزاء لحياتك ولأستيعابك للكمبيوتر)
أنا افضل ان تتعلم على MIPS (كثير من كورسات هيكلية الحاسب تفضل mips للشرح)
اختياري هو CS 61 C بالإضافة لكورس من جامعة Bilkent التركية
http://www-inst.eecs.berkeley.edu/~cs61c/fa14/
http://webcast.berkeley.edu/playlist…
https://www.youtube.com/playlist…
https://www.coursera.org/course/comparch
https://www.youtube.com/playlist…
الكتاب المستخدم للتدريس هو Operating System Concepts
سنة 2015 هتكون سنة خير ان شاء الله لأن edx ناوية تقدم كورسات في computer organization كمان
مصادر مفيدة للموضوع
http://rust-class.org/
http://web.stanford.edu/…/cgi-b…/cs140-spring14/lectures.php
https://www.udacity.com/wiki/ud156
لسه في حاجات كتير في البرمجة ومجالات كتير
منها مجال صناعة لغات البرمجة émoticône grin وحقيقي من الحاجات الي سعيد انها متوفرلها مصادر كويسة على الانترنت
وكورس اخر من udacity بيشرح على لغة بايثون
https://www.udacity.com/course/cs262
كورس عن ال automata
https://www.coursera.org/course/automata
كورس ل Alex Aiken
https://www.coursera.org/course/compilers
لقواعد البيانات
https://www.coursera.org/course/db
هتتعلم كتير عنها وعن الاستعلامات فيها (وهي شئ مهم جدا لأي مبرمج وادراة قواعد البيانات مجال كامل)
اختيارات عامة
sqlite, mariadb
مجال تطوير الويب
=================
1- اتعلم لغة HTML لكتابة صفحات الأنترنت ولغة CSS لتزيين الصفحة وتغيير الأستايل
2- تعلم لغة Javascript
(تطبيقك ينقسم لجزئين جزء يظهر للعميل عندما يفتح موقعك)وهذا جزء ال client side وللتحكم فيما يظهر يجب اجادة html,css,javascript
والجزء الاخر هو مايحدث على السرفرات الخاصة بك التي تقوم بإضافة وتعديل البيانات وهي جزئية ال server side
وله تحتاج لأختيار لغة برمجة ، يوجد اختيارات عديدة اشهرها
PHP, Python, Ruby
يوجد كورس من udacity لتطوير الويب يستخدم لغة بايثون
https://www.udacity.com/course/cs253
ويوجد العديد من الكورسات عن Ruby (قم بالبحث)
*قم بإستخدام اطار عمل framework ولاتبني كل شئ من الصفر مثلا بايثون لها django, flask و روبي لها rails و php لها laravel, codeigniter ...
ملاحظة:: الموضوع ترتيب منهجي لأول خطواتك وفي حاجات كتير هتهتم بيها في المستقبل
زي Go, Rust, MongoDB, Scheme, Haskell, Ocaml وكل حاجة فيهم عايزة قد البوست دا
====================
فديو مهم جداً لو لسة هتبدأ في الـ Computer science و عاوز تعرف عنها .. بس ملوش ترجمه للأسف
https://goo.gl/Myaf4N
=======================
2 - كورس عربى عبارة عن بداية و مقدمة في الـ Computer Science و شرح رائع لو مبتدأ و متعرفش يعنى اية برمجة وكمبيوتر فهو معمول علشانك و لو اشتغلت قبل كدة هفتستفاد منه بردة ..
https://goo.gl/OgIDfG
-------------------------
3 - دة كورس مقدم من جامعة Harvard من افضل جامعات على مستوى العالم .. بشرحوا فيه الـ Computer science بطريقة عملية و جذابة جداً جداً .. و انا استمتعت بيها جداً و كمان معترف به وبشهادة émoticône grin
https://goo.gl/SkjfXZ
------------------------
4 - لو عاوز الكورس رقم 2 بس الانجلش مقصر معاك شويتين .. دة نفس الكورس بترجمه و كمان ريح دماغك من وجع التسجيل في الموقع émoticône grin
https://goo.gl/rK06jV
------------------------------------
5 - الكورس دة بيشرح يعنى اية علوم الحاسب من البداية خالص و يعنى اية كمبيوتر أصلا ..
https://goo.gl/nFvbBJ
-----------------------------------
6 - أعلي 15 كورس مجاني في مجال الـ Computer Science
الكورسات في البرمجة والجرافيك وهندسة الحاسب - يعني سوفتوير وهاردوير وفيه كورسات كمان عن الـ #Algorithms
الكورسات تجميعة كويسة للي عايز يفهم أكثر عن المجال اللي هو فيه - بمعني أدق متبقاش شغال في حاجة مش عارف اصولها ايه
1.Visual Navigation for Flying Robots
http://goo.gl/23K2hx
2.Understanding #Computers and the Internet
http://goo.gl/mnZvoS
3.Search Engines: Technology, Society and Business
http://goo.gl/QgWnhY
4.Responsible Computing
http://goo.gl/YqZOxV
5.Programming for #Designers
http://goo.gl/2abyp8
6.Probabilistic Systems Analysis and Applied Probability
http://goo.gl/hMB6PD
7.Online Graphics
http://goo.gl/rYPBm6
8.Introduction to Problem Solving & Programming
http://goo.gl/Qv6Ku3
9.Introduction to Electrical #Engineering and Computer Science
http://goo.gl/ds3lnQ
10.Introduction to Computer #Graphics
http://goo.gl/GUUtuH
11.Introduction to Computer Science: #Programming Paradigms
http://goo.gl/7hHfC9
12.Introduction to Computer Science: Programming Abstractions
http://goo.gl/gFSUkF
13.Introduction to Computer Science: Programming Methodology
http://goo.gl/eihvyb
14.Introduction to Computer Science and Programming
http://goo.gl/AaYhnp
15.Introduction to Algorithms
http://goo.gl/e73Hxa
---------------------------------
عاوز يبدأ برمجة émoticône grin يبدأ ها .. يبدأ émoticône grin
١- كورس :Introduction to Computer Science and Programming
للبدء: http://buff.ly/1hWvYW0
---------------------------
٢- كورس: Android 101
للبدء: http://buff.ly/1hWvYW1
---------------------------
٣- كورس: Oracle Certified Professional Developer (OCP) - SQL
للبدء: http://buff.ly/1k9Wi3r
---------------------------
٤- كورس: HTML 5
للبدء: http://buff.ly/1k9Wi3q
---------------------------
٥- كورس: CSS & CSS3
للبدء: http://buff.ly/1k9Wi3p
---------------------------
٦- كورس: JavaScript - JS
للبدء: http://buff.ly/1g2vCM6
---------------------------
٧- كورس: PHP
للبدء: http://buff.ly/1g2EAcq
---------------------------
٨- كورس: PHP Object Oriented Programming - OOP
للبدء: http://buff.ly/1kaJmdz
---------------------------
٩- كورس: Algorithms & Data Structure - DSA
للبدء: http://buff.ly/1hXoNwI
---------------------------
١٠- كورس: SharePoint
للبدء: http://buff.ly/1hXzcIG
---------------------------
١١- كورس: Java 101
للبدء: http://buff.ly/1a41SOq
---------------------------
١٢- كورس: jQuery
للبدء: http://buff.ly/1a44coL
---------------------------
١٣- كورس: Python
للبدء: http://buff.ly/1cp6xGT
---------------------------
١٤- كورس: Ajax
للبدء: http://buff.ly/1cpeITD
------------------------------------------------
دي مجموعه كورسات computer science من أكتر من جامعه منهم هارفارد و بيركلي و MIT و بشهاده بعد ما تخلص الكورس في حالة لو لحقت تخلصه قبل ما تاريخ الانتهاء يجي لو الكورس كان بتاريخ قديم تقدر تستفيد بالمحتوى:
لو عاوز تتعلم لينكس او سمعت عنها émoticône grin الكورس دة هيبدأ معاك من البداية خااااااالص émoticône grin
Introduction to Linux
http://goo.gl/Xh4XnA
هنا مقدمة عن علوم الحاسب و عن لغة البايثون ..
Introduction to Computer Science and Programming Using Python
http://goo.gl/2CbwNk
Embedded Systems - Shape The World
http://goo.gl/3fctxY
The Computing Technology Inside Your Smartphone
http://goo.gl/cHXaiS
Artificial Intelligence
http://goo.gl/xbeOOg
Introduction to Big Data with Apache Spark
http://goo.gl/YaCrZs
Applications of Linear Algebra Part 1
http://goo.gl/XQNHfJ
---------------------------------------------
لو عايز كورسات أونلاين مجانيه وبتديك شهاده
يبقي لازم تتعب وتشوف الكورسات دي (في مختلف المجالات) ....
1-Java Tutorial
https://www.udemy.com/java-tutorial/
2- Computer Networks
https://www.coursera.org/course/comnetworks
3-C++ For C Programmers
https://www.coursera.org/course/cplusplus4c
4-The Growth Hacker Interviews
https://www.udemy.com/the-growth-hacker-interviews/
5- Interactive Programming in Python
https://www.coursera.org/course/interactivepython1
6-Learn English Basics
https://www.udemy.com/learn-english-basics-elementary-meth…/
7-C++, Short and Sweet
https://www.udemy.com/cpp-short-and-sweet/
8- Learn HTML5 Programming
https://www.udemy.com/learn-html5-programming-from-scratch/
9-Beginning Game Programming with C#
https://www.coursera.org/course/gameprogramming
10- Drawing basics بدون شهاده
https://www.khanacademy.org/…/co…/programming/drawing-basics
11- Project Management
https://www.udemy.com/project-management/
12- Photoshop CS6
https://www.udemy.com/adobe-photoshop-cs6-new-features/
13- Human Resources بدون شهاده
https://www.open2study.com/courses/human-resources
14- English Common Law
https://www.coursera.org/course/engcomlaw
15- Introduction to Finance
https://www.coursera.org/course/introfinance
16-Android Programming
https://www.udemy.com/learn-android-programming-from-scrat…/
17- Spanish for Beginners
https://www.udemy.com/learn-spanish/
18- Java Programming
https://www.udacity.com/co…/intro-to-java-programming--cs046
19- Operations Management
https://www.udemy.com/operations-management/
20- Microsoft Excel 2013
https://www.udemy.com/introduction-to-microsoft-excel-2013/
21- Computer Science
https://www.udacity.com/co…/intro-to-computer-science--cs101
22-Photoshop for Technical Drawings
http://www.pluralsight.com/cou…/photoshop-technical-drawings
23- Introduction to Marketing
https://www.coursera.org/course/whartonmarketing
24-Machine Learning
https://www.coursera.org/course/ml
25-The Landscape of English Language Teaching
https://www.coursera.org/course/shaping1landscape
26- Java Multithreading
https://www.udemy.com/java-multithreading/
27- Web Development
https://www.udacity.com/course/web-development--cs253
28-HTML Workshop
https://www.udemy.com/html-workshop/
29-Java Design Patterns
https://www.udemy.com/java-design-patterns-tutorial/
30- Learn Javascript
https://www.udemy.com/learn-javascript-jquery-from-scratch/
31-Foundations of Business Strategy
https://www.coursera.org/learn/business-strategy
32-Growth Hacking
https://generalassemb.ly/online/videos/growth-hacking
33-Project Management
https://www.open2study.com/…/principles-of-project-manageme…
34- FREE Photography Course
https://www.udemy.com/karl-taylors-free-photography-course/
35-Circuits and Electronics
http://ocw.mit.edu/…/6-002-circuits-and-electronics-spring…/
36-Foundations of Business Strategy
https://www.udemy.com/foundations-of-business-strategy/
37-SEO Training Course
https://www.udemy.com/whiteboard-seo/
38-Accounting in 60 Minutes
https://www.udemy.com/accounting-in-60-minutes-a-brief-int…/
39-Google Analytics
https://www.udemy.com/getting-started-with-google-analytics/
40-English Composition
https://www.coursera.org/course/composition
41-How To Make App For Iphone, Android
https://www.udemy.com/how-to-make-app-for-iphone-android-k…/
42- Android Apps
https://www.coursera.org/course/androidapps101
43-Introduction to Computer Science
https://www.edx.org/…/introduction-computer-science-harvard…
44-Introduction to Computer Science and Programming
https://www.edx.org/…/introduction-computer-science-mitx-6-…
45-JavaScript Road
https://www.codeschool.com/cour…/javascript-road-trip-part-1
46-Written English
https://www.edx.org/…/principles-written-english-part-1-uc-…
47-Financial Accounting
https://www.coursera.org/course/whartonaccounting
48-Fundamentals of Electrical Engineering
https://www.coursera.org/course/eefun
49-Animation basics بدون شهاده
https://www.khanacademy.org/…/…/programming/animation-basics
50- English Grammar and Style
https://www.edx.org/c…/english-grammar-style-uqx-write101x-0
51-Introduction to Data Science
https://www.coursera.org/course/datasci
52-Graphic Design
https://www.udemy.com/introduction-to-graphic-design/
53-Programming Mobile Applications for Android
https://www.coursera.org/course/androidpart1
54-PHP Programming Language
https://www.udemy.com/introduction-to-php-programming-trai…/
55-Learn to Program
https://www.coursera.org/course/programming1
56-Introduction to Computer Science and Programming
http://ocw.mit.edu/…/6-00-introduction-to-computer-science…/
57-Creating a Business Website
https://www.udemy.com/creating-a-business-website/
58-Android 2.X App Development
https://www.udemy.com/social-and-geolocated-android-apps/
59-Introduction to Python for Beginners
https://www.udemy.com/introduction-to-python-for-beginners/
60-Linux Command Line Basics
https://www.udemy.com/linux-command-line-volume1/
61-Prioritization for Product Managers بدون شهاده
https://generalassemb.ly/…/prioritization-for-product-manag…
62-Introduction to Electrical Engineering
http://ocw.mit.edu/…/6-01sc-introduction-to-electrical-eng…/
63-Entrepreneurship From Idea to Launch
https://www.udemy.com/entrepreneurship-from-idea-to-launch/
64-Learn Microsoft Excel Pivot Tables
https://www.udemy.com/learn-microsoft-excel-pivot-tables/
65-HTML5 Game Development
https://www.udacity.com/course/html5-game-development--cs255
66-Learning Java.
https://www.udemy.com/java-tutorial-video/
67-Mastering HTML5 Programming
https://www.udemy.com/html5-programming-tutorials/
68-Zero Cost Marketing Strategies
https://www.udemy.com/zero-cost-marketing-secrets-official…/
69-Excel for Business
https://www.udemy.com/draft/25178/
70-Conversational English Skills
https://www.edx.org/…/conversational-english-skills-tsinghu…
--------------------
-Creative Programming for Digital Media & Mobile Apps
نبذة عن الكورس :
كورس بناء تطبيقات وبرامج تتعامل مع الصوت والصورة والفيديو ، ينبغي أن يكون لدى المشترك خلفيات أساسية في علوم الحاسوب والبرمجة بشكل عام.
لينك الكورس :
https://www.coursera.org/course/digitalmedia
=========================
-Introduction to R Programming
نبذة عن الكورس :
المتخصصة فى علم الإحصاء و المشاريع الصغيرة .Rدورة مجانية من ميكروسوفت لتعلم لغة
لينك الكورس: https://goo.gl/GuQ23t
==========================
Software Security
نبذة عن الكورس :
دورة تغطي مجالات حماية البرمجيات بشكل عام ، سوف تتطرق إلى الحماية من عدة أنواع من الهجمات والاختراقات.
لينك الكورس: https://www.coursera.org/course/softwaresec
==========================
Computer Graphics
نبذة عن الكورس :
في هذا الكورس الذي يستمر لمدة 6 أسابيع ، سوف تتعلم مفهوم الرسوميات الثلاثية الأبعاد من زاوية برمجية وكيفية تطوير أدوات وبرامج تصنع رسوميات ثلاثية الأبعاد وكذلك طريقة استعمال الـ(OpenGL) ، هذه الدورة مقدمة من جامعة كاليفورنيا الأمريكية.
لينك الكورس: https://goo.gl/sYH8UW
==========================
Introduction to Computer Science and Programming Using Python
نبذة عن الكورس :
هذه الدورة موجهة للمبتدئين في عالم البرمجة ، تعطي القواعد الأساسية لبرمجة الحاسوب وتطوير التطبيقات ، ويتم استخدام لغة بايثون للتطبيق العملي ، فالمشترك سوف يتعلم اساسيات البرمجة وكذلك أساسيات لغة البرمجة (بايثون) ، الدورة مقدمة من معهد (Massachusetts) التقني في كامبردج الأمريكية.
لينك الكورس: https://goo.gl/nWKtZb
===============================
اكيد فكرت كتير انك تبقى هكر émoticône grin صح .. طيب تعرف ازاى émoticône devil
فى البوست دا حاولت بقدر الامكان انى اجاوب فيه على كل الاسئلة اللى اتسألتلى فى الفتره اللى فاتت وعن معظم الاسئلة اللى هتجول فى خاطرك علشان تبدأ فى مجالين متلازمين ببعض من منظورى الشخصى وهم 1- البرمجة 2- ومنها تقدر تبدأ بسهولة البدء فى مجال القرصنة الاخلاقية Ethical Hacking او تحديداً وبشكل ادق مجال حماية وامان واختبار اختراق تطبيقات الويب Web Application Penetration Testing فى صورة نصائح لراغبى البدء فى اى منهم، النصائح دى بتتلخص فى بعض النقاط وهى:
1-إتقان اللغة الانجليزية "اهم شئ" مش هتعرف تمشى كويس بدون الانجلش.
2-تعلم مبادئ البرمجة والمفاهيم العامة Programming Concepts and Fundamentals
3-التركيز على لغة برمجة واحده والبعد عن التشتيت والحشو المعلوماتى، لغات البرمجة اللى ممكن تعمل بيها تطبيقات ويب كتيره منها PHP و ASP و Java و Ruby و Python و Perl كلها لغات برمجة اتخلقت علشان تؤدى مهام واغراض كتيره متشابهه، تقدر بشكل عام تختار الانسب ليك منها وتبدأ تتعلمه، فكرة انك لازم علشان تبقى حد معدى ان يبقى معاك مليار لغة برمجة دى فكره خطأ جداً الحشو دا هيخليك متعرفش تمشى فى ولا واحده فيهم، اتعلم المفاهيم والاساسيات العامه للبرمجه هتلاقى نفسك لو بصيت على اى كود فى العالم هتفهم دا اتكتب بلغة برمجة ايه وبيعمل ايه ماعدا اكواد ال Assembly علشان مبقاش بغشك، بشكل عام دا انفوجراف هيبينلك مدى قوة كل لغة منهم على حده وهيساعدك تختار مابينهمhttp://goo.gl/1yQggG
4-تعلم واتقان تكنولوجيا الويب المختلفة مثل HTML & HTML5 و CSS & CSS3 و JavaScript و Ajax و Jquery و XML و json الحاجات دى بديهيه وضروريه وهتساعدك كتير جدا وبدونها مش هتقدر تفهم حاجات كتير جداً بردو.
5-لو انت بقى مش مهتم لا بالحماية والامان ولا اختبار اختراق تطبيقات الويب، وعايز تدخل مجال برمجة الموبايل فبالنسبة للمجال دا لازم تسأل نفسك الاول وتحدد ياترى انت ناوى تبرمج لأى منصة؟! حددت المنصة، بعدها تشوف بقى كل منصة بتتطلب اجادة اى لغة برمجة تحديدا بمعنى انك:
6-لو عايز تبرمج لنظام التشغيل Android يبقى لازم تتقن لغة البرمجة Java
7-لو عايز تبرمج لكل منتجات شركة Apple ففى الحالة دى يبقى لازم تتقن لغة البرمجة Objective C
8-لو عايز تبرمج لنظام التشغيل Windows Phone يبقى لازم تتقن لغة البرمجة C#.Net اوVB.Net او اى منصة عملتها او هتعملها مايكروسوفت بتدعم البرمجة لنظام تشغيلها
9-دا لينك فيه كورسات لكل ما سبق ذكره: http://goo.gl/IBxsfK
10-منتنظرش المعلومة فى طبق من دهب من اى حد بما فيهم انا، محدش هيساعدك غير نفسك، فى حاجه اسمها التعلم الذاتى والمثابره.
11-إتقان مهارات البحث على جميع محركات البحث واشهرها جوجل، هتلاقى الكلام دا هنا:http://goo.gl/oX5d9x وهنا: http://goo.gl/XD5lNp .
12-لازم تعرف ايه الفرق مابين نوعين من المواقع والتطبيقات على الانترنت، واللى هيا Static ودى ماهى الا صفحات غير تفاعليه بتعرض فقط بيانات على سبيل مثال جرائد الاخبار الموجودة على الانترنت، اما فى حالة لو سمحتلك الجرائد دى بأنك تتفاعل معاها من خلال التعليقات والاعجاب و و الخ فى الحالة دى بيطلق عليها تطبيقات ويب او Dynamic Web Applications.
13-الايمان بمبدأ الـ Ethical Hacking وإعلاء القيم الانسانية الحسنة عن تلك الشريرة الدفينة فى النفس البشرية بدون انتظار اى مقابل، بمعنى انك هتيجى عليك فتره وتسأل نفسك ياترى ايه اللى يجبرنى او ايه اللى يخلينى افضل ابلغ عن الثغرات والاخطاء دى لأصحاب المواقع؟! او او او كلها اسئلة هتجول فى فكرك يوماً ما، بس دايما حط فى دماغك ان اللى انت بتعمله دا فيه قيمة انسانية اكتر ما هتسرق مثلا او تخرب.
14-القيام بتنمية المهارات البرمجية دا هيساعد فى البداية لمعرفه ما هى اللغة التى تمت كتابة موقع ما بها حتى يقوم بالبحث والاستكشاف عن نقاط الضعف والابلاغ عنها.
15-دراسة الشبكات بشكل اساسى وبدون تعمق لأن فى حاجات كتير جداً هتمر بيها ولازم تكون عالاقل عارف معناها زى مثلا IP و Router و Access Control Level وغيرها من المصطلحات المرتبطة.
16-لازم ولابد تعرف يعنى ايه مخدم محلى او Local Web Server، يعنى ايه ويب سيرفر، هوا ايه الشئ دا اللى انا بروحله ويخدمنى ويجيبلى الصفحات والمواقع لحد عندى، مخدمات الانترنت وانظمتها جيداً.
17-خد بالك بردو ان فى مصطلحات كتيره بديهيه بقى لازم تاخد بالك منها وتجتهد وتبحث وتقرا فيها علشان تعرف معناها على سبيل المثال لا الحصر:
[*] يعنى ايه Web Server وانواعها المختلفه زى Apache و IIS و GWS و Nginx و Appserv و XAMPP؟! تقدر تعرف دا من هنا: http://goo.gl/9jjv0e
[*] يعنى ايه Request بالتفصيل وطرقة وانواعه؟! تقدر تعرف دا من هنا:http://goo.gl/XIW4rh
[*] يعنى ايه Http Headers بأنواعها؟! تقدر تعرف دا من هنا: http://goo.gl/iaiG2W
[*] يعنى ايه Response وانواعه واكواد الحالة الخاصه بيه وتفاصيله!؟ تقدر تعرف دا من هنا:http://goo.gl/LMt5PE
[*] يعنى ايه Mysql و Mssql و Postgresql و Phpmyadmin ؟!
[*] يعنى ايه http و https و ssl و certificate و interception و Proxy و Protocols و Framework و Authenticate و Authorize و Privileges و Escalation ولو معرفتش دور وابحث وترجم.!
[*] هتلاقى فى مصطلحات هتقابلك بردو مكعبله متعديهاش وتقول هقراها بعدين، اقف واقرا عن اللى وقفك دا، وبعدين كمل صدقنى هتحس بمتعة فعلا.
18-هيا الى العمل، ندخل بقى ف الجد شوية، بالنسبة لـ :
[*] مواصفات الجهاز: مش هتكلم فى الجزأية دى ولا اقول مواصفات جهاز بعينه بس بشكل عام كل ما كان الجهاز ذو معالج قوى ورامات قوية هيديلك اداء افضل واحسن.
[*] نظام التشغيل: المعلومة دى على مسؤوليتى الشخصيه، اى نظام تشغيل هيخليك تقدر تعمل اى شئ سواء كان ويندوز او لينيكس او ماك فى اى مجال سواء كان برمجة او تصميم او اختبار اختراق، كل الموضوع بس ان فى انظمة (افضل) وحط تحت كلمة افضل دى خط عريض افضل فى انها تؤدى مهام بعينها، دا يخليك تسأل نفسك، ليه الديزاينرز دايما بيستعملوا ماك؟! ليه الهاكرز دايما لينيكس؟! ليه فى مبرمجين بيستعملوا ويندوز؟! مش هقول ارهق نفسك واتعلم نظام تشغيل لان دا هيتوقف على كمية الشغف اللى هتكون فيها يعنى فى اللى شغفه ياخده انه يدوس ف لينيكس وفى اللى شغفه هيخليه يقول "ياه كل دا بوست" نفض ويرجع تانى للسرير، زى ما وضحت قبل كدا كل انظمة التشغيل تقدر تعمل كل حاجه بس القصة بقى ان بدل ما تضيع جزء كبير من وقتك فى انك تقوم بتهيئ الادوات علشان تتلائم مع متغيرات بيئة العمل فى نظام تشغيل ما، فى انظمة اتعملت خصيصا علشان تلاقى فيها الادوات دى موجوده وجاهزه للأستخدام بمعنى، عندك مثلا اداه زى SQLMap الاداه دى قوية جداً فى اكتشاف واستغلال ثغرات SQL Injections واحد مره سألنى وقالى عايز اشغلها على ويندوز، طبعا الموضوع مرهق شويه، الاداه تمت كتابتها بلغة البايثون ففى الحالة دى محتاج الاول تنزل Python على ويندوز!! وبعد ما تنزل البايثون وتنصبه محتاج انك تعمل بعض التعديلات فى ال Environment Variables ودا موضوع شاق، طيب ليه اعمل كل دا لما ممكن انزل اى توزيعة لينيكس مصممة خصيصاً لدا؟! بمعنى ان معظم توزيعات لينيكس ان لم يكن جميعها تحتوى "افتراضيا" على بايثون بل ومتناغم جدا مع النظام بمعنى انك مش محتاج انك تقوم بأى خطوات اضافيه علشان تخليه يشتغل، فأنا انصح اى حد هيدخل المجال دا بأنه يقوم بإختيار اى توزيعة من التوزيعات المبنية على لينيكس المخصصه فى المجال دا على سبيل المثال لا الحصر Backtrack او Kali Linux او Black Arch او Backbox او Pentoo او Cyborg Hawk Linux ، وبردو ارجع واذكرك لو انت على ويندوز مفيش اى مشاكل هتقابلك غير المشقه والتعب اما بالنسبه للتوافقيه فكل الادوات هتشتغل على كل الانظمة إلا فى حالة ان كان هناك ادوات تمت كتابتها خصيصا لتعمل على انظمة دون غيرها.
[*] الادوات: الادوات بتاعتك هيا مصدر قوتك، الجميل بقى انك فى المجال دا بالرغم من كل الادوات دى هتلاقى نفسك محتاج حاجات خرافيه محدش هيفهمها غيرك انك، فتقوم تعمل ايه؟!!! تكتبها بنفسك؟! ازاااى؟ زى ما ذكرت دا بيتم من خلال لغات برمجة كتير زى Ruby و Perl وافضلهم Python، بالنسبة للأدوات بقى لازم تدخل جوجل وتدور على الادوات دى وتشوفها بتشتغل ازاى وازاى هتقدر تفيدك، كل اللى اقدر اساعدك بيه انى هديلك اساميها وانت تعيش بقى، خد عندك:
Wireshark - Ettercap - Metasploit - Mantra Browser - Fiddler - Burp Suite - Owasp Zap - Vega Web proxy - DOMinator - Netsparker - SQLMap - IBM Security AppScan - Webinspect - OWASP Xenotix XSS Framework - Zenmap (the gui version of Nmap) - Havij - SwfScan - Acunetix - Web Application Fuzzers.
[*] هنا هتلاقى ادوات مفيده جداً بردو: http://goo.gl/Bs8afv
19-لازم تبقى برنس ومدقدق وتحاول حضور بعض المؤتمرات والمسابقات المهمة جدا على مستوى العالم سواء اونلاين او الحضور الفعلى والاستفاده مثل Defcon - Pown2own - Blackhat - NullCon - Hackthons - OWASP Meetings - AppSec واى ايفنت له علاقة بالسكيوريتى
20-تابع الناس المتميزه فى المجال وحاول تسألهم وتستفيد منهم، الناس دى متولدتش متعلمه كل واحد عمل حاجات كتير علشان يوصل للى وصله دا واكيد الحاجات دى جات على حاجات تانيه زى دراسته مثلا او صحته او او الخ فلاحظ انك مش بتطلب منه شئ سهل.
21-بالنسبة للدراسة الاكاديمية:
الجزء دا مش هقدر اوفى قدرة من الاهتمام ودا لأنى مدرستش دا بشكل اكاديمى بس ممكن اى حد درس يقدر يساعدك
[*] تقدر تدرس اى من مجالات الامن السيبرانى او امن المعلومات فى معهد تكنولوجيا المعلومات ITI او من خلال منحة وزارة الاتصالات MCIT حاول تدور بقى على التراكات دى لأنها ليها شروط قبول وحاول تعرف تفاصيلها.
[*] اما بالنسبه للشهادات ففى شهادات كتير تقدر تاخدها فى المجال دا ابرزهم OSCP اختصاراً لOffensive Security Certified Professional تقدر تعرف عنها اكتر من هنا:http://goo.gl/qM8o2I ودى تعتبر افضل شهاده، فى بردو شهادة CEH اختصاراً الى Certified Ethical Hacking وتقريباً احدث اصدار ليها هوا 8 وتقدر تعرف عنها هنا:http://goo.gl/UUUlUZ الشهادتين طبعاً بيكون فيهم منح تقريباً فخليك متابع بقى الاخبار دى علشان تستفيد.
22-بناء معمل اختبار امنى وهمى للقيام ببعض التجارب على سبيل المثال من خلال تطبيقات متخصصه لدا منها على سبيل المثال Virtual PC - VMWare - VirtualBox، بعد كدا ابدأ بقى نزل الويب سيرفر الخاص بيك على حسب نظام تشغيلك المفضل، وخد عندك الكلمة دى، DVWA اختصاراً ل Damn Vulnerable Web Applications ودى بقى تطبيقات ويب مصابه بثغرات كتيره جدا بشكل مقصود واتعملت خصيصا علشان تتدرب عليها حضرتك، فحاول تنزل كتير منها على الويب سيرفر بتاعك وابدأ انطلق، بس خد بالك حاول تعزل مختبرك الامنى الوهمى دا عن اى شبكات خارجيه علشان للأسف ممكن يكون سبب فى اختراق جهازك الوهمى والحقيقى!
23-انواع الهاكرز "هقول المختصر المفيد فيهم وتقدر تقراً تفصيلاً عنهم هنا:http://goo.gl/P5PEII
[*] Whitehat: الهاكرز ذوى القبعات البيضاء دول نوع من الهاكرز بيحاول يكسر قيود الحماية والامان بس لأسباب الابلاغ عنها واصلاحها مش لأسباب خبيثه خالص ودا علشان يختبر قوة النظام الامنيه وبيقوم بعمل اختبار الاختراق وتقييم نقاط الضعف بشكل متفق ومتعاقد عليه من قبل.
[*] تعريف ويكيبيديا له:
A white hat hacker breaks security for non-malicious reasons, perhaps to test their own security system or while working for a security company which makes security software. The term "white hat" in Internet slang refers to an ethical hacker. This classification also includes individuals who perform penetration tests and vulnerability assessments within a contractual agreement. The EC-Council, also known as the International Council of Electronic Commerce Consultants, is one of those organizations that have developed certifications, courseware, classes, and online training covering the diverse arena of ethical hacking
[*] Blackhat: دا على عكس ال White تماما، ومش محتاج تعريف غير انه بيخترق علشان يسرق وخرب ويعمل بلاوى.
[*] تعريف ويكيبيديا له:
A "black hat" hacker is a hacker who "violates computer security for little reason beyond maliciousness or for personal gain" (Moore, 2005).[9] Black hat hackers form the stereotypical, illegal hacking groups often portrayed in popular culture, and are "the epitome of all that the public fears in a computer criminal". Black hat hackers break into secure networks to destroy, modify, or steal data; or to make the network unusable for those who are authorized to use the network. Black hat hackers are also referred to as the "crackers" within the security industry and by modern programmers. Crackers keep the awareness of the vulnerabilities to themselves and do not notify the general public or the manufacturer for patches to be applied. Individual freedom and accessibility is promoted over privacy and security. Once they have gained control over a system, they may apply patches or fixes to the system only to keep their reigning control. Richard Stallman invented the definition to express the maliciousness of a criminal hacker versus a white hat hacker who performs hacking duties to identify places to repair.
[*] Greyhat: دا بقى وسط الاتنين السالف ذكرهم، بمعنى انه بيخترق النظام او التطبيق علشان يعرف صاحب التطبيق او الجهه المسؤوله عنه ان عندهم ثغرات ومشاكل بل وبيعرض عليهم بعد كدا انه يساعد فى سدها بشكل مجانى
[*] تعريف ويكيبيديا له:
A grey hat hacker lies between a black hat and a white hat hacker. A grey hat hacker may surf the Internet and hack into a computer system for the sole purpose of notifying the administrator that their system has a security defect, for example. They may then offer to correct the defect for a fee. Grey hat hackers sometimes find the defect of a system and publish the facts to the world instead of a group of people. Even though grey hat hackers do not perform hacking for their personal gain, unauthorized access to a system can be considered illegal and unethical.
[*] Bluehat: دا بقى الشخص اللى بيبقى من خارج الشركة او المؤسسه او المنشأه بيتم استخدامه علشان يعمل اختبار للانظمه او التطبيقات قبل اطلاقها بشكل عام علشان يتم اصلاحها.
[*] تعريف ويكيبيديا له:
A blue hat hacker is someone outside computer security consulting firms who is used to bug-test a system prior to its launch, looking for exploits so they can be closed. Microsoft also uses the term BlueHat to represent a series of security briefing events
[*] Elite hacker: دى عبارة عن وصف حالة مجتمعيه بمعنى ان الاليت دا من اخير الهاكرز الموهوبين
[*] تعريق ويكيبيديا له:
A social status among hackers, elite is used to describe the most skilled. Newly discovered exploits circulate among these hackers. Elite groups such as Masters of Deception conferred a kind of credibility on their members.
[*] Script kiddie: بالبلدى "اطفال الهاكر" واحد مبيعرفش اى شئ فى اى شئ غير انه لقى سكربت او تطبيق او شفره وقرأ دليل استخدامها وبالتالى استخدمها لكن فى مجملها ميعرفش تفاصيل، على الاغلب مستخدمى الادوات الاوتوماتيكيه بيطلق عليهم التعريف دا
[*] تعريف ويكيبيديا له:
A script kiddie (also known as a skid or skiddie) is an unskilled hacker who breaks into computer systems by using automated tools written by others (usually by other black hat hackers), hence the term script (i.e. a prearranged plan or set of activities) kiddie (i.e. kid, child—an individual lacking knowledge and experience, immature) usually with little understanding of the underlying concept.
[*] Neophyte: ال Noob او ال Newbie ودا الشخص الجديد او الشخص اللى لا يعرف ولا حاجه عن الهاكينج او التكنولوجيا المستخدمه، بيطلق عليه بردو The 0 Knowledge guy او الشخص اللى معلوماته صفر.
[*] تعريف ويكيبيديا له:
A neophyte ("newbie", or "noob") is someone who is new to hacking or phreaking and has almost no knowledge or experience of the workings of technology and hacking.[10]
[*] Hacktivist: هاكر ذو سمات وطبيعة مجتمعية، بيخترق من اجل نشر اهداف كتيره مختلفه منها السياسية والدينيه والفكرية وبردو له نوعين، نوع شرير والنوع الاخر بيخدم حرية المعلومات.
[*] تعريف ويكيبيديا له:
A hacktivist is a hacker who utilizes technology to publicize a social, ideological, religious or political message.
Hacktivism can be divided into two main groups:
Cyberterrorism — Activities involving website defacement or denial-of-service attacks; and,
Freedom of information — Making information that is not public, or is public in non-machine-readable formats, accessible to the public.
24-يعنى ايه ثغرات، انواعها، اكتشفها ازاى، اقدر استغلها ازاى:
قسمت OWASP اختصاراً ل Open Web Application Security Project وهى منظمة غير هادفة للربح، الثغرات الخاصه بتطبيقات الويب ل 10 انواع رئيسية، التقسيم دا ترتيبه بيبقى متوقف على عوامل كتيره منها الخطوره والانتشار والاثر، ال 10 انواع دول كالتالى:
1 - Injection
2 - Broken Authentication and Session Management
3 - Cross-Site Scripting (XSS)
4 - Insecure Direct Object References
5 - Security Misconfiguration
6 - Sensitive Data Exposure
7 - Missing Function Level Access Control
8 - Cross-Site Request Forgery (CSRF)
9 - Using Components with Known Vulnerabilities
10 - Unvalidated Redirects and Forwards
طبعا الانواع دى بتعتبر انواع رئيسيه، هتلاقى داخلها انواع تانيه فرعية وقمت بشرح بعض منها هتلاقيه فى جزء المصادر اخر البوست، كل نوع من الانواع الرئيسيه او الفرعيه قامت OWASP بشرح طرق اكتشافه واستغلالة بالامثله، عايز تقراً عنهم اكتر بشكل مفصل هنا:http://goo.gl/b2cn9a
[*] ملحوظة بسيطه: فى انواع وطرق وحيل متكشفه حديثاً مش هتلاقيها بتندرج تحت التصنيفات دى ، ودى غالبا بتكون من ابداع باحثين ومحللين امنيين هتقدر تعرفها من المدونات الشخصية بتاعتهم واللى هتلاقيها فى جزأية المصادر بردو.
25-التقارير الامنيه The Security report
التقرير الامنى هو همزة الوصل مابينك ومابين الشركة او المؤسسة اللى بيحتوى تطبيقها او موقعها او خدمتها على خلل امنى ما، كلما كان التقرير اوضح كلما ساعدت الفريق المسؤول عن الحماية والامان او فريق المطورين على فهم المشكله اكبر، حاول قدر الامكان تكون محدد وواضح ولو دعمت التقرير بتاعك بفيديو مفصل هيكون اضافه هايله وهيكون سبب فى قبول التقرير، بل من الممكن زيادة المكافأه بناء على جودة التقرير ووضوحه.
26- برامج المكافأت على الثغرات، الباونتى، المكافأه، ازاى اخد مكافأه، عايز فلوس، عايز اكسب :
مواقع كتير جداً بتؤمن بمبدأ المكافأه على الثغرات الامنية ودا اتبلور فى شكل "برامج المكافأت الامنية" او بإسم Bug Bounty Programs كانت ولازالت من اشهر المواقع اللى بتقدم المكافأت دى هى Facebook و Google و Yahoo و Microsoft طبعا مع اختلاف تفاصيل كل برنامج ففى شركات مش بتكافئ غير على جزء معين من تطبيقاتها او مواقعها، وفى المواقع اللى هتلاقيها عندها تسعيره محدده للثغرات زى جوجل مثلا وهتلاقى شركات اخرى بتحط حد ادنى ولا يوجد حد اقصى زى فيسبوك.
علشان تاخد مكافأت لازم تقرأ الاول قوانين كل شركة وكل برنامح، هناك انوع من الثغرات لا تقبلها الشركات، وهناك انواع تقدر بألاف الدولارات، اقرأ كويس القوانين وابدأ Hunt وقم بمراسلتهم زى ماهما محددين طرق التواصل، ويجب عليك احترام القوانين والا هتبقى بتخالف القوانين والشروط وساعتها هتعرض نفسك لمساءلات قانونيه كتيره.
طيب اكسب ازاى؟!
برامج المكافأت نوعين، نوع بيبقى على موقع الشركه نفسه، هيا اللى بتستضيفه وبتخصصله فريق كامل تحت ادارتها، زى ما بيحصل مع جوجل وفيسبوك مثلا، وفى شركات تانيه بتقوم بفتح برامج ليها على منصات كتيره زى مثلا اشهرها : HackerOne و BugCrowd و CrowdCurity كل اللى انت بتعمله بتدخل على اى موقع من المواقع دى وتبدأ تسجل حساب بإسمك وتستكشف البرامج الموجوده وترسل التقارير، روابط المواقع دى كالتالى:
https://www.hackerone.com
https://www.bugcrowd.com
https://www.crowdcurity.com
[*] فى ملاحظة مهمه اخيره لازم تاخد بالك منها، طيب دلوقتى عرفنا ان فى مواقع بتقدم مكافاّت بشكل قانونى، طيب وبالنسبة لباقى المواقع الموجوده على الانترنت من مواقع متنوعه، خدمات، مواقع بنوك، مواقع حكومية، مواقع خاصه وغيرها؟!
*خد بالك*،مينفعش تدور فى اى مواقع مش معلنه ان عندها برنامج مكافأت، وكمان ملكش الحق دا خالص، لأن دى بتعتبر جريمة ممكن يحاسبك عليها القانون وتبقى فى موقف سيئ قانونياً وبتوصل للحبس احياناً "فى حالات اعرفها حصل معاها دا" فدى نقطة لازم تحطها فى الاعتبار.