كيف تصبح مطور ويب جافا (2017) - الجزء الأول: أساسيات تطوير ويب جافا

Java Banner [10]

بطريقة ما ، تعثرت في البرمجة واكتسبت اهتمامًا بلغة برمجة Java. ربما كان بسبب المدرسة. أو ربما رأيت شعار Java على سطح المكتب. ربما تكتشف أن Java موجودة في كل مكان تقريبًا - بدءًا من برنامج Blu Ray إلى أجهزة Android عبر openJDK. ربما لاحظت أن Java تُصنّف بشكل روتيني على أنها لغة البرمجة الأكثر شعبية رقم 1 (أو من بين الأعلى) وفقًا لمؤشر TIOBE وأن 6 مليارات جهاز تستخدم Java [1] [2]. ربما لاحظت أيضًا أن Java هي ثاني أكثر لغات البرمجة شيوعًا لجافا سكريبت (باستثناء SQL ، وهي لغة استعلام) وفقًا لـ Stack Overflow [35].

وفقًا لـ BLS: حقق مطورو البرمجيات معدلًا بلغ 102،280 دولارًا في السنة و 49.17 دولارًا في الساعة في عام 2016 ويتزايد الطلب بمعدل 17٪ من عام 2014 إلى عام 2024 ؛ بحلول عام 2020 ، سيكون هناك 1.4 مليون وظيفة متعلقة بـ CS و 400000 فقط من خريجي CS لديهم المهارات اللازمة. جافا هي عادة واحدة من المهارات المذكورة.

Peradventure لقد أجريت بعض الأبحاث واكتشفت أن حوالي 70،000 وظيفة شاغرة (زيادة +30،000 من عام 2016) على موقع التوظيف الرائج فيليز دوت كوم شملت لغة برمجة جافا كمهارة في عام 2017 [2].

[3] - codingdojo.com

ولأنك فضولي ، فقد تكون لاحظت أن 3 / 4ths (حسب المصدر ، 65 ٪ - 85 ٪) من مطوري Java يعملون على تطبيقات الويب أو المؤسسات وأن 90 ٪ من Fortune 500 يستخدمون Java على جانب الخادم [ 4] - مطالبة ذكرتها أوراكل. في الواقع ، إنه وقت ممتاز ليكون مطور Enterprise Java.

من خلال تصفح لوحات الوظائف ، ربما تكون قد لاحظت سمة - كلمات رئيسية مثل "J2EE" و "Spring" و "Servlets" و "Hibernate" وما شابه. ربما تكون قد سألت نفسك - "كيف يمكنني الوصول من هنا إلى هناك؟". ربما تكون مفتونا بتقارير حزم التعويض أعلى من المتوسط ​​لمطوري Java Enterprise أو أحلام تصميم "الشيء الكبير التالي" أو كليهما.

ربما تكون قد أجريت بحثًا في Google ولم تجد سوى مقال John Thompson حول الموضوع [5]. ربما لم تطرح أيًا من هذه الأسئلة: كل ما تريد معرفته هو كيف تصبح مطور ويب أو مؤسسة Java. وفي كلتا الحالتين ، فإن الجواب هو - لا توجد إجابة واحدة محددة. المهارات التي ستحتاجها ستعتمد في النهاية على الدور المحدد الذي تبحث عنه. علاوة على ذلك ، قد تختلف المهارات التي قد تجدها عمومًا في أدوار Java بناءً على مجموعة من العوامل المختلفة ، مثل المنطقة والصناعة ، وغيرها. الحقيقة هي (وربما أكون مذعورًا لهذا) أنك لست بحاجة إلى إدراج كل مهارة في إعلان الوظائف (حتى بين تلك المعلومة المطلوبة!). يقوم العديد من أرباب العمل بتوظيف الأفراد بناءً على الاستعداد ، والقدرة على التعلم بسرعة ، وبصراحة ، لأنهم يحبونهم [6]. على الرغم من ذلك ، لا تزال المهارات مهمة - لا يتم إنجاز العمل بدونها.

بعد قول كل هذا ، ربما يكون السؤال الذي يجب البدء به هو: "ما هي المهارات الأساسية الشائعة لمطوري Java Enterprise & Web Developers؟". سوف تصف المهارات التي تمت مناقشتها مهارات المهندسين الذين يعملون على مجموعة البرامج الكاملة. ومع ذلك ، بينما يعمل المهندسون على أجزاء مختلفة من المكدس - النهاية الأمامية ، النهاية الخلفية ، EJBs ، إلخ - يمكن للمرء قراءة الأجزاء ذات الصلة بهم.

