خوش آموز درخت تو گر بار دانش بگیرد، به زیر آوری چرخ نیلوفری را


دولوپر (Developer) چیست؟

دولوپر (Developer) چیست؟

کد مطلب : 12178


دولوپر (Developer) چیست؟ شاید هم بهتر باشد بپرسیم دولوپر کیست؟ اگر در دیکشنری گوگل کلمۀ Developer را جستجو کنید با این معنی روبرو خواهید شد: "a person or thing that develops something" (یک شخص یا یک چیز که چیزی را توسعه می دهد". دقت کنید، می گوید یک شخص یا چیز، یعنی در تعریف دولوپر، اشیاء را نیز گنجانده است. شاید بی معنی باشد اما امروز با توسعۀ هوش مصنوعی ماشین ها هم قادر به ایجاد و توسعه سایر چیزها هستند. در حالت عامش کلمۀ دولوپر یک کلمۀ عمومی است و در موارد مختلف مورد استفاده قرار می گیرد به عنوان مثال توسعه دهندۀ نرم افزار (Software developer)، توسعه دهندۀ آلبوم های موسیقی، و ... ، اما رایج ترین کاربرد کلمۀ دولوپر در صنعت کامپیوتر است و اشاره به شغل توسعه دهنده که مشخصاً در ارتباط نرم افزارهای کامپیوتری می باشد، دارد. در طول این مقاله دربارۀ واژۀ دولوپر (توسعه دهنده) بیشتر خواهیم آموخت و در ضمن تفاوت های اساسی بین این کلمه با واژه های کد نویس (Coder) (همان برنامه نویس) و مهندس کامپیوتر را بررسی خواهیم کرد و به برخی اشتباهات رایج در این زمینه پایان خواهیم داد. اگر در ارتباط با توسعۀ نرم افزار و شغل دولوپر مایل به کسب اطلاعات بیشتری هستید، آموزش توسعه نرم افزار با متد ICONIX و زبان مدل سازی UML می تواند منبع آموزشی خوبی برای شما باشد.


دولوپر (توسعه دهنده) کیست؟


دولوپر (توسعه دهنده) شخصی است که نرم افزار و برنامه های کاربردی می سازد. دولوپر برنامه های کامپیوتری را می نویسد، آنها را اشکال زدایی می کند، آنها را تست می کند. بعضی مواقع به جای دولوپر از کلماتی مانند برنامه نویس یا مهندس کامپیوتر نیز برای ارجاع به این شخص استفاده می شود، البته در حالت عامش مشکلی ندارد اما اگر بحث فنی تر باشد، به عنوان مثال مسئول بخش استخدام شرکت در حال درج آگهی برای استخدام یک عنوان شغلی خاص باشد، جایگزین کردن این کلمات با یکدیگر خالی از اشکال نیست. دولوپر فردی کلیدی است که در پشت صحنۀ یک نرم افزار قرار دارد. معمولاً دولوپرها دست کم به یک زبان برنامه نویسی خاص تسلط کامل دارند و در هنر ساختاربندی و توسعۀ کدهای نرم افزاری یک برنامه مهارت های کافی را دارند. بسته به عنوان شغلی و نوع آن نرم افزار، یک دولوپر (توسعه دهنده) را می توان در قالب توسعه دهندۀ نرم افزار (software developer)، توسعه دهندۀ برنامه های کاربردی (application developer)، توسعه دهندۀ موبایل (mobile developer)، توسعه دهندۀ برنامه های وب (Web developer) و موارد دیگری از این قبیل دسته بندی کرد.

دولوپر (Developer) چیست؟
اگرچه شغل اصلی یک توسعه دهنده نوشتن کدهای برنامه است، اما علاوه بر آن دولوپر (توسعه دهنده) می تواند اطلاعات مورد نیاز برای تولید یک نرم افزار، طراحی یا معماری کلی نرم افزار را جمع آوری کند. همچنین می تواند در مستند سازی نرم افزار یا سایر امور موجود در فرآیند تولید نرم افزار مشارکت داشته باشد. اگر در حوزۀ مهندسی نرم افزار شور یادگیری بیشتر دارید، مجموعه آموزش مهندسی کامپیوتر - نرم‌افزار در فرادرس محل خوبی برای یادگیری و یا تکمیل کردن دانش موجودتان می باشد.


تفاوت بین دولوپر (توسعه دهنده) و برنامه نویس (کد نویس)


اگر بخواهم به طور خلاصه و در کوتاهترین حالت ممکن تفاوت بین دولوپر و برنامه نویس را به شما بگویم، تفاوت اصلی آنها در دامنۀ کاری آنها می باشد. دولوپرها بیشتر در فرآیند طراحی بخش های مختلف درگیر می شوند و درک بیشتری از دامنۀ کلی پروژه دارند. شاید در نرم افزارهای کوچک و به طور کل در تیم های کوچک نرم افزاری، این نقش زیاد خودش را نشان ندهد اما در پروژه های بزرگتر کاملاً برجسته و متمایز می گردد. در مقابل، برنامه نویس ها معمولاً در بخش خاصی از فرآیند تولید نرم افزار که کد نویسی می باشد، مشارکت دارند. کار یک برنامه نویس اینست که کدهایی را بنویسد، آنها را تست کند و آن کدها را اشکال زدایی کند. یک برنامه نویس طراحی های انجام شده را به دستورات قابل فهم برای کامپپیوتر تبدیل می کند. این دستورات ممکن است به یکی از زبان های برنامه نویسی رایج همچون جاوا، PHP، سی شارپ، SQL یا ... باشند. البته خود برنامه نویس ها هم معمولاً در دو دسته بندی کلی برنامه نویسان خاص و برنامه نویسان عمومی جای می گیرند. برنامه نویسان خاص بر روی نوع خاصی از برنامه نویسی تمرکز دارند و برنامه نویسان عمومی، همانطور که از اسمشان هم پیداست، بر روی تنوع زیادی از نرم افزارها فعالیت می کنند.

دولوپر (Developer) چیست؟
اگرچه برنامه نویس ها و دولوپرها هر دو با کدنویسی درگیر هستند، اما مشاغل آنها با یکدیگر متفاوت است. یک برنامه نویس خوب، الزاماً یک توسعه دهندۀ خوب نیست زیرا توسعه دهنده ها چالش های بیشتری نسبت به صرفاً کدنویسی پیش رو دارند و با بخش های بیشتری از پروژه درگیر هستند. خیلی از دولوپرها در ابتدا با کدنویسی کار را شروع می کنند و در ادامه کم کم مسئولیت های بیشتری را می پذیرند و دامنۀ شغلی شان را وسعت می بخشند. اگر با اطلاعاتی که تاکنون کسب کرده اید به شغل دولوپر (توسعه دهنده) علاقه مند شده اید، می توانید با آموزش توسعه و تست نرم افزار دانشتان در این حوزه را افزایش دهید.


دربارۀ کار دولوپر (توسعه دهنده) بیشتر بدانیم


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

توسعه دهندگان فعال در حوزۀ برنامه های کاربردی، برنامه هایی برای موبایل ها یا کامپیوترها و برای پلتفرم های موجود از قبیل ویندوز، لینوکس، اندروید، iOS و ... می سازند. ماهیت اصلی فعالیت آنها تمرکز بر روی مصرف کننده ها و کاربران نهایی می باشد، از این رو بخش زیادی از اطلاعات کاری آنها از کاربران می آید، به عنوان مثال نیازهای کاربر، حل کردن مشکلاتی که کاربران با آنها درگیر هستند، علاقه مندی های کاربران، مواردی که کاربران از آنها خوششان نمی آید یا نمی توانند با آنها ارتباط برقرار کنند و مواردی از این قبیل.

دولوپر (Developer) چیست؟
در مقابل، توسعه دهندگان سیستم ها بر روی زیر ساخت هایی همچون سیستم عامل ها، نرم افزارهایی برای انتقال داده ها در شبکه های کامپیوتری، ایجاد و توسعۀ کامپایلرها و زبان های برنامه نویسی، ایجاد راه حل هایی برای سازمان هایی در وسعت بزرگ همچون سازمان بهداشت، صنایع بزرگ، ارتش، ارتباطات، صنایع فضایی، کارهای علمی و عمومی بزرگ می باشند.

بخش عمدۀ کار تولید یک نرم افزار فرآیند کدنویسی آن می باشد و دولوپر (توسعه دهنده) بر انجام این کار نظارت می کند. بسته به شرکتی که فرد در آن مشغول بکار است، یک دولوپر (توسعه دهنده)، نیازهای کاربران را تجزیه و تحلیل می کند و سپس برای برطرف کردن آن نیازها نرم افزارهایی ایجاد می کند. بعد از اینکه نگاشت های (map) لازم بین طراحی ها و نیازهای کاربران ایجاد شد، فلوچارت ها آماده شد و در واقع ساختار و سازمان انجام کارها با ابزارهای مخصوص این کار مشخص گردید، این دولوپرها هستند که مدل های لازم را می سازند و دستورات لازم را به برنامه نویس ها می دهند تا آنها هم کدهای لازم برای تولید نرم افزار را بنویسند. اگر در همینجا بخواهیم یک مقایسۀ کوچک دیگر بین برنامه نویس ها و دولوپرها داشته باشیم، آن اینست که ممکن است برنامه نویس فقط روی ماژول خاص و کوچکی مشغول به کدنویسی باشد و هیچ نیازی به درک کلی پروژه نداشته باشد (که غالباً در پروژه های بزرگ همینطور هم هست)، اما توسعه دهنده بدون داشتن این درک کلی، نمی تواند کاری از پیش ببرد و از عهدۀ وظایفش برآید.

یکی از ابزارهایی که هر توسعه دهنده ای باید با آن آشنا باشد UML می باشد. در واقع UML بیشتر توسط مهندسان نرم افزار و معماران سیستم ها مورد استفاده قرار می گیرد اما توسعه دهنده ها باید با آن آشنا باشند و بتوانند با آن ارتباط برقرار کنند. اگر در این ارتباط اشتیاق یادگیری دارید، آموزش مدل سازی UML با نرم افزار Rational Rose مناسب و کاربردی می باشد.


توانایی ها و مهارت های لازم که هر دولوپری باید داشته باشد


پیشتر اشاره کردیم که یک دولوپر (توسعه دهنده) نرم افزار باید مهارت های کد نویسی و یک سری فراست های دیگر را نیز برای ارتباط برقرار کردن با کاربران و در عین حال در پروژه های بزرگ کاردانی لازم برای ارتباط برقرار کردن با معماران و مهندسان نرم افزار را داشته باشد. اما همۀ اینها روی هم رفته نیمی از معادله را تشکیل می دهد و توسعه دهندگان خوب باید فزون بر این موارد که بر شمردیم، یک سری توانایی ها و مهارت های دیگر را هم دارا باشد که در ادامه به آنها اشاره خواهیم کرد.

دولوپر (Developer) چیست؟
توانایی حل مسئله: اساساً کل قضیۀ نرم افزار اینست که مشکلات کاربران را حل کند. ذات نرم افزار اینست که برای حل یک مشکل آن را خلق می کنند، گاهاً در تعریف نرم افزار گفته می شود: "یک راه حل برای یک مشکل". اگر کمی تجربۀ کار با نرم افزارهای IDE (محیط های یکپارچۀ توسعه) را داشته باشید، خواهید دید که در خیلی از این نرم افزارها اسم نرم افزار را solution (راه حل) گذاشته اند. تمامی اینها موید این مسئله است که یکی از چالش های اصلی توسعه دهندگان اینست که باید در مهارت حل مسئله استادی لازم را کسب کنند.

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

نکته: امروزه با توجه به اینکه عمدتاً نرم افزارها با روش های شیء گرا طراحی می شوند، ضرورت دارد که هر توسعه دهنده ای با الگوهای طراحی شیء گرا آشنا باشد، جهت ارتقاء دانشتان در این حوزه، توصیۀ ما به شما
آموزش الگوهای طراحی (Design Patterns) می باشد.


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

دولوپر (Developer) چیست؟
داشتن انگیزۀ ذاتی: مراحل تولید نرم افزار گاهاً بسیار چالش انگیزتر از چیزی است که در ابتدای امر فکر می کنید. بعضی وقتها درگیر مشکلی می شوید و وقتی برای حل آن مشکل اقدام می کنید، دشواری های بعدی از راه می رسند و گاهاً در هر کدام از این دالان های فرعی که وارد می شوید مسئله غامض تر هم می گردد. فلذا اگر از آن دسته از آدم هایی هستید که تا یک کار را به سرانجام نرسانند، بی خیال آن نمی شوند، یک بر هیچ به نفع شما، اگر هم از آن دسته هستید که با اولین چالش جا می زنند از ابتدا دور شغل توسعه دهنده بودن را یک خط قرمز بزرگ بکشید.

جهت مشاهده آموزش های بیشتر در این زمینه و البته آموزش های بیشتر در سایر حوزه های فنی می توانید از سایت فرادرس بازدید نمایید. در این سایت می توانید موضوعات فراوانی در حوزه های برنامه نویسی، مهندسی نرم افزار، هوش مصنوعی، رباتیک، و ... را بیابید.


دیدگاه ها(0)

دیدگاه خود را ثبت کنید:

انتخاب تصویر ویرایش حذف
توجه! حداکثر حجم مجاز برای تصویر 500 کیلوبایت می باشد.

لطفا پیش از ارسال دیدگاه ، به نکات زیر توجه فرمایید :

- از نوشتن دیدگاه های غیر مرتبط با پست جدا خودداری کنید. دیدگاه ها و سوالات متفرقۀ خود را می توانید در تالارهای گفتمان خوش آموز مطرح نمایید.
- لطفاً دیدگاه های خود را با حروف فارسی تایپ کنید، دیدگاه های فینگیلیش تایید نمی شوند.
- قبل از ارسال دیدگاه حتما متن پست و نظرات سایر دوستان را بخوانید . نظرات اسپم و تکراری تایید نخواهند شد.
- نظر شما ممکن است بدون پاسخ تایید شوند که در این صورت باید منتظر پاسخ از سوی دیگر کاربران باشید .
- لطفا انتقادات و پیشنهادات و همچنین درخواست های خود را از طریق ایمیل khoshamoz[at].hotmail.com ارسال نمایید
- چرا آموزش های سایت خوش آموز در قالب فایل pdf به صورت یکجا ارائه نمی شوند؟
- چرا برخی پرسش های کاربران پاسخ داده نمی شوند؟

آموزش های رایگان خوش آموز