استاد ، یه نظری میدین؟
نیاز به مشورت بیشتر دارم .
تشکر
اینکه در آینده چی میشه رو باید از مرحوم نوستراداموس بپرسید.
با کسی مشورت کنید که نظرش براتون قابل قبول باشه، نه من که استدلال های بدیهی اش رو هم قبول ندارید.
اینکه علم نرم افزار دائم در حال تغییر ئه و تکنولوژی های نرم افزاری ذاتا پویا هستند رو قبول ندارید؟
اگر قبول دارید دنبال پلتفرمی که قطعی تا ده سال دیگه منسوخ نشه نمی گشتید.
اینکه موفقیت شما به پلتفرمی که انتخاب کرده اید ربطی نداره رو قبول ندارید. خیال می کنید اگر پلتفرم X قابلیت های بیشتری داشته باشه یا در آینده رو بورس باشه پس شما هم با انتخابش برنامه نویس موفقی می شوید یا بازار رو تصاحب می کنید، در حالی که ابدا اینطور نیست.
در هر پلتفرمی همه جوره برنامه نویسی هست، موفق و ناموفق، حرفه ای و مبتدی، مسلط و ناشی. با پلتفرم هایی که منسوخ شده هم ممکنه موفق باشید و بازار داشته باشید.
WinRAR با ++C نوشته شده، یک زبان سی و چند ساله، با یک پلتفرم خیلی قدیمی. فکر می کنید اگر برنامه نویسی با ++C تحت ++Microsoft Visual C رو یاد بگیرید، می توانید نرم افزار موفقی مثل WinRAR رو طراحی کنید؟ نه، چون WinRAR بخاطر الگوریتم های برنامه نویسی بهینه اش، معلومات ریاضی و توانایی فنی طراحانش اش WinRAR شده، نه اینکه برنامه نویسی با ++Visual C یا Windows Forms دلیل موفقیت بوده.
Cheat Engine با Object Pascal نوشته شده، یک زبان سی و چند ساله که رو بورس هم نیست، موفق ئه چون طراحانش معلومات فنی زیادی داشته اند.
CPU-Z و Ace Utilities و Perfect Mask با Visual C++ 2008 نوشته شدن.
Spybot - Search & Destroy و High-Logic FontCreator با Borland Delphi 2014 نوشته شدن.
Paint.NET با #C و ++C و C++/CLI نوشته شده.
ّFirefox با Javascript و ++C نوشته شده.
فکر می کنید هر کدوم از این نرم افزار ها بخاطر پلتفرم شون موفق بودن؟ یا می توانید مشابه شون رو بنویسید؟
شما نظرات من رو می توانید در پست های قبلی من بخونید. در پیشگویی آینده هم تخصصی ندارم که بگم چند سال بعد چه خواهد شد. هر سال پلتفرم های جدیدی معرفی میشه و یکسری پلتفرم ها منسوخ میشه، چطور که Adobe توصیه می کنه که کاربران حتی Flash Player رو نگه هم ندارند و Uninstall کنند. این ذات تکنولوژی های نرم افزاری است، هیچ پلتفرمی همیشه در بورس نمی مونه. اما اینکه سر پلتفرم ها چه بلایی میاد اصلا ربطی به موفقیت یا عدم موفقیت شما نداره.
یا الان شما کارمند شرکت C هستید که در گرایش های X و Y و Z فعالیت می کنند و باید هر چه برای این گرایش ها لازمه یاد بگیرید تا پروژه های کارفرما رو اجرا کنید و یا یک برنامه نویس مستقل و آزادی هستید که در گرایش های X و Y و Z پیشنهاد پروژه دارید که اگر بهشون تسلط ندارید پیشنهاد رو رد می کنید و اگر دیدید تعداد پروژه هایی که رد می کنید زیاد ئه و ارزش وقت صرف کردن رو داره می توانید اون گرایش ها رو یاد بگیرید تا پروژه های بعدی رو رد نکنید.
اگر هیچکدوم از اینها نیستید و پیشنهاد پروژه ای هم ندارید و نمی دونید چه چیزی رو یاد بگیرید، اصلا هدف مشخصی ندارید که بخواهید بخاطرش چیزی یاد بگیرید. اگر میخواهید جای خاصی پرسنل و کارمند باشید، باید ببینید چه معلوماتی ازتون میخوان تا اونها رو یاد بگیرید و یا اگر فکر می کنید ایده پروژه خاصی در ذهنتون هست که فکر می کنید بازار خوبی داره و تحت پلتفرم های X و Y و Z قابل اجرا است، باید دم دست ترین پلتفرمی که برای یادگیری و اجرا کمترین زمان رو ازتون میگیره انتخاب کنید، نه اینکه فکر کنید کدوم پلتفرم قوی تر ئه، پلتفرم بهتر و بدتر نداریم، اون برنامه نویس ئه که خوب و بد داره.
اگر فکر می کنید که انتخاب پلتفرم X شما رو یک برنامه نویس موفق می کنه و انتخاب پلتفرم Y شما رو یک برنامه نویس ناموفق، سخت در اشتباهید.
یادگرفتن هیچ تکنولوژی ای هم به این معنا نیست که در طراحی نرم افزار دانش کافی رو بدست آورده اید. دانش برنامه نویسی شما در یادگیری پلتفرم که خلاصه نمیشه. در مورد "مهندسی نرم افزار" جستجو کنید و ببینید چقدر دامنه مباحث گسترده ای داره. اینکه برنامه نویسی در پلتفرم P کار می کنه نه نشون میده برنامه نویس مسلط و با استعداد و موفقی است، نه ناشی و بی استعداد و ناموفق.
چه موافق باشید و چه نباشید، موفقیت شما به نبوغ و معلومات و تجربه شما وابسته است، نه قابلیت های پلتفرمی که انتخاب کرده اید. اگر برنامه نویس خوبی نباشید روی بورس بودن پلتفرم یا قابلیت هاش کمکی به شما نمی کنه.