استخدام برنامه نویس C شارپ - 0 تا 100

توسط کاوه طاهری آخرین بروزرسانی

برنامه نویسی سی شارپ (#C) یکی از پرطرفدارترین شفل های امروزی است. ما در این مقاله به بررسی این شغل، پیش نیازها، مشاغل موجود و حقوق می پردازیم.

مقدمه برنامه نویسی

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

 

برنامه نویسی یعنی چی؟

هر سخت افزار الکترونیکی برای فعالیت به یک نرم افزار یا برنامه برای انجام کار خود نیاز دارد. این نرم افزار توسط یکی از زبان های برنامه نویسی سطح بالا یا پایین تولید می شود.

زبان ها نرم افزار به ۳ دسته، سطح بالا، سطح پایین و زبان ماشین تقسیم می شوند. فهمیدن زبان سطح بالا برای انسان راحت تر از زبان سطح پایین و زبان ماشین و برای کامپیوتر بلعکس است. زبان های سطح پایین و زبان ماشین بسیار سریع هستند ولی تقریبا غیرقابل توسعه می باشند.

برنامه نویسی معمولا به زبان های سطح بالا انجام می شود، هرچقدر زبان برنامه نویسی کامل تر باشد توسعه برنامه به آن زبان راحت تر و سریع تر انجام می شود. چند نمونه از زبان های سطح بالا در زیر آورده شده است.

فهم زبان های سطح بالا برای انسان راحت است. حتی برخی زبان ها که از COMBOL الهام گرفته شده است که به زبان انگلیسی بسیار نزدیک است.

بعد از خلاصه بالا در مورد برنامه نویسی، میخواهیم به زبان برنامه نویسی C شارپ بپردازیم.

 

سی شارپ(#C)

سی شارپ یک زبان برنامه نویسی سطح بالا، چند پارادایم (شی گرا یا رویه ای، به انتخاب برنامه نویس)، وابسته به نوع (Strong Typed)، شی گرا (Object-oriented) و برپایه کلاس ها است که توسط مایکروسافت و تیم آقای آندرس هایلسبرگ در سال 2000 توسعه داده شد. 

آندرس هایلسبرگ

آقای آندرس هایلسبرگ دانمارکی بعدا زبان TypeScript را ساخت.

 

پیش نیاز برنامه نویسی سی شارپ

یادگیری سی شارپ هم مانند بیشتر زبان های برنامه نویسی نیاز به کمی اطلاعات اولیه در مورد نحوه کار نرم افزارها و سخت افزارها دارد. البته سی شارپ برخلاف سی++ کلیه موارد مربوط به حافظه را مدیریت می کند و معمولا از این ناحیه مشکلی خاصی وجود نخواهد داشت.

برنامه نویسی سی شارپ به 2 اصلی برنامه نویسی وب و ویندوز تقسیم بندی می شود که هرکدام پیش نیازها خود را دارند. در برنامه نویسی ویندوز، برنامه نویس بیشتر با فرم ها و رویدادها (مثلا کلیک موس) سر و کار دارد ولی در وب خبری از فرم نیست و همه چیز به صورت درخواست و پاسخ است.

سی شارپ تولید مایکروسافت است و با اولین نسخه از .NET معرفی شد. تقریبا هرجایی نام از سی شارپ آورده شود همراه دات نت خواهد بود، پس .Net چیست؟

 

دات نت، Net. چیست؟

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

همانطور که در تصویر بالا می بینید دات نت فریم ورک از نسخه 2 شامل دستورات CLR و WinForms تا نسخه 4.5 شامل کلاس های Task-Based می باشد. پس برای هر کاری باید دات نت متناسب با آن را در اختیار داشته باشید، مثلا اگر نرم افزار شما نیازی به استفاده از دستورات Linq ندارد نیازی به نصب دات نت 3.5 نداریم و کار با همان 3 یا حتی 2 هم راه میفتد. این مورد در برنامه نویسی وب کاربرد زیادی ندارد ولی در ویندوز چون کاربران مختلف و سیستم های مختلفی وجود دارد باید حتما کاربر هدف را در نظر بگیرید و مثلا دات نت 4.5 را برای ویندوز XP انتخاب نکنید!

استخدام برنامه نویس سی شارپ

قبلا فقط یاد داشتن سی شارپ برای استخدام کافی بود ولی چند سالی است که شرایط تفاوت کرده است. شرکت ها به دنبال استخدام برنامه نویس کشتی گیر 25 ساله با 10 سال سابقه کار هستند، لیست حداقل موارد لازم برای استخدام در زیر آورده شده است.

برای Back-End و Front-End

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

در زیر نمونه ای از یک آگهی که شرکت اصلا مشخص نیست دنبال چه کاری است آورده شده است. برای این همه کار شما به حداقل یک تیم احتیاج دارید و از توانایی یک نفر خارج است.

 

آگهی استخدام برنامه نویس کشتی گیر

نمونه آگهی تقریبا صحیح

البته در بند (حداقل یک سال سابقه کار حرفه ای) سوتی داده و مشخص است حقوق پایینی در نظر گرفته اند، برای تسلط به سی شارپ حداقل 4 یا 5 سال زمان لازم است. تسلط به MVC یا Win Form هم بسیار زمانبر است. 

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

 

حقوق برنامه نویس

برنامه نویس هم مانند سایر مشاغل متناسب با توانایی فردی و سابقه کاری حقوق های مختلفی دریافت می کند. البته در نهایت قیمت محصول نهایی مشخص کننده دستمزد برنامه نویس است، مثلا اگر شما برنامه نویس با سابقه 20 یا 30 ساله هم باشید که نیستید، اگر در شرکتی کوچک به تولید نرم افزار حسابداری درپیت مشغول باشید نباید انتظار حقوقی بیشتر از 3 میلیون در ماه را داشته باشید. (به تاریخ انتشار مقاله نیز دقت بفرمایید)

به طور معمول حقوق برنامه نویسی از 2 میلیون تومان تا نهایت 7 میلیون تومان قابل قبول است. البته در موارد خاص شاید مدیر برنامه نویسی دستمزد های بیشتری نیز طلب کند که معمولا پرداخت نمی شود :)

 

وظایف برنامه نویس

وظایف برنامه نویس در دنیا با ایران کاملا متقاوت است، در کشورهای دیگر معمولا برنامه نویس با دریافت مستندات و شرکت در جلسات اسکرام نرم افزار را تولید و بعد از تحویل به بخش تست و دریافت مستندات مربوط به تست اقدام با رفع باگ ها می کند.

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

بعد از صندلی، باید به فکر ناهار هم باشید! با فرض اینکه شرایط محیطی برای ادامه کار مناسب است، اول سیستم تحویل گرفته شده را کاملا پاکسازی کنید، اگر توانستید از نصب ویندوز شروع کنید، شک نکنید که سیستم قبلی ویروسی است، شما با برنامه نویس سر و کار دارید!

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

برای اتصال به git باید پیش نیازهایی را اماده کنید که در مقاله مربوط به git همه را توضیح خواهم داد. برای SVN هم کار راحت است ولی در مقاله اتصال به SVN توضیح کافی داده خواهد شد. اگر شرکت از TFS استفاده می کرد سریعا محل را ترک کنید :)

 

