ورود

View Full Version : پرکاربردترین، پردرآمد ترین و قدرتمند ترین زبان را انتخاب کنید



سیدرضا بازیار
دوشنبه 07 مهر 1393, 18:09 عصر
من تعدادی زبان برنامه نویسی رو انتخاب کردم و قصد دارم بعضی ها رو به صورت حرفه ای و بعضی هاش رو به صورت سطحی (در حد مطالعه) یاد بگیرم
1- HTML5 & CSS3
2- JavaScript
3- PHP&SQL
4- jQuery
5- Java
6- C#
7- ASP.NET
8- Visual Basic
9- Ruby
10- Python
11- Matlab
پرکاربردترین، پردرآمد ترین و قدرتمند ترین زبان را انتخاب کنید(آیا در لیست زیر زبانی هست که با یادگیری اون نیازی به یاد گیری زبانی دیگه نباشه؟)
اگه به عنوان یه برنامه نویس حرفه ای بخواید در طول 30 سال به یادگیری این زبان هل بپردازید، به ترتیب از کدام زبان ها شروع میکنید و از یادگیری کدوم طرفه نظر میکنید؟

eshpilen
دوشنبه 07 مهر 1393, 19:09 عصر
آیا در لیست زیر زبانی هست که با یادگیری اون نیازی به یاد گیری زبانی دیگه نباشه؟
خیر.

دوست عزیز بخوای نخوای یک زبان کافی نیست. مگر اینکه فیلد و تخصص کاریت محدود باشه. وگرنه اگر خوره باشی یا بهرحال بخوای همه فن حریف باشی، یک زبان کافی نیست.
زبانهایی مثل جاوا و سی++ کاربردشون به نسبت گسترده تر است، ولی بازم بنظر بنده برای همه جا و همه کاری کافی نیستن.
یه چیزایی مثل HTML و CSS و Javascript رو که اگر میخوای برنامه وب بنویسی (هرچند امروزه خیلی جاهای دیگر هم کاربرد پیدا کردن) لازمه یاد بگیری چون صفحهء شما به مرورگر میره و بطور معمول و عمدتا با این زبانها کار میکنه.
بعد سمت سرورش هم باید یه زبان بلد باشی. PHP بخاطر بازمتن بودن و فراگیر بودن و کدها و برنامه های رایگان و کامیونیتی عظیمی که داره انتخاب خوبیه، ولی دات نت هم میتونه تاحدی جایگزین بشه؛ شایدم اصلا نیاز باشه آدم دوتاش رو بلد باشه.
بعد توی دسکتاپ بیای آپشن های دیگری داری باز. بنظر من مسخرس که بخوایم فقط یک زبان رو انتخاب و همیشه استفاده کنیم. بازم اگر نگیم واجبه، ولی خیلی بهتر و بهینه تره که چند زبان بلد باشی. مثلا یجا میخوای برنامهء تستی، یوتیلیتی ای چیزی درست کنی که نسبتا کوچک و ساده است، اینجا پایتون میتونه بهتر از سی++ باشه و تست و توسعش کم حجم تر و سریعتر و ساده تره و برای نوشتن و اجرا و تغییر و تستش نیاز به یک محیط و فرایند سنگین و کاملا حرفه ای و کامپایل و این حرفا رو نداره. هروقت اراده کنی و نیاز باشه سه سوت میری یه فایل متنی ساده رو باز میکنی، تغییرات رو اعمال و سیو میکنی، و سه سوت اجرا میکنی؛ بدون نیاز به هیچ فرایند و نرم افزار پیچیده و زمانبری.

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

ضمنا زبان برنامه نویسی فکر میکنید چه درصدی از دانش و مهارت های یک برنامه نویس واقعی رو تشکیل میده؟
همینطوری سریع با حضور ذهن فعلی بخوام بگم بنظر من حدود 10 درصد! یعنی یک دهم!

deragonpc
دوشنبه 07 مهر 1393, 19:16 عصر
درود
1. jq زبان نیست کتابخانه است .
2. واقعا توی این لیست جای C - C++‎‎ خالیه .

