PDA

View Full Version : راهنمایی برای انتخاب زبان برنامه نویسی



arash_eetemad
چهارشنبه 29 اردیبهشت 1389, 19:57 عصر
سلام
من دانشجوی ترم 3 مهندسی نرم افزارم. واقعا موندم که چه زبانی برا برنامه نویسی انتخاب کنم و چطور و از کجا شروع کنم.هر کی یه چیزی میگه. میشه راهنماییم کنید!؟

mahdi68
چهارشنبه 29 اردیبهشت 1389, 22:08 عصر
تالار جاوا --> پس جاوا انتخاب کنید

persianshadow
چهارشنبه 29 اردیبهشت 1389, 23:03 عصر
خب اینقدر هم پیچیده نیست.ببنید در حال حاضر ۲ پلتفرم غالب موجود داره که جاوا و دات نت هست و یک

سری زبان که پتانسیل بالایی دارن مثل پایتون.

دات نت مسیر مشخصی داره و معمولآ در یک مدت کوتاه می‌تونید به تکنولوژی‌های موجود در اون تسلط پیدا

کنید و مطالعه خودتون رو ادامه بدید.

جاوا قدری نیاز به کار بیشتری داره خصوصآ در مرحله یادگیری . همینطور از حیث بازار کار دات‌نت بازار گسترده‌تری داره.

پارامترهای مختلفی هست در مجموع هر کدوم رو که انتخاب کنید ضرر نمی‌کنید.

arash_eetemad
پنج شنبه 30 اردیبهشت 1389, 06:03 صبح
ممنون از راهنمایی تون. قدرت جاوا در زمینه های مختلف چقدره؟ مثلا اکسپلویت نویسی، در aplication نویسی در .net در پایگاه داده و... آیا با زبانی مثل ++c یا #c برابری میکنه؟؟

persianshadow
پنج شنبه 30 اردیبهشت 1389, 06:21 صبح
جاوا چنان گسترده و قدرتمند هست که اصلآ قابل تصور نیست.در هر زمینه‌ای که شما دست بزارید چنان

API و تکنولوژی‌های ارائه داده که ده ها برابر نیاز شما رو مرتفع می‌کنه.برای همین هست میگم یادگیری اون

زمان بر هست.در زمینه دیتابیس تکنولوژی JDBC وجود داره که برای اون به تنهایی کتاب‌ها نوشته شده.

برای کار با شبکه همچنین...

arash_eetemad
پنج شنبه 30 اردیبهشت 1389, 11:40 صبح
وقتی که اشاره گر نداره فکر نکنم که بتونه با سخت افزار خوب کار کنه و این یعنی اینکه با زبان ماشین فیکس نیست و نمیتونه مثل c یا ++c تمام ظرفیت ماشین رو بکار بگیرهو ضمنا شنیدم که سرعت اجرای برنامه های جاوا خیلی کمتر از ++c است. نظر شما چیه؟؟؟ اینا واقعیت داره؟
و در کل پیشنهاد شما جاوا ست یا ربان دیگه؟؟

mahdi68
پنج شنبه 30 اردیبهشت 1389, 12:08 عصر
وقتی که اشاره گر نداره فکر نکنم که بتونه با سخت افزار خوب کار کنه و این یعنی اینکه با زبان ماشین فیکس نیست و نمیتونه مثل c یا ++c تمام ظرفیت ماشین رو بکار بگیرهو ضمنا شنیدم که سرعت اجرای برنامه های جاوا خیلی کمتر از ++c است. نظر شما چیه؟؟؟ اینا واقعیت داره؟
و در کل پیشنهاد شما جاوا ست یا ربان دیگه؟؟
دوست عزیز چون کارش این نیست که با سخت افزار کار کنه !!!

persianshadow
پنج شنبه 30 اردیبهشت 1389, 12:14 عصر
ببینید متاسفانه بعضی‌ها یک اطلاعاتی از جاوا دارن مربوط به ۶ تا ۷ سال پیش که بخش عمده‌ای از اونا امروزه

