أريد أن أكون الأفضل ، حيث لم يكن هناك أحد ... - الجزء الأول

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

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

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

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

دون مزيد من اللغط ، دعنا نأخذ الخطوة الأولى معًا ...

جافا - أسهل C ++

في المدرسة الثانوية أو الكلية ، يمكن تقديم CS1 (علوم الكمبيوتر 1) و CS2 في Java. هذه لغة أولى مثيرة للجدل للغاية لعدد لا يحصى من الأسباب لكنني أعتقد أن الأمر يتعلق بذلك. إن تعلم جافا كبوابة أولى لك في عالم الكود يشبه طائر يتم طرده من عشه لتعلم كيفية الطيران ، أو ركوب الدراجة لأول مرة دون عجلات التدريب ، فأنت ملزم بالتعرض للأذى. ولكن في وقت لاحق ، سوف تكون ممتنًا لأنك معتاد على الألم في وقت مبكر لأن Java يقدم بسرعة ويدمج مفاهيم مختلفة إليك في مرحلة مبكرة جدًا مثل

  • الكائنات ، البدائية ، الأقواس ، والأقواس على حد سواء مربع ومجعد
  • إنها لغة قوية ومكتوبة بشكل ثابت
  • ستكتب الكثير من الأشياء المتكررة مرارًا وتكرارًا والتي ستساعد في تحسين سرعة الكتابة للمبتدئين والكلمات الرئيسية المدمجة مثل String و int

أوصي بشدة بـ Blue Pelican by Charles E. Cook ، وهذا يختلف تمامًا عن أي كتاب جافا آخر ممل وممل مع Java مع مقدمة طويلة حول تاريخ علوم الكمبيوتر والغرض منه أو المؤلفين ، وهو يوجه مباشرة إلى هذه النقطة بنقطة ترحيب بسيطة مثال العالم الذي يعتمد على مع تمارين أكثر بساطة.

تريد الاستيلاء على نفسك نسخة؟ احصل على غلاف فني من Amazon اليوم وابدأ بالتمارين باستخدام BlueJ IDE المجاني

رابط للكتاب: https://amzn.to/2Y0qzaO

رابط إلى BlueJ IDE: https://www.bluej.org/

رجوع إلى Java ، من المؤكد أنه من الصعب التعلم أكثر من لغة بسيطة مثل Python ، ولكن لأنك تبدأ في صعوبة أكبر عندما تنتقل من Java إلى لغة أخرى مثل Python أو JavaScript في المستقبل ، فسيكون من الأسهل بكثير التقاطها وفهم أنك تنزل بصعوبة في مقابل الانتقال من Python إلى Java ، وهو تغيير صعب بشكل لا يصدق ، حيث يتعين عليك تغيير عملية التفكير بأكملها.

