Uncategorizedلغات برمجة

كيفية اتقان لغة السي

بسم الله الرحمن الرحيم

عشان تدخل مجال Embedded Systems الأنظمة المدمجة

وتحترفه لازم أولا تتقن السى من الألف للياء..

طب إذاي أتقن لغة السى؟

question

اكتب اكواد كتير بنفسك واعمل مشاريع كتير بالسي
واعمل المشروع بأكتر من طريقة مثلا مرة بالarray ومرة بالpointer ولو فية طريقة
تالتة ينفع تكتبه بيها اكتبه.. مرة بالfor ومرة بالwhile..وبعدين تقارن بين الأكواد
بتاعت نفس البروجيكت..تشوف مين اللي استهلك ذاكرة اقل و زمن التنفيذ بتاعه
اسرع وتضيفه لخبرتك وتحطه فى اعتبارك لما تعمل أكواد تانية..

طب إذاى أعرف زمن التنفيذ؟

question

لازم تكون فاهم assembly كويس جدا وكتبت برامج بيها وتعرف يعنى إيه machine cycle..

مهندس هيقولى طب هما ليه اخترعوا السي ؟

أنت عايز تعقد الموضوع؟

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

ولو فهمت إذاي تصمم compiler هتفهم إذاي تعمل memory managmet و optimization للكود بتاعك

ده كتاب رااااائع عن السيC Primer Plus

هيبدأ معاك من الصفر لفوق مستوي الإحتراف فى السى..متتخضش لما
تلاقيه 800 صفحة …ذاكر كل يوم chapter وطبق عليه وهتخلصه فى 20 يوم إن
شاء الله..ومتعتمدشى علي الslides 
بتاعت البور بوينت لأن مفيش حد بيتعلم لغة برمجة من الslides..الslides للتوضيح فقط ..

وده كتاب عن تصميم ال Basic Of Compiler Design” compiler“…
فى كتاب ممتاز عن AVR يعلمك إذاي تبرمج AVR بالأسمبلى والسى..وهتلاقي فيه

أمثلة عن كل الinterfaces

..,وتقدر تفهمه بنفسك بسهولة وكمان بيعلمك تبرمج الAVR بالassembly اسمه “AVR_Microcontroller_and_Embedded_Systems“.

عايز تتقن التعامل مع الميكروبروسيسور؟

إقرأ إذاي تصمم ميكروبروسيسور..في لغة ممتعة اسمها VHDL بتصمم بيها بروسيسور باستخدام الFPGA

وممكن تصمم دايرة FULL adder, ممكن تصمم IC يؤدي وظيفة معينة وهكذا..

في كتاب كويس بيشرح VHDL اسمه circuit design with VHDL..

……………….

طب إيه الفرق بين الFPGA و الميكروكنترولر ؟

question

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

مثلا لو عايز اتقن لغة الجافا..أدور علي تطبيق بيستخدم الجافا..ذي الأندرويد مثلا..
الأندرويد بيستخدم حاجات very very advanced في الجافا..يعني من الأخر..
لو انت تستطيع أن تبرمج تطبيقات للأندرويد , إذا انت بلا شك ممتاز في لغة الجافا..

يعني خلي اللغة اللي عايز تتعلمها وسيلة مش غاية.في مدونة رائعة لعبدالله عيد شارح فيها الجافا في أكتر من 300 فيديو

تسمع 50 فيديو كل يوم تخلصهم في أسبوع… وفيها بردو فيديوهات لتعليم الأندرويد..

طب عايز اتقن لغة السي أو ال++C

في تطبيق بنستخدم فيه لغة السى أو ال++C.وهو opencv library

ودي عشان تتعامل معاها لازم تكون وصلت لمستوي متقدم جدا في السي..

طب إيه هو الopencv؟

question

هو library للimage processing و الcomputer vision عملتها شركة intel في 2007

يعني أقدر أبرمج الكاميرا بتاعتي عن طريق البروسيسور..

وأخليها تعمل مثلا face detectionface recognation , color recognation

ودي أول خطوة عشان تتعلم الذكاء الصناعى وتربطه بالimage processing..

طب إيه علاقة الembedded system بالimage processing ؟

question

ده يتوقف علي طموحك…عايز تبقي شغال كموظف عادي في شركة وتنفذ التاسكات اللي مطلوبة منك بس.

ولا طموحك تعمل حاجة ذي دى

https://www.youtube.com/watch?v=w2itwFJCgFQ

دى قناة علي اليوتيوب مشروح فيها معظم الinterfaces

https://www.youtube.com/user/walido81
ملكشي دعوة باللغة اللي بيبرمج بيها..لأنه شغال بالbasic مش بالسي..
أهم حاجة تفهم الconcept بتاع الinterface….

ودي قناة تانية بالإنجليزي بتشرح إذاي تبرمج الAVR بالسي
https://www.youtube.com/user/anajonesr

وياريت تركز دلوقتي في الembedded system ومتشتتشي نفسك في أكتر من مجال..

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

و بالتوفيق إن شاء الله..

واللي عايز يستفسر عن حاجة يسأل Mohamed Saied Mahroos

لو عجبك المقال لايك وشير

اظهر المزيد

اترك تعليقاً

لن يتم نشر عنوان بريدك الإلكتروني. الحقول الإلزامية مشار إليها بـ *

إغلاق
إغلاق