به نوع دیگه‌ای بیرون اومده.بله روزهای اول یعنی ۹ سال پیش جاوا کند بود ولی امروزه سرعتش به خاطر

JIT با C برابری میکنه.شما دقیقآ چه کاری قصد دارید با ماشین انجام بدید ؟ مطمئن باشید جاوا برای اون کد

سطح بالا ساخته.کلآ این که همه میگن جاوا اشاره‌گر نداره اینطور نیست ۲۴ ساعته در حال استفاده از اشاره‌

گر در زبان‌های دیگه هستن ! این که نمی‌شه یک سری چیز رو طوطی وار تکرار کرد.

mirmousavi.m
پنج شنبه 30 اردیبهشت 1389, 12:43 عصر
من پیشنهاد می‌کنم که اول ببینی چه برنامه نویسی‌هایی قراره انجام بدی، یعنی به چی علاقه داری، با چی راحت تری یا اینکه کدومش بازار خوبی داره، مثلا به برنامه نویسی سیستمی، تحت وب، وب اپلیکیشن و ...
در کل من فکر می‌کنم درست نیست زبان‌ها رو مقایسه کنیم و هر زبانی برای کاری ساخته شده، مثلا با c میشه وب اپلیکیشن ساخت ولی کسی این کارو انجام نمیده و بهتره مثلا با php ساخته بشه...
و لازم بدونیم مثلا با جاوا میشه خیلی از برنامه ها رو نوشت ولی آیا این کار درسته؟

blue_lotus
پنج شنبه 30 اردیبهشت 1389, 18:44 عصر
ممنون از راهنمایی تون. قدرت جاوا در زمینه های مختلف چقدره؟ مثلا اکسپلویت نویسی، در aplication نویسی در .net در پایگاه داده و... آیا با زبانی مثل ++c یا C#‎ برابری میکنه؟؟

سلام دوست عزیز

اگر هدف شما اکسپلویت نویسی هست. پیشنهاد میکنم حتما از C استفاده کنید. البته با همه ی زبان ها تقریبا میشه اینکار رو کرد اما نه به قدرت و تمرکز زبان C. الان Metasploit Framework اکثرا با زبان ruby هست. در این موارد python,ruby هم حرفهای زیادی برای گفتن دارن.

Open-Source
پنج شنبه 30 اردیبهشت 1389, 19:04 عصر
من به شما C++ رو پیشنهاد میکنم(برای Win32 - گستردگی زیادی داره - قوی ترین زبون برنامه نویسی).
C# رو پیشنهاد میکم.(برنامه نویسی در دات نت - بصورت Management - جون میده برای بازار کار ایران - میتونی توی ASP.Net هم استفاده کنی - یاد گیریش سریعه).
جاوا رو پیشنهاد میکنم (میتونی در سطح بین المللی باهاش برنامه نویسی کنی - توی ایران هم آینده روشنی داره - ولی اگه C++ رو هم ادامه بدی خوبه ، بنده شخصا به جاوا ترجیح میدم).

M.T.P
شنبه 01 خرداد 1389, 13:15 عصر
زبان و برنامه نویسی C

saleh.hi.62
شنبه 01 خرداد 1389, 13:55 عصر
زبان برنامه نویسی C++
+
فریمورک QT
=
هر چیزی که فکرش رو بکنی


من به شخصه هیچ علاقه ای به یادگیری محصولات commercial ندارم ! چون که توان خرید وجود نداره برای ما.

مثلا جاوا زبان خوبی ها هیچ حرفی توش نیست ولی شرکت sunبرای نوشتن virtual box از qtبا بایند جاوا استفاده کردن ووو خوب این جای تامل داره که چرا با تمام عظمت جاوا باز اومدن سراغ QT!

سادگی + قابلیت نصب بر روی هر سکویی + امکانات فوق العاده + رایگان + قابلیت استفاده تعدادی زبان برنامع نویسی= QT Framework

