• 1399/04/13

انتخاب زبان :

سلام من یه دانش اموز کلاس هشتمی ام

عملا چیز زیادی از برنامه نویسی نمیدونم 

ببرنامه نویسی موبایل علاقه دارم 

نمیدونم با کدوم زبان شروع کنم؟؟؟؟

کمی دربارع فریمورک فلاتر تحقیق کردم ازش خوشم اومد یک سریا گفتن مستقیم با دارت شروع نکن اول برو ی زبانی مثل cpp بعد برو دارت 

ممنون میشم راهنماییم کنید

  • 1399/04/13
  • ساعت 19:51

سلام دوست عزیز من هم تو سن شما  دنبال  زبان بودم اگر به موبایل علاقه دارید باید زبان جاوا رو انتخاب کنید و که ساختار بسیار مشابهی با c++  داره و بعد از اون میتونید تکنولوژی های قدرتمند دیگه هم مثل زامارین که برای سی شارپ هست و بسیار عالی هست انتخاب کنید یا کاتلین و فلاتر اگر هم خواستید با جاوا ادامه دهید امیدوارم به شما کمک کرده باشه:)

 


  • 1399/04/13
  • ساعت 19:51

سلام دوست عزیز من هم تو سن شما  دنبال  زبان بودم اگر به موبایل علاقه دارید باید زبان جاوا رو انتخاب کنید و که ساختار بسیار مشابهی با c++  داره و بعد از اون میتونید تکنولوژی های قدرتمند دیگه هم مثل زامارین که برای سی شارپ هست و بسیار عالی هست انتخاب کنید یا کاتلین و فلاتر اگر هم خواستید با جاوا ادامه دهید امیدوارم به شما کمک کرده باشه:)

 


  • 1399/04/14
  • ساعت 10:55

ای جانم😊❤️

درود بر شما عزیزدلم؛ امیدوارم حالتون خوب و وقتتون به خیر و نیکی باشه☺️🌹

خب و امّا برنامه نویسی سمت گوشی های هوشمند...

من براتون سعی میکنم همه چی رو جامع و البتّه به زبان ساده بگم تا حدّ امکان، ولی اگه احیاناً از کلمه های قلمبه سلمبه استفاده کردم، با یه سرچ ساده میتونید به مفاهیم پی ببرید؛ در غیر اینصورت، باهامون درمیون بزارید تا درخدمتتون باشیم و بیشتر توضیح بدیم.

با در نظر گرفتن ورود حجم عظیمی از کاربرا توی سال های گذشته در سرتاسر جهان به گوشی های هوشمند، زبان های برنامه نویسی، ابزارها و تکنولوژی های زیادی هم برای ساخت نرم افزار توی این حوزه هم به وجود اومدن که خب، بدیهی هستش که تعدّد این همه ابزار و روش شمارو سردرگم بکنه؛ اونم با این سنّ کمی که دارید و مقطع حساسی که درش هستید👌

این روزا چنتا تکنولوژی متنوّع برای ساخت نرم افزار سمت گوشی های هوشمند مطرح هستن و بیشتر از اینا استفاده میشه که بنده بهتون پیشنهاد میکنم یکی از اینارو برای یادگیری و توسعۀ مهارتتون انتخاب بکنید😎

فقط قبل از اینکه بریم ادامه، اینو بگم که برای ساخت نرم افزار گوشی های هوشمند، تمام زبان های برنامه نویسی و تکنولوژی ها توی این حیطه رو به دوتا دسته تقسیم بندی می کنن:

الف) تکنولوژی های Native: این نوع ابزار ها و زبان های برنامه نویسی، مستقیماً و با حداقل واسطه ها با هستۀ (Kernel) سیستم عامل گوشی در ارتباط هستن. اگه نرم افزار شما قرار هستش که محاسبات و پردازش های سنگینی رو انجام بده، طبیعتاً این دسته از تکنولوژی ها براتون مناسب هستن. یاد گرفتن و کار کردن با این دسته یکم سخت تر از تکنولوژی های هیبریدی (Hybrid) هست.