اگر من بودم و قرار بود طولانی مدت روی یک یا چند زبون کار کنم زبان های C -C++‎‎ - asm رو کار میکردم (البته همین العانم چندین ساله دارم کار میکنم:لبخند:)

توی لیستی که شما دادید تمامی زبان ها بغییر از vb خوب هستن . اگه از زبان بالا میخوای کار کنی بنظرم جاوا کار کنی بهتر باشه هم خیلی قدرتمنده هم کلی کتاب خونه داره هم میشه باهاش برای اندروید برنامه نوشت . C#‎‎ و Asp هم خوبه کار زیاد داره اما درآمدش کمه مثلا روی 800 هزار تا 1.5 میلیون تومن , من بیشتر ندیدم . از گذینه 1 تا چهار هم که برای طراحی وب هست باید همشو هم بلد باشی واسه استخدام درآمدم متوسط هست مثل همون C#‎‎ ,... هست python پروژه هاش کمه اما درآمدش خوبه . روبی و متلب رو نمیدونم اطلاعی ندارم .

eshpilen
دوشنبه 07 مهر 1393, 19:17 عصر
مثلا من الان چند وقته تازه گوشی سامسونگ با سیستم عامل اندروید گرفتم متوجه شدم که اگر بخوام براش برنامه نویسی کنم باید با جاوا کار کنم. اتفاقا جاوا هم مطالعه و کار نکردم تاحالا. اینجا انتخاب با من نیست. درسته با NDK میتونید با زبانهای دیگری (فکر کنم سی/سی++) هم برای اندروید برنامه بنویسید، ولی این روش بهینه و حرفه ای برای برنامه نویسی اندروید نیست و بقول خودشون گفتن فقط در موارد محدودی که مجبور هستید و به هر دلیلی صرف نمیکنه و مثلا یکسری کدها و برنامه هایی از قبل در زبان سی هست که میخواید روی اندروید اجرا کنید از این روش استفاده کنید (اینطور که گفته شده، روی اندروید افزایش سرعت برنامه های native code نسبت به برنامه های جاوا هم مقدار کمیه و در اکثر موارد عملا اهمیت و اولویت در اون حد نداره که بخوایم به این خاطر با غیر از جاوا برنامه اندروید بنویسیم). بهرحال سطح برنامه نویسی جاوا از سی/سی++ بالاتره و برای اپلیکیشن نویسی اندروید مناسب تره. بعد اینکه این همه برنامه نویسان و برنامه های دیگر با جاوا وجود دارن پس شما بهتره جاوا بلد باشی و کار کنی تا بتونی از این مزیت استفادهء بهینه کنی. یعنی فقط به خودت به تنهایی مربوط نمیشه لزوما؛ باید در نظر بگیری که اکثریت و کثرت و وسعت و فعالیت اجتماع برنامه نویسی یک زبان خاص هم میتونه در عمل مهم باشه. مثلا شاید شما از PHP خوشت نیاد و سی شارپ و دات نت رو حرفه ای تر بدونی، ولی PHP چون علاوه بر بازمتن بودن ساده تره و شروع کردن و برنامه های معمولی نسبتا کوچک و ساده باهاش نوشتن برای مبتدی ها راحتتره به نسبت دات نت و از اون ور هم روی سرورهای لینوکس ارزان کاملا فراوان و همه جاییه در نتیجه عدهء زیادی برنامه نویس و فعالیت و برنامه توش هست و بخوای نخوای این عامل توی انتخاب شما میتونه تاثیر بذاره و حتی گاهی مجبورت کنه بری به سمت PHP باوجود اینکه شاید از جنبه های فنی در کل دات نت حرفه ای تر باشه.

سیدرضا بازیار
دوشنبه 07 مهر 1393, 19:27 عصر
ضمنا زبان برنامه نویسی فکر میکنید چه درصدی از دانش و مهارت های یک برنامه نویس واقعی رو تشکیل میده؟
همینطوری سریع با حضور ذهن فعلی بخوام بگم بنظر من حدود 10 درصد! یعنی یک دهم!