من المهم الإشارة إلى أن هذه المقالة لن تناقش جوانب المقابلة والمقابلة السابقة المرتبطة بالحصول على وظيفة في تطوير جافا ، بل ستركز بدلاً من ذلك على المهارات الأساسية لمطوري Java Enterprise Developers. للحفر في هذه المادة ، أوصي بأغلبية ساحقة Cracking The Coding Interview بواسطة Gayle Laakman McDowell. أنت لن تخيب!

من المهم أيضًا الإشارة إلى أن هذه المقالة ستركز على المهارات الفنية بدلاً من المهارات اللينة. في حين أن المهارات اللينة لا تقدر بثمن ، فإنها تقع خارج نطاق هذه المقالة. ومع ذلك ، تجدر الإشارة إلى أن التنظيم الجيد والتواصل ومهارات التعامل مع الآخرين هي المفتاح. تحقق من المهارات اللينة بواسطة John Somnez و The Clean Coder: مدونة قواعد سلوك للمبرمجين المحترفين من إعداد Robert C. Martin.

دون مزيد من الضحك ، دعونا نلقي نظرة خاطفة.

نافذ الصبر؟ إليك نظرة خاطفة مختصرة للتسلل: http://bit.ly/2gBUBRJ
في حالة انتهاء صلاحية الرابط bit.ly أو إلقاء 404 ، فقم بالتعليق على المقالة ، وسأقدم ارتباطًا تشعبيًا جديدًا.

هل لديك اقتراحات؟ اكره المقال؟ أحب المقال؟ أي شيء بينهما؟ اسمحوا لي أن نعرف في التعليقات.

جافا - هذا واحد واضح إلى حد ما.

"لغة برمجة Java هي لغة برمجة كمبيوتر متعددة الأغراض متزامنة ، قائمة على الفصل ، موجهة نحو الكائن ، ومصممة بشكل خاص بحيث يكون لديها أقل عدد ممكن من تبعيات التنفيذ." [7]

تم تصميم Java للكتابة مرة واحدة وتشغيل في كل مكان ، وهي فكرة تعرف باسم WORE. يتم تحقيق ذلك من خلال استخدام تنفيذ Java bytecode على Java Virtual Machine ، والذي يتم تنفيذه هو نفسه على العديد من الأنظمة الأساسية. لن نقضي وقتًا طويلًا هنا ، حيث يجب أن يكون واضحًا للقارئ أنه يتعين على المرء معرفة لغة جافا ليكون مطور جافا (duh). النقطة المهمة هي أن مطور جافا الجاد يجب أن يفهم تمامًا ويهدف إلى إتقان جميع عناصر لغة برمجة جافا نفسها والميزات الأساسية بالإضافة إلى الحزم المهمة (بما في ذلك على سبيل المثال لا الحصر): java.lang ، java.util ، java.concurrent ، java.io.

لماذا أنا شخصيا أحب Java: يمكنك تطوير حلول قوية وقابلة للتطوير وموثوق بها ومختبرة وموثوقة (JavaFX ، Swing) ، Mobile (Android) ، Web & Enterprise (JEE ، Spring ، Struts).

تتبع تطور Java: تم إصدار Java 9 (اعتبارًا من النشر) في 17 يومًا في 21 سبتمبر. هل سيلقى بالفعل تاريخ إصداره؟ عليك أن تبقي على اطلاع دائم. لا تترك وراء المنحنى - وحدات Java 9 ستغير بشكل أساسي الطريقة التي نتعامل بها مع برمجة Java. ضع في اعتبارك حضور (أو على الأقل متابعة عبر الإنترنت) مؤتمر Java One الذي تستضيفه Oracle كل عام خلال أوائل شهر أكتوبر. يجب عليك أيضًا متابعة مجلة أو منشور عبر الإنترنت مثل DZone / Java Zone ، والذي يحتوي على مقالات تتحدث عن الأحدث والأكبر في تطوير Java.

استكمال: جافا SE 9 / Java EE 8 قابل تاريخ إصداره! ملاحظات الإصدار لـ Java SE موجودة هنا. ملاحظات الإصدار الخاصة بـ Java EE موجودة هنا.

أين تتعلم ، الموارد الموصى بها:

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

