برنامه‌نویس

از ویکی‌پدیا، دانشنامهٔ آزاد
پرش به: ناوبری، جستجو
«کدنویسی» به اینجا تغییرمسیر دارد. برای دیگر استفاده‌ها، کدبند را ببینید.
برنامه‌نویس‌های دانشجو در مؤسسهٔ فناوری در آلمان سال ۱۹۷۰

یک برنامه‌نویس، برنامه‌نویس رایانه، توسعه‌دهنده، کدنویس، یا مهندس نرم‌افزار کسی است که نرم‌افزار رایانه می‌نویسد. عبارت برنامه‌نویس رایانه می‌تواند به یک متخصص در زمینه‌ای از برنامه‌نویسی یا یک شخص دارای سررشته که برای بسیاری از گونه‌های نرم‌افزار کد می‌نویسد اشاره کند. شخصی که یک روش رسمی برای برنامه‌نویسی تمرین یا تدریس می‌کند همچنین می‌تواند به عنوان یک تحلیل‌گر برنامه‌نویس شناخته شود. زبان برنامه‌نویسی اصلی یک برنامه‌نویس (کوبول، سی، سی++، سی شارپ، جاوا، لیسپ، پایتون، غیره) اغلب دارای پیشوندی به این نام‌ها است، و کسانی که در محیط وب کار می‌کنند اغلب عنوان‌هایشان را با پیشوند وب می‌نویسند. عبارت برنامه‌نویس می‌تواند برای اشاره به یک توسعه‌دهنده نرم‌افزار، توسعه‌دهنده وب، توسعه‌دهندهٔ اپلیکیشن‌های تلفن همراه، توسعه‌دهندهٔ سفت‌افزار تعبیه‌شده، مهندس نرم‌افزار، دانشمند رایانه یا تحلیل‌گر نرم‌افزار به کار برده‌شود. هرچند، اعضای این حرفه‌ها دارای دیگر مهارت‌های مهندسی نرم‌افزار، جدا از برنامه‌نویسی هستند؛ به همین دلیل، عبارت برنامه‌نویس یا کد مانکی (به انگلیسی: code monkey) بعضی وقت‌ها توهین یا ساده‌گیری تحقیرآمیزِ این دیگر حرفه‌ها در نظر گرفته‌می‌شود.[۱] این مسئله بحث‌های زیادی میان توسعه‌دهنده‌ها، تحلیل‌گرها، دانشمندان رایانه، برنامه‌نویس‌ها و کسانی که همچنان سردرگم در تفاوت‌های ظریف در معانی این حرفه‌ها هستند برانگیخته است.[۲][۳][۴][۵][۶]

ایدا لاولیس، نخستین برنامه‌نویس رایانه در نظر گرفته می‌شود.[۷]

ایدا لاولیس، ریاضی‌دان و کنتس انگلیسی نخستین برنامه‌نویس رایانه در نظر گرفته‌می‌شود، زیرا او نخستین شخصی بود یک الگوریتم را به قصد پیاده‌سازی روی موتور تحلیلی چارلز ببیج، در اکتبر ۱۸۴۲، به قصد محاسبهٔ عدد برنولی نوشت و منتشر کرد.[۸] چون که ماشین ببیج هرگز برای عملکرد استاندارد در زمان لاویس کامل نشد، او هرگز اجرای الگوریتم خود را ندید.

نخستین شخصی که یک برنامه را روی یک عملکرد الکترونیکی مدرن مبتنی بر رایانه اجرا کرد دانشمند رایانه کنراد تسوزه در سال ۱۹۴۱ بود.

تیم برنامه‌نویسی انیاک، شامل کاتلین انتونلی، ژان بارتیک، بتی هالبرتن، مارلین ملتزر، فرانسیس اسپنس و روث تیتلبام نخستین اشخاصی بودند که به طور منظم برنامه‌نویسی کار می‌کردند.[۹][۱۰]

روز بین‌المللی برنامه‌نویس‌ها هر سال در ۷ ژانویه جشن گرفته‌می‌شود.[۱۱] در سال ۲۰۰۹، دولت روسیه فرمان داد تا هر سال یک روز تعطیل حرفه‌ای که با نام روز برنامه‌نویسان شناخته می‌شود در ۱۳ سپتامبر (۱۲ سپتامبر در سال‌های کبیسه) جشن گرفته‌شود. این روز همچنین پیش از آن یک روز تعطیل بین‌المللی غیر رسمی بوده‌است.