ب) تکنولوژی های Hybrid: یادگیری این دسته از تکنولوژی های راحت تره و زیاد اذیّت نمیشید. امّا بر خلاف تکنولوژی های Native، این دسته برای نرم افزارهایی که پردازش های سنگینی رو انجام میدن اصلاً مناسب نیست و کارایی سیستم کاربر رو به شدّت کاهش میده! دلیلشم اینه که شما مثلاً یه اپلیکیشن اندرویدی نوشتید که از کاربر دوتا عدد رو میگیره، باهم جمع می کنه و توی خروجی نشون میده. توی پشت پردۀ تکنولوژی های Native، عیناً همونجوری که اپلیکیشن رو برنامه نویسی کردید همه چی اتّفاق میفته؛ یعنی از کاربر دوتا عدد رو میگیره، باهم جمع می کنه و توی خروجی نشون میده. امّا توی تکنولوژی های هیبریدی (Hybrid)، همه ی کدهایی که برای این برنامه نوشتید اوّل یه دور تبدیل به تکنولوژی های Native میشن، و بعدش اجرا میشن و کارایی که شما تعریف کردید رو انجام میدن! یعنی اوّل تبدیل به کد های محلّی و بومی (Native) میشن و بعدش که سیستم عامل فهمید و با خودش گفت: 

"آهان! حالا فهمیدم ازم میخوای چیکار کنم!"

بعدش برنامۀ شما اجرا میشه و شروع به گرفتن و جمع کردن و چاپ کردن دوتا عدد میکنه.

یه قانون نا نوشته توی علوم کامپیوتر میگه:

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

حالا که چنتا چیز میزِ جدید یادگرفتیم و ذهنمون یکم بازتر شده، بریم سراغ اینکه چه ابزار ها و زبان های برنامه نویسی ای مطرح هستن و یاد گرفتن کدوم یکی برامون بهتره😃

1- Java و XML: زبان برنامه نویسی جاوا خیلی مشهور هست و همونطور که توی عکس زیر هم مشاهده می کنید، در واقع تنها تکنولوژی محلّی و Native ای هستش که سیستم عامل اندروید ازش تغذیه میکنه.

[این عکس رو از صفحۀ 29 کتاب Android Security Internals برداشتم که یه دورنمایی از معماری سیستم عامل اندروید رو تو این عکس به نمایش میزاره و به وضوح می تونید تعامل زبان جاوا با سطح سیستم عامل اندروید رو لمس کنید.]

با XML هم که می تونید اسکلت بندی و ظاهر اپلیکیشن اندرویدی خودتون رو پیاده سازی کنید. (ناگفته نمونه که اگه یادگرفتن و کارکردن با زبان جاوا براتون سخت بود، می تونید از زبان برنامه نویسی Kotlin هم استفاده کنید.) اپلیکیشن های مشهور Spotify و Twitter از نمونه کار های این دسته هستند.

2- React Native: یه تکنولوژی فوق العاده جالب هستش که برای یادگیری اون به زبان برنامه نویسی جاوا اسکریپت نیاز دارید. برای پیاده سازی ظاهرش هم از کتابخونۀ React.js استفاده میشه. بزارید مزایا و معایب این تکنولوژی رو اینجوری براتون خلاصه بکنم👇👇👇

مزایا:

*می تونید فقط یک بار کد بنویسید ولی ازش دوتا خروجی هم برای اندروید و هم برای ios بگیرید! دیگه نیاز نیست برنامه نویسیِ ios هم یاد بگیرید.

*ساختار برنامه های React Native شبیه به مفاهیم وب هستن؛ پس کسی که حتّی یه کلمه هم از وب میدونه، اون یه کلمه میتونه بهش توی React Native کمک کنه‌!

*توی React Native با یه سیستم خاص کافیه گوشی خودتونو به لپ تاپ یا کامپیوتری که توش کد میزنین وصل کنید؛ بعدش دیگه نیاز به کامپایل کردن کد نیست!!! چون هر تغییری بدید توی کدتون، مستقیماً توی گوشیتون و نرم افزاری که دارین میسازین مستقیماً می بینید! (مثلاً توی Native میخواید یه متنی رو توی صفحۀ گوشی ببرید یکم به سمت چپ صفحه؛ باید مقدار جابجاییشو بزنید، و بعدش کامپایل کنید و صبر کنید تا خروجی رو مشاهده کنید. پس اگه برنامتون سنگین باشه، برای دیدن نتیجه تغییر یه متن ساده خیلی باید صبر کنید! ولی توی React Native همه چی جلوتونه مستقیم!)

معایب:

*از همه ی API ها نمیتونه پشتیبانی کنه و گه گداری در این مورد ضعیف عمل میکنه.