90٪ دیگه شامل چه چیز هایی میشه؟


2. واقعا توی این لیست جای C - C++‎ خالیه .
شنیدم این دو زبان دیگه قدیمی شده و C# جای اینا رو گرفته...


توی لیستی که شما دادید تمامی زباون ها بغییر از vb خوب هستن .
یه مهندس کامپیوتر (IT) به زبان ویژوال بیسیک نیاز نداره؟ بزارمش کنار؟

deragonpc
دوشنبه 07 مهر 1393, 19:43 عصر
دوست عزیز vb یک زبان قدیمی و آموزشی هست یعنی وقتی میخوان به یه بچه برنامه نویسی یاد بدن از این زبان استفاده میکنن . و باید بگم C#‎‎‎‎‎‎ اصلا در حد C - C++‎‎‎‎‎‎ نیست همین امسال نسخه جدید C++‎‎‎‎‎‎ با شمارگان 14 اومد C++‎‎‎‎‎‎ یک زبان بسیار پرکاربرد و قدرتمندی هست بروز هم هست C#‎‎‎‎‎‎ بیشتر بدرد برنامه های managed و عادی میخوره .

پیش نهاد میکنم این پستو تا آخر بخونید : http://barnamenevis.org/showthread.php?94381-%D9%85%D9%82%D8%A7%D9%84%D9%87-%D8%A8%D8%B1%D9%86%D8%A7%D9%85%D9%87-%D9%86%D9%88%DB%8C%D8%B3%DB%8C-C-C-%D8%A7%D8%B2-%D9%86%D9%88%D8%B9-Native-%DB%8C%D8%A7-managed-%D8%9F

توجه داشته باشید که مقاله حول محور کامپایلر ++Visual C است . و C++‎ با کامپایلر های همچون intel و GCC و TDM_GCC قدرت بیشتری دارد .

سیدرضا بازیار
دوشنبه 07 مهر 1393, 19:46 عصر
دوست عزیز vb یک زبان قدیمی و آموزشی هست یعنی وقتی میخوان به یه بچه برنامه نویسی یاد بدن از این زبان استفاده میکنن . و باید بگم C#‎‎‎‎ اصلا در حد C - C++‎‎‎‎ نیست همین امسال نسخه جدید C++‎‎‎‎ با شمارگان 14 اومد C++‎‎‎‎ یک زبان بسیار پرکاربرد و قدرتمندی هست بروز هم هست C#‎‎‎‎ بیشتر بدرد برنامه های managed و عادی میخوره .

پیش نهاد میکنم این پستو تا آخر بخونید : http://barnamenevis.org/showthread.php?94381-%D9%85%D9%82%D8%A7%D9%84%D9%87-%D8%A8%D8%B1%D9%86%D8%A7%D9%85%D9%87-%D9%86%D9%88%DB%8C%D8%B3%DB%8C-C-C-%D8%A7%D8%B2-%D9%86%D9%88%D8%B9-Native-%DB%8C%D8%A7-managed-%D8%9F

C++ رو هم به زبان ها اضافه میکنم
C رو هم یاد بگیرم؟
vb رو حذف کنم؟

deragonpc
دوشنبه 07 مهر 1393, 20:06 عصر
درود
C++ ادامه ی زبان C هست .اگر C و وقفه ها رو یاد بگیرید قدرت برنامه نویسیتون بیشتر میشه .:لبخندساده:

