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

الصورة من قبل ميغيل Á. بادريان
الأصل في بلوقامتياز الوقت
من المفيد أن نتحدث أولاً قليلاً عن الحاجز الحقيقي لتعلم البرمجة: الوقت . بالنظر إلى الكم الهائل من الأشياء التي يمكن للمرء أن يحتاجها ويحتاج إلى تعلمها ليكون مبرمجًا فعالًا ، فإنه يحتاج إلى قدر كبير من وقت التعلم.
قد لا يكون هذا ممكنًا على الجميع. إذا كانت لديك مسؤوليات تتطلب منك تكريس قدر كبير من وقتك (أي أكثر من 40 ساعة في الأسبوع) لتغطية نفقاتك أو إذا كان لديك التزامات أخرى بوقت كبير (مثل العائلة والأصدقاء والمنظمات الاجتماعية ، إلخ.) التي هي أكثر أهمية بالنسبة لك ، قد لا يكون لديك وقت فراغ لتكريسه للتعلم. هذا جيد! يمكن أن يكون الترميز فرحة حقيقية وهو مهنة رائعة ، ولكن في بعض الأحيان تكون الأمور الأخرى أكثر أهمية.
من المهم أن نفهم أن تعلم البرمجة إلى مستوى قابلية التوظيف يعد استثمارًا كبيرًا وقتًا كبيرًا ومن الأفضل معرفة ما إذا كنت تستطيع أو ترغب في استثمار هذا القدر الكبير من الوقت لذلك. الأخبار السارة هي ، كما سنرى ، أن هناك الكثير من الموارد لتعلم البرمجة والتي تمنحك القدرة على القيام بالتعلم وفق جدول زمني مرن.

الصورة عن طريق #WOCinTech الدردشة
من أين تبدأ؟
عندما يتحدث الناس عن البدء في تعلم البرمجة ، غالبًا ما يتحدثون عن لغة البرمجة التي يجب البدء بها. هذه نقطة انطلاق طبيعية لأن الترميز يتم دائمًا من خلال اللغة. إنها أكثر الجوانب الملموسة لتعلم برمجة أجهزة الكمبيوتر.
هناك العديد من المعايير لاختيار لغة للبدء بما في ذلك:
* لغات مع الكثير من الموارد الصديقة للمبتدئين:. غالبًا ما تكون موارد البرمجة ممتلئة بالمصطلحات الفنية ويمكن أن تتوقع ضمنيًا معرفة أنك من غير المحتمل أن تكون لديك كمبتدئ. إذا لم تفهم موردًا ، فلا تلوم نفسك ؛ ابحث عن مورد يحاول أصعب استهداف احتياجاتك كمبتدئ. جافا سكريبت تفعل عظيم في هذا الصدد.
* اللغات التي ليست معقدة للغاية: تتطلب بعض اللغات الكثير من المعرفة الأساسية لاستخدامها. Go هي مثال على لغة بسيطة. لغة C ++ من جهة أخرى هي لغة معقدة للغاية ، وبالتالي ربما لا تكون الخيار الأفضل للغة الأولى.
يستشهد البعض غالبًا بمعايير تحمل وزنًا أقل بكثير:
* اللغات التي تهيمن على الصناعة: واحدة من اللغات الأولى التي تعلمتها بعد Ruby كانت Standard ML التي لا تستخدمها أي شركة بالفعل ، لكنها أثرت على حياتي المهنية أكثر من أي لغة أخرى. لا تركز على لغة معينة لمجرد أنك تعتقد أنها قد تحصل في يوم من الأيام على وظيفة.
* اللغات المخصصة لحالة استخدام معينة : في العالم الواقعي ، تستخدم بعض اللغات عادة لحالات استخدام معينة على لغات أخرى. على سبيل المثال ، يتم إنشاء برامج الصوت غالبًا باستخدام C ++ ، ولكن إذا كنت مهتمًا بتعلم JavaScript والقيام ببرمجة صوتية ، فلا تفترض أنك بحاجة إلى إسقاط كل شيء وتعلم C ++. اسأل عما إذا كان هناك أي دعم في اللغة التي تختارها لما تريد بناءه ولا تمانع في معرفة ما إذا كانت ليست هي اللغة المعتادة.
لا تخف من اختيار اللغة الخاطئة. يمكنك دائمًا التبديل إلى لغة أخرى إذا وجدت أن اختيارك الحالي لا يلبي احتياجاتك. في الواقع ، أشجعك على تعلم الكثير من اللغات. لمزيد من اللغات التي تتعلمها ، ستتعرض لأفكار مختلفة وحالات استخدام مختلفة وتحديات مختلفة.
على سبيل المثال ، تعلمت أن أبرمج في حوالي 10 لغات أو نحو ذلك إلى مستوى معين من الكفاءة في أول عامين من التعلم الأول للبرنامج. عرّفتني كل لغة بشيء جديد جعل المفاهيم بلغات أخرى أكثر وضوحًا روبي ، على سبيل المثال ، عرَّضني لشيء يسمى البرمجة الوظيفية ، لكن لم يكن الأمر كذلك حتى تعلمت لغة كلوجور ومن ثم هاسكل التي نقرت عليها الفكرة حقًا.
ولكن ربما يكون الجانب الأكثر أهمية في اللغة التي يتم اختيارها هو مجتمع الأشخاص المرتبطين بتلك اللغة التي ستلقي نظرة على التالي.

