أزاى تبدأ تتعلم برمجة ؟

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

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

البرمجة هى الوسيلة الى تقدر تخاطب بيها الكمبيوتر أو الآلة بشكل عام . الى بتقدر عن طريقها تخلى الكمبيوتر يعمل الحاجه الى أنت عاوزها , بتدى الكمبيوتر تعليمات معينة بترتيب معين فالكمبيوتر بيعمل التعليمات ديه و بالتالى بتظهر لينا النتيجة الى أحنا عاوزينها . الكمبيوتر بيفهم لغة واحدة بس هى الى بتخليه يقدر يعمل الى أحنا عاوزينه أسمها اللغة الثنائية لكنها صعبة علينا جدا أحنا البشر أننا نفهمها لانها بتتكون من 0 و 1 بس , فكان لازم علينا كبشر نخترع و نعمل حاجه تقدر تخلينا نتعامل مع الكمبيوتر بشكل اسهل و من هنا ظهرت لغات البرمجة و بداية أفهم لغات البرمجة على أنها مترجم ما بين البشر و الكمبيوتر

 ليه عاوز تتعلم برمجة ؟



ده أكتر سؤال قابلنى و كرهته فى بداية تعلمى للبرمجة . لأنه بيديلك أحساس ان لازم يكون فيه سبب محدد و معروف علشان تتعلم برمجة. يعنى مثلا ماينفعش تقول بتعلم برمجة علشان بحب البرمجة. عامل زيى سؤال أنت بتحبنى ليه ؟  نرجع للموضوع , و رغم انى كرهت السؤال ده لكن هو سؤال مهم جدا جدا فى تحديد المسار التعليمى ( هشرحه فى السؤال الى جاى ) , فيه اجابتين هتقابلنا فى السؤال ده انه يكون فيه سبب محدد وانت عارفه أو مفيش . فلو مفيش أجابة محددة كأنك عاوز تتعلم برمجة فضول أو لأنك بتحب تتعامل مع الكمبيوتر وعاوز تعرفه أكثر أو لأنك حابب تجرب أحساس انك تصنع او تبنى برنامج ده هيكون ليها مسار تعليمى مختلف عن لو كان عندك سبب محدد بتتعلم علشانه و هبدأ اشرح يعنى ايه مسار تعليمى.

أيه هو المسار التعليمى؟ تعريف و نصيحة

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

لكن قبل ما أتكلم عن المسار التعليمى بالتفصيل لازم تفهم ان كل لغات البرمجة او البرامج الى هتستخدمها فى البرمجة هى مجرد أدوات ممكن تتغير أو تتعمق فيها براحتك. المهم هو القدرة على التفكير الى تقدر من خلالها تحل مشكلة برمجية أو تبنى برنامج او موقع او ايا كان . وكمان أغلب لغات البرمجة ليها مبادىء و مفاهيم واحدة , بتتغير طريقة الكتابة من لغة للتانية لكن المبادىء و المفاهيم واحدة فأى لغة تتعلمها لازم تتعلم الأساسيات كويس جدا . أنا فى بداية تعلمى للبرمجة اتعلمت لغة برمجة اسمها البايثون (الحب الأول ) و بعد فترة حبيت اتعلم و اتعمق فى لغة تانية اسمها الجافا سكريبت و فعلا بدأت أتعلمها و حبيت الجافا سكريبت لكن المهم انه وانا بتعلم الجافاسكريبت كانت اسرع و اسهل بنسبة 80% عن تعلمى للبايثون رغم ان البايثون اسهل فاللغة الاولى ممكن تغيرها عادى لكن هتكون مفيدة جدا جدا ليك فى المستقبل فى كل الأحوال. فنصيحة ماتقفش كتير على اللغة الاولى و تفضل محتار شهور تتعلم ايه لو انت عندك سبب واضح ليه بتتعلم برمجة فالموضوع هيكون سهل لكن لوماعندكش سبب واضح زيى أنا فى البداية فماتصعبش الموضوع على نفسك, كل الطرق تؤدى الى روما .

أيه هو المسار التعليمى؟ خطوات تفصيلية

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

HTML5 , CSS3

الطريق التانى يتعلم

Python

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

HTML5 , CSS3

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

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

Machine Learning

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

طيب الطريقين دول لو انت مش عارف انت عاوز تتعلم ليه لكن لو انت عارف انت عاوز تتعلم ليه , مثلا انت عاوز تعمل موقع فكرته فى دماغك او عاوز تعمل برنامج للموبايل او عاوز تشتغل كمطور فى شركة الخ.

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

عاوز تكون مطور أو مبرمج لبرامج الموبايل :- ممكن يكون ده السبب رقم واحد حاليا سوق الموبايل كبير جدا و برامجه كتيره جدا و الكل تقريبا بيستخدم الموبايل . انت عندك هنا 3 اختيارات عاوز تكون مبرمج اندرويد او مبرمج ايفون او مبرمج للاتنين . لو اندرويد انت محتاج تتعلم لغة اسمها الجافا ولو اى او اس المستخدمة فى الايفون فانت هتتعلم لغة اسمها سويفت ولو انت عاوز تطور الاتنين فانت هتتعلم الجافا سكريبت و بعديها تتعلم حاجه اسمها React native

عاوز تكون مطور مواقع :- برضه بتنقسم لاكتر من حاجه و ممكن هنا فى بداياتك ماتكونش عارف ايه دول او انت عاوز ايه بالظبط فالموقع بينقسم لحاجتين الشكل الخارجى للموقع الى انت بتتعامل معاه و الحاجه التانيه هى الجزء الخاص بالسيرفر بتاع الموقع يعنى زيى ان حد يقدر يعمل تسجيل فى الموقع او يكتب بوست او يغير فى البروفايل بتاعه الخ

مطور الشكل الخارجى بيكون اسمه

Frontend Developer

المبرمج الى بيتعامل مع السيرفر اسمه

Backend Developer

و الى بيكون قادر انه يطور الواجهة و السيرفر بيكون اسمه

Full Stack Developer

مطور الواجهة او مطور السيرفر الاتنين مطلوبين لأى موقع و الاتنين بيكملوا بعض , لو انت عاوز تكون مطور الواجهة فلازم تتعلم

Html, Css, JavaScript

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

PHP

من اكتر اللغات المستخدمة فى الويب و فى وقت ما كانت هى اللغة الاساسية فى الويب ومن المواقع المشهورة الى بتستخدمها فيسبوك

Python

زيى ما اتكلمت عليها من اسهل اللغات الى ممكن تتعلمها و لغة منتشرة و من المواقع المشهورة الى بتستخدمها جوجل و يوتيوب

Ruby

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

Node.js

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

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

full stack JavaScript developer

و توجه كل طاقتك فى تعلم الجافا سكريبت بس

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

Java / C  / C++ / C# / ASP.Net

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

لو عاوز تعمل شركة متخصصة فى عمل تطبيقات الموبايل اتعلم الجافا او سويفت للاى فون

فى النهاية ماتقلقش ابدا من اختيارك الاول فهو دائما مكسب – مكسب

و دايما اعرف ان اللغة الى هتتعلمها هى مجرد أداة فالمهم هو قدرتك على حل المشكلات الى هتقابلك

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

للتواصل
مع الاستاذ 

Software Develope

www.samehdiab.com

www.facebook.com/samehdiab0

www.twitter.com/samehdiab89

التعليقات

أحدث أقدم

Facebook SDK