Sunday, September 13, 2020

مزایای اندروید استودیو

 


۱. کدنویسی سریع

اجرای فوری: هر تغییر در کد رو در آنی از واحد اعمال می‌کنه بدون اینکه نیاز داشته باشید اپلیکیشنتون رو دوباره راه‌اندازی کنید و یا اون‌رو مورد بازسازی (Rebuild) قرار بدید. این موجب سریع‌تر شدن فرآیند ساخت اپلیکیشنتون می‌شه.

 

ویرایشگر کد هوشمند: با این امکان، توسعه‌ی اپلیکیشن خیلی سریع‌تر می‌شه. وقتی دارید کدتون رو می‌نویسید، ویرایشگر با توجه به تحلیل و بررسی کدتون به شما لیستی از پیشنهادات پیشرفته‌ای ارائه می‌ده. تنها با فشردن کلید Tab می‌تونید هر کدومشون رو که می‌خواید سریعا توی کدتون وارد کنید!

 

شبیه‌ساز فوق‌العاده: این قابلیت به شما اجازه می‌ده موارد مختلفی رو شبیه‌سازی کنید. شما می‌تونید کد خودتون رو روی پیکربندی دستگاه‌های مختلفی مثل گوشی‌های هوشمند، تبلت‌ها، گجت‌های پوشیدنی و تلویزیون‌های اندرویدی، تست کنید. قابلیت‌های فوق‌العاده‌ی دیگه‌ای هم مثل لوکیشن GPS، میزان تاخیر شبکه و ورودی مالتی‌تاچ رو می‌شه با این امکان شبیه‌سازی کرد.

 

۲. حس اطمینان از کدنویسی

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

 

Lintelligence: این قابلیت به شما کمک می‌کنه خیلی از مشکلات اجرایی، امنیتی و یا صحیح بودن کد رو با یک پیدا کنید. حدود ۲۸۰ Lint check وجود داره که می‌تونه به شما کمک کنه یک اپلیکیشن بی‌نقص بنویسید.

 

۳. ایجاد ساخت (Build) بدون محدودیت

سیستم ساخت‌های بسیار مناسب: این سیستم برای راحتی کاربران، بسیار منعطف طراحی شده. IDE همینطور، به شما سیستم مدیریت وابستگی اتوماسیون و پیکربندی ساخت‌های قابل تنظیم رو نیز ارائه می‌ده. کد‌های اندروید می‌تونن به منظور در بر گرفتن کتابخانه‌ها وساخت‌های محلی به کار گرفته بشن. این مسئله می‌تونه ساخت اپ‌‌های رو راحت‌تر کنه.

 

استفاده‌ی آسان برای تیم‌های توسعه‌: شما می‌تونید ابزار‌هایی از قبیل GitHub رو وارد محیط IDE کنید. همچنین می‌تونید همواره اطلاعات رو با تیمتون همگام‌سازی کنید. در واقع این سیستم به توسعه‌دهندگان اجازه می‌ده که یک محیط برای خودشون توی فضای IDE ایجاد کنن.

 

بهینه‌سازی برای تمامی دستگاه‌های اندرویدی: IDE برای همه‌ی انواع دستگاه‌ها بهینه‌سازی شده. همچنین رویکرد ساختاریافته‌ی موجود در IDE به شما این امکان رو می‌ده که برای یک طراحی به خصوص، کد منحصر به فرد خودش رو طراحی کنید.


 

۴. اپلیکیشن‌های غنی و متصل

پشتیبانی از C++ و NDK: درست مثل هر زبون برنامه‌نویسی دیگه‌ای، اینجا هم توسعه‌ی C/C++ پشتیبانی می‌شه. توی این محیط حتی این امکان هستش که بتونید سینتکس‌های مربوط به C/C++ رو بررسی و یا بازنویسی (Refactor) کنید. حتی این قابلیت وجود داره که بتونید CMake و اسکریپت‌های مبتنی بر NDK رو بدون ایجاد هیچ تغییری توی IDE اجرا کنید.

 

وجود سیستم Firebase و Cloud به صورت ادغام‌شده: این IDE یک دستیار Firebase هم داره. این دستیار به شما کمک می‌کنه Firebase رو به اپلیکیشن متصل کنید. به وسیله‌ی اون می‌تونید قابلیت‌هایی مثل احراز هویت و نوتیفیکیشن رو داخل محیط بررسی کنید. هم‌چنین با Google Cloud هم ادغام شده که در مجموع یک روش کامل برای ساختن اپلیکیشن فراهم می‌کنه.

 