جافا: دليل المبتدئين ، الطبعة السابعة. (13 أكتوبر 2017 تاريخ الإصدار)
 - كانت الطبعة السادسة لهذا الكتاب مقدمة عن جافا. جئت إلى Java بعد أن تعلمت C ++ في المدرسة. التفاصيل تبدو غامضة. أتذكر خريف 2014: كنت سأجلس في صف IST 302 الذي أتمنى أن تكون المادة حول Java بدلاً من إدارة المشاريع ، وقد أحببت إدارة المشاريع كثيرًا ولا زلت أقوم بذلك. هذا الكتاب هو المورد الأول للمبتدئين. لقد تحدثت شخصيًا مع المؤلف ، هربرت شيلت ، ثلاث مرات ، وليس لدي أي سؤال في رأيي بأن الطبعة السابعة ستكون ممتازة بنفس الدرجة. نشرتها أوراكل برس. يغطي جافا 9.

بلدي ممزقة ، الشخصية البالية 6th إد. نسخ. المعروف بمودة باسم حبي الثاني.

جافا: المرجع الكامل ، الطبعة العاشرة. (13 أكتوبر 2017 تاريخ الإصدار)
الخطوة المنطقية التالية بعد قراءة دليل المبتدئين. مربى معبأة مع المعلومات الهامة. القراءة الإجبارية. كما كتبه هربرت شيلت ونشرته أوراكل برس. يغطي Java 9. أنا شخصياً أعتقد أن جميع مبرمجي جافا يجب أن يمتلكوا هذا النص ، دون استثناء. أنا أملك الإصدار التاسع من هذا النص.

جافا ، المرجع الكامل ، الطبعة العاشرة. - هربرت شيلت

كور جافا: المجلد الأول ، الأساسيات ، الطبعة العاشرة.
اجعل الأمر معروفًا: بعد قراءة هذا النص ، لا توجد طريقة لإخبار Cay S. Horstmann أنه لا يعرف أغراضه. هذا النص يكتنف معرفة المؤلف العميقة والشاملة للغاية بلغة برمجة جافا. يتجاوز أساسيات اللغة ويترك المستخدم راضيًا. يغطي جافا 8.

كور جافا: المجلد الثاني ، الميزات المتقدمة ، الطبعة العاشرة.
الخطوة المنطقية التالية بعد قراءة المجلد الأول. كل شيء مرضية. يغطي جافا 8.

المؤهلات - كيف تقول أنك تعرف ما تعرفه

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

التعليم الرسمي: الدرجات والدبلومات

وفقًا لـ Stack Overflow (مجتمع البرمجة الأكثر شيوعًا على الويب وموقع المعلومات الأكثر شعبية على شبكة الإنترنت [36]) ، 76.5٪ من المطورين المحترفين يحملون درجة البكالوريوس أو أعلى ، 14.9٪ لديهم بعض الخبرة الجامعية ، 7.6٪ لديهم أقل من التعليم الجامعي ، و 1.1 ٪ فضل عدم الإجابة. قدم ما يزيد قليلاً عن نصف (حوالي 56٪) من الأشخاص الذين أجروا هذا الاستطلاع استجابة كاملة لما يلي:

مسح Stack Overflow Developer Survey 2017 - التحصيل التعليمي [35]

من بين الذين درسوا في كلية أو جامعة ، درس 54.2 ٪ علوم الكمبيوتر أو هندسة البرمجيات ، وتخصص 24.9 ٪ في تخصص وثيق الصلة ، و 20.9 ٪ ركزت في المجالات غير ذات الصلة [35].

مختارات بارزة في استجابات المطورين المحترفين في الجزء المتعلق بالتعليم من استبيان Stack Overflow على العديد من الأسئلة:

  • قال 67.9٪ أن التعليم الرسمي مهم على الأقل إلى حد ما.
  • أفاد 91.1 ٪ من المطورين أنهم على الأقل يتعلمون جزئيا.
  • 9.4٪ من المطورين استخدموا المعسكرات. 22.8٪ يوصون بتكوامب الترميز.
  • سعى 16.4 ٪ شهادات الصناعة.
  • استخدم العديد من الأشخاص الآخرين التدريب أثناء العمل والدورات التدريبية عبر الإنترنت والمساهمات مفتوحة المصدر والهاكاتون ومسابقات الترميز والدورات غير المتفرغة كوسيلة للتعليم.
Bootcamp Success بين مطوري البرمجيات [35]

تعتبر بيانات Stack Overflow Developer Survey 2017 مثيرة للاهتمام للغاية ويمكنك العثور عليها هنا. قد تعتبره SOTU من الأنواع ، لمجتمع المطورين. أوصي بشدة بقراءة تقاريرهم السنوية.