ماهیت کار[ویرایش]

بعضی قسمت‌های این بخش از Occupational Outlook Handbook، ویرایش ۲۰۰۶–۲۰۰۷، آمده‌است که در مالکیت عمومی به عنوان اثری از دولت ایالات متحده آمریکا است.
یک برنامه‌نویس رایانه در حال نوشتن کد جاوا.

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

برنامه‌نویس‌ها در بسیاری از محیط‌ها، از جمله بخش‌های سازمان فناوری اطلاعات، شرکت‌های نرم‌افزاری بزرگ، شرکت‌های خدمت‌رسانی کوچک و نهادهای دولتی کار می‌کنند. بسیاری از برنامه‌نویس‌های حرفه‌ای همچنین برای شرکت‌های مشاوره‌ای در محل‌های خدمت‌گیرنده به عنوان پیمانکار کار می‌کنند. اجازه‌نامه به طور معمول برای کارکردن به عنوان یک برنامه‌نویس نیاز نیست، اگرچه گواهی‌نامه‌های حرفه‌ای به طور معمول توسط برنامه‌نویس گرفته می‌شوند. برنامه‌نویسی به طور گسترده یک حرفه در نظر گرفته‌می‌شود (هرچند بعضی از[چه کسی؟] مقامات بر این اساس که فقط شغل‌هایی که پروانهٔ قانونی نیاز دارند به عنوان یک حرفه به حساب آیند اختلاف نظر دارند).

کار برنامه‌نویس‌ها به طور گسترده‌ای بسته به نوع کسب و کاری که آنها برای آن برنامه می‌نویسند متفاوت است. برای نمونه، دستورالعمل‌های درگیر در به‌روزرسانی سوابق مالی بسیار متفاوت از تکثیرکردن شرایط در یک هواپیما برای آموزش خلبانان در یک شبیه‌ساز پرواز هستند. برنامه‌های ساده می‌توانند در چند ساعت نوشته شوند، آنهایی که پیچیدگی بیشتری دارند ممکن است بیش از یک سال کار نیاز داشته‌باشند، این در حالی است که دیگر برنامه‌ها هرگز 'کامل' در نظر گرفته نمی‌شوند بلکه به طور مداوم تا زمانی که از آنها استفاده می‌شود بهبود می‌یابند. در بیشتر موارد، چندین برنامه‌نویس با یکدیگر زیر نظر یک برنامه‌نویس ارشد به عنوان یک تیم کار می‌کنند.

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

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

آزمون و اشکال‌زدایی[ویرایش]

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

برنامه‌نویسی اپلیکیشن در مقابل برنامه‌نویسی سیستم[ویرایش]

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

جستارهای وابسته[ویرایش]

پانویس[ویرایش]

  1. "Yes, calling "programmer" to a "software engineer" is an insult.". 
  2. "No Programmers". 
  3. "Developer versus programmer". 
  4. "Developers AND Programmers". 
  5. "Programmer vs. Developer vs. Software Engineer". 
  6. "Programmer vs. Developer vs. Software Engineer". 
  7. Fuegi, J.; Francis, J. (2003). Lovelace & Babbage and the creation of the 1843 'notes'. Annals of the History of Computing 25 (4). pp. 18–26. doi:10.1109/MAHC.2003.1253887. 
  8. J. Fuegi and J. Francis, "Lovelace & Babbage and the creation of the 1843 'notes'." Annals of the History of Computing 25 #4 (October–December 2003): 19, 25. Digital Object Identifier
  9. "ENIAC Programmers Project". Eniacprogrammers.org. Retrieved 2010-10-03. 
  10. "ABC News: First Computer Programmers Inspire Documentary". Abcnews.go.com. 2007-12-04. Retrieved 2010-10-03. 
  11. "International Programmers' Day". 

منابع[ویرایش]

  • مشارکت‌کنندگان ویکی‌پدیا، «Programmer»، ویکی‌پدیای انگلیسی، دانشنامهٔ آزاد (بازیابی در ۱۰ فوریه ۲۰۱۵).

مطالعه بیشتر[ویرایش]

  • Weinberg, Gerald M., The Psychology of Computer Programming, New York: Van Nostrand Reinhold, 1971
  • An experiential study of the nature of programming work: Lucas, Rob. "Dreaming in Code" New Left Review 62, March–April 2010, pp.  ۱۲۵–۱۳۲.

پیوند به بیرون[ویرایش]