كلمة "تعلمت" تحتمل أكثر من معني ، بدئًا من "فقط عرف كيف يكتب "Hello world" البارحة" وحتى أن تكون رئيس لشركة في سيليكون فالي.

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

وارتأيت أنك قد تستفيد منها..

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

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

لأن لغات البرمجة متشابهة ، من حيث فكرة ", for loops if statements and functions"

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


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


رغم أن بايثون أخذت مني نحو عامين حتى تعلمتها بشكل جيد. ( ربما أقل أو أكثر من ذلك..)

فإن جافا سكريبت لم تمض علي سبعة أشهر من تعلمها حتى استوعبتها بشكل كبير وبدأت عمل عدة مشاريع بها ، حتى أني تفاجأت كيف اعتدت عليها بهذه السرعة!

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

فمثلا ستجد أن سي شارب بها عناصر من جافا سكريبت كإستخدام var للإعلان عن المتغيرات الجديدة . وأيضأ foreach و فانكشن الأسهم (arrow functions )


وايضًا اقتبست الكثير من لغة ++C ، من ثم فمعرفتي بكلا من ++C و جافاسكريبت سهلا على تعلم سي شارب فيما بعد..


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


ثانيًا : ابدأ بعمل مشاريع فورًا ..

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


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


أحدهم قال لي إنه كان يحفظ الأكواد في البداية حتى يتعلم البرمجة ، كان هذا خاطئًا بالكلبة وأكبر خطأ من الممكن أن ترتكبه !


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


وسوف يسرع هذا من تعلمك بشكل كبير ..


وأكثر شئ يساعدك على فهم كيف يعمل الكود هو بالتطبيق ، ولهذا تأتي نصيحتي بعمل مشاريع فورًا ، فأكثر شئ سَّهل على التعلم هو أني كنت أحاول تطبيق ما تعلمته في بناء شئ مفيد.


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


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


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


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


لا تخف من الاسم ، فبها عدة مستويات من المبتدئ للغاية وحتى المحترف ، وهذا مما سيساعدك على التطور ..


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


وأخيرًا إن كان لي أن اعطِ عدة نصائح لنفسي في الماضي فغالبًا سوف تكون الآتي :

 ابدأ بلغة سهلة ثم بعدها لغة صعبة ،