كيف تحصل على وظيفة التطوير الأولى في 5 خطوات بسيطة

آثار أقدام في رمال الصحراء - إدوارد موسياك (CC BY 2.0)

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

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

اعتقدت أنني كنت الاشياء الساخنة. كان عمري حوالي 18 عامًا ، وكان لدي بالفعل "خبرة" برمجية أكبر من معظم قوائم الوظائف التي طلبتها. لقد بدأت البرمجة حوالي 5 - 6 سنوات. ما زلت أتعلم القراءة والكتابة عندما كتبت أول برنامج لي في لغة BASIC. يبدو مثل هذا:

10 طبعة "مرحبا ، العالم!"
20 غوتو 10

أصبحت برامجي الأخرى أكثر تعقيدًا بالطبع. في النهاية ، تفرعت من BASIC وتعلمت Pascal ولغة التجميع و C و C ++ كنت أعرف المعالج x86 على مستوى منخفض جدا. أحببت تجربة الرسومات والموسيقى باستخدام الكود.

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

كود Hex هو في الأساس نفس كود الكتابة مباشرة في 1 و 0. إنه يمثل الأرقام فقط بطريقة أكثر كفاءة للقراءة والكتابة للبشر. يبدو قليلا مثل هذا:

49 66 20 79 6f 75 20 63 61 6e 20 72 65 61 64 20 74 68 69 73 2c 20 79 6f 75 27 72 65 20 68 69 72 65 64 21 20 4a 75 73 74 20 6b 69 64 64 69 6e 67 2e 20 42 75 74 20 79 6f 75 27 72 65 20 69 6e 20 61 6e 20 65 6c 69 74 65 20 63 6c 75 62 2e 0a 0a 47 65 74 20 31 30 25 20 6f 66 66 20 61 6e 79 20 70 75 72 63 68 61 73 65 20 66 72 6f 6d 20 68 74 74 70 73 3a 2f 2f 65 72 69 63 65 6c 6c 69 6f 74 74 6a 73 2e 63 6f 6d 20 77 69 74 68 20 74 68 65 20 63 6f 75 70 6f 6e 20 63 6f 64 65 3a 20 68 65 78 63 6c 75 62
ملاحظة: لا تحاول تشغيل هذا الرمز ، إنه مجرد تفريغ سداسي للرسالة السرية ، وليس المقصود منه إرشادات لأي وحدة المعالجة المركزية.

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

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

مهارات:

خبرة البرمجة لأكثر من 10 سنوات *
Photoshop و ACiDDraw و 3D Studio Max **

اللغات

BASIC ، QBASIC ، Pascal ، ASM ، x86 لغة الآلة ، C ، C ++ ، MS DOS Batch ، Perl ، AutoLISP.

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

حصلت هذه السيرة الذاتية على مقابلات معي ، لكنها لم تسير على ما يرام.

لقائي الاول مقابلة

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

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

كنت واثقا من أنني أستطيع القيام بذلك بسهولة من خلال وظائف بسيطة في C ، لكنني كنت بصراحة جديدة في C ++ في ذلك الوقت. ما هو بناء جملة الصف مرة أخرى؟ كيف يمكنني تحديد الأساليب؟ هل أحتاج إلى طرق افتراضية أو طرق ثابتة أم عامة أم ماذا؟ ما هي الاختلافات؟

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

و WTF؟ !!! المتواجدون في عقلهم الصحيح على ورق؟! بشكل جاد؟ أعطني حاسوبًا وكتابًا ، وسوف أقوم بذلك في أي وقت من الأوقات.

استسلمت وغادرت المقابلة وأنا أشعر بالسحق التام.

العودة الى لوحة الرسم.

الخطوة رقم 1: افصل سيرتك الذاتية.

دعنا نتحدث عن كل شيء خاطئ في سيرتي الذاتية الأولى للبرمجة. يمكن لكل مدير توظيف ذي خبرة اكتشاف سيرة ذاتية منتفخة من على بعد أميال. لم أكن أخدع أحدا.