لذا إذا كنت تقوم ببعض جافا ، فما هي نقاط التفتيش الرئيسية التي يجب عليك معرفتها عندما تكون مستعدًا للمزيد؟ كيف تعرف متى يمكنك رفع المستوى؟

  1. يبدأ الجميع من المستوى 1. هذا هو المكان الذي تتعرف فيه على العناصر البدائية مثل ints ، و double ، و booleans ، وكذلك سلاسل. يمكنك طباعة النص على الشاشة ، وطباعة المعادلات ، وإدخال الأحصنة إلى المضاعفات والعكس بالعكس ، وربط السلاسل والأرقام ، والتعامل مع التفاعلات الأساسية فقط. نصيحتي هنا ، حاول إنشاء Chick-Fill-A أو (أدخل اسم المطعم المفضل هنا) ، حيث يمكنك طباعة شاشة ترحيب جميلة ، وإظهار طلبات العملاء للحصول على قيم مكتملة ، وإجمالي الضرائب.
  2. المستوى 2 هو المكان الذي تحصل فيه الأشياء على المتعة. نقدم هنا إذا كانت العبارات ، للحلقات ، بينما الحلقات ، وإدخال الماسح الضوئي من المستخدم لإنشاء برامج أكثر تعقيدًا لكنها لا تزال بسيطة للغاية مثل Magic 8 Ball التي تطرح 8 أسئلة ، آلة حاسبة حقيقية للمطعم تأخذ مدخلات المستخدم ، بسيطة لعبة نصية تستخدم الحلقات والمدخلات للإجابة على الأسئلة الأساسية. هذا أحد أهم المستويات حتى الآن ، لذا خذ وقتك حقًا لفهم مدى قوة البيانات والحلقات ، لأن هذه هي الأساسيات الحقيقية لعلوم الكمبيوتر هناك. أوه ، ودعنا لا ننسى الطرق ، حاول أن تعرف ما هي الأساليب وكيفية استخدامها قبل الانتقال إلى المستوى التالي ، ستجعل حياتك أسهل كثيرًا.
  3. أعتقد أن معظم الناس يدخلون في الترميز لأن جزءًا منهم يريد إنشاء التطبيق الكبير التالي أو لعبة فيديو أو شيء ممتع وتفاعلي. أخذ هذا في الاعتبار المستوى 3 هو الخطوة الأولى الكبيرة نحو تحقيق هذا الهدف ، حيث يقوم المؤشر الرئيسي على إنشاء نسخة نصية من الجلاد ، والآن حتى بالنسبة للمطورين ذوي الخبرة هناك ، أريد للجميع أن يجربوا ذلك دون استخدام أي كائنات ولكن السلاسل ، لذلك هذا يعني عدم وجود صفائف أو قوائم Array أو String.split (""). في وقت مبكر من المرحلة ، يجب ألا يكون تحسين أداء الشفرة أو أدائها في عقلك. واحدة من أكبر الأخطاء التي أراها الناس يرتكبونها هي التقليل من أهمية قوة الأوتار ومدى أهميتها ، يمكنك فعل أي شيء وكل شيء بصراحة باستخدام Strings ، السماء هي الحد الأقصى. كن مبدعًا ، فكر خارج الصندوق ، اكتب أفكارك على الورق بدلاً من الكود فقط ، وقم بتقسيم كل خطوة إلى شيء صغير وبسيط ، ثم حاول ترميزه.
  4. إذا كنت قد حصلت على هذا الحد ، عمل رائع! انتبه لنفسك على ظهره أو الأفضل من ذلك أن تقفز صعودًا ونزولًا تصرخ في فرح ، للناجين الوحيدين الذين جندوا حتى هذه النقطة ، لقد قمت بعمل جيد بصدق ، لكن الرحلة بدأت للتو. بعد Hangman ، حان الوقت الآن للتعرف على هياكل البيانات التي يجب على Java تقديمها ، خاصةً المصفوفات وقوائم ArrayLists و HashMaps والمجموعات و Stacks و Queues و LinkedLists و Trees. بالطبع ليس كل ذلك مرة واحدة ، فإن المستوى 4 يتعلق فقط بإتقان المصفوفات وقوائم ArrayLists. حاول إجراء محاكاة صغيرة لمتجر البقالة ، حيث يمكنك إدخال أوامر أرقام مختلفة لإضافة أو إزالة أو استبدال عناصر من سلة التسوق الخاصة بك.
  5. الآن بعد أن تعلمت سحر صفيف وقوائم الصفيف ، والعودة وجعل الجلاد أفضل بكثير. ولكن ربما تعرف على مجموعات أولاً وقد تجعل بعض الأشياء أسهل.
  6. تعلم كيفية استخدام الماسحات الضوئية لقراءة الملفات النصية ، ثم حساب عدد المرات التي يظهر فيها كل حرف أولاً ، تلميح: استخدام خريطة التجزئة. اطبع رقم كل حرف في كتاب كبير مثل Moby Dick أو Tales of Two Cities ، وتتبع المدة التي يستغرقها الأمر ، وقد يستغرق الأمر بعض الوقت ولكن يمكنك البحث عن تحسينات لجعل هذه العملية أسرع. إذا استغرقت الشفرة ساعات ، فأنت تفعل شيئًا خاطئًا للغاية.
  7. تعد المكدسات وقوائم الانتظار والقوائم المرتبطة والأشجار كل الأشياء التي ستتعلمها في نهاية المطاف في فصل هياكل البيانات ، لذلك لا تقلق كثيرًا حيال ذلك ، فليس من المهم بناء تطبيق ممتع. أنا هنا أريدك أن تتعرف على واجهة برمجة التطبيقات (API) ، وتعرف على Maven ، وهي الطريقة التي تستخدم بها الكود الذي كتبه شخص آخر في تطبيقك الخاص لفعل شيء ذي معنى. يعد هذا أيضًا وقتًا رائعًا للتوقف ومعرفة أساسيات جيثب ، لأنك ستستخدمه لبقية حياتك. حاول سحب بعض موجزات الأخبار من Reddit أو ابحث في JavaFX لإنشاء تطبيقات سطح المكتب من خلال واجهة مستخدم.
  8. مطلقة أخرى يجب على كل مبرمج جديد القيام به هو إنشاء لعبة. الآن أنا لا أتحدث عن شيء مثل Call of Duty ، لا أفكر في 3D حتى الآن. مجرد لعبة ثنائية الأبعاد مع الحصول على العفريت أولاً للتنقل على الشاشة ، ثم ربما تضيف بعض الأعداء للتنقل ، وإطلاق المقذوفات ، والوصول في النهاية إلى أدوات التمرير الجانبية والمنصات مثل Zelda أو Mario أو Pokemon. لمعرفة كيفية جعلها في Java ، الموقع أدناه هو المكان الأفضل المطلق ، يمكنني أن أوصي به بشدة عند استخدام ألعاب ثنائية الأبعاد. أنها تجعل من السهل جدا متابعة الدروس التي تغطي الأساسيات من الألف إلى الياء. http://zetcode.com/tutorials/javagamestutorial/

اعتبارًا من الآن ، لقد اكتسبت خبرة تعادل ربما من 1-2 سنوات من Java في HighSchool أو College. هذا لا يكفي تقريبًا على الرغم من حصولك على وظيفة حقيقية أو حتى فترة تدريب داخلي ، ستحتاج إلى معرفة كيفية الاتصال بالأنظمة الخارجية ، وكيفية إجراء مكالمات REST API ، والعمل مع واجهة مستخدم على مستوى ما ، وقراءة الكتابة إلى قاعدة بيانات. يجب أن تكون فخوراً بمكانك وكيف وصلت إلى هنا ، لكن لا تتهاون. أنت الآن في خط البداية الحقيقي. كجزء من الدليل النهائي للوصول إلى القمة ، كونه أفضل مهندس برمجيات ، فإن التطور الطبيعي من Java هو تعلم تطوير تطبيقات Android كما هو مكتوب في Java. هنا يمكنك الاستفادة من المهارات المنطقية الأساسية التي تعلمتها وتوصيلها إلى واجهة مستخدم ، إلى مزيد من أجهزة الاستشعار والمعلومات ، وشبكة الإنترنت حقًا وجميع الإمكانات التي يمكن أن يتمتع بها الهاتف في هذه الأيام ، عوالم المحار.

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