ماذا يعني كل هذا؟

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

  • بينما لا تحتاج إلى درجة لتوظيفها كمطور برامج ، يبدو أن غالبية المطورين يحملون شهادات. حاول تصفح قوائم مطوري البرامج بالفعل لمنطقتك المحلية - أنا على استعداد أن أراهن أنك سوف تجد كل هذا يتوقف. بعض المنظمات الدولة درجة كشرط في حين أن دولة أخرى في تفضيل. يختلف عدد الأميال لديك حقًا ، لكنني أرغب في تخمين أن الأغلبية ستفضل على الأقل الحصول على درجة علمية. حتى لو ذكروا أنهم يحتاجون إلى درجة علمية ، تقدم بطلب على أي حال. سوف يتم التشهير مرة أخرى بهذا ، لكن في نهاية اليوم تتطلع الشركة إلى التعامل معك - إذا كنت تستطيع كسب المال ، فقد يسعدهم استئجارك. إنه سر قذر ولكن متكرر أن الشركات قد تقوم بتوظيف أشخاص ليس لديهم كل المتطلبات. ليس لديك ما تخسره. أسوأ ما يمكن أن يفعلوه هو عدم توظيفك.
  • هناك العديد من المؤهلات التي يتعرف عليها أصحاب العمل عند تعيين مطوري البرامج. في المتوسط ​​، يبدو لي على الفور درجة ذات صلة بالموضوع هي أبرز مؤهلات أعلى المعسكرات التمهيدية والدرجات ذات الصلة الوثيقة. في حين أن هذا قد يتغير ، يبدو أن هذا الاتجاه ثابت ، في الوقت الحالي على الأقل.
  • ربما كانت النتائج الأكثر إثارة للدهشة - بين المطورين المحترفين الذين سعوا للحصول على درجة علمية ، ما يزيد قليلاً عن الخمس لم يدرس موضوعًا ذي صلة ، ودرس أكثر من رابع مجالًا وثيق الصلة ، والأكثر إثارة للدهشة - 54 درس فقط إما CS أو هندسة البرمجيات ! ما يوضحه لي هذا هو أن تخصص كليتك ربما لا يكون مهمًا عند النظر في وظيفة مطور. أتمنى أن يفصل Stack Overflow علوم الكمبيوتر عن هندسة البرمجيات للمسح 2018 ، ومع ذلك ، فإن المنهجين ليسا متماثلين بالتأكيد.
  • يشير 91.1٪ من المطورين إلى أنهم يدرسون حقيقة أن العمل الحقيقي في العالم يتجاوز ببساطة الموضوعات التي تدرس في الفصل. يستخدم الفصول الدراسية بلا جدال. ومع ذلك ، إذا كنت تريد أن تكون مطورًا ، فمن المؤكد أنك لن تتمكن أبدًا من الاعتماد على الفصل الدراسي وحده لتزويدك بجميع الأدوات التي تحتاجها. كما أنك لن تكون قادرًا على عدم الاستمرار في التعلم. فترة.
  • درجات متقدمة ليست مهمة كما هو الحال في العديد من المجالات الأخرى. - 48 ٪ من المطورين المحترفين لديهم فقط درجة البكالوريوس. في حين أن البيانات وحدها قد لا تدعم بشكل كامل الادعاء بأن الشهادات المتقدمة ليست مهمة بنفس القدر ، أعتقد أن البيانات تظهر أن الغالبية العظمى من المطورين المحترفين (69.2-70.3٪) يفتقرون إلى درجة تتجاوز درجة البكالوريوس. استعرض قائمة الوظائف - كم مرة ترى درجة الماجستير (أو أعلى) كشرط؟ انهيت قضيتي.
هذا كل شيء على ما يرام و dandy لكن ... أي مؤهل يجب أن أحصل عليه؟

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

قد تكون بعض الكليات والجامعات باهظة الثمن ومدمرة للغاية ، مما يثير غضب الكثير من الناس. في مؤسسة CS ذات أعلى تصنيف (لن أقول أين) بين الرسوم الدراسية ، الرسوم ، الغرفة ، السبورة ، الكتب والمستلزمات ، إلخ. يمكن أن يكلف ما يصل إلى 70 ألف دولار أمريكي في السنة. هذا يعادل الراتب السنوي لشخص ما وأعلى من متوسط ​​دخل الأسرة في الولايات المتحدة. إذا أنهيت دراستك خلال 4 سنوات من شأنها أن تديرك بحوالي 280 ألف دولار إذا حصلت على قروض للمدرسة ، فستدفع أكثر من ذلك ، بسبب الفائدة. يعد القرار قرارًا شخصيًا - يتم تكليف أحدهم بتحديد مدى استعدادهم للدفع مقابل درجة بقدر ما يكونون على استعداد لدفع ثمن سيارة أو أي شيء آخر. تفكيري هو أن ننظر إلى العائد على الاستثمار - كم من المال أنت في وضع يمكنك كسبه بسبب الدرجة الخاصة التي حصلت عليها.

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

