PDA

View Full Version : آیا میشود همزمان یک برنامه نویس موفق وب و اندروید باشیم؟



Milad_Fashi
پنج شنبه 02 مرداد 1393, 01:33 صبح
با سلام به برنامه نویس های عزیز
من میخوام هم برنامه نویس موبایل خوبی باشم.و هم Web developer خوبی باشم.
زبان های C#‎‎ , C++‎‎, JAVA رو بلدم.و ریزه کاری های هر کدوم رو خیلی سریع میتونم یاد بگیرم.کمی هم ASP.net‌ دوران دانشجویی کار کردم(کارشناسی نرم افزار دارم).
برای طراحی وب با CSS۳ و HTML5 و جاوا اسکریپت و jQuery ها آشنایی دارم.
پایگاه داده های Microsoft SQL Server و Sqlite کار کردم.
یه مدت هم با فریم ورک MoSync برای اندروید کد میزدم.Cross-platform بود ولی Performance پایین تری نسبت به Android Native که جاوا باشه داشت.
به نظر شما یه نفر میتونه با روزی ۴ الی ۵ ساعت در روز((منظم و تمام روزهای هفته)) برنامه نویسی بخونه و انجام بده و در هر دو زمینه برنامه نویسی تحت وب و موبایل موفق باشه.یعنی هم Web Developer باشه.و هم Android Developer ؟


فریم ورک هایی که میتونم استفاده کنم اینها هستند :
اولویت اول :
Microsoft Visual Studio and C#‎‎ language :شک ندارم که ASP.net MVC قدرتمنده و میتونه برای من کار PHP رو انجام بده.حتی شنیدم که Open Source هم هست و از این جهت دیگه PHP برتری متن باز بودنش رو نمیتونه به رخ بکشه .و بهتر از PHP باشه.بدتر نیست. اما با همین ابزار میتوان با استفاده از پروژه مانو (Xamarin) برای موبایل (که شامل اندروید هم میشه) کد نوشت.و خروجی گرفت.اما سوالم اینجاست که Xamarin میتونه به خوبی Java و Eclipse برای اندروید باشه؟؟؟ هسته ی اندروید لینوکس هستش.و برای اینکه کدهای جاوا رو اجرا کنه به ماشین مجازی Dalvic احتیاج داره.Xamarin هم برای اینکه بتونه کدهای C#‎‎-Microsoft رو اجرا کنه نیاز به ماشین مجازی Mono داره؟.هردو ماشین مجازی دارند.مگر اینکه از C , C++‎‎ استفاده کنید که بدون ماشین مجازی بر روی هسته لینوکس اجرا میشوند. باز سوالم اینه که ماشین مجازی جاوای دالویک رو گوگل در سیستم عامل اندروید خودش قرارداده.برای اجرای برنامه های Xamarin چه طوری ماشین مجازی مانو در سیستم عامل تعبیه میشه!!!! از قبل که ۱۰۰ درصد وجود نداشته.ولی فکر میکنم حقه زامارین برای اجرا سی شارپ بر روی اندروید ماشین مجازی مانو نیست.شاید برنامه دو مرحله تبدیل داره.یک مرحله برای تبدیل کد سی شارپ به کد جاوا.و یک مرحله هم اجرای کد جاوا با ماشین مجازی دالویک.واقعا نمیدونم مسیر تبدیل و اجراش چیه !؟ دوستانی که از نظر فنی این موضوع رو میدونند لطفا توضیح بدن که سی شارپ چگونه در اندروید اجرا میشود؟ و چقدر سی شارپ کندتر از جاوا ست؟ اگر شما تجربه استفاده از هر دو روش رو دارید مقدار این کندی در حد ثانیه است یا صدم ثانیه یا میلی ثانیه ؟ (ناچیزه یا چشم گیره؟)


اولویت دوم :
استفاده از زبان JAVA است.با زبان جاوا میتوان صفحات وب از طریق تکنولوژي JSP طراحی کرد.اما شنیدم مشکل JSP کندی این تکنولوژی است.به دلیل سنگین‌بودن JSP (بدلیل اجرا کردن Tomcat و راه‌اندازی ماشین مجازی Java) و همچنین باگ‌های مداوم Java، عموما کسی به سمت JSP نمی‌ره، غیر از اینکه از قبل با JSP کار می‌کردند و الان دیگه تغییر سرویس‌ها براشون مشکل باشه.سرورها ای که جاوا رو پشتیبانی کنند گران و کمیابند.ولی در عوض برای برنامه نویسی اندروید بهترین گزینه است. و بدون شک یکه تازه چون توسط طراح سیستم عامل اندروید(گوگل) پیشنهاد شده است.


اولویت سوم :
اصرار نداشتن به استفاده از یک زبان برای هر دو منظور است.مثلا از PHP یا ... برای زبان Server Side صفحات وب استفاده کنم.و حتی زبان های Server side دیگه مثل nodeJS.و برای برنامه نویسی موبایل هم از زبان Native خودش مثل جاوا برای اندروید استفاده کنم.
اما به نظر شما استفاده از زبان های متفاوت و فریم ورک های متفاوت باعث نمیشه که تمرکز کمتری داشته باشم.و به ضررم تموم بشه؟ به نظر خودم استفاده از یک زبان و یک فریم ورک برای هر دو منظور به صرفه تره.خصوصا اینکه من میخوام دو تا تخصص داشته باشم.داشتن دو تخصص ممکنه به ضررم باشه و توی هیچ کدوم تسلط پیدا نکنم.و اگر از دوتا فریم ورک و زبان مختلف استفاده کنم قضیه بیشتر عمق پیدا نمیکنه؟
شایدم توانایی ما آدما بیشتر از این حرف هاست و میتونیم در چند موضوع متفاوت متخصص باشیم.
نظر شما چیه؟