*زیاد با حافظه و هسته گوشی نمیتونید توش کار کنید و حافظه و هسته گوشی رو دستکاری کنید؛ چون  مجدّداً عرض میکنم که برخلاف Native، کد هایی که نوشتید مستیقاً اجراء نمیشن! کدهایی که نوشتید توی React Native تبدیل به Native میشن و بعدش توی گوشی اجراء میشن.

*برای نرم افزار های توسعه یافتۀ علمی و محاسباتی پیشرفته اصلاً مناسب نیست! اکثر اوقات برای محاسبات سنگین واقعاً نمیشه باهاش کاری کرد و کم میاره.

از جمله اپلیکیشن هایی که با React Native ساخته شدن میشه به Facebook، Instagram، Pinterest و Soundcloud اشاره کرد.

3- Flutter: برای کارکردن توی این چهارچوب، باید زبان برنامه نویسی دارت (Dart) رو یاد بگیرید. یادگرفتنش ممكنه براتون نسبت به جاوا اسكرپت و React Native سخت تر باشه ولی در عوضش به خاطر معماری های تمیزی که گوگل براش تعبیه کرده، می تونید نرم افزار های بسیار خوش ساختاری رو ازش خروجی بگیرید. راستی! Flutter هم مثل React Native با یه بار کد نوشتن می تونید هم زمان هم برای اندروید و هم برای ios خروجی بگیرید.اپلیکیشن های eBay، Google Ads App و Square با این تکنولوژی پیاده سازی شدن.

4- Xamarin: برای کار کردن با این تکنولوژی شما باید با زبان برنامه نویسی #C آشنا باشید. عملکرد و اجرای فوق العادۀ این تکنولوژی باعث شده خیلی بین توسعه دهنده ها و برنامه نویس ها مشهور بشه و تنها دلیلش هم، تغذیه کردن از #C هست. (چون زبان #C، مادرش جاوا بوده و از طرف دیگه، جاوا هم زبان محلّی سیستم عامل اندروید هست.) گرافیک سنگین از معایب این تکنولوژی هست و حجم نرم افزار های خروجیِ ازش، بیشتر از رقبا هستش که در حال حاظر توسعه دهنده های Xamarin در تلاش هستن تا این عیب رو به حداقل برسونن. The World Bank، Storyo، Insightly و FreshDirect از اپلیکیشن های مشهور این تکنولوژی هستن.

خب، و امّا در نهایت برسیم به توصیۀ خودِ من برای انتخاب زبان برنامه نویسی مناسب واسه گوشی های هوشمند:

اوّلاً باید به هیچ وجه من الوجوه و تحت هیچ شرایطی انتخابتون تعصّبی نباشه؛ تعصّبی یعنی مثلاً چون عباپور با فلان تکنولوژی کار میکنه و منم با عباپور حال میکنم، پس منم برم اون فلان تکنولوژی رو برای برنامه نویسی اندروید انتخاب کنم! این یعنی تعصّب و از نظر من اشتباهه... هر تکنولوژی مزایا و معایب خاص خودشو داره و بر اساس نیازتون باید ابزار هارو انتخاب کنید. يا اينكه چون اكثراً فلان زبان رو بهم توصيه ميكنن يا آقا/خانم x بهم گفت با فلان زبان کار کن، پس منم برم با اون فلان زبان کار کنم کاملاً کار اشتباهیه. [از نظر من!😊]

ثانیاً فرد یا افرادی که بهتون گفتن در ابتدا زبان برنامه نویسی ++C رو برای ورود به دنیای برنامه نویسی و ساخت و توسعۀ نرم افزار یاد بگیرید، نشون میده ذهنشون وسیع بوده و تجربۀ مطلوبی در زمینۀ برنامه نویسی دارند. اگه بخواید با حوصله وارد دنیای برنامه نویسی بشید یاد گرفتن زبان ++C رو به عنوان یه دس گرمی بهتون توصیه میکنم! مادر بسیاری از زبان های برنامه نویسی ++C هستش و در نتیجه مفاهیم زیادی (مثل Pointer/اشاره گر) توی این زبان هستند که توی سایر زبان های برنامه نویسی (مثل پایتون) نیستن. بعد از اینکه یه کوچولو با مفاهیم مقدّماتی توی ++C آشنا شدید و از هر بخشش یه چیزایی عایدتون شد، نوبت به انتخاب حیطۀ برنامه نویسی حرفه ای و مورد علاقۀ خودتون میرسه که باید انتخابش کنید.