في رأيي ، الشهادات مفيدة ، وأنا أحب بعضها حقًا ، لكنها لن تمنحك قدرًا كبيرًا من فرص التوظيف مثل شهادة جامعية. ومع ذلك ، يمكن أن تكون مؤهلاً جيدًا (في رأيي) لتجعلك تبرز من منطقة ما لمنطقة مستهدفة ، مثل Java. تحقق من Oracle Certified Associate & Programmer في برمجة Java ، هنا. تطرح Oracle عدة مطالبات قوية حول القيمة الصناعية لشهادة Java الخاصة بهم وأعتقد أنها إيجابية للغاية. لقد قابلت مهندسي برمجيات استفاد منهم من هذه الشهادة وشاهدت الشهادة المطلوبة في عدد قليل من الوظائف.

لم أكن في السابق من المعجبين بمعسكرات ترميز التمهيد ورفضتهم إلى حد كبير على أنهم خدع ولكن رأيي قد تغير. بعد كل شيء - البرمجة ليست صعبة حيلة يمكن تعلمها في مجرد 16 أسبوعا؟ كان هذا تفكيري السابق. على الرغم من أنني لا أزال أعتقد أنه يمكن أن يصبح المرء مطورًا كاملاً في غضون 16 أسبوعًا ، أعتقد أنه يمكن تحقيق الكثير من التقدم. أعتقد أن معسكرات Boot يمكن أن تكون مفيدة إذا كان معسكر التمهيد يمتاز بصلات قوية في الصناعة ، وإذا كان الفرد لديه دوافع ذاتية ويتعلم خارج معسكر التمهيد ، وإذا كان الفرد ينشر الكود الخاص به على الويب حتى تتمكن المؤسسات من رؤيته. اطلع على مقال جايل لاكمان ماكدويل (مؤلف كتاب Cracking The Coding Interview ، من بين كتب أخرى) حول هذا الموضوع: لذا فإن كل شيء مثل برنامج bootcamp الترميز بأكمله هو عملية احتيال ، أليس كذلك؟

علم النفس. عادة ما يكون هؤلاء الأفراد يحملون شهادة الدراسة الثانوية أو GED. في رأيي ، فإن العديد من هؤلاء الأفراد يختتمون درايتهم بمعرفة مجال دراستهم لأنهم يتمتعون بحرية التركيز على هذا المجال. كل الأشياء التي تم وضعها في الاعتبار ، أنا شخصياً أعتقد أن جميع المطورين الجادين يجب أن يتعلموا ذاتيًا بدرجة كبيرة ، وأن الأشخاص الذين يتعلمون أنفسهم بجدية هم شغوفون للغاية. بعد كل شيء - تطبيق الانضباط اللازم لتصبح مطور برامج دون أن تحمل المدرسة يدك هو عمل شاق. إذا كنت تأخذ على عاتقك القيام بكل عمل سيئ من الانضباط واكتشاف ما تحتاج إلى معرفته لتصبح مطورًا ، فأعلم فورًا أنك تأخذ تطوير البرامج على محمل الجد. جانبا: ذكرت سي إن إن المال من عام 2010 حوالي 38 ٪ من مطوري الويب كان أقل من شهادة جامعية لمدة أربع سنوات ، وفقا لتعداد الولايات المتحدة.

يجب عليك مراجعة مجموعة Cory Althoff's Self-Teachered Programmer's’s's)

علوم الكمبيوتر الأساسية - الأسس الأساسية

"علوم الكمبيوتر هي دراسة أجهزة الكمبيوتر والأنظمة الحسابية. على عكس مهندسي الكهرباء والكمبيوتر ، يتعامل علماء الكمبيوتر في الغالب مع أنظمة البرمجيات والبرامج ؛ ويشمل ذلك نظريتهم وتصميمهم وتطويرهم وتطبيقهم. "[38]

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

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

يجب أن تفهم سبب كون الطريقة الأولى لإضافة عدد صحيح أقل كفاءة من الطريقة الثانية لإضافة ما يلي:

شيء آخر: هل أحتاج إلى استخدام varags؟ كلا ، بالتأكيد لا. في الواقع الفعلي ، لا تلاحظ JVM الفرق - لا تزال ترى مجموعة - لكن يجب أن تفهم الفرق.

وما إلى ذلك وهلم جرا.