۵. راحتی استفاده

ویرایشگر چیدمان (Layout): برای زمانی که در XML مشغول به توسعه هستید، یک ویرایشگر Drag and drop فراهم شده این فرآیند رو آسون‌تر می‌کنه.

 

بررسی APK: تحلیلگر APK موجود قابلیت این رو داره که از تمومی محتوای داخل APK شما رو بررسی کنه. همچنین می‌تونه سایز هر مولفه (Component) رو هم نمایش بده. می‌تونید به راحتی مشکلات فایل‌های DEX رو مشاهده کنید و همینطور دو APK رو با هم مقایسه کنین.

 

استودیوی دارایی‌های بُرداری: به کمک این می‌تونین از بازه‌ی بزرگی از تصاویر استفاده کنین. یک دایرکتوری به خصوص برای نگه‌داری تصاویر فراهم شده و همچنین می‌تونید یک فایل SVD یا PSD رو هم ادغام‌سازی کنین.

 

ویرایشگر ترجمه: این ابزار استفاده می‌شه تا همه‌‌ی منابع به کار گرفته‌شده رو بررسی و ترجمه کنه. بنابراین نیازی به این که تموم اون فایل‌های XML رو به منظور تاثیر منابع بررسی کنید، نیست.

Tuesday, September 8, 2020

چهار مرحله یادگیری جاوا اسکریپت

 یادگیری جاوا اسکریپت مانند بزرگ شدن است. مراحل مختلف رشد وجود دارد. می‌توانید آن را در چهار مرحله زیر مشاهده کنید:

فاز نوزاد

فاز کودک

مرحله نوجوان

مرحله بزرگسالان

بگذارید هر مرحله را به طور خلاصه مرور کنیم تا بفهمید کجا هستید و کجا باید انرژی خود را متمرکز کنید.

 

فاز  نوزاد

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

 

فاز کودک

اگر از قبل با سینتکس مقدماتی JavaScript آشنا باشید، در مرحله کودک هستید. در این مرحله، شما هنوز نمی‌دانید که چگونه از ابتدا چیزها را بسازید. شما اغلب به کمک احتیاج دارید. شاید بتوانید پس از ساعت‌ها سرچ کردن در گوگل چیزی را کپی پیست کرده و اصلاح کنید، اما هنوز به مهارت‌های JavaScript خود اطمینان ندارید. شما نمی دانید DOM چگونه کار می‌کند. شما نمی‌دانید که چگونه کدها را از ابتدا بسازید.

 

در این مرحله، بر روش‌های یادگیری تمرکز کنید که توسط DOM به شما ارائه شده است. درباره انتخاب عناصر، پیمایشDOM ، افزودن و حذف موارد ازDOM ، تغییر سبک‌ها و کلاس‌ها بدانید. سعی کنید چیزهای ساده ای مثل آکاردئون درست کنید. حتی ممکن است با کلیک روی یک دکمه یک منو نشان داده شود. در ابتدا کپی پیست کردن اشکالی ندارد، اما مطمئن شوید که مولفه component خود را از ابتدا بنویسید تا مکانیک اصلی آن را بفهمید.

 

مرحله نوجوان

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

 

گام بعدی یادگیری بهترین روش‌ها از کتاب‌ها و متخصصان اطراف است. آنچه که می‌توانید را بیاموزید، سپس آنچه را که ساخته‌اید دوباره بسازید. از روشهای جدیدی که آموخته‌اید برای درونی کردن آن‌ها استفاده کنید. این همان جایی است که می‌خواهید برنامه نویسی شی گرا (OOP) و برنامه نویسی عملکردی (FP) را شروع کنید.

 

مرحله بزرگسالان

سرانجام، در مرحله بزرگسالان، شما به قدری JavaScript می‌دانید که می‌تواند خطرناک باشد. تقریباً هر چیزی که بخواهید می‌توانید بسازید. از تمیزی کد خود اطمینان دارید. شما بهترین روش‌ها را می‌دانید و از همه آن‌ها استفاده کرده‌اید. اکنون وقت آن است که لانه را ترک کرده و به دنبال چیزهای جدید و مرتبط باشید.

 

در اینجا، شما چند گزینه دارید:

آموزش جاوا اسکریپت

می‌توانید یک چارچوب (frontend) مانند Angular ،Vue  یا React یاد بگیرید.

می‌توانید Node را یاد بگیرید و یک backend بسازید.

می‌توانید حتی عمیق تر به JavaScript بروید.

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

 

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

 

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

 