omid_cr77
پنج شنبه 02 مرداد 1393, 02:13 صبح
چرا که نه تو هر چیزی اگه علاقه و استعداد باشه آدم موفق میشه.

mfaridi
پنج شنبه 02 مرداد 1393, 03:28 صبح
کافیه برنامه نویسی رو درک کنی زبونهای برنامه نویسی بجز vb با هم توی کد نویسی تفاوت چندانی ندارن چرا که نشه چند زبون همزمان یاد گرفت

Milad_Fashi
پنج شنبه 02 مرداد 1393, 14:38 عصر
خوب اگر فرض بر این باشد که انتخاب دو هدف Web app development و Android development کار اشتباهی نیست.به نظر شما من از کدوم یکی از سه اولویتی که گفتم استفاده کنم؟
از چه زبان و فریم ورکی برای وب استفاده کنم؟
از چه زبان و فریم ورگی برای موبایل استفاده کنم؟
قابل ذکر است که شاید سرعت نهایی جاوا و اکلیپس برای اندروید بیشتر باشد.ولی در عوض Xamarin با کمی تغییر کد(حداکثر ۳۰ درصد کدها) میتوان برنامه نوشته شده به سی شارپ را روی سه سیستم عامل مهم و برتر موبایل یعنی اندروید و iOS و Windows phone اجرا بشه.(فقط یک زبان و فقط یک فریم ورک!) خوب این مزیته.ولی اگر قرار باشه که Performance‌و سرعت و کارایی برنامه کم(خیلی کم) بشه ارزش اجرایی نداره

Milad_Fashi
پنج شنبه 02 مرداد 1393, 16:51 عصر
چون که برنامه نویسی علاوه بر فریم ورک به پلتفرم(سیستم عامل) هم وابسته است.خصوصا برنامه نویسی تحت وب که به یه سیستم عامل سرور و نرم افزار سرویس دهنده وب و پایگاه داده هم وابسته است.
توضیحاتم رو کامل تر میکنم و میخوام بگم که ۶ ماهه عمیق دارم روی لینوکس-اوبونتو کار میکنم.از فضای جامعه Open Source هم خوشم میاد.ولی باز از انتخاب PHP برای کار و انتخاب بسته LAMP میترسم.ترس از یادگیری اون رو ندارم.چون خواستن توانستنه.
ولی ترسم بیشتر از این جهت هستش که متاسفانه در ایران بحث توسعه نرم افزار بیشتر تک قطبی و به سمت جامعه تجاری مایکروسافت هستش.

و من فکر میکنم در ایران(باز هم تاکید میکنم در ایران) ۲ دسته از آدما به سمت جامعه متن باز گرایش پیدا میکنند :

دسته اول : اونایی که خیلی (خیییییییییییییییلی) عاشقند(منظورم عشق به جنبش نرم افزارهای آزاد و متن باز و لینوکس و امثالهم هستش).که من جز این دسته نیستم.چون عاشق هستم ولی نه خیییییییییییییییییییییییل ی

دسته دوم: اونایی که خیلی (خیییییییییییییییلی) پول دار هستند.و باز من جز این دسته نیستم

با خودم میگم وقتی قانون کپی رایت رعایت نمیشه(و اگر هم بشه یه کاریش میشه کرد.استفاده از نسخه های express و رایگان مایکروسافت و یا از Mono-Project.یا وام گرفتن برای خرید لایسنس :-) ) و من میتنونم با Microsoft Visual Studio نسخه Ultimate کار کنم.و در کشوری که بیشترین استخدامی ها به سمت محصولات مایکروسافته چرا باید به سمت متن باز بروم و مثلا از جاوای متن باز و یا PHP متن باز و رایگان استفاده کنم؟

Milad_Fashi
جمعه 03 مرداد 1393, 02:18 صبح
کافیه برنامه نویسی رو درک کنی زبونهای برنامه نویسی بجز vb با هم توی کد نویسی تفاوت چندانی ندارن چرا که نشه چند زبون همزمان یاد گرفت

ممنون از پاسخت
میدونم زبان های سی پلاس پلاس و جاوا و سی شارپ از نظر گرامری به هم خیلی نزدیک هستند.چون با هر سه تا کد نوشتم
ولی یادگیری زبان مساوی داشتن تخصص نیست.برای داشتن تخصص علاوه بر زبان باید با فریمورک و تکنیک های مختلفی آشنا باشی
مثلا برای PHP باید با لینوکس و آپاچی و MySQL کار کنی.خود آشنایی با لینوکس زمان بره.باید امنیت در لینوکس رو بشناسی.و همچنین به اسکریپت های PHP و حتی تغییر در Source کد اون تسلط پیدا کنی تا یه PHP کار خوب باشی.و گرنه یاد گرفتن سینتکس زبان PHP حداکثر یه هفته زمان میبره.مشکل فقط زبان نیست.گرچه کار با زبان های مختلف هم آدم رو گیج میکنه.ولی مشکل این نیست.
مسیله این است یه برنامه نویس PHPباید از دنیای تجاری مایکروسافت فاصله بگیره و به سمت دنیای آزاد لینوکس کوچ کنه.
در پست قبلی هم در مورد تقابل تجاری و Open Source گفتم