ملاحظة جانبية: في عملية صياغة هذا المثال ، علمت أنه تم إهمال منشئي Integer في Java 9 لصالح الأساليب الثابتة! أنت لا تتوقف أبدا عن التعلم في البرمجة. لهؤلاء الغريبين ، يمكنك معرفة المزيد هنا.

وفقًا لمجلس اعتماد علوم الحوسبة ، وهو مجلس يضم أشخاصًا من رابطة آلات الحوسبة (ACM) وجمعية IEEE للكمبيوتر ، هناك مجالات أساسية لعلوم الكمبيوتر [38]:

  • نظرية الحوسبة
  • الخوارزميات وهياكل البيانات
  • منهجيات البرمجة واللغات
  • عناصر الكمبيوتر والهندسة المعمارية

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

أين تتعلم ، الموارد الموصى بها:

علوم الكمبيوتر: نظرة عامة ، الطبعة الثانية عشرة.

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

نظرية الحوسبة - الفصل 12
الخوارزميات وهياكل البيانات - الفصول 5 ، 8
منهجيات البرمجة واللغات - الفصل السادس
عناصر الكمبيوتر والهندسة المعمارية - الفصول 1 ، 2

SQL - العالم يدور حول البيانات

"لغة الاستعلام الهيكلية - SQL هي لغة خاصة بمجال معين تستخدم في البرمجة لإدارة البيانات المحفوظة في نظام إدارة قواعد البيانات العلائقية (RDBMS) ، أو لعملية التدفق ، تيار إدارة دفق البيانات العلائقية (RDBMS)." [8]

إذا كنت ستقوم بتطوير Java الخلفي ، فمن المحتمل أنك تتعامل مع قواعد البيانات العلائقية بطريقة ما ؛ سوف تحتاج إلى فهم SQL. بالإضافة إلى تعلم SQL ، من الآمن أن نقول إن هناك حاجة إلى حد كبير لتعلم نظام RDBMS مثل MySQL أو PostgreSQL ، حيث لا يمكن لـ ANSI SQL الوصول إليك إلا حتى الآن. الإصدار الحالي من ANSI SQL هو SQL: 2016.

وفقًا لمسح Java Tools & Technologies Landscape 2016 Survey [27] ، فإن RDBMSs التالية لها حصة عقلية رائدة بين مطوري Java: Oracle DB بنسبة 39٪ ، و MySQL محسّن بنسبة 38٪ ، و PostgreSQL قوي 29٪. من المهم أن نلاحظ أن المجيبين يمكنهم اختيار أكثر من RDBMS.

أين تتعلم ، الموارد الموصى بها:

