شما می توانید با عضویت در انجمن پرسش و پاسخ درسمن هرگونه سوالی دارید را مطرح کنید

آیا من یک برنامه نویس full-stack هستم؟

تاریخ بروزرسانی : شنبه 2 آذر 1398

تعداد بازدید : 375

گروه دوره : برنامه نویسی وب

زمان خواندن مقاله : 15 دقیقه

اگر میخواهید بدانید برای برنامه نویس شدن Full-stack چه مسیری را باید طی کنید مطلب ما را مطالعه کنید.

آیا من یک برنامه نویس full-stack هستم؟

مسیر پیش روی یک برنامه نویس full-stack

«برنامه‌نویس» تنها در این عنوان خلاصه نمی‌شود ، برنامه‌نویسان در چند دسته متفاوت وجود دارند همچنین پیدا کردن عنوانی که بتواند مهارت ها و محدودیت های یک برنامه نویس را شرح دهد خیلی سخت است؛ برای مثال full-stack  یکی از این عناوین است.
 اصطلاح full-stack designer  و full-stack developer  به کسانی گفته میشود که علاوه بر مهارت های تخصصی خودشان، در زمینه های دیگر نیز مهارت های جانبی دارند و صاحب نظر هستند و هنگام بروز مشکل میتوانند به راحتی آن را حل کنند.

برنامه نویسان به سه دسته کلی تقسیم میشوند:

  1. Back-End Developer: کدنویسی بخش سرور
  2. Front-End Developer: کدنویسی بخش کلاینت یا کاربر
  3. full-stack developer: ترکیب دانش طراحی و کد نویسی و تسلط کامل بر این دو حوزه به صورت ترکیبی با دانش و توانایی بسیار بالا

تعریف فول استک:

قبل از تعریف برنامه نویس full-stack  باید بدانید که برنامه نویسی وب به سه بخش تقسیم می‌شود.
  • Presentation layer  بخش front end که با کاربر و واسط کاربری سروکار دارد.
  • Business logic layer بخش back end که با مدیریت داده و اعتبارسنجی داده‌ها و منطق برنامه سرو کار دارد.
  • Database layer
پس برنامه نویس full-stack ، شخصی است که هم طراحی وب را انجام میدهد و هم به برنامه نویسی وب مسلط است.
در واقع این افراد به تنهایی میتوانند یک پروژه‌ی تقریبا بزرگ را به پایان برساند.
برای توسعه دهنده‌ی فول‌اِستک فرقی نمی‌کند محصول، تحت چه پلتفری باشد؛ ازتحت دسکتاپ گرفته تا وب، موبایل و دیگر پلتفرم ها ، که باید مهارت های زیر را داشته باشد:
  • نوشتن کد بهینه front end به زبان html, css, javascript
  • نوشتن و استفاده از API ها به زبان‌های back end مانند node js, python, java, ruby,…
  • کارکردن با زیرساخت های سیستمی مانند سخت‌افزار ها و سیستم عامل ها
  • توانایی کار کردن با بخش‌های شبکه (تنظیمات dns, http, وب سرویس ها) و همچنین امنیت آن‌ها
  • مسلط بودن و ساختن کوئری های مختلف از دیتابیس
  • مدیریت پروژه و هدایت مشتری‌ها
 

دیگر مفاهیم مرتبط با  Full-stack developer

علاوه بر مفهوم Full-stack developer مفاهیم دیگری مانند MEAN stack developer و MERN stack developer و حتی LAMP dveloper نیز وجود دارد که در ادامه هرکدام را توضیح می‌دهیم. اما به طور کلی می‌توان گفت که همه مفاهیمی که گفته شد به نوعی Full-stack developer هستند ولی با این تفاوت که تکنولوژی های مخصوصی را برای کار انتخاب کرده‌اند.

LAMP stack

 Lamp به تکنولوژی های open source اشاره می‌کند در واقع این تکنولوژی از یک سیتم عامل به نام Linux و یک وب سرور Apache و دیتابیس معروف MySQL و زبان سمت سرور PHP تشکیل شده است.
یکی از سایت‌هایی که از LAMP stack استفاده می‌کند Facebook است.

MERN stack

یک مجموعه از تکنولوژی هایی است که پایه و اساس آن‌ها زبان جاوااسکریپت می‌باشد که از بخش هایی چون دیتابیس:  No SQL و یک فریم ورک سبک برای پردازش درخواست های تحت وب به نام Express و استفاده از یک کتابخانه جاوا اسکریپتی برای تولید رابط کاربری که به React معروف است و همچنین تکنولوژی سمت سرور که به کمک آن میتوان اپلیکیشن های تحت وب با زبان جاوا اسکریپت را نوشت که نام آن Node.js، تشکیل شده است.

 

MEAN stack

