Fury Road: The Billing Developer's Journey

مدیر یک شرکت توسعه صورتحساب دو راه برای ایجاد یک تیم دارد. اولین مورد این است که "سالمندان" آماده را به خدمت بگیرید و به طور مداوم چنین شرایط کاری را ایجاد کنید تا از مهارت ها و تجربیات خود حداکثر استفاده را بکنند، پیشرفت کنند و در عین حال وارد دعوا نشوند. دوم، ایجاد یک تیم از ترکیبی از تازه واردان، متوسطان و حرفه ای ها، به طوری که آنها با یکدیگر ارتباط برقرار کنند، بر یکدیگر تأثیر بگذارند، یاد بگیرند و در شرکت رشد کنند. من مخالف دور باطل "بدون تجربه - بدون کار - بدون تجربه" هستم و مشکلی در استخدام یک توسعه دهنده مبتدی نمی بینم. Forward Telecom مدت‌هاست که یک برنامه کارآموزی دارد که به سکوی پرشی برای بسیاری از کارمندان فعلی تبدیل شده است.

اکنون به شما می گویم که مسیر توسعه یک توسعه دهنده صورتحساب را چگونه می بینم، و در چه ترتیبی باید بر مهارت های حرفه ای تسلط داشته باشید.

1. یک زبان برنامه نویسی یاد بگیرید

برای شروع، هر کسی. اولویت جاوا، پایتون و جاوا اسکریپت است، اما Ruby، Go، C، C++ برای کسب دانش اولیه مناسب هستند. چگونه تدریس کنیم؟ در دوره های پولی و رایگان شرکت کنید؛ من می توانم آموزش از Golang را توصیه کنم. اگر سطح انگلیسی شما اجازه می دهد، تماشای فیلم های خارجی یک مهارت اضافی خوب است.

Fury Road: The Billing Developer's Journey

2. مفاهیم سیستم عامل را درک کنید

سیستم عامل ها بر پایه هفت جزء هستند که باید بدانید و بتوانید اصل عملکرد را توضیح دهید:

  • مدیریت فرآیند؛
  • موضوعات و کد چند رشته ای ؛
  • سوکت (رابط نرم افزاری) ؛
  • ارسال I/O؛
  • مجازی سازی؛
  • ذخیره سازی؛
  • سیستم های فایل

توصیه می‌کنم یک دوره آموزشی مدیریت لینوکس را بگذرانید. دومین سیستم عامل در ردیف ویندوز و یونیکس هستند.

3. به ترمینال عادت کنید

در قیاس با فوبیای یک صفحه خالی، فوبیای یک صفحه سیاه خالی با مکان نما چشمک زن وجود دارد. برای یادگیری نحوه نوشتن دستورات خوب در خط فرمان، باید بر آن غلبه کنید.
باید دانست:

  • پوسته های باش و کورنسل ؛
  • دستورات find, grep, awk, sed, lsof;
  • دستورات شبکه nslookup و netstat.

Fury Road: The Billing Developer's Journey

4. شبکه و امنیت

صورتحساب ارتباط نزدیکی با الزامات حفاظت از شبکه و داده دارد. شما نمی توانید سرویس های آنلاین را بدون درک نحوه عملکرد شبکه بنویسید، بنابراین باید مفاهیم و پروتکل های اساسی را یاد بگیرید: DNS، مدل OSI، HTTP، HTTPS، FTP، SSL، TLS. سپس، هنگامی که با خطای Connection Refused مواجه شدید، می دانید که چه کاری باید انجام دهید.

5. سرورها

پس از مطالعه اصول انتقال اطلاعات در شبکه، می توانید اصول اولیه عملکرد سرور را آغاز کنید. با سرورهای وب شروع کنید: IIS، Apache، Nginx، Caddy و Tomcat.

در ادامه لیست:

  • پروکسی معکوس؛
  • پروکسی ناشناس؛
  • ذخیره سازی؛
  • تعادل بار؛
  • دیواره آتش.

6. زیرساخت ها را به عنوان کد بیاموزید

من معتقدم که این مرحله یکی از مهمترین مراحل است. شما باید سه موضوع گسترده را درک کنید:

  • ظروف: Docker و Kubernetes
  • ابزارهای مدیریت پیکربندی: Ansible، Chef، Salt و Puppet
  • پشتیبان گیری: Terraform ، ابرها.