JaguarXF
یک شنبه 02 خرداد 1389, 04:12 صبح
سلام
من دانشجوی ترم 3 مهندسی نرم افزارم. واقعا موندم که چه زبانی برا برنامه نویسی انتخاب کنم و چطور و از کجا شروع کنم.هر کی یه چیزی میگه. میشه راهنماییم کنید!؟

با توجه به اینکه بیش از دو سال وقت ارزشمند تا فارغ التحصیلی داری بهت پیشنهاد میکنم که با سی پلاس پلاس شروع کنی و کلیه مفاهیم حرفه ای اعم از شی گرایی - مدیریت حافظه - COM - الگوهای طراحی شی گرا - رو باهاش یاد بگیری . این میشود یک سال و نیم مطالعه حرفه ای .
بعد از اون جاوا رو یاد بگیر و در جاوا روی موارد مهمی مثل spring , hibernate و دیپندنسی اینجکشن . اینورژن آو کنترل و یونیت تستینگ تمرکز کن . این هم یک سال الی حداکثر یک و نیم سال .
شش ماه آخر رو هم با سی شارپ آشنا شو .
تو چون وقت داری باید پایه هات رو با سی پلاس پلاس بذاری . من اگه در پروژه های سی پلاس پلاسم کار به جایی نمیکشید که برای رفع اشکال برنامه به virtual table هایی که در حافظه تشکیل میده رو بررسی کنم آنوقت روزی که روی یک پروژه ویژوال بیسیک به مشکل binary incompatibilty میخوردم به این راحتی ها نمیتونستم درستش کنم . یا اگه com رو با c++ یاد نگرفته بودم امروز com wrapper کردن در سی شارپ برایم کار سخت و مستلزم کلی مطالعه جدید و وقت گیر میبود و نتیجتا پروژه ای که تاخیر می افتاد روز به روز ...

arash_eetemad
شنبه 05 شهریور 1390, 02:25 صبح
از همه دوستان که مشفقانه پاسخ دادن بسیار متشکرم. کلمه کلمه سخنانتان راهگشاست و ارزشمند
و اما:


زبان برنامه نویسی C++
+
فریمورک QT
=
هر چیزی که فکرش رو بکنی
سادگی + قابلیت نصب بر روی هر سکویی + امکانات فوق العاده + رایگان + قابلیت استفاده تعدادی زبان برنامع نویسی= QT Framework
در مورد این فریمورک میشه کمی توضیح بدین که چی هست؟



با توجه به اینکه بیش از دو سال وقت ارزشمند تا فارغ التحصیلی داری بهت پیشنهاد میکنم که با سی پلاس پلاس شروع کنی و کلیه مفاهیم حرفه ای اعم از شی گرایی - مدیریت حافظه - COM - الگوهای طراحی شی گرا - رو باهاش یاد بگیری . این میشود یک سال و نیم مطالعه حرفه ای .
بعد از اون جاوا رو یاد بگیر و در جاوا روی موارد مهمی مثل spring , hibernate و دیپندنسی اینجکشن . اینورژن آو کنترل و یونیت تستینگ تمرکز کن . این هم یک سال الی حداکثر یک و نیم سال .
شش ماه آخر رو هم با سی شارپ آشنا شو .

از راهنماییتون بسیار ممنون این پاسخ شما قشنگه، و روشن کننده
حالا این سوال رو میخوام بپرسم که خب من میخوام با c++ شروع کنم( و البته شروع کردم) این مفاهیمی که فرمودید رو چطور مطالعه کنم؟ اصلا چطور برنامه نویسی کار کنم که به این مفاهیم مسلط بشم؟؟ میگن که تمرین و تمرین خب این درست اما چی رو تمرین کنم؟ چطور تمرین کنم؟؟ ممنون میشم اگه باز کمکم کنید