الصورة من rubyonrails.org
المجتمع والدعم
لا يدرك معظم الأشخاص خارج البرمجة (ومبلغ محبط في داخله) أن البرمجة (وخصوصًا تعلم البرمجة) غالبًا ما تكون نشاطًا اجتماعيًا للغاية. سواء كنت جزءًا من فريق في شركة أو تعمل في مشروع في وقت فراغك ، فأنت في كثير من الأحيان تتفاعل مع الآخرين. أفضل المبرمجين هم أولئك الذين لا يتمتعون فقط بالتفاصيل الدقيقة حول ما يعملون عليه ، ولكن يمكنهم أيضًا تقديم الأفضل في الآخرين.
من المهم أن تجد شبكة دعم لمساعدتك في التعلم. بعض مجتمعات البرمجة أكثر ودية للمبتدئين من غيرها. على سبيل المثال ، بدأت في مجتمع Ruby on Rails (RoR) لأنني صادفت أنني أقوم بعمل دعم عند بدء تشغيل كان يستخدم RoR. عندما بدأت لأول مرة ، لم أكن أفهم حقًا لماذا كان RoR - يقول الناس أن روبي هي لغة برمجة و Rails هي إطار عمل ، لكن هذه المصطلحات أربكتني. كل ما أعرفه هو أن الأشخاص الذين قابلتهم عبر Twitter ومن خلال الاجتماعات المحلية كانوا مشجعون للغاية. كنت متوترة بالطبع لطرح ما افترضت أنه أسئلة سخيفة للغاية ، لكنهم كانوا هناك للمساعدة.
تجد نفسك مجتمعًا أو مجموعة من المجتمعات التي ستساعدك في رحلتك. إذا كنت غير متأكد من أين تبدأ ، اسأل الآخرين عن مجتمعات البرمجة الأكثر ودية للقادمين الجدد. إذا كنت لا تعرف أي مبرمجين ، ابدأ هنا .
العقلية الصحيحة
قد يكون تعلم البرمجة تحديًا كبيرًا ، وقد يكون من المغري الاستسلام في أوقات معينة. عندما تشعر بالإرهاق أو أنك غير ذكي بما فيه الكفاية ، من المهم أن تتذكر: أجهزة الكمبيوتر ليست سحرية ، يمكنك معرفة كيفية عملها.
إذا لم ينقر شيء ما ، فهذا ليس لأنك غير ذكي بما فيه الكفاية. قد يكون السبب هو أنك تفتقد جزءًا أساسيًا من المعرفة الأساسية. قد يكون أن المورد الذي تستخدمه ليس مخصصًا لشخص ذي خلفيتك الخاصة. قد تحتاج فقط إلى أخذ قسط من الراحة وتعلم شيء جديد. لا تستسلم!
ماذا الان؟
أفضل طريقة للبدء في التعلم هي مجرد الغوص. ببساطة ابحث عن "تعلم البرمجة" وشاهد ما سيحدث. فكر فيما تريد أن تتعلمه لبناء وبحث عن "How to X كمبتدئ مطلق". بعض الأنشطة التي قد تفكر فيها هي: إنشاء موقع على شبكة الإنترنت ، وبناء لعبة ثنائية الأبعاد ، وإنشاء فن تم إنشاؤه بواسطة الكمبيوتر . هناك الكثير من الموارد لمساعدتك في تحديد مكان وكيفية بدء التعلم.
إذا كان لديك أي أسئلة أو تريد أي نصيحة شخصية ، فأخبرني بذلك .