اقتصاد۲۴- احسان رفیعی برنامه نویس در یادداشتی به این سوال پاسخ داده است که چگونه می توان برنامه نویس شد ؟ متن این یادداشت در پی می آید:
در چند سال اخیر برنامه نویسی جزء مشاغل با درآمد بالا در جهان بوده هرچند این آمار در ایران متفاوت است و هنوز برنامه نویسی به عنوان شغل های اول از لحاظ درآمدی محسوب نمیشود. نیاز به نرمافزارهای بومی باعث شده برنامه نویسان حرفه ای ایرانی هرچند مانند نُرم جهانی درآمد کسب نکنند، اما تقریبا درآمد خوبی داشته باشند. همین موضوع باعث جذابیت تکنولوژی و آی تی برای علاقهمندان آن شده است. آنها به دنبال جواب این سوال هستند که چگونه می توان برنامه نویس شد .
برای اینکه بدانیم چگونه میتوان برنامهنویس شد، بهتر است ابتدا به این پرسش پاسخ بدهیم که برنامهنویس کیست تا به فهم مشترکی از موضوع رسید.
برنامه نویس کسی است که بر اساس طراحی یک معماری کد مینویسد و به کامپیوتر دستور میدهد چه کاری انجام دهد، برخی بر این تصور هستند که برنامهنویس همان کدنویس است ولی بین دو واژه تفاوتهای بسیاری وجود دارد. رابطه میان برنامه نویس و کد نویس ، رابطه جزء و کل است؛ این یعنی تمام برنامهنویسان، کدنویس هستند اما لزوما هر کدنویس، برنامهنویس نیست. یک برنامهنویس در کنار کدنویسی باید به مهارت طراحی معماری و توسعه نرمافزار مسلط باشد پس برنامهنویسی در مرحله نخست فارغ از هرگونه کدنویسی است.
برای اینکه با معماری نرمافزار آشنا شویم، بهتر است با مثالی ملموس آغاز کنیم؛ فرض کنید قرار است یک ساختمان بسازیم. باید ابتدا بدانیم این ساختمان به چه ظرفیتهایی نیاز دارد. در مرحله نخست باید فنداسیون را بر مبنای نیازهایی همچون مقاومت در برابر زلزله، متراژ ساختمان، تعداد اتاقها، تعداد طبقات و … طراحی کرد تا پس از آن به سراغ جزئیات دیگر همچون افزایش تعداد طبقات، دیوارکشی، سیستم برق و … رفت.
اگر یک ساختمان، معماری مشخص و حساب شده داشته باشد، در آینده به راحتی میتوان طبقات بیشتری را به این ساختمان اضافه کرد و این قابلیت وجود دارد که بتوان بر اساس طراحی پیشین به تعداد طبقات افزود.
معماری نرم افزار را میتوان به مثابه نقشه یک ساختمان توصیف کرد و با این مثال گفت یک برنامهنویس ابتدا باید نیازهای مشتری را بداند و به مشتری خود اختیار عمل توسعه بدهد.
برنامهنویسها همانند معماران هستند و برای پیادهسازی معماری باید جزئیات درخواستهای کارفرما را بدانند (به درخواستهای پروژه از سوی کارفرما، RFP میگویند که مخفف کلمه Request For Proposal است.)
باید بر اساس معماری که طراحی شده شروع به کدنویسی کرد و نوع نگارش کدها فارغ از زبان برنامهنویسی باید دارای اصول و منطق باشد و کدها مطابق با معماری باشد. شاید برای اجرای یک عملکرد در نرمافزار راهکارهای مختلفی وجود داشته باشد و همه آنها هم به خوبی کار کنند و خروجی صحیح ارائه دهد ولی برای برنامهنویس، گرفتن خروجی بر پایه یک ساختار صحیح است که اهمیت دارد.
مرحله سوم توسعه است، نرم افزاری که قابل توسعه نباشد، هدررفت انرژی و کدهاست. کدهای یکبار مصرف معمولا به بلوغ و توسعه کامل نمیرسند، شاید به همین دلیل است که برنامهنویسان میگویند فرق برنامهنویس حرفهای و آماتور را در توسعه نرم افزار باید سنجید.
هر کدام از این موارد یعنی معماری و کدنویسی و توسعه جزییات بسیاری دارند که در یادداشت بعدی سعی کردم با این سه مفهموم آشنایی پیدا کنید. بعد از خواندن این مطلب بد نیست سری هم به مقاله پردرآمدترین مشاغل در دنیای تکنولوژی بزنید.