معمولا بحث و گفتگوی زیادی بر سر تفاوت میان برنامهنویس، هکر و توسعه دهنده وجود دارد. در این مطلب تلاش شده تا حد امکان توضیحات کاملی ارائه شود.
یک برنامهنویس کسی است که میتواند مشکلات را با نوشتن ماهرانه کدهای کامپیوتر بر طرف کند. او میتواند مهارتهای زیادی در سطوح مختلف داشته باشد – از تنها داشتن توانایی برنامهنویسی عمومی تا یک معجزهگر در همه زبانها.
یک هکر کسی است که چیزی را میسازد. در این متن، کسی است که با برنامهنویسی کامپیوتر چیزی را میسازد. این تعریف اصلی و خالص این واژه است. به عنوان مثال: شما ایدهای دارید و چیزهایی را با هم ادغام میکنید و آن ایده را پیادهسازی میکنید. همچنین کسانی که کدها را به گونهای تغییر میدهند که عملکرد آن به کلی تغییر میکند نیز هکر محسوب میشوند.
یک توسعهدهنده برنامهنویسی است که به طور رسمی آموزش داده شده باشد. آنها تنها مشکلات را رفع نمیکنند و چیزهای جدید نمیسازند، بلکه این کار را همزمان با طراحی، نگهداری، مقیاس دهی، امنیت و … انجام میدهد.
به طور خلاصه هر سه کدنویسی میکنند. برنامهنویس کسی است که مشکلی را برطرف میکند. هکر کسی است که میسازد/تعمیر میکند و توسعهدهنده کسی است که نه تنها مشکلات را بر طرف میکند بلکه این کار را به صورت ساخت یافته و منظم به گونهای که در آموزشهای رسمی یاد گرفته انجام میدهد.
روابط
هر کسی میتواند مجموعهای از این ۳ باشد. آنها به این گونه با هم در ارتباط هستند:
- همه هکرها و توسعهدهندهها برنامهنویس هستند.
- بسیاری از برنامهنویسها و حتی توسعهدهندهها به اندازه کافی خلاق نیستند که به عنوان هکر در نظر گرفته شوند.
- بسیاری از برنامهنویسها و حتی هکرها به اندازه کافی تحصیلکرده و با تجربه نیستند که به عنوان توسعه دهنده در نظر گرفته شوند.
در حالت ایدهآل، یک نفر میتواند هر ۳ آنها باشد. به اندازه کافی خلاق که به عنوان هکر در نظر گرفته شود و به اندازه کافی تحصیلکرده و با تجربه که یک نرمافزار را طراحی کند.
اما حتی اگر خیلی خلاق نباشید و/یا به اندازه کافی تحصیلکرده نباشید و/یا تجربه کافی برای ساخت یک برنامه بزرگ را نداشته باشید، شما باید به خودتان افتخار کنید که برنامهنویس هستید. بر طرف کردن مشکلات با نوشتن کد خود یک توانایی بزرگ است.
نکات
- “کدنویس” معادل برنامهنویس است.
- هک کردن گاهی نه همیشه به معنی کیفیت پایین است. به این خاطر که این کار معمولا با خلاقیت مهار نشدهای همراه است که باعث میشود کار به خوبی انجام نشود. در صورتی که هکر توسعه دهنده باشد یا دستی در طراحی و … داشته باشد، پس از پایان کار، به ناچار برمیگردد و برنامه را بهبود میدهد.
- تصمیمگیری این که چه کسی هکر است و چه کسی نیست بحث بر انگیز است. اکثریت توافق دارند که برای هکر بودن ۱) نیاز دارید که یک یا تعداد بیشتری محصول که به نظر افراد مفید است تولید کرده باشید، و ۲) از نظر بقیه هکرها به عنوان یک هکر شناخته شوید.
- در دنیای امنیت، هکر همچنین معنیهای دیگری دارد. برای عموم مردم معمولا کسی است که اشکالات سیستم را متوجه میشود و میتواند کنترل امنیتی آن را مختل کند. در ردیف بالای امنیتی، کسی است که نرمافزار و ابزارهای امنیتی برای استفاده سایرین تولید میکند.
- در فرهنگ عام، هکر کسی است که جرایم یارانهای مرتکب میشود. در چارچوب دنیای امنیت، کسی که چنین جرایمی را انجام میدهد به عنوان ” حمله کننده ” شناخته میشود.
- اریک ریموند، برنامهنویس برجسته و شخصیت شناخته شده در جامعه کامپیوتر، هکر را به این صورت معنی میکند: ” یک شخصیت باهوش، خلاق و روشن فکر که از حل کردن مشکلات، یادگیری، اشتراک گذاری دانش لذت میبرد.”
- “مهندس نرمافزار” با توسعه دهنده هم معنی است. که بر نوعی از آموزش مفاهیم اصلی از مهندسی نرمافزار، طراحی و … دلالت میکند.