eshpilen
سه شنبه 08 مهر 1393, 08:55 صبح
90٪ دیگه شامل چه چیز هایی میشه؟
خب یه دانش و مهارت هایی هست که مستقل یا جدا از زبان برنامه نویسیه.
مثلا برای غیرانگلیسی زبانها مثل ما همین که زبانت رو قوی کنی بتونی متون فنی رو بطور کامل و دقیق راحت بخونی و بفهمی، و در مرحلهء بعد حتی بتونی بنویسی و با بقیه روی اینترنت با زبان انگلیسی ارتباط برقرار کنی.
بعضیا بعد از سالها برنامه نویسی هنوز نمیتونن این کارها رو انجام بدن. هنوز اسم متغییرها و توابع رو فینگلیش مینویسن، هنوز برای کدشون جز کامنت فارسی یا فینگلیش نمیتونن بذارن.
یادگیری زبان و استارت اولیه خودش کلی کار میبره. بگم شاید 50% وقت و انرژی آدم یکی دو سال اول صرف همین میشه اگر بخواد بصورت قوی و کاملی که لازمه مسلط بشه. بعدش هم این فرایند توقف نداره و باید مدام لغت حفظ کنی، قبلی ها رو یادآوری کنی، موارد پیشرفته تر و مهارت های مراحل بعد رو یاد بگیری و غیره، اما خوبیش اینه دیگه اون مرحلهء سخت و حجیم اولیه رو گذروندی و انجام این کارها برات راحتتر و سریعتر شده (اما بهرحال بازم کار و اختصاص وقت و انرژی میخواد اگر میخوای پیشرفت کنی).

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

تازه حتی یه برنامه نویس قدر و همه فن حریف باید در ریاضیات تخصصی و خاص هم حداقل تا حدی و موارد خاصی که در برنامه نویسی کاربردهای گسترده/مهم دارن دانش و مهارت کافی رو داشته باشه.

زبان برنامه نویسی به تنهایی کافی نیست واسه همه کار همه جا و همه وقت. همونطور که گفتم یه زمانها و موارد خاصی هست که متوجه میشی یک دهم و حتی خیلی کمتر از این دانش و فناوری و نیازهاش رو تشکیل میده. همهء برنامه ها یه چیزهای کلیشه ای و بازاری عادی نیست! برنامه ها و مشکلاتی هست که یهو برخورد میکنی میبینی تقریبا هیچی از پیشنیازهاش نمیدونی و دنیایی دانش و مهارت های خاصی رو میطلبن. باید آماده باشی مثلا لازم شد بتونی با سرعت و توانایی کافی مثلا یک رفرنس فنی نسبتا حجیم و خشک و پیچیده رو بخونی بفهمی و بتونی بر اساسش کار کنی و پیاده سازی کنی و کد بنویسی. اگر این کارها رو قبلا نکرده باشی و دانش و مهارت پایه رو بدست نیاورده باشی این کار میتونه برات خیلی دشوار و طولانی بشه یا اصلا از پسش برنیای/صرف نکنه.

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