مجموعه ای از تکنولوژی هایی است که پایه آن‌ها جاوا اسکریپت است و ازبخش هایی شبیه به MERN تشکیل شده با این تفاوت که حرف A آن مربوط به فریم ورک قوی Angular برای پیاده سازی بخش رابط کاربری است.
به غیر از این مجموعه از استک ها، Full-stack developer  های مختلفی وجود دارند که با تکنولوژی های گفته شده کار نمی‌کنند. مانند برنامه نویسان .NET و یا django و ….

مهارت های یک برنامه نویس Full-stack developer

تکنولوژی های front-end
دراین بخش شما باید بر زبان هایی چون css3 ,HTML5, Javascript تسلط داشته باشید زیرا این ها زبان های طراحی ظاهر سایت شما برای کاربر است.
علاوه براین ها یک برنامه نویس Full-stack باید اطلاعات کافی در مورد دانش طراحی داشته باشد و بتواند اصول UI/UX را پیاده سازی کند.
تکنولوژی های back-end
در این بخش شما باید حداقل به یک زبان برنامه نویسی سمت سرور تسلط کامل داشته باشید. این زبان‌ها می‌توانند یکی از موارد  Python , Java, Ruby, .Net, Node.js, ….  باشند.
تکنولوژي های دیتابیس و کش کردن
ما باید برای برنامه نویس Full-stack شدن آشنایی با دیتابیس و انواع مدیریت داده های آن داشته باشیم که معروف ترین دیتابیس ها عبارت اند از: MySQL, Oracle, SQL Server, MongoDB, Postgres
همچنین باید مکانیزم های کش کردن مانند Memcached , varnish, Redis را بشناسیم.
سیستم کنترل نسخه (Version control system (VCS))
برنامه نویسFull-stack  باید به همه جنبه‌های گفته شده در برنامه نویسی و تولید نرم‌افزار مسلط باشد اما وقتی که در یک تیم کار می‌کنید نیاز است که با دیگران تعامل داشته باشید و از کدهای همدیگر استفاده کنید که برای استفاده از کدها نیاز به یک سیستم source control داریم. حتی اگر به صورت تیمی هم کار نکند استفاده از VCS یکی از واجبات است چون سیستم‌های VCS تاریخچه تغییرات بر روی کد پروژه از ابتدای پروژه تا انتهای پروژه را به صورت کامل نگهداری می‌کنند و می‌توان مقدار خطا را کم کرد و اشتباهات را برطرف نمود. یکی از VCS های معروف ،سیستم Git  می‌باشد.
کار کردن با  API
اگربرنامه نویس Full-stack در بخش موبایل هم کار می‌کند داشتن دانش کار با API های تحت وب مانند REST, SOAP یک امر ضروری است زیرا برنامه‌های موبایلی با استفاده از این API ها با برنامه‌های تحت وب و سرورها ارتباط برقرار می‌کنند.
علاوه بر مواردی که گفته شد یک برنامه نویس Full-stack باید از موارد زیر اطلاع داشته باشد مانند:
۱. بتواند unit test های با کیفیت بنویسد.
۲. اطلاعات کاملی در مورد مستندسازی و پکیج بندی پروژه داشته باشد.
۳. اطلاعاتی در مورد تدابیر امنیتی هر لایه از نرم‌افزار داشته باشد و بتواند ضعف‌های امنیتی سیستم را بشناسد.
۴. در مورد الگوریتم هایی چون مرتب سازی و جستجو و ساختار داده‌های برنامه اطلاع داشته باشد.

 

کلام آخر:
بر اساس قانون ۱۰ هزار ساعت گلادول، برای تسلط بر دانش Front-end ، Back-end، علم مشتری محوری و تبدیل شدن به یک توسعه‌ دهنده همه‌ کاره حدود ۱۰ سال زمان لازم است.
این کار با شخصیت بعضی افراد جور در نمی‌آید.
ویژگی های یک برنامه نویس Full-stack عبارت است از: ذهن آنالیزگر، صبروانگیزه، عاشق یادگیری، دقت در جزئیات و خلاق بودن و نظم داشتن.
پس اگر آدمی هستید که نمی‌تواند دید کلّی داشته باشد یا توانایی انطباق سریع با شرایط را ندارید شاید شیوه‌های سنّتی و متمرکز بیشتر به‌کارتان بیاید.
واگر میخواهید به برنامه نویسFull-stack  تبدیل شوید ویژگی های گفته شده را درخود تقویت کنید.


اشتراک گذاری


توضیحاتی در مورد نویسنده این مقاله :
مرضیه فتاحی مرضیه فتاحی

کارشناس کامپیوتر گرایش نرم افزار..... نویسندگی،تجربه ای انفرادی است یعنی به اشتراک گذاری.... این بخشی از ذات انسان است که بخواهد مسائل را به اشتراک بگذارد ازجمله:افکار،ایده ها،عقاید


نظر بدهید

نشانی ایمیل شما منتشر نخواهد شد .
برای ارسال نظر نیاز است وارد سایت شوید. در صورت نداشتن حساب کاربری عضو شوید.

گروه مقالات


آموزشی
21
علمی
21
تحقیقاتی
29


به دنبال هر آموزشی هستید در اینجا به دنبال آن باشید .