جستجو در تالارهای گفتگو
در حال نمایش نتایج برای برچسب های 'یادگیری'.
4 نتیجه پیدا شد
-
سلام, یک سوال که ذهن منو چند وقته به خودش درگیر کرده این هست که: الان اگر شما برنامه نویسی رو کامل و بدون مشکل بلد باشی اولین حرکتی که میکنید برای پول در آوردن چیه؟
- 5 پاسخ
-
- تکمیل یادگیری
- درآمد
-
(و 1 مورد دیگر)
برچسب زده شده با :
-
در حال حاضر يادگيري الکترونيکي مفهومي مهم در آموزش عالي است و دانشگاه هاي متنوعي ايجاد شده که نياز جهاني به آموزش را نمايانگر میکند. با يادگيري الکترونيکي امكان «يادگيري بدون محدوديت زماني و مکانی و صرف هزينه» متناسب با نيازهاي بشر فراهم ميشود. در زیر به معرفی چند سایت ازشمند جهانی میپردازیم: سايت ايراني Motamem : محلي براي توسعه دانش و مهارت هاي فردي : www.motamem.org سايت Lynda: وب سايتي که بيش از 4 ميليون نفر در آن مشغول گذارندن دوره هاي آموزشي هستند : www.lynda.com سايت Creative Live: با کلاس هاي رايگان آنلاين خلاقيت را در خود پرورش دهيد : www.creativelive.com سايت Mind Tools : محلي براي يادگيري مهارت هاي مديريتي : www.mindtools.com سايت Codecademy: در اين مدرسه آنلاين مي توانيد کار با java ، Python ، PHP و... را ياد بگيريد : www.codecademy.com سايت edX: وب سايتي شامل دوره هاي آنلاين برنامه نويسي : www.edx.org سايت Platzi: با آموزش هاي اين وب سايت در بازاريابي، کدنويسي،توسعه اپليکيشن و طراحي حرفه اي شويد : www.platzi.com سايت Guides.co: منبعي کامل از نکته ها و توصيه ها در مورد هر موضوعي که فکرش را بکنيد : www.guides.co سايت Udacity: در دوره هاي رايگان آنلاين و با تدريس سباستين تران، کدنويسي را بياموزيد : www.udacity.com سايت Zidbits: محلي براي دسترسي به مقالات جالب و اخبار و حقايق عجيب : www.zidbits.com سايت TED Ed:مجموعه اي از آموزش هاي ارزشمند در موضوعات متنوع : www.ed.ted.com سايت iTunes U: دانشگاه هاي برتري مانند هاروارد و يل پادکست هاي کلاس هاي خود را در اينجا به اشتراک ميگذارند : www.apple.com/education سايت MIT open courseware: براي يادگيري مقدمات کدنويسي با دانشگاه MIT همراه شويد : ocw.mit.edu سايت WonderHowTo: اين سايت هر روز ويديوهاي جديدي براي يادگيري نحوه انجام کارهاي مختلف منتشر ميکند : www.wonderhowto.com سايت One Month: در مدت يک ماه يک مهارت جديد بياموزيد : www.onemonth.com سايت Duolingo: سايت آموزش زبان کاملا رايگان : www.duolingo.com سايت Squareknot: خلاقيت هم قابل يادگيري است : www.squareknot.com سايت Spreeder: تندخواني را در اين سايت بياموزيد : www.spreeder.com سايت Memrise: دانش لغات خود را بيشتر کنيد : www.memrise.com سايت HTML5Rocks: حرفه اي هاي گوگل آخرين به روزرساني ها، راهنمايي منابع و ساير اطلاعات مربوط به HTML5 را با شما به اشتراک ميگذارند : www.html5rocks.com سايت Wikipedia'Daily Article List: مقالات ويکيپديا را روزانه در ايميل خود دريافت کنيد : lists.wikimedia.org سايت DataMokey: در اين سايت SQL و Excel را بياموزيد : www.datamonkey.org سايت Saylor Academy: با دوره هاي آنلاين اين سايت ارايه مطلب و سخنراني را بياموزيد : www.saylor.org سايت Learni.st: دوره هاي حرفه اي با محتواي ويژه از عکاسي تا وبلاگ نويسي : www.crunchbase.com/organization/learnist سايت Academic Earth: دوره هاي پيشرفته دانشگاهي از سال 2009 تا کنون در اين سايت در دسترس هستند : academicearth.org
-
کامبیز اسدزاده یک موضوع را ارسال کرد در <span class="ipsBadge ipsBadge_pill" style="background-color: #e62f3d; color: #ffffff;" >برنامه نویسی در C و ++C</span>
با سلام، با توجه به سوالات مکرر برخی از کاربران و خصوصاً دانشجویان جدید، تصمیم گرفته شد تا توضیحاتی دربارهی نحوهی یادگیری برنامهنویسی با سیپلاسپلاس بیان شود. مقدمه در حال حاضر بیش از سه دهه است که از ساخت و معرفی زبان برنامهنویسی ++C میگذرد. در رابطه با آن که هدف از ایجاد این زبان چه چیزی بوده و مزایای آن نسبت به زبانهای دیگر چه چیزی است را میتوانید در این تاپیک را مطالعه کنید. اما بسیاری از افراد علاقهمند به زبانهای برنامهنویسی تمایل بسیاری دارند تا در برنامهنویسی با این زبان به درجه مطلوب و درواقع (حرفهای) برسند. قبل از هر چیز باید مواردی را در نظر داشته باشیم که یاد گیری زبانهای برنامهنویسی به خودی خود کافی نیست! مخصوصاً زبانهای C و ++C مستلزم پیشنیازهای تخصصی بسیاری هستند که در روند تولید، توسعه، تجزیه و تحلیل رفتار کامپایلر و سیستمعامل بسیار مهم است. در ادامه ما به سوالاتی که معمولاً توسط تازهکاران پرسیده شده است پاسخ داده ایم: قبل از رسیدن به پاسخ سوالات خود به این نکته حتماً توجه کنید که زبانهای برنامهنویسی بسیاری وجود دارد که ممکن است بدون داشتن اطلاعات تخصصی در رابطه با سیستمعامل، کامپایلر، انواع معماریهای سیستمی و غیره موفق به یادگیری آنها شوید. اما در این میان زبان سی++ چنین ویژگیای ندارد (کاربر را به چالش میکشد) و شما باید قبل از زبان به عنوان پیش نیازات یادگیری و درک آن از مباحث مهندسی نرمافزار، سیستمعامل (ساختار و معماری آن)، ساختار و معماری کامپایلرها و رفتارهای آنها، سختافزار و نوع معماری پردازندهها و موارد این چنین آشنا شوید. کاملاً روشن است که یادگیری چنین مباحثی سنگین بوده و بدون شک شما باید در حوزهی مهندسی کامپیوتر به خصوص نرمافزار کسب علم نمایید. ابعاد علمی و اقتصادی کار با ++C/C در ایران متاسفانه اکثر ما ملتی هستیم، تَنبَل و حاضر برای لُقمهی آماده بنابراین بازار کار در ایران به گونهای است که بیشتر شرکتها و افراد توسعه دهنده به سراغ زبانهای سادهتر و در دسترستر (بی دردسر) میروند. غافل از آن که یک برنامهی تولید شده توسط سی++ بسیار سریع، جذاب، قدرتمند و انعطافپذیر تر است. تمامی مساله در اینجا تمام نمیشود، چرا که شاید در سالهای اخیر وضعیت تقریباً فرق کرده و به کمک اطلاع رسانیهای اساتید و دوستان حرفهای ما در این زمینه این اطلاع رسانی به خوبی صورت گرفته و توسعه دهندهها از قابلیتها پنهان این زبان آگاه شده اند. شرکتها و گروههای برنامهنویسی بسیاری به دنبال برنامهنویسهای سی++ و کیوت هستند که این امر نشان دهندهی این است که نسبت به سالهای گذشته پیشرفت و آگاهی جامعه در این حوزه منطقی تر و بهتر شده است. بنابراین، بهتر است قبل از هرچیز در نظر داشته باشید که هدف از این تاپیک، این نیست که اثبات کنیم یک زبان نسبت به زبان دیگر برتری دارد. هدف اصلی ما این است به واقعیتهایی اشاره کنیم که غیر منطقی نیستند. چرا که واقعاً کارفرمایانی وجود دارند که نیازمند به برنامهنویسانی هستند که تخصص خوبی در زبانهای برنامهنویسی دیگری مانند سی و سی++ دارند. متاسفانه در کشور ما اینگونه است که به ازای مثلاً هر ۱۰۰ نفر سیشارپ کار یا زبانهای دیگر ۱ نفر سمت سی++ میرود! و این روند برای توسعه صنعت نرمافزاری کشور که بسیاری از کارفرمایان به آن نیاز دارند ضربهی سختی وارد میکند. توجه داشته باشید که هدف از این توضیحات چنین نیست که بعد از خواندن این مطالب زبان برنامهنویسی مورد علاقهی خود را کنار گذاشته و به سمت سی++ بروید، خیر! تمامی زبانها به عنوان ابزارهای کاری شما در یک جعبهی ابزار هستند و هر زبانی حوزهی کاربردی خودش را دارد. بنابراین قبل از اینکه شما تصمیم بگیرید که چه زبانی را یاد خواهید گرفت باید حوزهی کاری وعلاقهی خودتان را مشخص کنید سپس وارد تحقیق و بحث و نظر خواهی راجع به آن زبان نمایید. بنابراین مقایسهی زبان طبق این قانون کاملاً کار اشتباه و بچهگانه است. متاسفانه به خاطر تفکرات اشتباه و معرفیهای غیر منطقی و غیر علمی برنامهنویسان کشور ما که ممکن است حتی خودِ شما هم چنین تصور کنید، در رابطه با سایر زبانها مانند سی++ بسیاری از کارفرمایان نیازمند چنین برنامهنویسانی هستند که در کشور ما واقعاً نیاز است. توجه داشته باشید که انتخاب درست این نیست که چون همه سراغ سیشارپ میروند و چون تمامی آگهیها استخدامی مرتبط با سیشارپ است پس فقط باید این زبان را یاد گرفت و تمام! خیر چنین تفکری اشتباه است و ضربهی بسیار بزرگی در صنعت و دانش آیندهی کشور خواهد زد. *نکتهی مهم و جالبی که وجود دارد این است که در خارج از کشور بیشترین دستمُزد متعلق به برنامهنویسان سی++ میباشد. در کشور ما برنامهنویسان این زبان دستمُزد مناسبی میتوانند بگیرند اما به هیچ عنوان قابل مقایسه با دستمزدهای خارج از کشور نیست (اما خارج از بحث اقتصادی حال حاضر ممکن است قابل تأمل باشد). نکاتی در این میان وجود دارد که باید به آنها اشاره کرد: متاسفانه در کشور ما بسیاری از برنامهنویسان چه مبتدی چه حرفهای اینطور تصور میکنند که تولید محصول نرمافزاری یعنی برنامهنویسی یک نرمافزار که قرار است به بانک اطلاعاتی متصل شده و کارهایی مانند ثبت و ویرایش اطلاعات و در نهایت گزارش گیری و دیگر عملیات ممکن را انجام دهد! این تفکر به شدت اشتباه است! بسیاری از بانکها و شرکتهای صنعتی و اقتصادی مهم کشور نیازمند برنامهنویسان سی++ هستند تا بتوانند در بحث بانکی برای توسعه دستگاههای پرداخت مانند Pos و ATM از این زبان و برنامهنویسان بهره ببرند. در صنایع بزرگ خودرو سازی یا پرس و دیگر موارد نرمافزارهای مورد نیاز است تا با سرعت بسیار و بدون محدودی پلتفرمی پاسخگوی یک چرخهی تولید باشند تا بتواند یک شرکت بزرگ را مدیریت و آن را بهینه کند. در بسیاری از حوزههای صنعتی کشور شرکتهای غولپیکر در زمینهی تولیدات انبوه و سنگین که توسط ماشینآلات صورت میگیرد به دنبال برنامهنویسان سی و سی++ هستند که ممکن است به صورت معرف یا آشنا با آنها مواجه و استخدام شوید. شرکتهای سختافزاری و استارتآپهایی که در حوزهی الکترونیک و سختافزار فعالیت میکنند به دنبال برنامهنویسیان سی++ هستند تا بتوانند در حوزهی کاری خود اهداف خود را توسعه و شما را به عنوان مهرهای مفید پیش ببرند. شرکتهای توسعهدهندهی موبایل و خطوط تولیدی تلفنهای همراه داخلی گسترش یافته و به شدت نیازمند برنامهنویسان سی++ هستند که برخی از آنها مبادلات بینالمللی نیز دارند. در بخش حوزهی شهر سازی، مدیرت شهر و همچنین راهداری شرکتهایی هستند که برای تولید سیستمهای مدیریتی مانند مدیریت راهها و ترددهای خودرو و یا مدیریت ترافیک و موارد این چنینی به دنبال برنامهنویسان سی++ هستند. بسیاری از شرکتها و حتی تیمهای توسعه بر روی پلتفرمهای iOS و Android به صورت تخصصی سفارشی سازی و حتی ساخت و توسعهی اپلیکیشنهای ایرانی تمرکز دارند که جدیداً به لطف آگاهی از فریموُرکهایی مانند Qt به سمت این حوزه آمده و نیازمند سی++ کاران هستند. شرکتهای بازیسازی کشور ما که این سالها با پیشرفتهای خوبی مواجه شدهاند به دنبال برنامهنویسان سی++ هستند که بتوانند در این صنعت برای فرهنگسازی و توسعه صنعت بازی سازی جلو بروند. بسیاری از شرکتهای پنهان وجود دارد که به صورت بسیار مخفیانه در صنایع سهبعدی و پیشرفته در حال فعالیت هستند که محصولات خود را نه در ایران بلکه در خارج از آن آمریکا و دیگر کشورهای اروپایی به فروش میرسانند که به سفارش آنها بوده است. با دید سطحی به این مسائل نباید نگاه کنید، اگر آگهیهای استخدامی نمیبینید به خاطر این است که این زبان کار کُن می خواهد نه تَنبل! بنابراین شما باید به سراغ آن بروید چرا که بسیاری از شرکتهای بینالمللی فعالیتهای بزرگی انجام میدهند که هیچوقت از آنها خبر ندارید و به صورت کاملاً سفارشی و حساسیت کامل به دنبال برنامهنویسان این زبان هستند (چون میدانند یک سی++ کار هدفمند و با دید بازتری به توسعه نگاه میکند). چنین شرکتها معمولاً استخدام را به صورت رابطهای انجام میدهند و تعداشان هم کم نیست. ما میدانیم که شاید شما با دیدگاه اینکه حتماً باید نرمافزارهای کاربردی تولید کنید به قضیه نگاه میکنید، خوشبختانه فریمورک کیوت به قدری قدرتمند و پُخته شده است که میتوان هر محصول کاربردی در هر زمینهای را تولید کرد که از کارایی بسیار بهتری نسبت به دات نت بهرهمند است. در حوزهی امنیت، شبکه و موارد این چنینی شرکتهای بزرگ و Ispها نیازمند این زبان هستند. نکتهی قابل توجه این که، اگر در کشور ما از چند صد هزار نفر برنامهنویس سیشارپ کار یک برنامهنویس سی++ کار وجود داشته باشد باید امیدوار باشیم که همان درصد محدود و ناچیز راه درستی را رفتهاند! البته دلایل بسیاری وجود دارد که موجب میشود شرکتها از روی ناچاری به سراغ برنامهنویسان دیگر بروند، که من شخصاً آن را تجربه کرده ام ! در بسیاری از پروژهها که به عنوان مشاور فنی در آنها شرکت کرده بودیم متوجه آن شدیم شرکتها به خاطر عدم وجود برنامهنویس سی++ برای ادامهی چرخهی تولید خود مجبوراً سراغ برنامهنویسهای دیگر زبانها میروند. این امر به خاطر این است که واقعاً درصد تعداد برنامهنویسان این زبان نسبت به زبانهای دیگر به خاطر (راحت طلبی) و شاید عدم آگاهی از این زبان دور هستند. برخی از سوالاتی که علاقهمندان به این حوزه میپرسند در ادامه آمده است: من یک دانشجو هستم و رشتهی تحصیلی من کامپیوتر است، به برنامهنویسی با ++C علاقه دارم از کجا باید شروع کنم؟ اگر شما به قصدِ حرفهای شدن دنبال یادگیری این زبان هستید، همانطور که اشارهای شد مباحث پیش نیاز برای یادگیری این زبان مهم هستند و برای درک هرچه بیشتر این زبان بهتر است دانش خوبی در زمینهی تجزیه و تحلیل رفتار کامپایلر داشته باشید. علاوه بر این برای آشنایی با کامپایلر رفتار سیستمعامل و واکنشهای کامپایلری در سیستمعاملهای متفاوت بسیار مهم است. به عنوان مثال کامپایلر GCC بر روی ایستگاههای یونیکس تعبیه شده و برای خود قوانین و استانداردهایی را دارد. در کنار آن کامپایلر MSVC نوعی کامپایلر اختصاصی تحت ویندوز است که متناسب با ساختار و معماری ویندوز رفتار میکند. من یک دانشجو هستم اما متاسفانه رشتهی تحصیلی من کامپیوتر نیست، به برنامهنویسی با ++C علاقه دارم از کجا باید شروع کنم؟ این کار کمی دشوار است، در مرحلهی اول پیشنهاد ما این است که سراغ زبانهای برنامهنویسی دیگری بروید که نیازی نداشته باشد شما درگیر درک کامپایلر یا رفتارهای سیستمعاملی شوید. اما به هر حال اگر شما به هر نحوی میخواهید این زبان را یاد بگیرید چارهی کار تلاش مستمر و حوصله است. متاسفانه سیپلاسپلاس ذاتی مرموز دارد و آن این است که اگر بتوانید به آن مسلط شوید یک زبان با وفا و قدرتمندی خواهد بود که در هر زمینهای به نیازهای شما پاسخگو خواهد شد. اما اگر به هر دلیلی نتوانید با این زبان دوست شوید به طور بسیار مرموزی اعصابتان را به هم خواهد ریخت که البته طبیعی است چون سی++ تحت کامپایلرهای خود دستِ برنامهنویس را آزاد گذاشته و شما هستید که انتخاب میکنید کُد شما به چه شیوهای با توجه به هدف چگونه عمل کند. چقدر زمان لازم است تا من این زبان برنامهنویسی را یاد بگیرم؟ با توجه به ساختار زبان و رفتارهای کامپایلر میتوان گفت به قدری دامنهی سی++ گسترده است که تنها راه حل ممکن برای رسیدن به یک وضعیت مطلوب از دانش مرتبط با آن باید زمان مشخصی در نظر گرفته شود. ممکن است شما بتوانید در بازهی ۱ الی ۳ ماه مباحث مقدماتی این زبان را درک کنید. اما توجه داشته باشید پیشنیازات آن نیز نیازمند تحقیق، تجربه عملی و نتیجهگیری تئوری و علمی هستند. با توجه به اینکه شما (سریع، هوشمند با گیرایی بالا باشید) میتوانید در کمتر از ۶ ماه به یک پایداری تقریباً قابل قبول در حد مقدماتی این زبان برسید. استاندارد زبان را درک کنید و نحوهی برقراری ارتباط با کتابخانههای پیشفرض STL و غیره را تجربه کنید. برای کسب دانش و افزایش آن به میزان متوسط و به بالا نیازمند تلاش بسیار بیشتری خواهید بود که باید در قالب پروژههای عملی و واقعی صورت گیرد. متاسفانه سی++ به دلیل گسترده بودن چنان پیچیدگیهایی را دارد که تنها میتوان در موقع برنامهنویسی به صورت عملی (بر روی پروژههای واقعی) آن را تجربه کرد. آیا ارزش دارد من این زبان را یاد بگیرم؟ فرصت من کم است و میخواهم سریعاً به درآمد زایی برسم اگر شما به عنوان یک برنامهنویس متوسط و به بالا به این زبان تسلط دارید، و حداقل میتوانید با یکی از کتابخانههای خوب آن ارتباط برقرار کنید باید به شما تبریک گفت. وقت آن است که با کتابخانههای قدرتمند این زبان وارد عمل شوید. کتابخانههایی مانند Boost، Poco، Qt و غیره از سری کتابخانههایی میباشد که امکانات بسیاری را در اختیار شما علاقهمندان این زبان قرار میدهند تا بتوانید در کمترین زمان ممکن به نیازهای خود دسترسی داشته و آن را پیاده سازی کنید. توجه داشته باشید که لازمهی طراحی و توسعه یک محصول مفید (قابل قبول) در قالب MVP (کمینه محصول پذیرفتنی) مستلزم داشتن دانش طراحی محصول نیز میباشد. اما همه چیز اینگونه خلاصه نشده است و شما برای اینکه بتوانید یک محصول واقعاً قابل قبول را پیاده سازی کنید مسلماً باید آن را مجهز به قابلیتهای دیگری مانند منابع ذخیره داده و یا سرویسها و ماژولهایی کنید که بتواند به عنوان یک محصول کاربردی روی آن حساب کرد. کاملاً روشن است که علاوه بر پیشنیازاتی که به آنها در بالا اشاره شده است، داشتن دانش در رابطه با SQL، معماری وب سرویسها و ساختار Api ها، طراحی رابط کاربری تحتِ Xml، QML، JavaScript و حتی شبکه و اینترنت نیاز خواهد بود. با توجه به این موارد اگر بخواهید محصولی را بسازید که طبق استاندارد آن را توسعه و تولید کنید باید ابزارها و موارد پیشنهادی زیر را در اختیار داشته و به تک به تک آنها مسلط باشید: یک محیط توسعه یکپارچهی نرمافزار مانند Qt Creator، Xcode یا Visual Studio (پیشنهاد ما Qt Creator است). پلتفرم توسعه (سیستمعاملی) که قرار است محیط توسعهی یکپارچه خود را بر روی آن نصب و شروع به برنامهنویسی کنید را مشخص نمایید. اگر شما کاربر ویندوز هستید باید محیط توسعهی یکپارچهی شما مجهز به کامپایلر MSVC و یا نسخهی پورت شدهی GCC یعنی MinGW باشد. اگر شما کاربر مکاواِس هستید به صورت پیشفرض با نصب محیط توسعه کامپایلر Clang بر روی آن تعبیه خواهد شد. البته میتوانید به صورت سفارشی از کامپایلر GCC نیز استفاده کنید. در صورتی که کاربر لینوکس هستید کامپایلر GCC به صورت پیشفرض بر روی محیط توسعهی شما تعبیه خواهد شد. بر اساس پیشنهاد ما جهت محیط توسعه کتابخانهی Qt نیز پیشنهاد میشود (دلیل آن این است که این کتابخانه به شما کمک میکند تا بتوانید رابط کاربری نرمافزار (محصول) خود را پیاده سازی کنید). اگر هدف شما طراحی یک محصول استانداردی است که از شکل و ظاهر آنچنانی برخوردارد نیست بهتر است از ماژولهای پیشفرض Qt مانند Qt Widget برای طراحی آن استفاده کنید. این کار بسیار ساده است و نیازی برای داشتن دانش در رابطه با حوزههای JavaScript و QML ندارد. البته میتوانید با ترکیب CSS طراحی رابط کاربری برنامهی خود را بهبود ببخشید. بعد از این موارد نیاز است که شما هدف توسعهی خود را مشخص کنید، اینکه میخواهید توسعه دهندهی چه پلتفرمی باشید؟ تولید کننده برنامههای دسکتاپ بر روی ویندوز؟ یا لینوکس و مک؟ یا همهی آنها؟ خوشبختانه با توجه به قابلیتهای ذاتی سی++ و کیوت شما میتوانید برنامهی خود را تنها با داشتن محیط توسعهی خود بر روی پلتفرم مورد نظر خود کامپایل و خروجی بگیرید (البته به شرط اینکه از سرویسهای اختصاصی سیستمعاملی) استفاده نکرده باشید. اگر مشتاق آن هستید که برای پلتفرمهای موبایل مانند آیاواس یا اندروید برنامه تولید کنید، قضیه کمی گسترده تر خواهد شد و حتماً باید ملزوماتی که در ابتدای مقاله به آن اشاره شده است را در نظر داشته باشید. برای مثال تولید یک اپلیکیشن آیاواس مستلزم آن است که شما علاوه بر داشتن دانش سی++ در رابطه با معماری و ساختار و همچنین قوانین سیستمهای مرتبط با اپل را اطلاعات کافی داشته باشید. در اندروید نیز این چنین است. اگر شما تازه کار هستید پیشنهاد میکنیم هدف خود را فعلاً محدود بر یک پلتفرم خاص کنید، برای مثال توسعه محصول بر روی ویندوز برای آغاز کار بسیار مناسب است. در نهایت شما محصول خود را با آزمایش وخطاهای بسیاری میتوانید تولید و با توجه به مستنداتی که در همین مرجع ارائه شده است میتوانید مستقر و برای کاربر مورد نظر ارائه دهید. برای اینکه بدانید مزایای این زبان در چیست و چه کتابخانههایی میتوانند مفید باشد و برخی از سوالات احتمالی که ممکن است به ذهن شما برسد این بخش را مطالعه کنید. برای نحوهی شروع کار با Qt این بخش را مطالعه کنید. جهت نحوهی نصب و راه اندازی محیط توسعه این بخش را مطالعه کنید.-
- سیپلاسپلاس
- نحوهی شروع
-
(و 4 مورد دیگر)
برچسب زده شده با :
-
کامبیز اسدزاده یک موضوع را ارسال کرد در <span class="ipsBadge ipsBadge_pill" style="background-color: #38ff7a; color: #000000;" >کتابخانه کیوت (Qt)</span>
با سلام، در این پُست ما قصد داریم در رابطه با نحوهی آغاز یادگیری کیوت توضیح دهیم. اینکه به عنوان یک تازهکار چه پیشنیازاتی را باید مطالعه و در نهایت چگونه و تحتِ چه منابعی این کتابخانهی قدرتمند را بیاموزیم. همچنین پاسخ برخی از سوالات شما را در این پُست به طور شفاف ارائه شده است که طیِ چندین سال سوال علاقه مندان بودهاند . پیشنیازات برای یادگیری کتابخانهی Qt دانش متوسط و به بالا در رابطه با زبان برنامهنویسی مُدرن سیپلاسپلاس نسخههای ۱۱ به بعد، (بنابراین اگر شما هیچ اطلاعی در رابطه با ساختار برنامههای سیپلاسپلاس و نحوهی عملکرد آن ندارید، شانس موفقیت شما بسیار پایین خواهد بود و ممکن است برنامهی تولید شدهی شما به بدترین شکل ممکن پیاده سازی شود). ما پیشنهاد میکنیم قبل از آن با زبان سیپلاسپلاس آشنا شوید. آشنایی با کامپایلر و نحوهی عملکرد آن در پلتفرمهای مختلف از جمله ویندوز، مکاواِس، لینوکس، اندروید و آیاواِس آشنایی با برنامهنویسی در معماریهای مختلف مانند x86، x64، Arm و غیره... آشنایی با معماریِ سیستمعاملها، برای مثال اگر قرار است از خاصیت چند-سکویی کیوت استفاده کنید تا یک برنامهی تحت اندروید را توسعه دهید، در این صورت باید در نظر داشته باشید که شما بدون درکِ معماری سیستمعامل اندروید و پیکربندی برنامه در مراحل توسعه نمیتوانید به راحتی از پسِ این کار بر آیید. آشنایی با اصطلاحات و مفاهیم تجربهی کاربری و رابط کاربری جهت طراحی مناسب با فناوریهای Qt Widget و Qt Quick (در صورتی که علاقهمند به طراحی ظاهر برنامههای خلاقانه دارید) آشنایی Xml و JavaScript برای طراحی رابط گرافیکی تحت فناوریهای فوق آیا کیوت یک زبان برنامهنویسی است، چرا نحوِ (Syntax) آن با سیپلاسپلاس استاندارد فرق میکند؟ خیر، کیوت ابتدا به عنوان یک کتابخانهی رابط گرافیکی کاربر توسعه داده شده است که بعدها برای توسعه اهدافِ بیشتری شامل کتابخانههای شبکه و غیره شده است که در قالب یک چهارچوب (فریموُرک) که تحت زبان برنامهنویسی سیپلاسپلاس برای این زبان توسعه یافته است و در زمینههای مختلفی کاربردهای فراوان دارد. دلیل زیبایی و ظاهر سادهی آن ساختار بسیار قدرتمند آن است که موجب شده همانند چهارچوبهای قدرتمند دیگری خودنمایی کند. (اما قول این ظاهر و سادگی آن را نخورید، چون با سیپلاسپلاس طرف هستیم ) آیا کیوت از سرویسها و قابلیتهای اختصاصیِ اپلیکیشنهای اندروید و آیاواِس را به طور کامل پشتیبانی میکند؟ خیر، هیچ ابزاری به صورت چند-سکویی فعلاً (تاکید میکنیم - فعلاً تا به این تاریخ) وجود ندارد که تمامی امکانات اختصاصی این پلتفرمها را پشتیبانی کند. اما این به این معنی نیست که جواب منفی خواهد بود، لذا شما در برنامهنویسی سیپلاسپلاس به راحتی میتوانید برای پلتفرمهای فوق با سرویسهای آنها ارتباط برقرار کنید اما! این کار کمی نیاز به دانش فنی بالایی خواهد داشت. برای مثال (دسترسی به سرویسهای اندروید یا آیاواس) با ترکیب کُدهای آبجکتیو-سی و جاوا امکانپذیر است. این کار به راحتی قابل انجام خواهد بود و کافی است شما در رابطه با نحوهی ترکیب کُدهای این زبانها مطلع باشید. کیفیت خروجی برنامههای تحت کیوت چگونه است؟ اگر شما واقعاً یک برنامهنویسِ ماهرِ سیپلاسپلاس باشید میتوانید برنامهای را تولید کنید که بسیار خوش دستتر و سریعتر از برنامههای پیشفرضِ پلتفرمها باشد. اگر غیر از این باشد برنامهی شما بسیار بد و کُند عمل خواهد کرد و بهتر است سراغ زبانهای بومیِ (هر پلتفرم) بروید. هرچند سیپلاسپلاس یک زبان بومی برای تمامی پلتفرمها محسوب میشود اما این ریسک برای افراد مبتدی پیشنهاد نمیشود. معمولاً برنامههای گسترده و عظیم توسط سیپلاسپلاس توسعه داده میشوند که برنامهنویسان آن واقعا حرفهای و با قوانین این زبان آشنا هستند. آیا برای تولید برنامههای مک و آیاواس نیاز به سیستم خاصی داریم؟ بله، شما بدون وجود سیستمعامل مک نمیتوانید برنامهای را بر روی دستگاههای اپِل کامپایل کنید. این امر مستلزمِ سیستم عامل اختصاصی این شرکت بوده و باید توسعه دهنده دارای حساب کاربری معتبر سالانه باشد تا بتواند برنامهی خود را بر روی دستگاههای مورد نظر اجرا کند. در غیر این صورت تنها میتواند برنامهی خود را بر روی سیستم خود مورد آزمایش و خطا قرار دهد. آیا کیوت در ایران بازار کار مناسبی دارد، آیا ارزش دارد من این کتابخانه را یاد بگیرم؟ خوشبختانه کیوت بیشتر از ۲۰ سال است که در دنیا مورد استفاده قرار میگیرد و کشورهای پیشرفته از آن استقبال میکنند. در کشور ما مدتی است این کتابخانه مورد استقبال قرار گرفته و بسیاری از شرکتها مایل به ساخت و توسعهی برنامههای خود تحت این کتابخانه هستند که برخی از دلایل آن (بهره بردن از قابلیتهای زبان سی و سیپلاسپلاس و ویژگیهای خاص آن است). آیا کیوت از پلتفرم وِب پشتیبانی میکند؟ کیوت از تمامی پلتفرمها پشتیبانی میکند، مخصوصاً با پشتیبانی از ماژولهای QtWebEngine و QtWebAssembly این امر امکانپذیر است که برنامههای خود را تحت فناوریهای وِب نیز توسعه دهید. آیا من حتماً باید به زبان سیپلاسپلاس مسلط باشم؟ ما بر این تاکید نمیکنیم که شما حتماً باید سیپلاسپلاس را کامل یاد بگیرید، این زبان به قدری گسترده است که نمیتوان دربارهی آن به این راحتی مدعی شد. اما قوانین و اصول اولیه و عامیانهی زبان بسیار نیاز است. کتابها و مقالات مربوط به این زبان را بیاموزید و تا جایی که میتوانید خود را ارتقاء دهید. من دانشجو یا متخصص رشتهی کامپیوتر نیستم، آیا میتوانم این کتابخانه را یاد گرفته و از آن در توسعه برنامههای مورد نظر خود استفاده کنم؟ بله، اما ممکن است در تجزیه و تحلیل رفتارهای سیستمعامل، مدیریت خطاها و پیکربندی ابزارهای تخصصی (برنامهنویسی) با مشکلاتی مواجه شوید که تنها متخصصات این رشته میتوانند آن را درک و حل کنند. آیا واقعاً حجم برنامههای کیوت نسبت به Net. یا Java بیشتر است !؟ خیر، به طور ذاتی برنامههای توسعه داده شده توسط سی++ دارای کمترین حجم برنامه هستند، معمولاً کتابخانههای استاندارد این زبان به صورت پیشفرض بر روی سیستم عاملها تعبیه شده و در دسترس قرار دارند. اما شما در ویندوز زمانی که با داتنت برنامهنویسی میکنید، فریمورک مربوطه از قبل بر روی سیستم عامل ویندوز نصب بوده و بدون آن هیچ برنامهی نوشته شده توسط داتنِت قابل اجرا نمیباشد. اما چون از قبل این کتابخانه بر روی سیستمعامل تعبیه شده است شما نیاز به تنها داشتن فایل اجرایی دارید و نیازی نیست فریمورک داتنت را در کنار فایل اجرایی خود مستقر کنید. بنابراین حجم مربوط به چهارچوب به چشم نیامده و اینطور به نظر میرسد که برنامههای تحت دات نت بسیار سبُکتر هستند! متاسفانه این تفکری اشتباه است برنامههای تحت سیپلاسپلاس نسبت به زبانهای دیگر کم حجمتر و سبُکتر بوده و شما کافی است فایلهای مربوط به کتابخانه را در کنار برنامهی خود داشته باشید. در رابطه با کتابخانهی Qt نیز باید گفت کیوت به عنوان یک چهارچوب مانند دات نت شامل کلاسها و ماژولهایی است که باید همانند دات نت بر روی سیستم عامل تعبیه شود اما چون اینکار به صورت جداگانه در کنار برنامهی شما قرار میگیرد اینگونه تصور میشود که برنامههای مبتنی بر کیوت نسبت به دات نت از حجم بیشتری برخوردار هستند. این کاملاً طبیعی بوده و به عنوان نکته ضعف نیست. من علاقهی خاصی به سیپلاسپلاس دارم و میخواهم کیوت را یاد بگیرم، از کجا و چه تحت منابعی باید شروع کنم؟ خوشبختانه کیوت از لحاظ مستندات بسیار جامع است و شما میتوانید از آدرس https://doc.qt.io به تمامی مستندات مورد نیاز خود دسترسی داشته باشید. همچنین اگر نگران اینترنت خود هستید و یا به آن دسترسی مداوم ندارید میتوانید از داخل محیط توسعهی کیوت کریتور از بخش Help آن مستندات مورد نیاز خود را به صورت آفلاین دریافت کنید. من دنبال کتاب آموزشی کیوت هستم، آیا کیوت کتابهای آموزشی مفیدی در این زمینه از مقدمه تا پیشرفته دارد؟ بله، در این بخش شما میتوانید کتابهایی را در این زمینه مشاهده کنید که مرجع رسمیِ کیوت آنها را تایید کرده است. من به زبان انگلیسی تسلط کافی ندارم، ترجیح میدهم که از مراجع فارسی معتبر استفاده کنم، آیا کیوت در این زمینه منابعی دارد که معتبر باشند؟ خوشبختانه کیوت به قدری طعمِ جذابی برای برنامهنویسان دارد که ما اقدام به تالیف و پیاده سازی آموزشهایی در این زمینه کردهایم، شما میتوانید دو کتاب مقدماتی و پیشرفتهی این کتابخانه را تهیه کنید که در کتابخانهی ملی کشور به صورت رسمی به ثبت رسیده اند و عبارتند از نسخههای مقدماتی برای Qt Widgets و نسخهی پیشرفته برای Qt Quick (این کتابها تجاری هستند). آیا مقالات یا کتابهای آموزشی رایگانی هم برای کیوت وجود دارد؟ خوشبختانه به لُطف برخی از دوستان برخی از مطالب در قالب PDF جمع آوری شده است. فایل آن را از این بخش میتوانید دریافت کنید. همچنین کتابهای تجاری در برخی از روزهای ویژه شامل تخفیف قرار میگیرند که مُختص کاربران رسمی مرجع میباشد. آیا لیستی برای مشاهدهی برنامههای توسعه یافته توسط Qt داریم؟ بسیاری از برنامههای قدرتمند و خارقالعادهای توسط سیپلاسپلاس توسعه داده میشوند که میتوان لیست عظیمی از آنها را نام برد. اما در این میان لیستی از برنامههایی که تحت کیوت توسعه داده شدهاند در این بخش آمده است. برای یادگیری استاندارد سیپلاسپلاس و تقویت مهارت خود در این زبان کدام مقالات و کتابها را پیشنهاد میکنید؟ علاوه بر این که شما میتوانید در مرجع به دنبال آموزشهای مرتبط با این زبان باشید، پیشنهاد ما این است که از مراجع رسمی آن نیز استفاده کنید. برخی از آنها به صورت زیر آمدهاند: cppreference.com http://www.cplusplus.com/ Learn C++ C++ Tutorial | SoloLearn: Learn to code for FREE! Learn C++ (Introduction and Tutorials to C++ Programming) اگر سوالی داشته باشم کجا میتوانم آن را مطرح کرده و به پاسخ خود برسم؟ شما میتوانید برای سوال و پرسش در انجمنهای این مرجع اقدام کنید. اساتید و دوستان با تجربه سوالات شما را دریافت و مناسبترین پاسخها را ارائه خواهند داد. همچنین شما میتوانید ما را در گروه و کانال تلگرامی دنبال کنید. نکته (در این پُست بنابر اهداف فرهنگسازی برای حق چاپ) فایلهای مرتبط با کتابهای آموزشی زبان اصل و یا زبان فارسی قرار داده نشده است. کتابهای زیادی در رابطه با این زبان وجود دارند که به زبان اصلی میباشند اما برای احترام به نویسندهی آنها از ارسال چنین فایلهایی معذوریم. این پُست ممکن است ویرایش یا بهروز رسانی شود.-
- پیشنیازات
- از کجا
- (و 4 مورد دیگر)