PDA

View Full Version : سوال: برنامه نویسی وب



aramis001
چهارشنبه 11 آبان 1390, 16:57 عصر
با عرض سلام خدمت دوستان این سایت در مورد برنامه نویسی راهنمایی میخواستم رشته ام کامپیوتر نیست ولی میخوام برنامه نویسی وب رو یاد بگیرم با چی شروع کنم هیچی هم بلد نیستم اگه کتاب یا سی دی برای کمک کردن به من وجود داره ممنون میشم ؟

aminghaderi
جمعه 13 آبان 1390, 12:28 عصر
رشته ام کامپیوتر نیست ولی میخوام برنامه نویسی وب رو یاد بگیر
سلام.
ابتدا باید بگم که برنامه نویسی اون هم از نوع طراحی وب شوخی و ساده نیست که هرکسی بتونه یاد بگیره ، باید پیش زمینه نرم افزاری داشته باشی؟!(رشته تحصیلیتون کامپیوتر باشه) .
مثل این می مونه من بخوام برم یه پل بسازم یا اینکه بخوام برم اتاق جراحی و بیماری رو عمل کنم؟!
نمی گم نمی شه ؟! ولی آینده نداره؟! چون کسی به کار شما اهمیت نمی دهد. (چون مدرک شما مرتبت نیست؟!)
در ثانی راه طولانی در پیش دارید.
----------------------------------------------------------------
بهترین راه برای شروع کردن وب رو نمی دونم ، ولی کن Asp.net خوب گزینه ای خوبی است.
ولی برای شروع بهتره یک هفته تا دوهفته بروی Html و CSS کار کنید ، و بعد مفاهیم پایگاه داده (SQLServer) رو یاد بگیرید و بعد هم برید سر اصل مطلب و طراحی یه وبسایت .
نکته : بهرته برای بار اول یه وبسایت کوچک مد نظر شما باشد و اگر غیر از این باشد ، یاد که نخواهید گرفت ، دلسرد هم می شوید و شکست می خوردید و همون بحث همیشکی "خواب پروژه" (درست یادم نیست ولی فکر کنم اصلاحش همین بود) پیش خواهد آمد و شما برای مدتی دست از کار خواهی کشید.

Javad_Darvish_Amiry
دوشنبه 16 آبان 1390, 16:17 عصر
سلام. من رشته ی تحصیلیم مرتبط (کامپیوتر) نیست (موسیقی و ریاضی خوندم تو دانشگاه :دی) و شغلم برنامه نویسی وب هست و چند سالی هم هست کار میکنم و خدا رو شکر بازار هم بد نیست :دی - تدریس هم میکنم، عموما بچه هایی که فارغ التحصیل شدن یا ترم آخر هستن! زمینه تحصیلیشون مرتبط هست اما متاسفانه بی ارتباط ترین مطالب رو تو دانشگاه خوندن و بعد از 4 5 سال هدر دادن پول و عمر یه خط کد هم -عموما و نه جزئا، بی احترامی به عزیزان نباشه؛- نمیتونن بزنن، چه برسه به ورود به بازار کار و انجام پروژه.

شما اول باید مشخص کنی چی میخوای کار کنی که علی الظاهر قصدتون برنامه نویسی وب هست. برنامه نویسی وب دو بخش اصلی داره: سمت کاربر (Client Side) و سمت سرور (Server side). برای بخش کاربر همه چیز مشخصه. تسلط به HTML و CSS نیاز داری و آشنایی با جاوا اسکریپت و بعد از اون تسلط روی یکی از کتابخونه های جاوا اسکریپت که رایج ترینشون فعلا jQuery هست. اگه خوب کار کنی، مباحث تئوریک این بخش رو میتونی تو کمتر از یه ماه کار کنی، اما برای تسلط روی مباحث و توانایی به کار گیری اصول تو یه پروژه ی واقعی نیاز به تجربه داری. هر چی بیشتر صفحه بزنی، تسلطت بیشتر میشه. اما خوبی قضیه اینجاست که این تجربه رو میتونی همزمان با یادگیری سمت سرور کامل کنی.

