PDA

View Full Version : برنامه نویس C# باید چه دانشی داشته باشه؟



mmbguide
یک شنبه 24 آذر 1398, 18:39 عصر
سلام دوستان

میخواستم بدونم یک برنامه نویس C# باید به چه موضوعاتی تسلط داشته باشه؟ خب قطعا اصول کار با زبان C# و موضات خاص زبان C#. اما در خصوص بکارگیری زبان C# در استفاده از کتابخانه های مختلف چطور؟

مثلا توانایی کار با بانک های اطلاعاتی با استفاده از یک تکنولوژی
توانایی نوشتن Service در برنامه های تحت شبکه
و ...

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

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

ممنون اگر راهنمایی کنید

the king
یک شنبه 24 آذر 1398, 19:32 عصر
سلام دوستان

میخواستم بدونم یک برنامه نویس C#‎ باید به چه موضوعاتی تسلط داشته باشه؟ خب قطعا اصول کار با زبان C#‎ و موضات خاص زبان C#‎. اما در خصوص بکارگیری زبان C#‎ در استفاده از کتابخانه های مختلف چطور؟

مثلا توانایی کار با بانک های اطلاعاتی با استفاده از یک تکنولوژی
توانایی نوشتن Service در برنامه های تحت شبکه
و ...

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

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

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

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

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

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

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

mmbguide
یک شنبه 24 آذر 1398, 20:27 عصر
تمام فرامایشات شما رو قبول دارم. اما همه اینها ویژگی های یک برنامه نویس خوبه. به عنوان مثال دوره های برنامه نویسی مایکروسافت شاید چیزی حدود 8 موضوع رو شامل میشه مثل WCF, WPF و...

منظورم اینه که یک نفر مسلط به C# حداقل باید چه مباحثی در حوضه کدنویسی رو بدونه؟ به عنوان مثال آیا RegEx به عنوان یک اصل هست یا موضوع فرعی محسوب میشه؟ از طرفی کار با SQL یا یک DataBase خاص یک اصل حساب میشه و برنامه نویس باید به اون تسلط داشته باشه.

مواردی که میتونم بگم که آیا اینها معیار سنجش هستش Socket Programming, EF, WCF و مواردی در خصوص رمزنگاری.

بطور کل برنامه نویس خوب باید چه توانایی هایی در خصوص کد نویسی داشته باشه؟

the king
یک شنبه 24 آذر 1398, 21:15 عصر
تمام فرامایشات شما رو قبول دارم. اما همه اینها ویژگی های یک برنامه نویس خوبه. به عنوان مثال دوره های برنامه نویسی مایکروسافت شاید چیزی حدود 8 موضوع رو شامل میشه مثل WCF, WPF و...

منظورم اینه که یک نفر مسلط به C#‎ حداقل باید چه مباحثی در حوضه کدنویسی رو بدونه؟ به عنوان مثال آیا RegEx به عنوان یک اصل هست یا موضوع فرعی محسوب میشه؟ از طرفی کار با SQL یا یک DataBase خاص یک اصل حساب میشه و برنامه نویس باید به اون تسلط داشته باشه.

مواردی که میتونم بگم که آیا اینها معیار سنجش هستش Socket Programming, EF, WCF و مواردی در خصوص رمزنگاری.

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

فرضا برای برنامه نویسی که میخواد در شرکتی کار بکنه که بیشتر گرایش به طراحی سایت و وب سرویس و ... دارند، HTML و JavaScript و SQL Server و Cookies و ... نباید مفاهیم غریبه ای باشند.
ممکنه فردی سالها نرم افزار تجاری برای شرکت ها و سازمان های دولتی بنویسه و نه نیازی به دانشی در مورد Json و XML داشته باشه و نه گذرش به WPF بیافته، اما dBASE و Iran System و ... رو یک پیش نیاز ببینه.
برنامه نویسی که صرفا با پایگاه داده ها درگیر میشه شاید برای RegEx کارکرد خاصی پیدا نکنه، برعکس برنامه نویسی که روی واسط کاربری کار میکنه و ورودی های کاربر رو Validate میکنه RegEx رو یک پیشنیاز اساسی میدونه.
اینهایی که اسم بردید همه شون کاربردی هستند، اما در صرفا در گرایش های خاصی. نمیشه گفت اگر فردی Socket Programming رو بلد نیست یا با EF آشنایی نداره پس برنامه نویس خوبی محسوب نمیشه.
شاید فردی یک برنامه نویس خوب برای Back end باشه ولی برای Front end اصلا نباشه یا برعکس.

mmbguide
یک شنبه 24 آذر 1398, 22:47 عصر
از ارائه نظرتون بسیار ممنونم

pe32_64
یک شنبه 24 آذر 1398, 22:56 عصر
دوستان به خوبی توضیحاتی رو اراعه دادند .
بنده هم یک مورد رو اضافه کنم که ساختمان داده و مباحث مربوطش خیلی مهم هستند و حتما وقتی رو برا تسلط به این موضوع کنار بذارید.