ثالثاً با در نظر داشتن اینکه شما برنامه نویسی اندروید رو انتخاب کردید، با تشریح کامل من برای 4 تا از تکنولوژی های مطرح این حیطه، حالا حتماً خودتون می تونید یه دودوتا چهارتایی بکنید. امّا بنده هیچوقت به دانشجو ها نمیگم فلان زبان برنامه نویسی رو یاد بگیرید! من همیشه میگم برای حیطۀ مورد علاقۀ شما، زبان x هست و زبان y هست و زبان z هست؛ مزایا و معایب x رو براش تشریح میکنم، بعدش مزایا و معایب y رو براش تشریح میکنم و بعدش مزایا و معایب z رو براش تشریح میکنم. اینکه کدوم یکی رو انتخاب کنه میزارم دست خودش!😊

حالا شما می تونید با در نظر داشتن ویژگی های هر کدوم از تکنولوژی ها و زبان های برنامه نویسی مربوط بهشون، فرآیند یادگیری خودتون رو آغاز کنید ✌️

کوچکترین سوال یا نکتۀ گنگ و مبهمی که به ذهنتون رسید، سریع باهامون درمیون بزارید؛ درخدمتتون هستیم. دوستون دارم، زیاد...😊❤️


  • 1399/05/10
  • ساعت 13:11

سلام به استاد عزیز اقانوید چند تا سئوال خدمتتون دارم

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

واینکه میشه بپرسم خود شما از کجا اموزش لینوکس رو دیدید که حرفه ای شدید ؟

 

یک سئوال دیگه ای هم که داشتم درمورد زبان سی شارپ هستش من از بچگی دوست داشتم تو دانشگاه شریف مسابقه بدم و دنبال یک زبانی میگردم که باهاش بتونم تو مسابقات برنامه نویسی و خلاصه زمینه های دیگه برم مسابقه بدم به نظر شما زبان خوبی هستش چون هنوز شروعش نکردم 

 با تشکر از استاد عزیز 🌹🙏😘 


  • 1399/05/10
  • ساعت 14:49

درود بر "ahmad" عزیز☺️🌹

فرمودید:

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

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

فرمودید:

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

به نظرم نه نیاز هست جای دوری برید و نه هزینۀ خاصی متحمّل بشید؛ همکار گلم، مهندس قربانی عزیز، یه دورۀ آموزش مطلوب و مناسبی رو برای لینوکس تهیّه کردند که پیشنهاد بنده به شما هستش: لینک_1

فرمودید:

واینکه میشه بپرسم خود شما از کجا اموزش لینوکس رو دیدید که حرفه ای شدید ؟

واقعیّتشو بخواید من همیشه سعی میکنم همه چیو از مطالعه و کتاب خوندن یاد بگیرم؛ این در حالی هستش که همیشه به بچّه ها توصیه میکنم [به خصوص موقع ورود به یه حوزۀ خاص] تا از دوره های آموزشی استفاده کنن، چون مطالعه و یاد گرفتن از کتاب یه تعداد ترفند خاص نیاز داره که از طریق تجربه به دست میاد و یادگیری از روی کتاب رو چندان به دانشجوهای مبتدی توصیه نمیکنم.

فرمودید:

یک سئوال دیگه ای هم که داشتم درمورد زبان سی شارپ هستش من از بچگی دوست داشتم تو دانشگاه شریف مسابقه بدم و دنبال یک زبانی میگردم که باهاش بتونم تو مسابقات برنامه نویسی و خلاصه زمینه های دیگه برم مسابقه بدم به نظر شما زبان خوبی هستش چون هنوز شروعش نکردم 

ای جانم😃💗 دیدن اشتیاق و هیجانی که دانشجوهای با استعدادی مثل شما دارن، انرژی مارو مضاعف میکنه. نکته ای که هست اینه که زبان #C توسّط اکثر مسابقات بین المللی پشتیبانی نمیشه و لابلای سوال یکی از دانشجوها توضیح دادم راجع بهش: لینک_2

ولی قدرت زبان #C اونو توی زمینه های مختلف دنیای فنّاوری اطّلاعات و ارتباطات مطرح کرده و به نظرم به خوبی و با خیال راحت روش سرمایه گذاری بکنید.👍