بهزاد علی محمدزاده
شنبه 05 شهریور 1390, 18:18 عصر
سلام ... من الان دقیقا توی مسیری هستم که JaguarXF راهنماییت کرد . ( البته یه کارهایی رو انجام ندادم توی c++ و به جاوا اومدم . مثل com ) بهترین راهنماییه . و البته دلنگرانی خودش رو هم داره . چون انسان ذاتا عجوله و می خواد کار زود بازده انجام بده اما اینها نیاز به زمان دارن . من الان گاهی دلم می خواد یه وب سایت برای خودم طراحی می کردم ، اما دارم java se می خونم و اگر بخوام به دلم بپردازم ، مستلزمه اینه که این و رها کنم و برم سراغ مفاهیم وب ! ( و یا cms ها ) ، همزمان هم نمیشه دو تا کار رو انجام داد .

این و گفتم ، چون احتمال میدم در آینده این حالت ها بهت دست بده . من بارها شده بود از c++ و مفاهیم پایه ایی خسته می شدم می گفتم برم یه کمی جوملا یادبگیرم ... یا یه css بخونم ... اما خوندن css و یادگیری جوملا برای کسی که برنامه نویسی رو یاد گرفته زیاد زمانبر نیست . ولی بدون دانستن اون مفاهیم ، کارهایی که انجام بدی ، معمولا سطحی از آب در میاد و ارزش چندانی برات نداره .

اینکه چه فریم ورکی چه امکاناتی داره به من و تو الان مربوط نمیشه . چون نمی تونی از قابلیت اونها استفاده کنی . شما الان توی مرحله ایی هستی که باید یاد بگیری تفاوت ارسال پارامتر با مقدار و با ارجاع یعنی چی ؟ ( اگر یاد گرفتی خب خیلی خوبه اما این مثاله از اینکه شما باید دنبال مفاهیم باشی ).

بازگشتی چیه ؟ مفاهیم ساختمان داده چی هستن ، شی گرایی ، و چیزهایی که دوستمون Jaguar بهت گفت .

در یادگیری اینها باید صبر به خرج بدی .

بهزاد علی محمدزاده
شنبه 05 شهریور 1390, 18:33 عصر
اگر کسی از من بپرسه چه زبانی رو انتخاب کنم ، گرچه پاسخ به این سوال سخته و من هم در حد پاسخگویی نیستم ، اما اول سطح برنامه نویسی شو بررسی می کنم ببینم در چه حدیه ؟ خیلی پیش اومده سوال کننده در ابتدای یادگیری زبان بوده ( دستورات شرطی ، حلقه ها و ... ) . اونوقت اومده همچین سوالهایی مطرح کرده ، که متاسفانه پاسخ دهنده ها بدون توجه به سطح طرف ، فریم ورک های مورد علاقه خودشون و تبلیغ می کنن !

این انتقاد به برخی دوستان پاسخ دهنده وارده ، و من می تونم با نقل قول پیشنهاد هاشون و نقد کنم . که این راهنمایی ها گاهی دانشجو رو به بیراهه می کشونه .

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

یا دانشجویی که توی دانشگاه دارن c++ باهاش کار می کنن ، نمی تونه بیاد خونه با c# کار کنه ! چون تمرین داره ، پایان ترم امتحان دارن ! چطوری می تونه همزمان دو تا منبع بخونه ؟

پس این بحث ها جای معرفی فریم ورک و تکنولوژی های مختلف نیست . طرف هنوز زبان آموزه .

قصد جسارت نداشتم ، من هم دانشجوی ترم آخر کاردانی هستم و درد این راه و کشیدم و دارم می کشم .

JaguarXF
یک شنبه 06 شهریور 1390, 01:57 صبح
برای کتاب سی پلاس پلاس...همممم...اگر کتاب انگلیسی نمیتونی بخونی که هیچ! بقیه جواب من به دردت نمیخوره. من کتاب فارسی نبوده ام و سراغ ندارم
اما به زمان ما دو کتاب خوب بود یکی کتاب Thinking In CPP که از سایتش میتونی بگیری رایگان http://www.mindview.net/Books/TICPP/ThinkingInCPP2e.html . همین نویسنده کتاب Thinking In Java هم داره و اون هم کتاب بسیار خوبیه . کتاب خوب دیگر هم که زمان دانشجویی خونده بودم CPP, The complete Reference بود نوشته Herbert Schildt.