برای سمت سرور: سمت سرور شما نیاز به یه زبان برنامه نویسی (یا اسکریپت نویسی) و یه پایگاه داده داری. حالا باید انتخاب کنی که چی میخوای کار کنی. معروفترین زبان ها (و بستر های) سمت سرور، که الان رایج هستن شامل زبان های C#, PHP, RUBY, JAVA هستن.

زبان C#.NET در حال حاضر فکر کنم بیشترین کاربرد رو تو ایران داشته باشه. روی بستر Microsoft .NET Framework هست و امکانات یکپارچه ای برای توسعه برنامه های تحت وب داره. منابع بسیار زیادی به زبان پارسی میتونی پیدا کنی (اعم از کتاب، مقاله، وب سایت، وبلاگ، ویدیو های آموزشی، کلاس های آزاد). البته برای کار کردن روی دات نت الزامی به استفاده از سی شارپ نیست و میتونی VB هم (به عنوان دومین زبان پرکاربرد دات نتی و یا هر زبان دات نتی دیگه که فکر کنم حدود سی تا زبان الان ساپورت میشه) کار کنی. اما منابع سی شارپ بسیار زیادتر هست و بعدا که انشالله حرفه ای شدی، و سراغ کتابخونه ها و کامپوننت های دیگه برای کارت رفتی اکثر سمپل ها و کد اسنیپت ها با سی شارپ هستن. اگه با دات نت کار کنی ( C#, VB.NET ) پایگاه داده مناسب Microsoft SQLServer هست که تو بخش پایگاه داده جداگانه عرض میکنم.

دومین زبان مورد استفاده تو ایران PHP هست. PHP یه زبان اسکریپت نویسی هست و قابلیت های زیادی برای برنامه نویسی سمت سرور داره. منبع و سورس هم برای یادگیری زیاد هست. پروژه های کدباز هم بسیار بسیار زیاد میتونی پیدا کنی. به شخصه اعتقاد دارم برای انجام پروژه های کوچیک چیزی مناسب تر از PHP نیست. (دوباره دعوای بین دات نت کار ها و PHP کار ها راه نیفته خواهشا!!!!). اما برای پروژه های بزرگ مناسب نیست. سرعت اجراش به دلیل این که تفسیر میشه پایین تر هست و ذاتا از امنیت پایین تری برخورداره (امنیت بر میگرده به برنامه نویس. من امکانات اولیه زبان رو عرض میکنم). اگه بخوای برای یه پروژه بزرگ از PHP استفاده کنی، نیاز به مسایل دیگه هم داری. (مثلا فیسبوک با PHP نوشته شده، اما کد PHP نیست که روی سرور اجرا میشه. بلکه تیم توسعه فیسبوک یه کامپایلر PHP به کد native هم نوشته و در نهایت اون کد کامپایل شده است که روی سرور نصب میشه نه کد PHP اولیه. روند کلی اینه: کد PHP => مفسر اختصاصی فیسبوک کد رو به ++C تبدیل میکنه => کد ++C بدست اومده توسط GCC به کد Native کامپایل میشه). بنابراین اگه اهداف بزرگی در سر داری بهتره این گزینه رو فاکتور بگیری، اما اگه هدفت انجام پروژه های کوچیک تا زیر متوسط هست (مثل اکثر کارهایی که تو بازار متداول ایران انجام میشن) PHP بهترین گزینه است. اگه بخوای PHP کار کنی، مناسب ترین پایگاه داده MySQL هست.