مستندات فنی

قبل از هر چیز، اگر میخواهید برنامه نویس شوید، اگر میخواهید دعای خیر ملتی پشت سر شما باشد مستندات تهیه کنید. شما هر چقدر برنامه نویس خوبی باشید، هر چقدر زیبا کد بزنید، اصلا کدها را مدادرنگی و رنگی رنگی بنویسید بازهم فهمیدن زبان شیرین فارسی یا انگلیسی راحت تر از کد است. برای همه چیز کامنت بنویسید، شاید نوشتن 1 خط چند ثانیه وقت شما را بگیرد ولی فهمیدن همان خط بعد از 2 سال 1 روز زمان شما یا برنامه نویس دیگری را هدر خواهد داد. 

مهم، از تحویل گرفتن این سورس کد ها جدا پرهیز کنید، 

البته باتوجه به عدم وجود مستندات در هیچ یک از پروژه ها ایرانی یا باید کلا قید کار برنامه نویسی را زد یا با بعدا که گرفتار شدید گله نکنید.

اولین قانون برنامه نویسی: اگر کار میکنه، بهش دست نزن.‌

تا زمانی که به این قانون پایبند باشید مشکلی پیش نمیاد. ولی همیشه اینطور نیست تقریبا همیشه برای توسعه نرم افزار مجبور به تغییر در کدهای قدیمی هستید و مشکل همیشه از همان جا شروع می شود.

همانطور که در بالا چندین بار تکرار شد، به هیچ وجه مسولیت سورس کدهای اشتباه را بر عهده نگیرید و خودتان نیز اینگونه کدها را تولید نکنید. 

خشت اول گر نهد معمار کج / تا ثریا می رود دیوار کج

این ضرب المثل شیرین فارسی دقیقا مصداق همین موضوع است. اگر شما Design Pattern را رعایت نکنید، بالاخره یک روزی گیر خواهید افتاد و آن روز برنامه نویس متواری خواهد شد و هیچ برنامه نویس عاقلی مسولیت سورس کد شما را برعهده نخواهد گرفت.

 

سورس کنترل مهم است؟

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

 

در شرکت های کوچک استخدام نشوید

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

 

در شرکت های نرم افزاری استخدام نشوید

اگر دنبال حقوق بالا و دردسر کم هستید به هیچ وجه سمت شرکت های نرم افزاری نروید. این شرکت ها بیشتر دنبال بیگاری کشیدن از برنامه نویس هستند. البته شاید با چند سال کار در این شرکت ها تجربه خوبی پیدا کنید ولی به نظر شخصی من ارزش ندارد.

 

تکنولوژی های جدید و دردسر برنامه نویس

هر روز یک تکنولوژی جدید معرفی می شود، شرکت های ایرانی هم فقط دنبال همین نام ها هستند، با معرفی Net Core (دات نت کور) همه به دنبال برنامه نویس با سابقه چند ساله هستند! خوب کارفرمای عزیز شما اول ببین این تکنولوژی اصلا 2 هست معرفی شده (دقت کنید معرفی شدن با عملیاتی شدن تفاوت زیادی دارد، نسخه های اولیه فقط جنبه تست و آزمایش دارد) تا دنبال برنامه نویس باتجربه و مسلط هستید! (نمونه این آگهی ها در بالا آورده شده)

 

رزومه برنامه نویس

برنامه نویس باید رزومه استاندارد شامل بخش های اصلی رزومه و حتی رزومه خلاقانه ای داشته باشد. بخش های اصلی هر رزومه در زیر آورده شده است.

 

همکاران گرامی با نظرات خود ما را یاری دهید.

 

 

 

C# .net

0 نظر

نظر بدهید

نشانی ایمیل منتشر نخواهد شد.

کلیه حقوق مادی و معنوی برای ikaveh.com محفوظ است.