اینکه بتونی طراحی شی گرا به کمک ابسترکشن و اینترفیس ها انجام بدهی it is a MUST . یعنی حتما باید بتوانی. ( یک ترجمه ای در همین مایه ها!) . بعدا که میخواهی در یک برنامه تجاری کلاسهای مربوط به دیتابیست رو طراحی کنی و یونیت تست بنویسی میبینی که اینها همه واجب میشوند.
شک ندارم شاید ۲۵ درصد کاربرهای این سایت برنامه تجاری هم به مشتری تحویل داده اند اما هنوز مفهوم و کاربرد و مزایا و خطرات یک متد یا متغیر static رو اگر ازشون بپرسی نمیتونند توضیح بدهند.

حالا که شی گرایی یاد گرفتی نوبت Design Pattern هست. کتاب اصلیش GOF هست ممکنه پیچیده باشه اما کتاب Head First Design Patterns خوب و ساده توضیح داده. الگوهای شی گرایی هم دانستنشون لازم هست. یک چیز فانتزی نیست. مثلا همین چند هفته قبل من در یک برنامه Cloud-based که با جاوا داریم مینویسیم برای Security Context از الگوی Facade استفاده کردم. پس اینها واقعا لازم میشوند.

MFC , ATL دیگر لازم نیست . اونها رو بیخیال . اما COM هنوز لازم میشه . مثلا در شرکتی کار میکنی و یکی دیگر از تیم های شرکت کامپوننتی رو نوشته که COM هست و شما باید در برنامه خودتان ازش استفاده کنید و دیباگش کنید و ... بنابراین یک آشنایی باهاش لازم میشه گاهی اوقات .

در خود جاوا یک کتاب هست که بسیار عالیه. بهترین تکنیکهای صحیح کد نوشتن با جاوا - و حتی هر زبان دیگری - رو یاد میده . کتاب Effective Java .

amir-yeketaz
یک شنبه 06 شهریور 1390, 02:48 صبح
دات نت و جاوا هر کدوم واسه خودشون دریایی ان که بیفتی توشون دیگه به این سادگیا نمیای بیرون!!!

بعضیا میگن برو اول الگوریتم یاد بگیر بعد نمیدونم شی گرایی ، بعدشم design pattern و چیو چی ... آقا حرفایه همتون درست!!! ... ولی خدایی شماهام بالاخره یه زبونی ، فریمورکی چیزی انتخاب کردید و الان هم مطمئنا تو یه کدوم بیشتر حالیتونه!!!

میخوام بگم که شما یه کدومو انتخاب میکنی و بر مبنای اون این مفاهیمو یاد میگیری که تقریبا واسه همه یه رنگه!!! ... پس نتیجه میگیریم که شما داری از یه ابزاری برای رسیدن به یه هدف مشترک بین تمام برنامه نویسان استفاده میکنی ...

میدونم که الان اینجوری فکر نمیکنی(یعنی هنوز به این حرف نرسیدی!) ... ولی عزیز من ... تو برو تو ریل ما حرکتت میدیم!!! ... آخه بعضی ها مثه خودم فقط حرف میزنند و مخصوصا تو این جور مسائل همه هم مثه خودم نظر میدن و این میشه که شما سرت گیج میره از این دو سه راهی ها ...

A B C D
یک شنبه 06 شهریور 1390, 09:29 صبح
مفهوم و کاربرد و مزایا و خطرات یک متد یا متغیر static رو اگر ازشون بپرسی نمیتونند توضیح بدهند.

لطفا توضیحش رو خودتون بفرمایید.
میخوام ببینم توی چه مایه هاست.