نصيحة عن السيرة الذاتية: لن يساعدك انتفاخ سيرتك الذاتية لتعويض قلة خبرتك. سوف يؤذيك. إذا كنت مطورًا مبتدئًا ، فيمكنك امتلاكه: "Jr dev مع شغف بالتعلم!"

إذا اضطررت إلى تقييم مهاراتي مع كل هذه الأشياء في ذلك الوقت بمقياس من 1 إلى 10 ، فإنني سأصنفها على النحو التالي:

  • فوتوشوب: 8
  • ACIDDraw: 3
  • 3D ستوديو ماكس: 2
  • مهارات تصميم الرسوم الفعلية: -10
  • الأساسية: 8
  • QBASIC: WTF؟ المجموعة مع BASIC ، اللغز المحير.
  • باسكال: 8
  • ASM: 6
  • x86 آلة اللغة: 1 (فقط برامج بدائية صغيرة ممكنة)
  • ج: 6
  • سي ++: 1
  • MS DOS دفعة: 9
  • بيرل: 3
  • AutoLISP: 2
نصيحة استئناف: إذا كنت تقيم نفسك أقل من 5 في أي مهارة ، فلا تضعها في سيرتك الذاتية.

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

بعد بعض الأمانة الوحشية للنفس ، دعنا نرى ما بقي علينا:

الأساسية ، باسكال ، ASM ، C ، MS DOS دفعة

نصيحة عن السيرة الذاتية: إذا لم يكن هناك من يوظفها ، وكنت تتفاخر بمهارة لا قيمة لها ، فاترك سيرتك الذاتية.

لقد وصلنا الآن إلى Pascal و ASM و C.

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

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

  • C
  • ASM
  • محدة ضغط

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

مطور برمجيات عاطفي مبتدئ في C و ASM و Pascal.

الخطوة رقم 2: التدريب حتى تتمكن من العيش رمز على الفور.

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

مقابلة البرمجة الثانية

مع استئناف المنقحة ، كنت في وضع أفضل بكثير لاجتياز مقابلة. كنت واثقا بما فيه الكفاية في C و x86 ASM و Pascal أنه إذا طلبوا مني الرمز على الورق أو على السبورة دون أي كتب متاحة ، يمكنني القيام بذلك.

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

في تلك المهمة ، حصلت على استخدام C و Delphi (بشكل أساسي Pascal ++) و C ++. هذا هو المكان الذي تعرفت فيه على Java لأول مرة ، وفي النهاية ، لغة برمجة نصية جديدة في المتصفح تسمى JavaScript. لم يكن لدي أي فكرة عن مدى أهمية ذلك في ذلك الوقت.

كيف تمكنت من البدء بالمساهمة فورًا أثناء المقابلة البرمجية الثانية؟ جئت على استعداد. كانت لدي المهارات التي احتاجها لإحداث تأثير فوري.

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

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

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

بعد أن تحصل على التدريب لمدة 1000 ساعة تقريبًا على تمارين الشفرة ومشاريع التدريب ، ستحتاج إلى 320 ساعة إضافية أو نحو ذلك لبناء تطبيقات أكثر تعقيدًا على حافة قدراتك.

ماذا أعني بـ "تطبيقات أكثر تعقيدًا؟" أعني أنها يجب أن تكون مشاريع أكبر ، كاملة مع تسجيلات دخول المستخدم (يفضل أن تكون بدون كلمة مرور) ، وإطار عمل للتطبيق (أوصي React + Redux. Angular 2 شائعة أيضًا. إذا ذهبت مع الزاوي 2 ، تحقق من ngrx / متجر).

تحتاج أفكار التطبيق؟ تحقق من "أفضل طريقة لتعلم الكود هي الكود: تعلم هندسة التطبيقات عن طريق بناء التطبيقات".

أفضل سيناريو ، تحتاج إلى 1320 ساعة على الأقل من التدريب حتى تكون مستعدًا لأول وظيفة برمجة.

الخطوة رقم 3: الدراسة.

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

