امیدوارم از این مطالب لذت ببرین D:
برنامهنویس، برنامهنویس رایانه، توسعهدهنده، کدنویس، یا مهندس نرمافزار کسی است که نرمافزار رایانه مینویسد. عبارتبرنامهنویس رایانه میتواند به یک متخصص در زمینهای از برنامه نویس یا یک شخص دارای سررشته که برای بسیاری از گونههای نرمافزار کد مینویسد اشاره کند. شخصی که یک روش رسمی برای برنامهنویسی تمرین یا تدریس میکند، همچنین میتواند بهعنوان تحلیلگر برنامهنویس شناخته شود. زبان برنامهنویسی اصلی یک برنامهنویس (کوبول، سی، سی++، سی شارپ، جاوا، لیسپ، پایتون، غیره) اغلب دارای پیشوندی به این نامها است، و کسانی که در محیط وب کار میکنند اغلب عنوانهایشان را با پیشوند وب مینویسند. عبارتبرنامهنویس میتواند برای اشاره به یک توسعهدهندهٔ نرمافزار، توسعهدهنده وب، توسعهدهندهٔ اپلیکیشنهای تلفن همراه، توسعهدهندهٔ سختافزار تعبیهشده، مهندس نرمافزار، دانشمند رایانه یا تحلیلگر نرمافزار به کار برده شود. هرچند، اعضای این حرفهها دارای دیگر مهارتهای مهندسی نرمافزار، جدا از برنامهنویسی هستند؛ به همین دلیل، عبارت برنامهنویس یا کد مانکی (به انگلیسی: code monkey) بعضی وقتها توهین یا سادهگیری تحقیرآمیزِ این دیگر حرفهها در نظر گرفتهمیشود.این مسئله بحثهای زیادی میان توسعهدهندهها، تحلیلگرها، دانشمندان رایانه، برنامهنویسها و کسانی که همچنان سردرگم در تفاوتهای ظریف در معانی این حرفهها هستند برانگیخته است.
ایدا لاولیس، ریاضیدان و کنتس انگلیسی نخستین برنامهنویس رایانه در نظر گرفته میشود، زیرا او نخستین شخصی بود یک الگوریتم را به قصد پیادهسازی روی موتور تحلیلی چارلز ببیج، در اکتبر ۱۸۴۲، به قصد محاسبهٔ عدد برنولی نوشت و منتشر کرد.چون که ماشین ببیج هرگز برای عملکرد استاندارد در زمان لاویس کامل نشد، او هرگز اجرای الگوریتم خود را ندید.
نخستین شخصی که یک برنامه را روی یک عملکرد الکترونیکی مدرن مبتنی بر رایانه اجرا کرد، دانشمند رایانه کنراد تسوزه در سال ۱۹۴۱ بود.
تیم برنامهنویسی انیاک، شامل کاتلین انتونلی، ژان بارتیک، بتی هالبرتن، مارلین ملتزر، فرانسیس اسپنس و روث تیتلبام نخستین اشخاصی بودند که بهطور منظم برنامهنویسی کار میکردند.
روز بینالمللی برنامهنویسها هر سال در ۷ ژانویه جشن گرفتهمیشود. در سال ۲۰۰۹، دولت روسیه فرمان داد تا هر سال یک روز تعطیل حرفهای که با نام روز برنامهنویسان شناخته میشود در ۱۳ سپتامبر (۱۲ سپتامبر در سالهای کبیسه) جشن گرفته شود. این روز همچنین پیش از آن یک روز تعطیل بینالمللی غیررسمی بودهاست.
برنامهنویسهای رایانه مینویسند، آزمایش میکنند، اشکالزدایی میکنند و از دستورالعملهای دقیق، که برنامههای رایانهای گفته میشوند و رایانه باید از آنها برای اجرا توابعشان پیروی کنند، نگهداری میکنند. برنامهنویسها همچنین تصور میکنند، طراحی میکنند و ساختارهای منطقی را برای برطرف کردن اشکالها توسط رایانه آزمایش میکنند. بسیاری از نوآوریهای فنی در برنامهنویسی — فناوریهای رایانش پیشرفته، زبانهای تازه پیچیده و ابزارهای برنامهنویسی — نقش برنامهنویس را دوباره تعریف کردهاند و بسیاری از کارهای برنامهنویسی که امروزه انجام میشوند را بسیار بهتر کردهاند. عنوانهای شغلی و توصیفها با توجه به آن سازمان ممکن است متفاوت باشند.
برنامهنویسها در بسیاری از محیطها، از جمله بخشهای سازمان فناوری اطلاعات، شرکتهای نرمافزاری بزرگ، شرکتهای خدمترسانی کوچک و نهادهای دولتی کار میکنند. بسیاری از برنامهنویسهای حرفهای همچنین برای شرکتهای مشاورهای در محلهای خدمت گیرنده به عنوان پیمانکار کار میکنند. اجازهنامه بهطور معمول برای کار کردن به عنوان یک برنامهنویس نیاز نیست، اگرچه گواهینامههای حرفهای بهطور معمول توسط برنامهنویس گرفته میشوند. برنامهنویسی بهطور گسترده یک حرفه در نظر گرفتهمیشود (هرچند بعضی از[چه کسی؟] مقامات بر این اساس که فقط شغلهایی که پروانهٔ قانونی نیاز دارند به عنوان یک حرفه به حساب آیند اختلاف نظر دارند).
کار برنامهنویسها بهطور گستردهای بسته به نوع کسب و کاری که آنها برای آن برنامه مینویسند متفاوت است. برای نمونه، دستورالعملهای درگیر در بهروزرسانی سوابق مالی بسیار متفاوت از تکثیر کردن شرایط در یک هواپیما برای آموزش خلبانان در یک شبیهساز پرواز هستند. برنامههای ساده میتوانند در چند ساعت نوشته شوند، آنهایی که پیچیدگی بیشتری دارند ممکن است بیش از یک سال کار نیاز داشتهباشند، این در حالی است که دیگر برنامهها هرگز 'کامل' در نظر گرفته نمیشوند بلکه بهطور مداوم تا زمانی که از آنها استفاده میشود بهبود مییابند. در بیشتر موارد، چندین برنامهنویس با یکدیگر زیر نظر یک برنامهنویس ارشد به عنوان یک تیم کار میکنند.
برنامهنویسها مطابق مشخصات فنی که در درجهٔ اول توسط برنامهنویسهای ارشد و تحلیلگرهای سیستم بیشتر تعیین شدهاند برنامه مینویسند. پس از تکمیل فرایند طراحی، کار برنامهنویس است که آن طراحی را به دنبالههای منطقی از دستورالعملهایی که رایانه بتواند پیروی کند تبدیل کند. برنامهنویس کد این دستورالعملها را به یکی از بسیار زبان برنامهنویسی مینویسد. زبانهای برنامهنویسی گوناگون بسته به هدف برنامه استفاده میشوند. کوبول، برای نمونه، بهطور معمول برای اپلیکیشنهای تجاری که معمولاً رویبزرگ رایانه و رایانه کوچک اجرا میشوند استفاده میشود؛ در حالی که، فورترن در علم و مهندسی استفاده میشود. سی++ بهطور گسترده برای هر دو اپلیکیشنهای علمی و تجاری کاربرد دارد. جاوا، سی شارپ، ویژوال بیسیک و پیاچپی زبانهای برنامهنویسی محبوبی برای وب و نرمافزارهای کاربردی تجاری هستند. برنامهنویسها عموماً بیش از یک زبان برنامهنویسی میدانند، و چون بیشتر زبانها مشابه یکدیگر هستند، اغلب نسبتاً به آسانی زبانهای تازه را فرا میگیرند. در عمل، برنامهنویسها اغلب با زبانی که میدانند نسبت دادهمیشوند، برای نمونه برنامهنویسهای جاوا، یا با نوع وظیفهای که انجام میدهند یا محیطی که در آن کار میکنند، برای نمونه، برنامهنویسهای پایگاه دادهها، برنامهنویسهای بزرگرایانه یا توسعهدهندههای وب.
زمانی که در کد منبع، چیزی که برنامهها از آن ساخته شدهاند تغییر ایجاد شود، برنامهنویسها باید دیگر برنامهنویسها را از وظیفهای که روزمره انجام میشود آگاه کنند. آنها این کار را با نوشتن توضیحات در کد منبع و مستندسازی کدشان انجام میدهند؛ بنابراین، دیگر برنامهنویسها برنامه را با آسانی بیشتر درک میکنند. برای صرفهجویی در کار، برنامهنویسها اغلب از کتابخانههای کد پایه که میتوانند تغییر یابند یا برای نرمافزار کاربردی مشخص سفارشی شوند استفاده میکنند. نتیجهٔ این روش برنامههای قابل اطمینانتر و سازگارتر است و همینطور سودمندی برنامه را با حذف برخی از مرحلههای روزمره افزایش میدهد.
برنامهنویسها برنامه را بار ها اجرا کرده و به دنبال خطا های احتمالی میگردند. زمانی که اشکالها مشخص شدند، برنامهنویس معمولاً اصلاحات مناسب را ایجاد میکند، سپس برنامه را دوباره تا وقتی که یک سطح پایین و شدت قابل قبول از اشکالها باقی بماند بررسی میکند. این فرایند را آزمودن و اشکالزدایی میگویند. اینها بخشهای مهم از وظیفهٔ هر برنامهنویس است. برنامهنویسها میتوانند به برطرف کردن این اشکالها سراسر زندگی یک برنامه ادامه دهند. بهروزرسانی، تعمیر، ویرایش و گسترش برنامههای موجود تعمیر و نگهداری گفتهمیشود. برنامهنویسها میتوانند در راهنماهای کاربر و راهنمای برخط همکاری کنند، یا میتوانند با نویسندهٔ فنی برای انجام چنین کاری کار کنند.
برنامهنویسهای رایانه اغلب به دو گروه گسترده تقسیم میشوند: برنامهنویسهای نرمافزار کاربردی و برنامهنویسهای سیستم. برنامهنویسهای نرمافزار کاربردی برنامههایی مینویسند تا به وظیفه مشخصی رسیدگی کنند، مانند برنامهای برای پیگیری سیاهه در یک سازمان. این گروه از برنامهنویسها همچنین میتوانند نرمافزار بستهبندیشده را اصلاح کنند یا نرمافزارهای کاربردی عمومی را که مکرراً از فروشندههای نرمافزار مستقل خریداری میشوند سفارشی کنند. در حالی که، برنامهنویسهای سیستم، برنامههایی برای نگهداری و بررسی نرمافزار سیستمهای رایانهای مینویسند، مانند سیستمهای عامل و سامانههای مدیریت پایگاه دادهها. این گروه از برنامهنویسها در دستورالعملهایی که مشخص میکنند چگونه شبکه، پایانههای رایانه رومیزی (معمولاً شبکه شده و قدرتمندتر از رایانه شخصی هستند) (به انگلیسی: Workstations) و واحد پردازش مرکزی سیستم وظیفههای گوناگونی که به آنها داده شدهاند را رسیدگی میکنند و چگونه با تجهیزات جانبی مانند چاپگرها و دیسکگردان ارتباط برقرار میکنند تغییر ایجاد میکنند.