ضمنا در خیلی از فریمورک های معروف دیدم که از متد و متغییرهای استاتیک استفاده میکنن. بطور مثال در دات نت استفادهء زیادی ازشون شده.
واسه همین اینکه فرمودید خطرات واقعا برام سوال شد که منظورتون چیه.

arash_eetemad
چهارشنبه 09 شهریور 1390, 03:04 صبح
جناب JaguarXF (http://barnamenevis.org/member.php?90128-JaguarXF)

من هنوز پاسخم رو نگرفتم.
فرمودید این رو یاد بگیر اونو یاد بگیر اما نگفتید چطوری! من تو همینش موندم که چطوری!؟ چطور شیئ گرایی رو یاد بگیرم چطور مدیریت حافظه رو یاد بگیرم چطور.... چطور؟؟؟ این مشکل منه.
ممنون میشم که کاربردی توضیح بدین

JaguarXF
چهارشنبه 09 شهریور 1390, 04:16 صبح
جناب JaguarXF (http://barnamenevis.org/member.php?90128-JaguarXF)

من هنوز پاسخم رو نگرفتم.
فرمودید این رو یاد بگیر اونو یاد بگیر اما نگفتید چطوری! من تو همینش موندم که چطوری!؟ چطور شیئ گرایی رو یاد بگیرم چطور مدیریت حافظه رو یاد بگیرم چطور.... چطور؟؟؟ این مشکل منه.
ممنون میشم که کاربردی توضیح بدین

از کتابهایی که برای هرکدوم بهت معرفی کردم.

caspianhero
چهارشنبه 09 شهریور 1390, 20:27 عصر
کسی نظری در موزد زبان vb6 نداره؟؟؟
ایا زبان خوبی هست؟؟؟

Felony
چهارشنبه 09 شهریور 1390, 21:56 عصر
کسی نظری در موزد زبان vb6 نداره؟؟؟
ایا زبان خوبی هست؟؟؟
فعل هست رو با بود جایگزین کن .

JaguarXF
پنج شنبه 10 شهریور 1390, 04:35 صبح
کسی نظری در موزد زبان vb6 نداره؟؟؟
ایا زبان خوبی هست؟؟؟

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

A B C D
پنج شنبه 10 شهریور 1390, 19:44 عصر
سالها گفته میشد که VB زبان ضعیفیه (حداقل ضعیف تر از زبانهایی مثل سی++ و جاوا). و بعضی ها با این حرف مخالف بودن و طرفداریش رو میکردن.
ولی چطور شد که سی++ و سی هنوزم باقی ماندن و کاربردهای خودشون رو دارن، اما VB کلاسیک منقرض شده بحساب میاد؟

البته بنظر بنده هر زبان و فناوری ای در شرایط و زمان خودش مفیده و میتونه بهترین گزینه باشد. شاید VB هم در زمان خودش کاملا مفید بوده و حتی در بعضی کاربردها بهترین گزینه محسوب میشده.
بهرحال علم رایانه و برنامه نویسی همینه و تغییرات گسترده و سریع داره. نمیشه همینطوری گذشته رو به آینده تعمیم داد و نمیشه همینطوری بر اساس شرایط حال دربارهء شرایط گذشته قضاوت کرد.

ضمنا بنظر بنده کاربرد سی++ هم در برنامه نویسی اپلیکیشن، طبیعتا با جا افتادن دات نت نسبت به گذشته کمتر خواهد شد. ولی بهرحال سی++ خیلی غنی هست و روی پلتفرمهای دیگر (مثلا گنو/لینوکس) هم برای اپلیکیشن نویسی یک انتخاب اصلیه و از طرف دیگه پرفورمنس بالا داره و نیز زبانی هست که میشه باهاش برنامه نویسی سیستمی کرد (در این حیطه سی قدیمی هم باهاش رقابت جدی داره)، بخاطر همین سی++ زنده باقی میمونه.