و اما Ruby که یه زبان اسکریپت نویسی بسیار مدرن با قابلیت های بی نهایت بالاست. مستقل از بستر هست. سرعت اجرای بدی هم نداره. (از سه تای دیگه پایین تره؛ ولی نه اینقدر که به چشم بیاد). کاملا شیئ گراست (بر خلاف PHP که قابلیت های شیئ گرایی بعدا بهش اضافه شده). یادگیریش خیلی سریعه و سرعت اجرای پروژه هم بسیار بالاست. برای توسعه وب معمولا از فریم وورک RoR یا Ruby on Rails استفاده میکنن (RoR متداول ترین هست، نه اینکه تنها همین باشه). Code Generator بسیار قدرتمندی داره و درصد بسیار زیادی از کد رو خودش تولید میکنه. اما منابع یادگیری کمی داری (پارسی) و تو ایران هم من شخصا تا حالا هاستینگی ندیدم که از RoR پشتیبانی کنه. (علی القاعده باید بعد از درخواست شما سرور نصب کنه -مخصوصا اینکه رایگان هم هست- اما نمیدونم اینکارو میکنن یا نه). اما برای پروژه های متوسط به بالا بی نهایت عالیه (سایت هایی مثل Twitter و Yahoo Yellow Pages با RoR نوشته شدن). پایگاه داده مناسب: MySQL, PostgreSQL, SQLite

و اما جاوا که سلطان السلاطین هست. اگه قصد داری خیلی حرفه ای باشی برو سراغش. وگرنه به هیچ جا نمیرسی و دست از پا درازتر بر میگردی. یادگیریش سخته. منابع پارسی نسبت به سی شارپ و PHP خیلی کمترن. برای پروژه های کوچیک تا متوسط اصلا مناسب نیست. به دلیل هزینه بالای توسعه معمولا برای وب سایت راه انداختن استفاده نمیشه!!! سرعت اجراش هم در حالت عادی بسیار پایین تر از سی شارپ و PHP هست. اما... برای پروژه های بزرگ و سازمان مقیاس و به اصطلاح دوستان Enterprise گزینه ای جز جاوا وجود نداره. البته جاوا صرفا یک زبان هست و وقتی میگیم توسعه با جاوا عموما به J2EE داریم اشاره میکنیم. میکروسافت سعی زیادی داره که microsoft .NET Framework رو به J2EE برسونه، اما خوب راه درازی در پیشه که اینجا جاش نیست (مورد سوال شما نیست) و قبلا تو تالارها و تاپیک های دیگه مفصل بحث شده. پایگاه داده مناسب Oracle هست. نمونه سایت هایی که میتونم بهش اشاره کنم سایت علی بابا و LinkedIn هست. (LinkedIn با پایگاه داده رابطه ای پیاده نشده و اگه اشتباه نکنم از Neo4j استفاده میکنه). از نمونه سایتها میشه فهمید که جاوا (و J2EE) به درد چجور پروژه هایی میخوره.

پایگاه داده: چند تاشو در خلال صحبت های بالا اسم بردم که متداول ترین ها هستن. هر کدوم برای زبان یا بستری مناسب تر هستند، اما این به این معنا نیست که مثلا نشه از Oracle برای برنامه با سی شارپ یا از MS SQLServer برای برنامه ی با جاوا استفاده کرد. اما بهتر این هست که هر زبان-بستری از پایگاه داده مناسب خودش استفاده کنه.

ضمنا نوع پروژه ای که میخوای انجام بدی هم بسیار مهم هست. هم در انتخاب زبان-بستر و هم در انتخاب پایگاه داده. پایگاه های بالا همشون رابطه ای هستن که بسیار متداول هستن و غالب پروژه ها از اونها استفاده میکنن. اما همونطور که در مورد LinkedIn گفتم از یه مدل پایگاه داده دیگه استفاده میکنه. (یا مثلا فیسبوک که پایگاه داده اختصاصی خودشو داره و توسط تیم فیسبوک با ++C/C نوشته شده و رابطه ای نیست و Document-based هست).

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