eshpilen
سه شنبه 08 مهر 1393, 09:34 صبح
خیلی چیزها هست که آدم در برنامه نویسی باید مطالعه کنه و یاد بگیره تا واقعا بفهمه تمام دنیای برنامه نویسی چیه، و اینکه بتونه از پس هرکاری بربیاد.
مثلا الان شما در نظر بگیر برنامه نویسان وب که ما داریم، کدوم از اینا نشستن پروتکل HTTP رو خوندن و فهمیدن؟
ولی من این کار رو کردم. بخاطر همین دانش و بینش و توانایی و مهارتی بدست آوردم که گهگاه میتونه باعث برتری و راحتی و سرعت کار من بشه و طراحی و پیاده سازی بعضی برنامه ها و سیستمهایی خاصی از عهدهء من بربیاد که دیگران از عهدش برنمیان.
اینو نگاه کن: https://www.ietf.org/rfc/rfc2616.txt
تقریبا تمام پروتکل HTTP 1.1 توی این RFC تعریف شده. رفرنس رسمیش اینه.
ما یه مدت با یه کسی سر این بحث میکردیم و این لینک رو داده بودم طرف تازه بعد از مدتی بحث پرسید که آیا جدی صحبت میکنم و واقعا رفرنس و مرجع پروتکل HTTP این فایل متنی عجیب و غریبه :متعجب:
یعنی حتی نفهمیده بود و باورش نشده بوده که من دارم چی میگم و چطور یک فایل متنی ساده حجیم که توش نمیفهمی اصلا چی نوشته و اصلا ربطش به کامپیوتر و برنامه نویسی چیه، میتونه مرجع اصلی چنین چیزهایی باشه!
اینطور مواقع هست که من میفهمم که چقدر ملت ما بی اطلاع و خام و بی تجربه هستن و خیلی از حرفها و توضیحات منو اصلا متوجه نشدن تاحالا :متفکر:
توی این RFC ها اکثرا از نمونه کد هم خبری نیست یا اگر باشه خیلی کمه و فقط مواردی رو که شدیدا نیازه شامل میشه و کدها هم اکثرا به زبان سی و اینها هستن. زبان RFC ها هم کم و بیش یک زبان خشک و رسمی و تخصصیه، مثل زبان قانونی و طوری که یک حقوقدان نامه و دادخواست حقوقی مینویسه که با زبان عادی و عامه تفاوت داره و گاهی فهمش و نکات و ظرایفش برای آدمهای عادی خیلی سخته.
وقتی من میگم برنامه نویس باید توانایی داشته باشه این رفرنس ها رو بخونه و بفهمه و از روش پیاده سازی کنه، کار کوچک و ساده ای نیست و هرکسی از عهدش برنمیاد. دوتا جوجه برنامه نویس نوجوان که ما زیاد داریم و درس تخصصی دبیرستان خودشون رو هم به زور و سطحی میخونن (اگر اصلا بخونن) و الکی پاس میکن، آدمهای غیرجدی، کم سن و سال، کم همت، کم سواد، اینا از عهدهء این چیزا برنمیان، چون این موارد کار آدمهای بزرگسال و بالغ و باهوش و باسواد و جدی و با اراده است و کارهایی خشن و بیرحمانه و مردانه هستند! مثل جنگ میمونه! مگر اینکه خیلی نابغه باشی که این چیزا برات همینطوری از اول راحت باشه. بقول یارو میگه کار هرکس نیست خرمن کوفتن، گاو نر میخواهد و مرد کهن :چشمک:
این که من آوردم فقط یه نمونه است. خیلی موارد هست.
یک مثال خوب دیگه مثلا علم امنیت و رمزنگاری است که با وجودیکه خیلی قدرتمند و کاربردیه و حتی در کارهای عادی هم بعضا نیاز هست اما بخصوص توی این دومی (رمزنگاری) متخصصان واقعی و زبده میتونم بگم در ایران بسیار کمیاب هستن (شاید هم اصلا نداشته باشیم، چون من شخصا تاحالا ندیدم) و این یک شاخهء فوق تخصصی و گسترده و پیچیده ای است که خیلی جاها با ریاضیات پیشرفته هم شدیدا و اساسا درگیره؛ یه جاهایی هست 99% کار فقط تئوری و ریاضیه و زبان و برنامه نویسی فقط 1% بقیه است و اهمیت چندانی نداره! اصلا کسانی که من دیدم توی این زمینه کار میکنن اکثرا تحصیلات دانشگاهی در رشتهء ریاضی و/یا فیزیک داشتن (فیزیکدان ها هم بخاطر اینکه اکثرا ریاضیاتشون قویه). من خودم دیگه آخرش توی ریاضیاتش یه جاهایی گیر کردم و به بن بست خوردم، وگرنه همینطوری مثل شیر داشتم میرفتم جلو :لبخند:
شما دوتا برنامه نویس معمولی و برنامه های کلیشه ای و بازاری رو شاید ببینید، ولی من دنیای برنامه نویسی رو در یک سطح بالا و جهانی و خیلی گسترده تر و عمیق تر میبینم و ازش اطلاع دارم که واقعا اینطوره.
البته در بازار کار و جامعهء ما این موارد تاحد زیادی ناشناخته هستن و شاید اهمیت عملی کمی هم داشته باشن چون کاربرد ندارن، اما اگر نخوای به سطح جامعه و مردم و بازار و درآمد کشور خودت محدود بشی، داستان جور دیگس و باید وارد دنیای دیگری بشی.
این همه هم میان میگن آقا ما میتونیم و میکنیم و مثلا میخوان مثل شرکتهای آمریکایی و پروژه های جالب در سطح دنیا کار کنن، من میگم ما اصلا برنامه نویسانی اینقدر دانشمند و توانمند نداریم! اصلا شما نمیدونید دنیا چه خبره و چه انسانهایی با چه دانش و توانایی هایی هست که حتی از وجودشون هم اطلاع ندارید، بعد فکر میکنید به این راحتی و شدنی هست که هرکاری که هرکجای دنیا انجام میدن شما هم انجام بدید؟ این فقط یک ظاهر و پوسته و سطحی هست که ملت ما میبینن و فکر میکنن قضیه فقط همونه. مثلا فکر میکنن اینکه فقط تقلید کنی و مسائلی رو که در ظاهر دیده میشن و دوتا الگوریتم و برنامه عادی هست که بیای فیسبوک درست کنی، بعد میان یه چیزی شکل اون درست میکنن که در ظاهر و وهلهء اول هم نگاه میکنی واقعا شبیه خود فیسبوکه، ولی فیسبوک و سیستمها و برنامه نویسان اونا کجا و مال شما کجا!
تفاوت اونا با ما از یه مواردی هم کاملا مشخص میشه. مثلا همین که فیسبوک میاد زبان جدید درست میکنه، کامپایلر میسازه، سیستمها و پروتکل ها و فناوری های جدید جالبی رو واسه کارهای خودش درست میکنه (و البته خوشبختانه بصورت بازمتن هم منتشر میکنه). اینا کار راحت و کار هرکسی نیست. ما در خیلی از این موارد شاید حتی یک متخصص درست و حسابی هم در کشور نداشته باشیم؛ البته یک دلیلش اینکه اصلا نیاز و پایه و شرایط اولیش وجود نداشته، نه اینکه بگم مطلقا نمیشه و نمیتونیم، ولی زمان میبره پایه میخواد شرایط اولیه داره تکامل تدریجی داره اینطور نیست همینطوری روی هوا با حرف و ادعا و یهو و به زور و بصورت تصنعی ایجادش کنی.