سام علم نفسك SQL في 10 دقائق في اليوم ~ Ben Forta
يجب اعتبار هذا النص قراءة إلزامية لمطوري التطبيقات. في 288 صفحة ، يمكن هضمه بشكل معقول لقراءة أسبوع. لن تتمكن من الحصول على وظيفة DBA بعد هذا الكتاب ، ولكن هذا ليس مهمًا ، لأنك لا تحاول أن تكون DBA ، فأنت تحاول أن تكون Java Enterprise Developer. من المفيد أن يكون هذا الكتاب أحد أكثر النصوص المطبوعة على نطاق واسع (إن لم يكن # 1) على SQL ، وهو شهادة على جودته وبالتالي يتم تبجيل Forta على نطاق واسع بعمله. في الوقت الحاضر ، يوجد نص Forta في الإصدار الرابع الذي يغطي SQL: 2011 و SQL: 2016 علينا. على الرغم من كونه إصدارًا واحدًا خلفه ، يعد SQL: 2011 هو الإصدار الأكثر شعبية الذي يتم تنفيذه حتى الآن ، وتتوفر تحديثات لمعيار SQL (SQL: 2016) مجانًا عبر الإنترنت [11] ؛ معظمهم قلق JSON. نظرًا لأنه صغير الحجم وموجز وسليم من الناحية الفنية ، ما زلت أوصي بقراءة هذا الكتاب.

سام علم نفسك SQL في 10 دقائق - Ben Forta

البرنامج التعليمي MySQL Tutorial's Point
MySQL هو RDBMS مفتوح المصدر شائع جدًا وقوي جدًا. أصبح MySQL مشهورًا جدًا في جزء منه بسبب شعبية LAMP (Linux / Apache / MySQL / Perl ، Python ، PHP) في أواخر التسعينيات وأوائل 2000. يمكنك قراءة المزيد عن التاريخ ، هنا.

OOP - تجميع "فعل" و "أشياء"

"من الخطورة وضع تنبؤات ، خاصة في مجال يتغير بسرعة كبيرة ، لكن الشيء الوحيد الذي يمكنني قوله بثقة هو أنني رأيت المستقبل ، وهو موجه نحو الكائن" - جرادي بوخ ، والد UML ، 1996 [ 9]

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

تشتمل معظم اللغات الشائعة والحديثة: Python و Java و C # و C ++ و Ruby و PHP و Scala وغيرها على دعم البرمجة الموجهة للكائنات باعتبارها مكونًا أساسيًا في نموذج البرمجة. والحقيقة هي أن المطور المعاصر ربما لن يكون قادرًا على التحايل على نموذج الكائن الموجه (ما لم تكن في أشياء غريبة مثل لغة البرمجة "Brainf ***" ، التي لديها بالفعل مطورون يمدونها لتكون موجهة نحو الكائن!). الحصول على نقطة؟ OOP في كل مكان.

مفتاح التصميم المعماري للبرامج الموجهة للكائنات هو لغة النمذجة الموحدة (UML). UML هي وسيلة شائعة يمكن من خلالها لمطوري البرامج وصف وتصميم الطريقة التي تتصرف بها الكائنات في التطبيق. "لغة النمذجة الموحدة (UML) هي لغة رسومية لـ OOAD والتي توفر طريقة قياسية لكتابة مخطط نظام البرنامج. إنها تساعد على تصور ، تحديد ، بناء ، وتوثيق الأعمال الفنية لنظام وجوه المنحى. يتم استخدامه لتصوير الهياكل والعلاقات في نظام معقد. "[42] ومع ذلك ، فإن لغة النمذجة الموحدة لا تقتصر على التصميم الموجه للكائنات (OOD).

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

أين تتعلم ، الموارد الموصى بها:

عملية التفكير الموجه للكائن ، الطبعة الرابعة ، مكتبة المطورين
توصيتي الشخصية. هذا النص مكتوب بطريقة غير مُعلنة للغة (على الرغم من C # في المقام الأول) ، مع أمثلة بعدة لغات متوفرة عبر الإنترنت من الناشر. أنا حقًا أحب الطريقة التي كتب بها هذا الكتاب ولم أر شيئًا (على الأقل حديثًا) مكتوبًا تمامًا مثله.

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

بعض الملاحظات: بينما تعد قراءة الكتب طريقة رائعة ، فقد تجد أيضًا فائدة من أخذ دورة تدريبية ، كما فعلت. هذا هو النهج الذي تعلمت به (في تقديري) الأغلبية.

برامج تعليمية لتعليم لغة نقطة النمذجة الموحدة (UML)

الدروس نقطة وجوه المنحى تحليل وتصميم البرنامج التعليمي

في حين أن OOP هو النموذج السائد ، إلا أن البرمجة الوظيفية تشهد طفرة في شعبيتها ويجب أن تكون على دراية بها بالتأكيد. هذا التأثير كان محسوسًا على نطاق المجتمع ومثالًا مثل 1) Clojure ، Scala ، Jaskell ، 2) ظهور واجهات وظيفية ، تعبيرات lambda ، ومراجع الطريقة في Java 8 ، 3) ظهور الدعم الوظيفي في Spring 5 [12] ، بين الآخرين ، يشهد على هذا.

HTML و CSS و JavaScript - التمثيل المرئي لصفحات الويب وسلوكها

"HTML هي لغة الترميز القياسية لإنشاء صفحات الويب وتطبيقات الويب. مع Cascading Style Sheets (CSS) وجافا سكريبت ، فإنها تشكل مجموعة ثلاثية من تقنيات حجر الأساس لشبكة الويب العالمية. يحدد HTML محتوى صفحات الويب ، ويحدد CSS عرض صفحات الويب ، ويحدد JavaScript سلوك صفحات الويب. "[13]

يمثل هذا الثلاثي التقنيات الأساسية حجر الزاوية التي تشارك في ما يسمى البرمجة الأمامية. بالإضافة إلى تعلم هذه اللغات ، يجب عليك أيضًا التفكير في تعلم إطار عمل عرض / MVC / MMVM مثل AngularJS أو Angular 2/4 أو ReactJS + Redux أو Vue ، وما إلى ذلك. إن تضمين أحد هذه الأُطُر يُبسط عملية التطوير للعديد من المشاريع ، يريحك من الاضطرار إلى التورط في كل تفاصيل HTML. يجب أن يكون مطور جافا اليوم على دراية بأحد هذه الأطر الرائدة على الأقل.

أين تتعلم ، الموارد الموصى بها:

HTML5
https://www.tutorialspoint.com/html/

CSS3
https://www.tutorialspoint.com/css/

