العودة إلى المجتمع

انطلق مع Python!

من وقت لآخر نصادف شخصًا يغوص في أعماق تعلّم البرمجة! Carl، المعروف أيضًا باسم «Meatball» على الإنترنت، بدأ تعلّم البرمجة باستخدام مسار Python في Exercism... وهذا إنجاز كبير، ولكن من لا يحب التحدي!

شاهد على YouTube
المدة 34دقيقة

Jonathan: حسنًا، مرحبًا بكم في بودكاست Exercism. اسمي Jonathan. من دواعي سروري أن أعود لأشارككم الحياة والقصص أينما كنتم. اليوم لدينا ضيف اسمه Karl. وسأبدأ مباشرة وأطلب من Karl أن يعرّف بنفسه قليلًا. إذًا Karl، أخبرني من أين أنت؟ وما الذي تشتغل عليه في الوقت الحالي؟ وكيف تعرّفت على Exercism؟ Carl: حسنًا، أنا أعيش في مدينة Gothenburg في السويد، وأنا حاليًا طالب متفرغ. لكن عندما دخلت مجال التقنية والبرمجة، استخدمت Exercism. بدأت بمسار Python، وأعتقد أن مسار Python هو أفضل مسار لمعظم المبتدئين، لأن صياغة Python مباشرة تمامًا وفي رأيي قريبة من الطبيعة البشرية. وعندما يتعلق الأمر بأنواع لغات البرمجة، فإن Python لطيفة معك كثيرًا. فهي لا تحتوي على أنواع كثيرة، أنواع البيانات، لكن... نعم. وهكذا بدأت بحل تمارين المفاهيم واتّباع المنهج. وكنت أفعل ذلك كل نهاية أسبوع تقريبًا، بحل تمرين أو تمرينين. وبعد فترة، عندما... لأنني في البداية... ارتكبت أخطاء كثيرة أراجعها الآن. الآن وقد أصبحت أكبر أو... الآن وقد برمجت لمدة أطول، أصبحت أستطيع تمييز تلك الأخطاء. لذا لا، لا يجب أن يكون كودك مثاليًا في البداية. وما أعجبني هو أنه عندما... عندما حللت الكثير من التمارين في مسار Python، انتقلت فعلًا إلى مسار Ruby. حسنًا. Ruby لغة رائعة للانتقال إليها من Python لأن هناك أوجه شبه كثيرة. و... صياغة Ruby متشابهة تمامًا، لكن هناك بعض الاختلافات. فمثلًا، Ruby أكثر بكثير في أسلوب OOP، أي البرمجة كائنية التوجه. لذا أعتقد أنه بالنسبة للمبتدئ، قد تكون رحلة جميلة أن تبدأ بـ Python ثم تنتقل إلى Ruby. وإلى اللقاء في المرة القادمة. Jonathan: بدأت بـ Python. أعني، غالبًا عندما يأتي الناس إلى Exercism يكون لديهم بعض الخبرة في التطوير. إذا كانت لديك معرفة وخبرة سابقتان في التطوير والبرمجة، فغالبًا ما يستخدم الناس Exercism لتطوير مهاراتهم في لغة معينة. لكن هل صحيح أنك جئت دون أي خبرة في البرمجة أو التكويد وبدأت بـ Exercism؟ Carl: كنت قد فعلت شيئًا مثل Scratch، مثل البرمجة المرئية، من قبل، لكنني لم أكتب كودًا فعليًا قط. البداية من الصفر شاقة. وأعتقد أن هذا شيء يشارك فيه كل مبرمج. فالبداية تشبه تلّة، وبعد أن تصعد فوق التلّة يصبح الأمر أسهل، مثلك. Jonathan: ظننت أنك ستقول إنك تصعد التلّة ثم تكبر التلّة، ثم تصعد قليلًا ثم تظل تكبر وتكبر وتكبر. هل مررت بمشاعر مثل؟ كانت هناك نقطة أصبحت فيها الأمور منطقية. هل كانت هناك لحظة قلتَ فيها: حسنًا، نعم، فهمت هذا؟ Carl: أعني، الحقيقة أن الأمر يستغرق وقتًا طويلًا لتفهم شيئًا فهمًا كاملًا، وما يفعله معظم الناس في البداية غالبًا هو... استخدام حلقات while كثيرًا، لأنها، يمكنك التحكم فيها أكثر بكثير من حلقات for، لأن حلقة for يجب أن تخبرها قبل أن تبدأ بطول الحلقة. وأعتقد... عندما تعلّمت كيف أستخدم حلقة for استخدامًا سليمًا وعدم الإفراط في استخدام حلقات while، أعتقد أن البرمجة وضحت لي، أو بالأحرى وضح لي كيف تعمل الحلقات أكثر بكثير. Jonathan: حسنًا، إذًا كانت تلك لحظة شعرت فيها: حسنًا، هذا المفهوم منطقي بالنسبة لي. ثم هل انتقل فهمك للحلقات بعد ذلك إلى مفاهيم أخرى بدأت تصبح منطقية أكثر وأكثر؟ سأتحدث من تجربتي هنا. كنت أتعلم Go في مسار Go أيضًا. ولم تكن الحلقات منطقية قط حتى أمضيت، ربما نحو ثلاثة أيام، أتنقل بين التمارين والوثائق وأركّبها، أي أفككها قطعة قطعة. وقد كان لخوض تجربة الحلقات ومحاولة فهمها أثر كبير جدًا على فهمي للكود بشكل عام، وكيف تعمل الدوال وكل هذا النوع من الأشياء. هل كان الأمر مشابهًا بالنسبة لك، كما تقول؟ Carl: في Python غالبًا ما تحل أشياء مختلفة، غالبًا ما تُكرّر المرور على أشياء. هذا تقريبًا الشيء الوحيد الذي تفعله في Python. في Python، تُكرّر المرور على الأشياء لحل المشكلات. وهذا يعني أن الحلقات مهمة جدًا لفهمها فهمًا كاملًا. عندما تفهم الحلقات في Python فهمًا كاملًا، يمكنك فعل الكثير من الأشياء فقط لأن كل شيء قائم على تكرار المرور على الكائنات. Jonathan: هذا رائع. إذًا أنت تدرس حاليًا، ذكرت بإيجاز قبل هذا التسجيل، مثل الرياضيات والفيزياء. ما الموضوعات التي تدرسها في الوقت الحالي؟ ما الموضوعات أو المواد التي تدرسها حاليًا؟ Carl: أدرس البرمجة والرياضيات والفيزياء. Jonathan: حسنًا، كيف تجد كل هذه؟ Carl: الأمر أنني فعلًا استخدمت Exercism تحضيرًا لتلك المقررات البرمجية. وأدركت أنني الآن أعرف أكثر بكثير مما تغطيه تلك المقررات. Jonathan: هذا رائع. Carl: لا أتعلم الكثير منها، لأنني أتعلم عن الماركسية بدلًا من ذلك. Jonathan: هل تقول إذًا، Carl، إن الناس يجب أن يستخدموا Exercism بدلًا من شهادة جامعية؟ Carl: أعني، في تخصص مثل علوم الحاسوب، أظنك تتعلم قليلًا أكثر عن كيفية عمل الحاسوب وعن البِتّات وأشياء كهذه. بينما Exercism يعلّمك فقط البرمجة وحل المشكلات وكل الجوانب المنطقية فيها. أعتقد أن هناك فائدة من الذهاب إلى الجامعة. Jonathan: كنت أمازحك قليلًا هناك، لأنني أظن أننا سنغضب كثيرًا من الناس الحاصلين على شهادات جامعية إذا قلت لهم إنهم لا يعرفون شيئًا. لذا سنبتعد عن هذا الموضوع. وCarl، أخبرني، سأطرح عليك بعض الأسئلة الأخرى فقط حول نشأتك الآن. ما كان... أحاول صياغة هذا. هل كنت وأنت طفل تستمتع بحل المشكلات؟ هل كنت مهتمًا مثلًا بـ Lego أو أشياء من هذا القبيل؟ وسبب سؤالي هو أنه غالبًا عندما يمارس الناس البرمجة، يكون هناك استمتاع طبيعي إلى حد ما بحل المشكلات كشيء في حد ذاته. فخلال نشأتك، هل كانت لديك هوايات كثيرة أو أشياء أكثر تقنية؟ أخبرني قليلًا عن ذلك. Carl: أعني، أحببت Lego. لم... أعني، لقد... كنت جيدًا في الرياضيات عندما كنت أصغر. إنه حل المشكلات بهذا المعنى، محاولة حل مسائل رياضية مختلفة. أعتقد أن ما أدخلني فعلًا إلى البرمجة هو مجرد... اهتمامي بالتقنية عمومًا، فأنا أحب الحواسيب كثيرًا. وأحب كثيرًا... شكرًا. في كل مرة يواجه أحدهم مشكلة في الحاسوب، يقول: آه، هل يمكنك مساعدتي؟ وهذا قد يكون مزعجًا بعض الشيء أحيانًا، لكنه غالبًا ممتع جدًا. لذا أصبحت مهتمًا جدًا بالحاسوب والحواسيب، وهذا نقلني إلى البرمجة المثيرة للاهتمام. Jonathan: حسنًا، إذًا كما أفهم، أنجزت الآن أربعة إلى خمسة مسارات على Exercism، أو بالأحرى تعلمت أربع إلى خمس لغات باستخدام Exercism، أليس كذلك؟ Carl: هل هذا صحيح؟ نعم، لقد... بدأت في ستة مسارات تقريبًا. حسنًا. لكنني لا أزعم أنني أتقنها جيدًا إلا بعضها. Jonathan: حسنًا، ومن بين تلك، أيها؟ ستكون Python وRuby. Carl: Python وRuby وJavaScript وTypeScript، لكنني أيضًا جيد بشكل معقول في Elixir. Jonathan: حسنًا، من بين كل تلك اللغات، أيها استمتعت بها أكثر من حيث التعلم؟ Carl: أحب Elixir حقًا. أحب كثيرًا أسلوب الكتابة بهذه اللغة. أعتقد أنها لغة ممتعة جدًا للكتابة بها، لكنها مختلفة جدًا عما اعتدت عليه في لغات أخرى. الأمر يشبه البدء من الصفر في مرحلة ما. نعم. لكنني أعتقد أنه إذا أراد أحدهم فعلًا تعلم لغة قوية حقًا، فإن JavaScript موجودة. إنها في رأيي من أقوى اللغات التي يمكن أن تعرفها. Jonathan: حسنًا، إذًا JavaScript ستكون، صحّحني إن كنت مخطئًا، لغة مفسّرة أكثر. هل هذه ملاحظة منصفة؟ ثم Elixir على الأرجح أكثر وظيفية. أليس كذلك؟ Carl: نعم. Jonathan: حسنًا، إذًا هما مختلفتان تمامًا في طبيعتهما. لذلك يبدو مثيرًا للاهتمام بالنسبة لي أنك تبدو مستمتعًا بالطيف الكامل لتلك اللغتين. ما الذي تجده ممتعًا أو مسليًا في Elixir؟ هل يمكنك تحديد ذلك بدقة؟ Carl: أعني، إنها هذه البرمجة الوظيفية. لديك هذه... لديك هذه الدوال ويُفترض أن تجمعها كلها معًا. وبهذه الدوال كلها يُفترض أن تحل المشكلة. وهذا يعني بالنسبة لي، على الأقل، أنني أعتمد كثيرًا، اه، على وثائق Elixir، فهي مهمة جدًا، اه، لفعل شيء ما فعلًا. اه، ووثائق Elixir رائعة في رأيي. أم، إذًا تبحث فيها عن الطرق الصحيحة، وهذا ممتع جدًا في اعتقادي. Jonathan: إذًا الأمر أشبه بتركيب قطع، مثل أحجية، إن جاز القول، حيث تجمع كل شيء معًا لترى المشكلة. Carl: تجمع كل شيء معًا لترى أحجية. وكما قلت، أحب كثيرًا أسلوب الكتابة باللغة أيضًا. لذا فهي أحجية لطيفة جدًا. Jonathan: حسنًا، رائع. فأين أنت في ذلك المسار؟ هل أنهيت التمارين التطبيقية أم أنك لا تزال في تمارين المفاهيم؟ Carl: هناك الكثير من تمارين المفاهيم لتلك اللغة. أعتقد أنها نحو 20 أو ربما أكثر من ذلك. أعتقد أنني في تمارين المفاهيم، لقد أنجزت... ربما 90% أو نحو ذلك، لذا أوشكت على الانتهاء. Jonathan: رائع، هذا لطيف جدًا. هذا رائع حقًا. إذًا Karl، أريد أن أعرف قليلًا أكثر عن الحياة، أبعد من مجرد التكويد والتطوير. فما بعض الأشياء التي تستمتع بفعلها في وقت فراغك أو هواياتك؟ هل هناك شيء تود حقًا، لو كان بإمكانك قضاء كل وقتك فيه خارج البرمجة، فما سيكون؟ Carl: حسنًا، إذا لم يُسمح لي بقول البرمجة، فأنا أحب لعب بعض ألعاب الفيديو في وقت فراغي، وأحب ركوب الدراجات أيضًا. هذا ممتع كذلك. Jonathan: دراجات الجبال أم دراجات الطريق؟ Carl: دراجات الطريق. Jonathan: هل تركب الدراجة إذًا؟ أعني أخبرني قليلًا لأنك في السويد، صحيح؟ نعم. والمكان الذي تعيش فيه، هل هو مستوٍ؟ هل هو تلال؟ هل لديكم محيط جميل؟ لأن انطباعي عن السويد أن لديكم محيطات. Carl: نعم، في المكان الذي أعيش فيه، إنه مستوٍ تمامًا. لكن إذا اتجهت شمالًا، فهو أكثر تلالًا. Jonathan: هل تتساقط الثلوج في السويد في الوقت الحالي؟ يبدو أنه سيبدأ الجو بالبرودة الآن. Carl: كانت تتساقط الثلوج الأسبوع الماضي على ما أعتقد، لكن الآن لا ثلوج. Jonathan: حسنًا، وهل تركب الدراجة في الثلج؟ Carl: نعم. Jonathan: فعلًا. لدينا شخص آخر، ربما تعرف Brian. Brian، هو أحد مرشدي Elixir. Brian Underwood، يعيش أيضًا في السويد، في Stockholm على ما أعتقد، ويخرج للجري في منتصف الشتاء، يركض في ظلام الليل في السويد. لذا ظننت أن هذا، ظننت أن هذا رائع حقًا. فهل تركب الدراجة كثيرًا، مرة في الأسبوع، مرتين في الأسبوع؟ أم أنه شيء تفعله بانتظام؟ أم أنه مجرد... Carl: أنا، أنا، عندما أسافر، أذهب بالدراجة إلى محطة الحافلات ثم آخذ الحافلة من محطة الحافلات. Jonathan: حسنًا، ثم تجد مكانًا جميلًا ثم... إذًا تسافر بالحافلة. Carl: أسافر بالدراجة إلى محطة الحافلات ثم أسافر بالحافلة. Jonathan: فهمت. حسنًا، حسنًا رائع. وCarl، كم تبعد الجامعة عن مكان سكنك؟ هل تعيش حاليًا في المنزل أم تستأجر مكانًا؟ ما هو وضعك؟ Carl: أعيش في المنزل. تبعد 30 كيلومترًا. إنها، إنها، تستغرق مثل، لا أعرف. آه، انتظر. نعم، 30 كيلومترًا، هذا صحيح على الأرجح. تستغرق نحو 40 دقيقة أو شيء من هذا القبيل. Jonathan: حسنًا، إذًا ليس الأمر بهذا السوء، لكنها ما زالت مسافة طويلة إلى حد ما. فكم بقي لك من سنوات الدراسة قبل أن تدخل إلى العالم الحقيقي، إن جاز التعبير؟ بقي لك أربع سنوات دراسة. هل أنت في سنتك الأولى حاليًا؟ Carl: نعم. Jonathan: حسنًا، واو. إذًا أنهيت السنة الأولى وهي شهادة مدتها أربع سنوات. حسنًا. وماذا، هل لديك أي فكرة عن حلمك في المستقبل أو ما تريد أن تعمل به كمهنة أو أي أفكار حول ذلك؟ Carl: أعني، لطالما أردت العمل في مجال الفضاء، لأنني أعتقد أن ذلك رائع. لا أن أكون في الفيزياء الفلكية أو شيء من هذا القبيل، بل ربما القيام ببعض البرمجة حول أمور الفضاء. ولدينا وكالة الفضاء الأوروبية، وقد يكون ذلك شيئًا، لكن... إن لم يكن ذلك، أعتقد أن مجرد. لا أعرف، وظيفة backend عادية ستكون لطيفة. Jonathan: مجرد وظيفة back-end عادية، أحببت كيف قلت ذلك. يجعل الأمر يبدو بهذه البساطة والسهولة في أذني. وهل تعتقد أنك قد ترغب يومًا في الانتقال إلى مكان آخر غير السويد؟ أم أنك تستمتع بالسويد؟ أي أفكار حول ذلك؟ أعني، اسمع، أنا أطرح عليك أسئلة ربما لم تفكر فيها حتى الآن، لأن أمامك بضع سنوات قبل أن تضطر إلى اتخاذ تلك القرارات. لكن مجال الفضاء يبدو مثيرًا للاهتمام حقًا. كيف ستفعل ذلك؟ كيف ستبدأ في الدخول إلى ذلك؟ Carl: ليس لدي أي فكرة في الحقيقة. لم أفكر حقًا في الكيفية فعليًا، لكن... أعني، سنرى. إنه أقرب إلى حلم من كونه خطة فعلية. لكن للإجابة عن سؤالك السابق، فكرت فعلًا في العيش ربما في Canada أو شيء من هذا القبيل، لكنني أفترض أنني سأبقى أعيش في الجزء الشمالي من العالم. Jonathan: حسنًا، إذًا البرد والجليد والثلوج. هل أنت سعيد بذلك؟ نعم. Carl، هل لديك إخوة، أخوات، أشقاء؟ Carl: لدي أخ صغير. Jonathan: حسنًا، إذًا أنتما اثنان. وهل يستمتع بالبرمجة؟ هل تعلّمه ما تتعلمه وما تعرفه؟ Carl: آه، إنه لا يحب البرمجة فعليًا. لا أعرف. Jonathan: حقًا؟ إذًا لا يوجد تقاطع بينكما. لكن هل تلعب معه الألعاب أيضًا؟ Carl: ألعب معه الألعاب أحيانًا، نعم. Jonathan: هل هو أصغر منك بكثير، أم أنه لا بد أن يكون في المدرسة حاليًا؟ Carl: إنه أصغر مني بنحو خمس سنوات. Jonathan: حسنًا، إذًا هذا فارق عمري كبير إلى حد ما. آه، هذا رائع. هذا مذهل. إذًا بالعودة إلى Exercism ومشاركتك، فأنت الآن تشرف على مسار Python، إن لم أكن مخطئًا؟ نعم، أو تساهم. تساهم، حسنًا، رائع. الإشراف يومًا ما. لكن كيف تجد ذلك؟ ما بعض الأشياء التي تعلمتها من خلال تلك التجربة؟ Carl: أعني، الناس في مسار Python رائعون حقًا، والعمل معهم ممتع حقًا... لأنني حاليًا أنجزت الكثير من الوثائق، وتتعلم فعلًا كيف تكتب الوثائق، وعليك أيضًا غالبًا القيام بالكثير من البحث. نعم، إذًا لديك الكثير من الوثائق وتتعلم الكثير لأن عليك قراءتها كلها عبر وثائق كثيرين آخرين. لذا تحفر فعليًا بعمق شديد في المفاهيم. Jonathan: هل استمتعت بذلك تحديدًا كجانب تخصصي من المساهمة؟ Carl: نعم، وأعني أنني أتعلم الكثير عند قراءة تلك الوثائق. Jonathan: لا، هذا رائع حقًا. إذًا من حيث المساهمة في Python حاليًا، هل تفكيرك أنك تود البدء بالمساهمة في Elixir وRuby؟ كيف ترى ذلك مستقبلًا؟ Carl: أعني، نعم، أستطيع أن أرى نفسي أساهم في مسار Ruby، لكن Elixir، لا أعتقد ذلك. لدي خطة طويلة المدى بأن أساهم في مسار TypeScript، لكننا سنرى. أعتقد أنني سأبقى في مسار Python للأشهر الستة القادمة، في الواقع. Jonathan: حسنًا، هذا رائع. إذًا أخبرني، هل يمكنك أن تشرح لي قليلًا عن TypeScript؟ أعطني فكرة عن ماهيته فقط. سبب سؤالي أنني سمعت عنه. لكنني سمعت أنه نوعًا ما... يقوّي JavaScript، لكن مرة أخرى، يمكنك أن تخبرني إن كنت مخطئًا تمامًا. إنه يساعد نوعًا ما في فحص سلامة JavaScript قليلًا، لكن قد أكون مخطئًا. ما هو؟ Carl: ما هو؟ أعني، هذا وصف جيد جدًا. كان لدي درس في الـ front-end، وكان المدرس يستخدم JavaScript وأجرى بعض JavaScript الأساسية في HTML. لأنني نسخت هذا الكود ولصقته في TypeScript. فقال TypeScript: آه لا، لا ينبغي أن تفعل هذا. إنه غير آمن. لذا فإن الأمر يتعلق كثيرًا بذلك، بجعل كودك آمنًا. مثل منع الأعطال وأشياء كهذه. فقد أدخل الأنواع، فلا يكون لديك تضارب في الأنواع. ونعم، يخبرك عمومًا بفعل الأشياء الآمنة وعدم كتابة كود غير آمن. نعم، إنها لغة مختلفة، لكنها شديدة الشبه بـ JavaScript. يمكنك غالبًا أن تتخيل TypeScript مثل JavaScript، لكنك تلبسها درعًا. فتصبح محمية. Jonathan: حسنًا، إذًا هي لغة قائمة بذاتها. أعتقد أنني كان لدي انطباع أنها أشبه بإضافة إلى JavaScript، لكنك تقول إنها في الواقع لغة قائمة بذاتها بالكامل. Carl: أعتقد أنها كذلك. أعني، هما متشابهتان جدًا، فربما هما الشيء نفسه، أي أنها إضافة، لكنني أحب التفكير فيها كلغة قائمة بذاتها لأن بينهما بعض الاختلافات الجوهرية. Jonathan: على الأرجح أنني أغضبت للتو كل معجب بـ TypeScript هناك بقولي إنها إضافة لـ JavaScript. أنا واثق أن ذلك سيثير بعض الآراء المثيرة. لكن بالنسبة لك، جانب الأمان في TypeScript هو نوعًا ما ما يجعله ميزة تستحق الاستكشاف أكثر. أليس كذلك؟ Carl: أعني. في الواقع، ما أدخلني إلى TypeScript هو أن مكتبة React لدي لم تكن تدعم JavaScript العادية وكانت تدعم TypeScript فقط. فاعتادت على TypeScript وأعتقد أنها لطيفة حقًا. وهي أيضًا تجعل الكود أكثر وضوحًا عند استخدام الأنواع، لأنك تستطيع فعلًا أن ترى: حسنًا، هذه تأخذ عددًا وتُرجع سلسلة نصية. فيصبح القراءة أسهل. Jonathan: حسنًا، ذكرت React Native هناك. هل تفضل تطوير الـ front-end أم الـ back-end؟ أستنتج أنك تفضل الـ back-end مما أفهمه. لكن هل تجرّب الـ front-end قليلًا؟ Carl: جرّبت الـ Frontend، لكنني سيئ جدًا في CSS. لذا أحاول عادة إيجاد مكتبة واجهة مستخدم (UI) جيدة واستخدامها. Jonathan: عندما تقول إنك سيئ في CSS، ماذا تقصد بذلك؟ هل لا تفهمها فقط، أم أنها مربكة، أم أن هناك الكثير... ما الذي تجد صعوبة فيه بالضبط؟ Carl: هناك الكثير من الأشياء التي يمكنك إسنادها إلى عنصر ما، بطريقة أنيقة جدًا. آه، لإزالة الشيء، مثلًا عندما تنشئ رابطًا في CSS أو في HTML، تحصل على خط تحت النص. ثم لإزالته، عليك إضافة text-decoration ثم كتابة none. وهذا فعليًا يزيله. وهناك الكثير من الأشياء التي عليك تذكرها. وأكثر ما يزعج في CSS أنه إذا أجريت تغييرًا في الكود أو في CSS، فغالبًا ما يفسد شيئًا آخر. فعليك فعلًا أن تقول: حسنًا، حللت هذه المشكلة. الآن ظهرت هذه المشكلة وعليّ حل تلك، وتستمر وهكذا. Jonathan: إذًا يستمر الأمر في تأجيل المشكلة إلى مكان آخر. وهذا لا بد أن يكون محبطًا جدًا. أظن أن تجربتي الوحيدة مع CSS كانت التعلم، وكذلك محاولة تعلم React. ولديك متغيرات كثيرة، كما تقول، وخيارات كثيرة. مثلًا هل توسّعه أم تقيّده؟ وإذا فعلت ذلك، فإنه يغيّر هذا الزر. وقبل أن تدري، كل مكوّناتك تفعل أشياء مختلفة إن لم تكن حذرًا. Jeremy في Exercism، هو جيد جدًا في CSS، لكنني أعتقد أنه يعرف الكثير من جميع جوانبها المختلفة. لذا بالنسبة لك، الـ front end ليس شيئًا تستمتع به بقدر ما تستمتع بجانب الـ back end. Carl: لا مشكلة لدي مع الأجزاء البرمجية في الـ front end، لكن المظهر الفعلي لا يعجبني حقًا. أما الـ back end، على الأقل بالنسبة لي، فمبدؤه: إن كان يعمل، فلا تكسره. Jonathan: نعم، لا تلمسه، اتركه كما هو. أجد من المثير للاهتمام كيف يميل الناس إلى تفضيل...أحد الجانبين على الآخر. هل تعرف ما الذي يميز جانب الـ backend؟ تقول إنك تحب كونه يعمل فحسب. هل التفكير المنطقي ومعالجة الأمور في الـ backend؟ هل هذا الجانب هو ما تستمتع به أكثر فيه؟ Carl: نعم، أحبه لأنه في معظمه منطق وإعداد هياكل قواعد بيانات مختلفة. هذا هو معظمه، حتى لو لم أكن جيدًا في قواعد البيانات. Jonathan: هذا رائع. هذا مذهل. إذًا Karl، لدي سؤالان آخران لك. استمتعت حقًا بفهم القليل عن خلفيتك وما تستمتع بفعله. هل يمكنك تحديد بعض النصائح الأساسية أو الأشياء التي توصي بها لمن يبدأ تعلم البرمجة؟ ويمكنك أن تفعل ذلك إن كانت خلفيتهم علمية أكثر، ربما بعض النصائح لهذا النوع من الأشخاص الذين يستمتعون بذلك. لكن إن أردت النظر إليه من منظور مختلف تمامًا، فما الذي ستقول إنه...شيء جيد تفعله باستمرار؟ Carl: باستمرار؟ أعني، أعتقد أنه ينبغي لك... أن تبدأ بلغة سهلة. لا تبدأ بـ Rust أو C++ أو C. لكن بعد ذلك فعليًا. مثل، عندما... أعرف أن Jun قال شيئًا من هذا القبيل، لكن... عندما ترى مشكلة، اقرأها كاملة، خذ استراحة، فكّر فيها وفي كيفية حلها، ثم عُد وحلها فعليًا، لأن... من الجيد أن تدع دماغك يعالج كيف ستحل المشكلة فعلًا. شيء آخر أعتقد أنه... أن تحاول فعلًا ألا تتقدم بسرعة كبيرة. أنجز قليلًا الآن وقليلًا بعد ذلك، لأنه إذا كنت تحل الكثير من تمارين المفاهيم، فمن الأفضل أن تدع تلك المعلومات تترسخ بدلًا من حل كل المفاهيم في اليوم نفسه، وعندئذ على الأرجح ستبقى في حيرة. Jonathan: وكيف ينطبق كل شيء. حسنًا، رائع. إذًا خذ وقتك. امنح نفسك المساحة للتفكير في الأمور. وهل تقول إن التقدم ببطء، أي التقدم بوتيرة أبطء وترسيخ الأمور بعمق، أفضل من السرعة، وهذا يبدو ما تقوله، أفضل من المرور السريع على السطح؟ Carl: بعض اللغات ربما يكفي أن تتعلم صياغتها و...والأساسيات فقط، ثم تستطيع الانتقال إلى سيناريوهات أقرب إلى العالم الحقيقي والتعمق أكثر عندئذ. وفيما يخص JavaScript، تعلمت الأساسيات ثم أنجزت مشاريع React، وهناك... تعلمت قليلًا من الأشياء الجديدة وتعرفت على اللغة بعمق أكبر. Jonathan: آه، هذا رائع. حسنًا، جميل. مذهل. حسنًا، إذًا Carl، لدي سؤال أخير لك لهذا الأسبوع. ما توصيتك للمجتمع هذا الأسبوع؟ توصيتك الخاصة، ويمكن أن تكون أي شيء تقريبًا. يمكن أن تكون: اذهب في جولة بالدراجة في الثلج. يمكن أن تكون القفز في بحيرة باردة متجمدة أو الذهاب إلى ساونا إن كنت في السويد. ما توصيتك للمجتمع؟ Carl: نعم، أعني، لا، أعتقد أن... من الصعب جدًا ركوب الدراجة في الثلج. لذا لا، لا أوصي الناس بذلك. Jonathan: نعم. Carl: لكنني أعتقد أنني سأقول ما قلته سابقًا. انظر، إذا كانت لديك مشكلة عالق فيها، خذ استراحة. لا تجلس هناك بضع ساعات أخرى تحاول حلها فقط. من الأفضل أن تأخذ استراحة قصيرة ثم تعود إلى المشكلة. Jonathan: حسنًا رائع. إذًا توصيتك هذا الأسبوع هي: إذا احتجت إلى تعلم شيء، فتمهّل، خذ استراحة، احصل على قهوة. هل تشرب القهوة؟ Carl: ليس بعد. Jonathan: ليس بعد. حسنًا. أبدًا. Carl: أنا في الواقع أشرب الماء فقط. ربما هذا هو الشيء المميز فيّ. Jonathan: حسنًا، مذهل. هذا سيوفر لك الكثير من المال في حياتك قادمًا، أقول لك. هذا مذهل. حسنًا Carl، كان شرفًا حقيقيًا أن أتحدث معك اليوم. شكرًا على وقتك وشكرًا على كل مساهماتك في مختلف المسارات وعلى مشاركتك في Exercism، نحن نقدر ذلك حقًا. لقد استمتعت حقًا بالتعرّف عليك خلال الشهرين الماضيين، خصوصًا عبر سيرفر Discord الذي أدرناه. أعتقد أنه كان Ex-Orts، هل كنت على Discord الخاص بـ Elixir؟ Carl: إما الدفعة أو الخبراء. Jonathan: نعم، أظن أنني رأيتك كثيرًا على تلك القنوات، وكان ذلك رائعًا. ونعم، شكرًا على مساهمتك. كان ذلك رائعًا. لذا أتطلع إلى الحديث قريبًا وشكرًا جزيلًا على وقتك. ابقَ على المكالمة فقط وسننهي الأمور من هناك. لكن شكرًا للجميع على الاستماع. كنتم تتحدثون معي أنا Jonathan ومع Carl، وأتطلع إلى لقائكم قريبًا. وداعًا. Carl: وداعًا.

المزيد من قصص مجتمعنا

استمع وتعلّم واستلهم من أعضاء مجتمعنا.