در مورد مسابقات هم باید خدمتتون عرض کنم که سینتکس(گرامر) زبان #C خیلی شبیه به ++C و جاوا هستش(چون این دو زبان، پدر و مادر #C هستن) و از یکی از زبان های ++C و جاوا می تونید توی مسابقات استفاده کنید به راحتی! مورد آخری اینه که، اگه روزمۀ علمی و تحصیلی برای شما مهم هستش روی مسابقات تمرکز کنید و در غیر این صورت(یعنی اگه بازار کار براتون مهم تر هستش) پیشنهاد میکنم روی #C تمرکز کنید، چون قدرت زیادی داره ✌️

هر سوال یا نکتۀ مبهمی که به ذهنتون اومد باهامون درمیون بزارید؛ خوشحال میشیم بتونیم کمکتون کنیم😊🌷


  • 1399/05/10
  • ساعت 15:16

استاد خیلی خیلی ازتون ممنونم خیلی لطف کردید که کمکم کردید امیدوارم همیشه سلامت و تن درست باشید ❤❤🌹🌹


  • 1399/05/10
  • ساعت 17:42

سلام استاد عزیز خسته نباشید شرمنده مزاحمتون میشم چندتا سوال داشتم از خدمتتون

1-میخواستم بپرسم بعد از این دورتون لازمه باز هم الگوریتم و فلوچارت بخونم از کتاب یا منابع آموزشی دیگه یا همین دوره کافیه برای برنامه نویسی

2-برای شروع برنامه نویسی یه مقدار تحقیق کردم و دیدم برای شروع همه میگن با پایتون شروع کنید خیلی خوبه و من میخوام در زمینه برنامه های تحت ویندوز فعالیت کنم، برای شروع و ادامه چه زبان هایی رو پیشنهاد میکنید همین پایتون رو بخونم یا سی شارپ یا ++C ؟

با تشکر 


  • 1399/05/10
  • ساعت 22:38

درود بر "ali_shaah" گل گلاب🌹

الهی من دورت بگردم این چه حرفیه... چی چیو مزاحم فدات بشم! شما عزیز دلی😊❤️

بابت سوال اوّلتون باید عارض بشم که اگه بخواید برای بازار کار و آیندۀ شغلی حرکت کنید، خیر به هیچ وجه دیگه نیاز نیست راجع به الگوریتم و فلوچارت بدونید؛ تا همین اندازه کافیه.(در واقع این دورۀ آموزشی برای همین هدف ساخته شده که دانشجوهایی که میخوان وارد بازار کار بشن، فقط اون چیزایی که راجع به الگوریتم و فلوچارت برای بازارکار لازم هست رو یاد بگیرن.)

راجع به سوال دوّمتون من چنتا چیز میز میگم:

[به نظر من] اینکه بقیّه میگن چه زبان برنامه نویسی ای رو یاد بگیرید، نباید زیاد روش مانور بدید؛ این خود شما باید باشید که زبان دلخواهتون رو انتخاب می کنید، نه بقیّه! مدرّس/متخصّص/استاد یا هرکس دیگه ای وظیفش اینه که بهتون بگه توی حیطۀ موردنظر/موردعلاقۀ شما، چه زبان های برنامه نویسی ای مطرح و پرکاربرد هستن. بعدش باید بیاد نقاط ضعف و قوّت هرکدوم از زبان هارو بهتون بگه و ویژگی های هرکدوم رو با شما درمیون بزاره. در نهایت، بعد از اینکه با هر زبان توی اون حیطه و ویژگی هاش آشنا شدید، باید بر اساس شرایط و علایق خودتون زبان دلخواهتون رو برای شروع کار انتخاب کنید. نظر بنده رو هم در این مورد اگه بخواید، زبان #C و Java Script گزینه های مناسب تری برای برنامه نویسی تحت ویندوز هستن. امّا اینکه کدوم یک از این دوتا رو برای یادگیری انتخاب کنید، پیشنهاد میکنم خوب تحقیق و پرس و جو کنید راجع به ویژگی هاشون و درنهایت به نتیجه برسید و خودتون انتخاب کنید.(اگه زیاد تردید داشتید بین این دوتا، یه بخش جدید توی بخش پرسش و پاسخ همین دوره درست کنید تا اونجا بیشتر توضیح بدم راجع به این دوتا زبان.)

براتون آرزوی موفّقیّت دارم ✌️


logo-samandehi