اگر تصمیم بگیرید بیشتر به عمق JavaScript بروید، یاد می‌گیرید که چگونه کد بهتر و تمیزتری بنویسید. در نهایت، این امر به شما در هر Node یا هر فریم ورک JavaScript که قصد دارید انتخاب کنید، کمک می‌کند.

 

نتیجه گیری:

در اینجا ما یک نقشه راه برای شما تعریف کردیم که یادگیری جاوا اسکریپت برای شما ساده‌تر و سریع‌تر باشد و از سردرگمی در بیایید. جاوا اسکریپ یک زبان مفسری سطح بالا است که به شما امکان برنامه‌نویسی سمت سرور (Server Side) را می‌دهد و می‌توانید با آن اپلیکیشن‌های موبایل، بازی و .. ایجاد کنید.

مهمترین تجربیات من در خصوص آموزش یادگیری ماشین

 


الف) برخی از اصول پایتون را یاد بگیرید .(زمان مورد نیاز 4-3 ماه)

این که دقیقا چه زبانی باشد چندان مهم نیست. می تواند R ، Java ، Python ، و یا هرچیزی باشد. آنچه مهم است انتخاب یکی از زبان ها و چسبیدن به آن است! اگر می خواهید به یادگیری ماشین کاربردی وارد شوید ، یادگیری کد اجباری است.
یک دوره پایه را از طریق اینترنت انتخاب کرده و طی چند ماه با اراده و مستمر آموزش آن را دنبال کنید.نیاز نیست در آن زبان حرفه ای شوید . البته امتیاز بیشتر را زمانی گرفته اید که همزمان به آموزش علوم داده هم بپردازید. DataCamp برای این کار عالی است. اگرچه در بعضی مواقع سخت خواهد بود اما پیشنهاد من به شما یادگیری یک زبان برنامه نویسی مانند پایتون در راستای Data Science و همزمان با آن میباشد.

ب) وقتی آماده نیستید، کارها را شروع کنید.

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

حرف زدن یک کودک 3 ساله را در نظر بگیرید. کلمات را دائما بیان میکند و منظور خود را میرساند اما نه تلفظ درستی دارد نه ساختار جمله و نه دستور زبان را صحیح بیان میکند. .ولی در نهایت زبان مادری را به طور کامل خواهد آموخت …

پ) منابع زیادی برای یادگیری وجود دارد مراقب باشید سردرگم نشوید .


همه روزه دوره های زیادی درخصوص یادگیری ماشین برگزار می شود.که معمولا اکثر آنها عالی هستند و پیدا کردن یک دوره بی ارزش به ندرت رخ میدهد.اما از آنجا که منابع بسیاری وجود دارند، انتخاب آن ها جهت آموزش یادگیری ماشین دشوار است.
این موضوع دام دیگری است که می تواند شما را عقب نگه دارد.برای تحقیق بیشتر در این مورد ، من مدرک کارشناسی ارشد AI خود را نیز تهیه کردم .  هیچ کس به اندازه خودتان نمیتواند تشخیص دهد کدام منبع یادگیری مناسب شما خواهد بود ولی به عنوان سرآمد ، سه منبعی که بیشتر با آنچه که من همه روزه انجام می دهم مطابقت دارد ، کتابهای یادگیری ماشین Hands-On ، دوره یادگیری ماشین fastai و علم داده کاربردی با دوره Python در Coursera است. پس بهتر است پس از تجربه چند ماه کار با پایتون، این موارد را علامت گذاری و از آن ها استفاده کنید.

ت)دنبال کردن تحقیقات لازم است ولی اگر نتوانید از آن ها استفاده کنید بیهوده اند …

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

ث)هر روز کمی تمرین کنید.

در 3 سالگی شما شروع به آموزش یادگیری زبان کردید .و در مدت دو سال ، شما از هیچ حرفی و کلمه ای به گفتگو با افرادی که برای ده ها سال صحبت می کردند ، رفتید. اما چطور؟
زیرا هرروز ناخواسته تمرین کردید. و بعد از مدتی به یادگیری بیشتر کنجکاو و علاقه مند شدید.
اگر در آموختن مهارتی هرروز1٪ بهتراز روز قبل شوید = 370٪ در پایان سال بهتر شده اید.
اگر یک روز خسته و بی حوصله بودید ، مهم نیست ، طبیعیست و اتفاق می افتد. مهم این است وقتی دوباره امکانش بود از سر بگیرید.

ج) به خاطر ندانستن چیزی ، خود را سرزنش نکنید 


