خیلی از این چیزهایی که گفتید نیاز نیست (بعضی هاش رو اگه بلد بودید که چه بهتر، اما بعضی هاش
اصلاً به درد نمیخوره)
شما برای ORM باید
یک مورد خوب مثل Entity Framework (چون هم ORM خیلی خوبی هست و هم بازار کارش خوبه) رو یاد بگیرید.
برای برنامه های ویندوزی WPF رو یاد بگیرید (توجه کنید که WPF فقط زیبایی ظاهری نیستش، نکته مهم WPF بحث Data Binding فوق العادش هست) پس شما هم خیلی نمیخواد خودتو درگیر انیمیشن و سه بعدی و ... در WPF بکنی
برای برنامه های تحت وب
ASP.NET MVC رو یاد بگیرید (چون ASP.NET Web Form در حال مرگ هستش و بر عکس MVC هر روز پیشرفته تر و بهتر میشه)
در مورد گزارش گیری در برنامه ها (هم وب و هم ویندوز) به جای Crystal Report از Stimulsoft Report (غیر رایگان) یا
کتابخانه PdfReport (رایگان) آقای نصیری استفاده کنید
Socket Programming خوبه ولی کارایی چندانی نداره پس میتونید اصلاً سراغش نرید
WCF ، Registery، Crystal Report، 2D 3D Graphic ، Dotfuscator ، Net Security ، ADO.NET رو کلآً بزارید کنار و به هیچ وجه سمتشون نرید. این لینک هم نگاه کنید (
بررسی فناوری ها از دیدگاه مرگ و زندگی)
آشنایی با IDE که خیلی کاری نداره و چند روزه میتونید کامل محیط رو یاد بگیرید
روش نسخه بندی نرم افزار آنچنان کارایی برای شما نداره ولی اگر اینطور فکر نمیکنید یاد گرفتنش هم اصلاً کار سختی نیست
(کافیه اینجا رو بخونید)
استاندارد های کدنویسی هم به مرور یاد میگیرید و با نصب Resharper میتونید خیلی چیزها در این مورد یاد بگیرید شما فقط سعی کنید تا حد امکان کد رو ساده و خوانا بنویسید و اینکه از
قواعد نام گذاری درستی استفاده کنید چون این موارد واقعاً مهم هستند
استفاده از یک کنترل نسخه مثل TFS یا Svn یا GIT خیلی خوبه
حتی اگر تیمی کار نمیکنید (من خودم TFS رو ترجیح میدم)
Agile و کار تیمی هم بیشتر در محیط کار باید یاد بگیرید وگرنه هر چقدر هم بخونید ولی یه کار تیمی انجام ندید کامل متوجه نمیشید.
Unit Test خیلی چیز خوبیه ولی واقعآً بعضی مواقع کار فوق العاده سختی هستش (من خودم هم خیلی دوست دارم یاد بگیرم!)
آشنایی با مباحث طراحی واسط کاربر معمولاً در محیط کار بر عهده گرافیست هستش و به هیچ وجه وظیفه برنامه نویس نیست (هر چند تو ایران معمولاً همه کارها بر عهده برنامه نویس هست، از کد نویسی تا بازاریابی و فروش!)
مباحث مهندسی نرم افزار مثل Design Pattern و ... مهمه ولی اینکه بدونید کجا ازشون استفاده کنید و کجا نباید استفاده کرد هم باید توجه داشت. این مباحث یه مقدار فهمش و مخصوصاً پیاده سازیش سخت هستش و معمولآً توی شرکت های بزرگ کار شخص برنامه نویس نیست. چند مورد Design Pattern معروف و مفید هست که باید یاد بگیرید (MVVM برای پروژه های ویندوزی -> WPF و MVC برای پروژه های تحت وب -> ASP.NET MVC)
زبان انگیسی هم هیمنطور که دوستان گفتن خیلی مهمه.
ولی اینکه میرید همه چیزها رو تا تهش یاد میگیرید کارتون رو خیلی خیلی سخت میکنه پس حواستون باشه. مثلاً XML Documentation اصلاً واجب نیست شما بدونید داره پشت صحنه چکار میکنه و ... که خودتون توضیح دادید. توی بعضی موارد مثل خود C# مطالعه عمقی شاید خوب باشه ولی در اکثر موارد کار بیهوده ای هستش (با توجه به زمان).