جافا سكريبت
https://www.tutorialspoint.com/javascript/
جافا سكريبت: الأجزاء الجيدة

جافا سكريبت الإطار - ReactJS
https://www.tutorialspoint.com/reactjs/
https://facebook.github.io/react/tutorial/tutorial.html
رد فعل التعلم

تعلم التفاعل: تطوير الويب الوظيفي مع React و Redux

JavaScript Framework - Angular 4 (Angular Platform 2+)
https://angular.io/docs
نانوغرام كتاب: الدليل الكامل للزاوي 4

ملاحظة خاصة على الزاوي:
TypeScript - مجموعة فرعية ECMAScript تجمع إلى JavaScript (وبالتالي فإن جميع برامج JavaScript هي برامج TypeScript صالحة). يضيف TypeScript بشكل خاص الفئات بين العديد من ميزات اللغة المختلفة.

AngularJS / Angular 1.X - الإطار الزاوي الأصلي. مكتوب في جافا سكريبت.

الزاوي / الزاوي 2.X - إعادة كتابة كاملة من AngularJS. مكتوب في TypeScript.

الزاوي 4 - الإصدار التالي في تطوير Angular2 ، متخلف متوافق مع الزاوي 2. مكتوب في TypeScript.

الثلاثة: HTML ، CSS ، JavaScript
https://www.amazon.com/Web-Design-HTML-JavaScript-jQuery/dp/1118907442

بينما تم نشر نص Duckett في يوليو من عام 2014 ، وأدى التطور ، خاصة في مجتمعات CSS و JavaScript ، إلى إصدارات أحدث من اللغتين ، لا يزال هذا النص ذا صلة. سبب ذلك يرجع إلى حد كبير إلى اعتماد الإصدار. وفقًا لـ W3Schools [21] ، يعد ECMAScript 5 (2011) هو الإصدار الوحيد المدعوم بالكامل من قبل جميع متصفحات الويب الرئيسية ، في حين أن ECMAScript 6 (2015) مدعوم جزئيًا ولا يدعم ECMAScript 7 (2016) بشكل جيد. وبالمثل ، على الرغم من أن CSS4 علينا ، إلا أن العديد من المتصفحات لم تدعم CSS3 بالكامل.

على سبيل المثال ، نتائج css3test.com تعمل على صندوق Win10 x86–64 ،

متصفح Opera v. 46-58٪ دعم CSS 3
متصفح Google Chrome v.60–58٪ دعم CSS 3
متصفح Google Canary v.63–59٪ دعم CSS 3
متصفح جوجل كروم v.60-58 ٪ دعم CSS 3
متصفح فايرفوكس - دعم CSS 3٪ 67

اعتبارًا من: 09/16/2017.

جودة العمل يستغرق وقتا. وبالتالي ، لا يزال هذا الكتاب وثيق الصلة بالموضوع.

تم تصميم الموقع: HTML ، CSS ، JavaScript - Jon Duckett

بيئة التطوير المتكاملة - مكتب عمل المطور

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

IDE Mindshare بين مطوري جافا [27].

IDE Mindshare [27]

هناك العديد من IDEs المتاحة والتي توفر دعمًا متفاوتًا لمختلف اللغات والتقنيات. المفضلات الشخصية الخاصة بي هي IntellIJ IDE و NetBeans IDE. الشركة التي طورت IntelliJ ، JetBrains ، كان لها تأثير فريد على وجه الخصوص في مجتمع Java. بالإضافة إلى إنتاج IDE ذو شعبية كبيرة ، اعتمد مجتمع Android IntelliJ كأساس لـ Android Studio IDE. بالإضافة إلى ذلك ، تدعم Google الآن Kotlin رسميًا ، وهي لغة JVM متوافقة من مصدر إلى مصدر مع Java ، لتطوير Android.

هذا المنشور هو الأول من سلسلة من 3 أجزاء. إذا كنت تفضل قراءة المقال كاملاً فهو متاح هنا.

المصدر: ChocolateVanilla.com

المقالة التالية في هذه السلسلة ، "كيف تصبح جافا ويب أو مطور مؤسسي - الجزء الثاني: أساسيات المؤسسة ، البيانات ، وويب" ، متاحة هنا.

تتوفر الأعمال المذكورة في المنشور في المقال الأخير في السلسلة.

هل أنت مهتم بـ Java؟ انضم إلى مجموعة Java الخاصة بي على Facebook:

مثل المحتوى الخاص بي؟ اشترك في قائمتي البريدية:

لا تنسَ أن تعطيه ... ؛)

IEmoji.com