آیا تاکنون موتورپیشنهاد دهنده ساخته اید؟
“”نه””
ما پروژه ای داریم که به این موتور نیاز دارد ، فکر می کنید می توانید آن را بنویسید؟
“مطمئنا”
من هم هرگز موتور توصیه ای نساخته بودم اما در طول یک هفته انجامش دادم و در حین انجام چیزهای جدید بسیاری آموختم.
“بیشتر مردم فکر می کنند که یادگیری پس از دبیرستان یا دانشگاه متوقف می شود که کاملا در اشتباهند .
اگر در کاری که قبلاً انجام داده اید ناکام باشید ، بد نیست.
مثلا شما تمام عمر خود را پیاده روی کرده اید اما خودتان را وقتی به زمین میخورید سرزنش نمی کنید.
این اتفاق از نظر شما طبیعیست و به پیاده روی خود ادامه میدهید .
پس چرا پذیرش ابهام و ناکامی در یک تجربه جدید که قبلاً هرگز آن کار را نکرده اید برایتان دشوار است ؟


ازدید من روند یادگیری ماشین به این صورت است :
سال اول: شما بسیاری ازچیزها را نمیدانید.
سال دوم: شما بهترازسال گذشته هستید اما احساس میکنید بیشترازقبل نیاز به آموختن دارید. زیرا می دانید که تا چه اندازه نمی دانید!
سال سوم: آغوشتان را برای دنیایی از نادانسته ها بگشایید !
پس آیا سرزنش خود برای عدم اطلاع از چیزی به شما برای یادگیری بیشتر کمکی خواهد کرد؟
“هرگز”
یادگیری چیز جدید زمان بر بوده و درپروسه یادگیری هر روز، روز اول خواهد بود.

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

Sunday, September 6, 2020

بک اند چیست و چه کاربردی دارد؟

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

بک اند “Backend” عموما از سه بخش تشکیل می شود: یک سرور، یک برنامه و یک پایگاه داده‌ها (دیتا بیس).
اگر به عنوان مثال قصد خرید وسیله‌ای از یک وب‌سایت را داشته باشید، سایت را باز می‌کنید و با فرات‌اند تعامل می‌کنید. زمانی که شما اطلاعاتی نظیر ادرس وارد می‌کنید، سایت اطلاعات شمارا در پایگاه داده‌ی خود ذخیره می‌کند. تمام اطلاعاتی که وارد کردید در سرور باقی می‌ماند و اگر شما بعدها با همان حساب کاربری وارد سایت شوید می‌توانید تمام اطلاعات سفارشات و ادرس‌هایی که وارد کردید را مشاهده کنید.

 

به فردی که با استفاده از تکنولوژی‌های مختلف، ارتباط را میان سرور و دیتابیس برقرار می‌کند را توسعه دهنده بک اند “Backend Developer” می گوییم.
Backend یا بک اند، به بخشی از یک وب سایت یا نرم افزار می‌گویند که برای کاربران قابل مشاهده نیست. به عبارتی دیگر هسته و مغز یک سایت است که وظیفه کنترل منطق آن را بر عهده دارد. این بخش از سایت مانند قسمتی از کوه یخ است که در زیر سطح آب قرار گرفته است. سمت سرور با بخش سمت کاربر ارتباط مستقیم دارد و به اجزایی که در رابط کاربری طراحی شده‌اند جان می‌بخشد. برنامه نویس بک اند باید اطلاعات را متناسب با اهداف مختلف از پایگاه‌داده دریافت کند و در صورت نیاز پس از پردازش به کاربر نمایش دهد.

تکنولوژی های بک اند عموما شامل زبانهای برنامه نویسی مانند PHP ،Ruby ،Python و غیره می‌باشند. همچنین برای اینکه این تکنولوژی ها آسان تر نیز شوند گاهی از فریم ورک هایی مانند Ruby on Rails، Cake PHP و … برای سرعت دادن به توسعه برنامه استفاده می شود.
بسیاری از افرادی که به تازگی وارد این شاخه کاری می‌شوند، بسیار کلماتی مانند وردپرس، جوملا، دروپال و … را می‌شنوند. به عنوان مثال وردپرس یک مثال بسیار خوب برای کارکرد فرانت اند و بک اند با هم می باشد. چرا که وردپرس بر اساس یک فریم ورک کد باز بر اساس زبان برنامه نویسی PHP به سادگی بر روی یک سرور به همراه دیتابیس قابل نصب می‌باشد و سپس طراحان عملکردها و ظاهر سایت را با استفاده از کدنویسی متناسب نیاز تغییر می‌دهند.