7. CI/CD را یاد بگیرید

یکی دیگر از مهارت های مفید برای توسعه دهنده صورتحساب این است که بتواند یک خط لوله برای یکپارچه سازی و تحویل مداوم راه اندازی کند. در ناحیه CI/CD ابزارهایی مانند Jenkins، TeamCity، Drone، Circle CI و دیگران وجود دارد. اسپویلر: یادگیری جنکینز پرکاربرد در ابتدا کافی خواهد بود.

8. کنترل نرم افزار و زیرساخت ها

هدف اصلی درک اصول نظارت بر برنامه است. ابزارهای موجود در این زمینه به سه گروه تقسیم می شوند:

  • نظارت بر زیرساخت: Nagios، Icinga، Datadog، Zabbix، Monit.
  • نظارت بر عملکرد برنامه: AppDynanic، New Relic.
  • LMS: Elk Stack ، Graylog ، Splunk ، PaperTrail.

9. خدمات ابری

در آینده نزدیک، هر برنامه یا نرم افزاری مشابه ابری خواهد داشت. دیر یا زود، توسعه دهندگان با ابر مواجه می شوند، بنابراین در مورد ارائه دهندگان ابر محبوب (AWS، Google Cloud و Azure) و اصول اولیه این فناوری مطالعه کنید.

10. کار با پایگاه داده

همه پروژه های فعلی از پایگاه داده استفاده می کنند و تجربه با DBMS و SQL شروع را آسان تر می کند. نوشتن پرس و جوهای SQL را یاد بگیرید، از توضیح استفاده کنید و یاد بگیرید که ایندکس چگونه کار می کند. ساده ترین راه گذراندن دوره است. همچنین می توانید مهارت های مستندسازی Postgres خود را تمرین کنید و با تکرار بازی کنید.

11. مهارت های نرم خود را بهبود بخشید

نکته ای غیرمنتظره و غیرعادی، اما نه کمتر مهم. برای شروع ، صبور باشید. شما به سرعت به موقعیت هایی مانند "آهن خود را تعمیر کنید، شما یک برنامه نویس هستید" عادت می کنید، اما باید از نظر ذهنی برای ضرب الاجل های راه اندازی پروژه های جدید آماده باشید. اگر از صفر تا یک سال در برنامه نویسی هستید و به عنوان جونیور در نظر گرفته می شوید، برای انتقاد آماده شوید و یاد بگیرید که آن را بپذیرید، بررسی کد توسط یک مربی اغلب یک فرآیند دردناک است. اما در عین حال، یک مهارت اجباری، توانایی دفاع از دیدگاه و استدلال سازنده است؛ گاهی اوقات حقیقت در یک بحث زاده می شود. توسعه دهندگان هرگز یادگیری را متوقف نمی کنند، عملا سقفی در این حرفه وجود ندارد، بنابراین توانایی یادگیری و میل به یادگیری چیزهای جدید اساس پیشرفت شما است.

Fury Road: The Billing Developer's Journey

اغلب از من سوال می شود که چه زمانی یک مبتدی به سطح متوسط ​​می رسد و چه زمانی می توان او را با افتخار " ارشد" نامید. من معتقدم که لحظه انتقال از سطح به سطح با تعداد سالهای کار تعیین نمی شود، اگرچه مهارت های عملی یک معیار کلیدی است. این دقیقاً مهارت های نرم است که اغلب سرعت رشد یک توسعه دهنده را تعیین می کند: یک مبتدی آموزش دیده و سخت کوش می تواند کدهای با کیفیت بالا را به چندین زبان بنویسد و فقط در چند ماه قادر به کار در یک تیم باشد. یک توسعه دهنده با 10 سال تجربه ممکن است نتواند مشکلات غیر استاندارد را حل کند، یک تیم را مدیریت کند و مهارت های یک طرفه داشته باشد.

من مسیر توسعه یک توسعه دهنده صورتحساب را اینگونه می بینم، این گونه است که ما متخصصان واجد شرایط را در تیم Forward Telecom خود پرورش می دهیم. به نظر نمی رسد چیزی را از دست داده است، اما من همیشه برای اضافات مفید به این نکته سپاسگزارم.

منبع: www.habr.com

اضافه کردن نظر