آهان راستی یادم رفت، اینم بگم واسه دلخوشی بعضیا، یه مواردی از مهندسی نرم افزار مثل شی گرایی و الگوهای طراحی و اینا هم هستن. البته از این موارد بحث و اطلاعات چه فارسی و چه انگلیسی زیاد هست.

eshpilen
سه شنبه 08 مهر 1393, 09:58 صبح
بازم تاپیکو ترکوندما؛ ههیی :لبخند:
خیلیا از این حرفا خوششون نمیاد، یا فکر میکنن من آدم متکبر و از خودراضی هستم و خودم رو خیلی با سواد میدونم و قصد خودنمایی یا تحقیر دیگران رو دارم.
اینه که مدیران یکی از تالارها میاد میگه هی اشپلین تو اونقدری هم که فکر میکنی سوادت بالا نیست :ناراحت:
باید بگم والا من نیت ام این چیزا نیست. حالا یخورده رو که ادعام میشه، چون اهل فروتن بازی های سطحی نیستم و بنظر من توی مسائل جدی و تخصصی باید واقعگرا و رک بود و با زبان روشن و محکم علم و تخصص و منطق صحبت کرد و زیاد جای احساسات و عواطف و تعارفات نیست.
بهرحال وقت داشتم علاقه داشتم همت داشتم زحمت کشیدم سالها چیزهایی رو مطالعه کردم دنبال مباحثی رفتم که بنی بشری حداقل توی کشور خودمون سراغشون نرفته بود و هزاران صفحه مقالات و کتابها و متونی رو خوندم که فهمیدن حتی یک پاراگرافش هم کار راحتی نیست!
میام این چیزا رو براتون میگم و پستهای حجیم میزنم و داستان تعریف میکنم بخاطر اینکه بحث و اطلاعات در این زمینه میبینم و فکر میکنم خیلی کمه و تنها افراد نادری مثل من هستن که این موارد رو میدونن و از نزدیک تماس داشتن و درک کردن، و این یک کار و وظیفهء طبیعی منه که این اطلاعات و بینش رو در اختیار دیگران بذارم و به جامعه منتقل کنم.
حالا دیگه اینکه چقدر مفید و کاربردی و برای جامعهء ما مهم باشه یا نباشه و چه کسانی بتونن و بخوان از این اطلاعات استفاده ای بکنن یا نکنن، دقیقا نمیدونم!
من میخوام بگم کامپیوتر و برنامه نویسی هم در اساس خودش یک رشتهء کاملا علمی و تخصصیه و انجام کارهای اساسی و بزرگ درش نیاز به آدمهای باسواد و قوی و باهمت و جدی داره. خشونت میخواد. مرد میخواد.
مثل این میمونه یکی ورزش میکنه در حد یه باشگاه بدنسازی میره دوتا وزنه میزنه، پروتئین و آمپول مصرف میکنه، دوتا دور بازو و ماهیچه میاره و هیکل نمایش میده فکر میکنه کارش خیلی درسته و حالا دیگه شاهکار کرده و زورش زیاد شده، یکی هم بروسلی و اویاما میشه.
درسته اینا همه ورزش و ورزشکار هستن، ولی با هم تفاوت های مهمی دارن.
برنامه نویسی هم همینه.
یکی آدم عمیق و جدی ای هست، اما اکثرا آدمهای سطحی و دنبال زرق و برق ظاهری هستن. البته پول هم یک عامل اصلی در این بین است. حقیقت اینه که برای علم باید عشق داشت یا دنبال هدفهای عمیق تری بود و بطور معمول آدم خاصی بود، چون علم و سواد واقعی برای پول درآوردن راه دشوار و طولانی و تضمین نشده ای است. برای پول درآوردن راههای راحتتر و سریعتر و کاراتری هست اکثرا.
این شده که همه چیز بر اساس بازار کار و درآمد و پول قضاوت میشه و ارزش داده میشه و بحث و فعالیتی که روی هرچیزی میشه با این مسئله تناسب داره. این به خودی خودش جرم نیست و مشکل نداره، ولی باید دونست این دیدگاه ناقصی هست اگر بر اساسش میخواد دربارهء همه چیز و در همه سطحی و در مقیاس جهانی و تاریخی قضاوت بشه.
اگر فقط یه برنامه نویسی هستی میخوای دوزار پول دربیاری و چیزای دیگه برات مهم نیست، دیگه نیای یه چیزهای خنده دار بگو و با معیار و سیستم تفکر خودت همهء دنیا و آدما رو قضاوت کن. نگو هرکاری دیگران کردن ما هم میکنیم! نمیشه، نمیتونید! هرچیزی پیشنیاز و راه خودش رو داره. چیزی که شما همت و علاقش رو نداشتید و وقت و انرژی زیادی رو که میطلبه بهش اختصاص ندادید و پایش رو هم ندارید، پس نمیتونید از عهدش بربیاید، آدمش نیستید.
طرف دوتا کد و برنامه درست میکنه با ویژوال استودیو بعد فکر میکنه همه عالم و آدم همونه :قهقهه:

behnam404
سه شنبه 08 مهر 1393, 10:50 صبح
ببین اگه بخوایین به عنوان طراح وب سایت استخدام بشید باید به هر چهار زبان
1- HTML5 & CSS3
2- JavaScript
3- PHP&SQL یا asp.net
4- jQuery
مسلط باشید .
c# , java هم که راهش از اینا جداست
بستگی به علاقه شخصی خود شما داره .

سیدرضا بازیار
سه شنبه 08 مهر 1393, 12:17 عصر
اگه ممکنه فیلم های آموزشی زبان C رو بهم معرفی کنید (فقط فیلم های کامل و عالی)