Saturday, September 5, 2020

فرانت اند چیست؟

 

فرانت اند (Frontend) چیست؟

برای توضیح فرات‌اند نیز، مانند بک‌اند، از معنای لغوی آن شروع می‌کنیم. Front در زبان انگلیسی به معنای جلو/پیش می‌باشد. در طراحی سایت فرات اند به آن بخشی گفته می‌شود که توسط کاربر قابل مشاهده است و با آن تعامل ایجاد می‌کند. فرانت اند کدهای غیر قابل فهم برای کاربران را در قالب ظاهری گرافیکی و بصری به آن‌ها نمایش می‌دهد تا استفاده از بخش‌های مختلف سایت برایشان ساده‌تر شود. در این بخش فرم‌های ورودی اطلاعات، صداها، تصاویر، ویدیوها و به صورت کلی هر چیز دیگری که برای کاربر قابل درک باشد، قرار می‌گیرد.
فرانت اند “Frontend” معمولا از دو بخش تشکیل می شود: طراحی سایت و توسعه فرانت‌اند وب.
در بخش طراحی وب، طراحان با نرم افزار‌های گرافیکی مانند فتوشاپ یا آدوبی ایکس‌دی ظاهر سایت را طراحی می‌کنند. اما بخش توسعه رابط کاربری مربوط به پیاده‌سازی ظاهر سایت در قالب کدهای HTML ،CSS و JavaScript است. زبان‌های برنامه‌نویسی که در فرانت به کار می‌روند، سمت کاربر یا Client Side می‌باشند. بنابراین کدهای نوشته شده در فرانت در مرورگر کاربر پردازش و اجرا می‌شوند. یعنی کاربر به‌راحتی به این کدها دسترسی مستقیم دارد و می‌تواند آن‌ها را مشاهده کند. فرانت‌اند با بخش بک‌اند (Backend) در ارتباط  دارد.

 

در گذشته اگر کسی از توسعه صحبت می‌کرد، عموما مربوط به بخش بک اند “Backend” بود، اما در سال‌های اخیر این موضوع بسیار تغییر کرده است و نیاز داریم میان کسی که سایت را در نرم افزاری‌های گرافیکی طراحی می‌کند و کسی که آن‌ها را تبدیل به کدهای HTML و CSS می‌کند، تفاوت قائل شویم. این موضوع زمانی که طراحان به سوی استفاده از جاوا اسکریپ و JQuery روی آوردند بسیار جدی‌تر شد.

Wednesday, September 2, 2020

طراحی وب با برنامه نویسی آن چه تفاوتی دارد؟

 اغلب افراد متاسفانه درک درستی از تفاوت مفاهیم طراحی سایت و برنامه نویسی سایت ندارند و این موضوع متاسفانه در بین کارفرماها نیز بارها دیده شده است.

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

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

آموزش طراحی و برنامه نویسی سایت

 

برای آموزش طراحی و برنامه نویسی سایت از کجا شروع کنم؟

برای شروع آموزش طراحی و برنامه نویسی سایت منابع بسیار زیادی در سطح وب وجود دارد و جدا از آن، شما همچنین می‌توانید از کلاس های آموزشی که بسیاری از موسسات به صورت حضوری و آنلاین استفاده کنید.
اما این دوره های آموزشی اغلب سه ایراد اساسی دارند:

  • آموزش ها بدون پیش نیاز نیست.
  • آموزش ها به صورت پروژه محور و عملی اجرا نمی شود.
  • برخی آموزشگاه ها و موسسات قیمت های بسیار بالایی را برای دوره های خود در نظر گرفته اند.


Tuesday, September 1, 2020

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

 


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


از tom درس مهمی را آموختم. این که که هیچ کتابی نمی تواند شما را آموزش دهد. درعوض تحقیقات سرگرم کننده ودر عین حال بسیار آموزنده است.
او سخت تر از هر کسی که من ملاقات کرده بودم کارو تحقیق می کرد و این درس اثر بزرگی بر من گذاشت و از آن زمان تا کنون با من ماند.
پس از اخذ مدرک دکترا ، من در اواخر سال 1989 به IBM Watson Research در نیویورک پیوستم ، جایی که آنها نتوانستند تشخیص دهند که یک محقق ماشین لرنینگ برای چه کاری مناسب است بنابراین مرا به یک گروه روباتیک تازه تشکیل بردند. من هیچ زمینه ای در این حیطه نداشتم و هرگزیک ربات را برنامه نویسی نکرده بودم.

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

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


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