الرئيسية - مساحة المقالات - علوم البرمجة - أريد أن أتعلم البرمجة

أريد أن أتعلم البرمجة

أريد أن أتعلم البرمجة

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

بدأت بهذه المقدمة لأسأل من هم في سوق العمل البرمجي، ذوي الخبرة العلمية والعملية ألا يبخلوا بما كانوا به يوماً جاهلين، فأعطتهم الأقدار من فضلها.

إلى كل من يحب أن يتعلم البرمجة أو أي علم يخص الحاسوب أو غيره من العلوم، سأضع بين أيديكم بعض النصائح العامة والخاصة للتعلم، علها تسهل بعض العقبات.

الانكليزية ثم الانكليزية ثم الانكليزية

إن كنت تريد الاحتراف، فلا بد وأن تقرأ من المصدر، وهنا لا أقصد الانكليزية وحدها، بل جميع اللغات التي تأتي منها مصادر العلم، كثيراً ما أسمع ذلك السؤال الساذج “أريد أن أتعلم كذا، وأريد كتباً بالعربية”.

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

طرق التعلم

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

الفيديو هو البديل، أفضل طريقة تعلم على الإطلاق، لا تُضِع وقتك في القراءة طالما أن معلماً أضاع وقته ليصنع لك مقطع فيديو يشرح فيه كل المفاهيم. قم بتدوين الملاحظات فقط.

تعلّم عن طريق الدورات المأجورة -إن توفر المال- أو المجانية والتي يكون الشرح فيها من خلال الفيديو.

حاول البحث عن الدورات الأفضل -وإن كانت غالية الثمن- فالفرق كبير، حاول الابتعاد عن الدورات المؤلفة من معلّم واحد، لأنك ستمل منه.

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

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

لا تحفظ

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

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

إلعب بالكود

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

الأساسيات

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

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

لا تخف من الأكواد الكبيرة

وكما يقال، الكود ليس بطوله ولا بحجمه، الكود بما فيه من أفكار. كان لدي كود قديم حجمه 2 ميغابايت وفيه فكرة واحدة if else

وبعد سنوات من الدراسة أصبح حجمه 30 كيلوبايت وفيه مئة فكرة برمجية، ولربما لو عُدت له اليوم لأصبح 10 كيلوبايت و10 أفكار برمجية تغني عن كل ما سبق.

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

إبحث عن شريك

أفضل وسيلة للتعلم السريع وتبادل الخبرات هي التعلم ضمن الفريق.

إياك والتعلم لوحدك، حتى وإن سارت الأمور كما تحب ومن دون عقبات، أصدقاء البرمجة سيوفرون عليك فهم ما غفل عنك، فابحث منذ البداية عن فريق عمل. واحفظ هذه القاعدة “ما تتعلمه بمفردك في سنة، يمكن تعلمه في ثلاث أشهر مع فريق العمل”، فلماذا تضيع الوقت؟

لا تتعلم كل شيء

ليس المطلوب منك تعلم كل شيء، إذا ما أردت أن تصبح مطوّر جافا، فلماذا تتعلم C++؟

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

حاول أن تبني مشروعاً ما، لعبة متحركة، لعبة سؤال وجواب، أي شيء وابدأ بالبحث عن الأوامر البرمجية اللازمة للمشروع. فتعلمك الأوامر البرمجية للحفظ فقط، يشبه تعلم مفردات اللغة الانكليزية من القاموس. واعلم أن الطفل الصغير يتعلم لغة أبيه وأمه من دون كتب، بالأمثلة والتقليد فقط.

لا تكن كسولاً

ليست نصيحة فلسفية ولا نفسية ولا تحفيزية، وإليك ما أقصد.

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

وإن كنت تعرف النسخ والقص واللصق باستخدام اختصارات لوحة المفاتيح، فستعرف مدى سذاجة استخدام الفأرة لذلك، لماذا لا تتعلم باقي الاختصارات الآن؟

إذا كنت تعرف إمكانات برنامج VScode فلماذا تستخدم notpade++؟

لا ترض بالقليل، هل من المعقول أنك وإلى الآن لا تعرف اختصارات لوحة المفاتيح لمحرر الأكواد البرمجية الذي تستخدمه؟

https://jsmanifest.com/21-vscode-shortcuts-to-code-faster-and-funner/

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

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

الجدول الزمني

إياك والتعلم العشوائي، يجب وضع مخطط زمني لتعلم اللغات البرمجية المرتبطة ببعضها، وكما يقال في الانكليزية to-do-list، لأنك إن بدأت بالتعلم العشوائي فلن تفضي إلى نتيجة، ولن تشعر بأنك وصلت إلى هدف، حاول الحصول على الشهادات اللازمة، واعلم أن مشاريعك البرمجية قد تفوق قدرة الشهادة على الإقناع.

المشاريع كثيرة وهي السبيل الوحيد للتعلم، لأنها ملأى بالتحدي. لا تقل بماذا أبدأ، صمم قاموساً، انظر لطريقة عمل القواميس الأخرى واصنع أفضل منها، وابق محترفاً، القاموس لا يعني إدخال الكلمة والبحث عنها فقط. وسع آفاقك، انظر خارج الصندوق، قد يُدخِل المستخدم فراغاً زائداً آخر الكلمة التي يبحث عنها، قم بمساعدته واحذف الفراغات الزائدة، كثير من القواميس التي حققت أرباحاً طائلة لا تصحح هذا الخطأ المزعج! لا تكن عادياً، أَظهِر اقتراحات الكلمات المشابهة عند كتابة المستخدم الأحرف الأولى من الكلمة. قسّم قاعدة بيانات القاموس لعدة ملفات حتى لا تُتعب الحاسوب في البحث عن الكلمة في ملف واحد. هكذا ترى كم هي الأفكار كثيرة. أنت الآن تفكر كما تفكر كبرى الشركات. تريد أن تصمم آلة حاسبة؟ ما الجديد في الموضوع؟ صمم آلة حاسبة علمية احترافية. ضع شيئاً جديداً فيها، صنعتَ برنامجاً لحل معادلة من الدرجة الأولى؟ اصنع واحداً للدرجة الثانية والثالثة.

وبالتأكيد لا أنصح المبتدئين بتعقيد الأمور، وإنما حاول ألا تبق مبتدئاً.

كن مُعلِّماً

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

سباغتي كود

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

http://mrbool.com/importance-of-code-indentation/29079

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

الربح المادي

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


هذا المقال بالتعاون مع موقع أراجيك

عن arageek

arageek

اضف رد

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

*

هذا الموقع يستخدم Akismet للحدّ من التعليقات المزعجة والغير مرغوبة. تعرّف على كيفية معالجة بيانات تعليقك.

x

‎قد يُعجبك أيضاً

إجراء أكثر القياسات حساسيةً لناقلية (موصلية) السليكون

كشف مجموعةٌ من العلماء عن إجرائهم لأكثر القياسات حساسيةً للناقلية الكهربائية ضمن السليكون، ما قد يُساهم في تحسيناتٍ كبيرة على تطبيقاتٍ عديدة مثل كفاءة ألواح الطاقة الشمسية وأنظمة الاتصالات.