بشكل عام ، هذا يعني أنك ستحتاج إلى قراءة بعض الكتب ومنشورات المدونات ، أو مشاهدة بعض مقاطع الفيديو ، أو أخذ بعض الدورات التدريبية. لكن لا تدرس بلا هدف. يجب أن يكون لديك اتجاه في الاعتبار. تحقق من "10 أسئلة مقابلة يجب على كل مطور JavaScript معرفتها" وسلسلة منشورات المدونة الخاصة بي ، "Master the JavaScript Interview".

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

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

الخطوة رقم 4: بناء محفظة.

من المتوقع أن يظهر المصممون والمصورون بمحفظة: مجموعة من مشاريع العينات التي أنجزوها لإظهار جودة عملهم.

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

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

ربما تعتقد أنه ليس لديك وقت. هل تعتقد أنك الشخص الوحيد الذي لديه عائلة ، أو الشخص الوحيد الذي وقع NDAs مع شركات ورمز مكتوب لا يُسمح لنا بمشاركته؟

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

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

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

الخطوة رقم 5: العمل على مهارات شعبك.

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

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

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

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

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

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

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

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

تأكد من ظهورها في كل مرة تتواصل فيها مع الآخرين.

التعاطف هو أهم مهارات المطور. تدرب عليه.

استنتاج

  1. افصل سيرتك الذاتية: أنت مطور مبتدئ لديه شغف بالتعلم. الخاصة بها. استخدامه لصالحك. تحتاج فرق ديف إلى توظيف مطورين صغار. قلة خبرتك هي جزء من القيمة الخاصة بك.
  2. الممارسة: ممارسة حقيقية ومدروسة مع التركيز على الليزر وخطة اللعبة. تحتاج إلى وضع حوالي 1000 ساعة في تمارين الترميز ، و 320 ساعة أخرى أو نحو ذلك لإنشاء تطبيقات حقيقية. قم بذلك ، وستكون مستعدًا لمعظم تحديات الترميز المباشر التي ستواجهها في المقابلات.
  3. دراسة: قراءة الكتب. تحقق من دورة على الانترنت. الأهم من ذلك ، أن تتعرف على أسئلة المقابلة الشائعة وكن مستعدًا لإثارة هذه الأسئلة.
  4. بناء محفظة: بالإضافة إلى كونها أداة رائعة لتقييم مستوى المهارات لديك ، إذا لم يكن لديك محفظة ، فستجعل مدير التوظيف يسأل عن مدى جديتك المهنية في التطوير أو مدى شغفك بالبرمجة. حان الوقت للتوقف عن تقديم الأعذار وإنجازه. هذا مكان رائع لوضع هذه التطبيقات التي ستقوم بإنشائها من أجل التدريب. (انظر # 2).
  5. تطوير مهارات الناس: التعاطف هو أهم مهارة لمطوري البرمجيات. ربما أهم مهارة للحياة. تدرب على النظر إلى منظور الآخرين. ستقوم بإنشاء المزيد من التطبيقات سهلة الاستخدام ولديك علاقات أفضل مع زملاء العمل وقيادة الفريق.

ترغب في الحصول على الدراسة بسرعة؟ سأساعدك في عبور الهوة بين مهارات جافا سكريبت المتوسطة والمتوسطة لتطوير تطبيقات جافا سكريبت المتقدمة.

تعرف على عمودين من JavaScript (OO النموذجي والبرمجة الوظيفية) بعمق ، جنبًا إلى جنب مع المهارات الأساسية مثل TDD. مشاهدة لي كود التطبيقات الحقيقية ، أيضا.

تعلم جافا سكريبت مع إريك إليوت

إريك إليوت مؤلف كتاب "برمجة تطبيقات جافا سكريبت" (O’Reilly) ، و "تعلم جافا سكريبت مع إريك إليوت". وقد ساهم في تجارب البرامج الخاصة بـ Adobe Systems و Zumba Fitness و The Wall Street Journal و ESPN و BBC وكبار الفنانين من بينهم Usher و Frank Ocean و Metallica وغيرها الكثير.

يقضي معظم وقته في منطقة خليج سان فرانسيسكو مع أجمل امرأة في العالم.