<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
    <channel>
        <title>نوشته های intern plus plus</title>
        <link>https://virgool.io/feed/@intern_plus_plus</link>
        <description>مجله ی اینترنتی برای کسایی که میخوان برنامه نویس بشن internplusplus.ir</description>
        <language>fa</language>
        <pubDate>2026-04-15 09:46:08</pubDate>
        <image>
            <url>https://files.virgool.io/upload/users/143910/avatar/HQHhh8.png?height=120&amp;width=120</url>
            <title>intern plus plus</title>
            <link>https://virgool.io/@intern_plus_plus</link>
        </image>

                    <item>
                <title>چالش برنامه نویسی</title>
                <link>https://virgool.io/intern-plus-plus/%DA%86%D8%A7%D9%84%D8%B4-%D8%A8%D8%B1%D9%86%D8%A7%D9%85%D9%87-%D9%86%D9%88%DB%8C%D8%B3%DB%8C-zy0tjgvuifjg</link>
                <description>سلام حالتون چطوره؟امروز میخوام شما ویرگولی های عزیز رو به یه چالش دعوت کنم.چالشی که توش هر هفته یسری سوال از کوئرا انتخاب میکنم و همه میریم حل میکنیم و راه حل هامون رو برای هم توی گروه تلگرام میفرستیم.بعععععععععععععدددددکد همدیگه رو review میکنیم. یعنی میبینیم و ایراداتش رو میگیم.خلاصه که کلی کیف میده و تمرین خیلی خوبیه برای اینکه قدرت حل مساله خودمون رو بالا ببریم.اگه خواستید پاشید بیاید :)لینک گروه تلگرام:https://t.me/intern_plus_plus_group</description>
                <category>intern plus plus</category>
                <author>intern plus plus</author>
                <pubDate>Fri, 18 Jun 2021 23:09:03 +0430</pubDate>
            </item>
                    <item>
                <title>سفر به اعماق کامپیوتر - قسمت یازدهم (کار با رنگ ها)</title>
                <link>https://virgool.io/intern-plus-plus/%D8%B3%D9%81%D8%B1-%D8%A8%D9%87-%D8%A7%D8%B9%D9%85%D8%A7%D9%82-%DA%A9%D8%A7%D9%85%D9%BE%DB%8C%D9%88%D8%AA%D8%B1-%D9%82%D8%B3%D9%85%D8%AA-%DB%8C%D8%A7%D8%B2%D8%AF%D9%87%D9%85-%DA%A9%D8%A7%D8%B1-%D8%A8%D8%A7-%D8%B1%D9%86%DA%AF-%D9%87%D8%A7-hadyhbdymjvw</link>
                <description>سلام.حالتون چطوره؟توی این قسمت با استاندارد رنگ ها بیشتر آشنا میشیم و در ادامه با اطلاعاتی که به دست میاریم یسری جینگولک بازی (نوشتن انیمیشن و ترکیب دوتا رنگ و...) در میاریم و با دونسته هامون تفریح میکنیم.  این چنل تلگرام: https://t.me/intern_plus_plusاینم گروه تلگرام: https://t.me/intern_plus_plus_group اینم جاهای دیگه: https://internplusplus.irممنون میشم اگه ویدیو رو از یوتوب ببینید ولی هر جور راحتید. https://aparat.com/v/BiDr8 کد نوشته شده در این قسمت:&lt;body&gt;&lt;div id=&amp;quotitem1&amp;quot style=&amp;quotheight: 500;width: 500; background-color: #000000;&amp;quot&gt;&lt;/div&gt;&lt;div id=&amp;quotitem2&amp;quot style=&amp;quotheight: 500;width: 500; background-color: #000000;&amp;quot&gt;&lt;/div&gt;&lt;div id=&amp;quotitem3&amp;quot style=&amp;quotheight: 500;width: 500; background-color: #000000;&amp;quot&gt;&lt;/div&gt;&lt;/body&gt;function setColor(color,id){document.getElementById(id).style.backgroundColor = color}function r255(){return Math.random() * 255}function avg(color1,color2){var r = Math.round(color1[0] + color2[0]) / 2var g = Math.round(color1[1] + color2[1]) / 2var b = Math.round(color1[2] + color2[2]) / 2return [r,g,b]}var color1 = [r255(),r255(),r255()]var color2 = [r255(),r255(),r255()]var avgColor = avg(color1,color2)setColor(`rgb(${color1[0]},${color1[1]},${color1[2]})`,&amp;quotitem1&amp;quot)setColor(`rgb(${color2[0]},${color2[1]},${color2[2]})`,&amp;quotitem2&amp;quot)setColor(`rgb(${avgColor[0]},${avgColor[1]},${avgColor[2]})`,&amp;quotitem3&amp;quot)// let red = 255// let blue = 0// setInterval&#40;(&#41; =&gt; {//     red--//     blue++// }, 10);کد بقیه قسمت ها هم توی گیتهاب ما پیدا میشه: https://github.com/intern-plus-plus/Travel-to-depths-of-computer/blob/main/RGB/index.html پایدار باشید.</description>
                <category>intern plus plus</category>
                <author>intern plus plus</author>
                <pubDate>Fri, 18 Jun 2021 22:58:29 +0430</pubDate>
            </item>
                    <item>
                <title>سفر به اعماق کامپیوتر - قسمت دهم (برنامه نویسی چند نخی)</title>
                <link>https://virgool.io/coderlife/%D8%B3%D9%81%D8%B1-%D8%A8%D9%87-%D8%A7%D8%B9%D9%85%D8%A7%D9%82-%DA%A9%D8%A7%D9%85%D9%BE%DB%8C%D9%88%D8%AA%D8%B1-%D9%82%D8%B3%D9%85%D8%AA-%D8%AF%D9%87%D9%85-%D8%A8%D8%B1%D9%86%D8%A7%D9%85%D9%87-%D9%86%D9%88%DB%8C%D8%B3%DB%8C-%DA%86%D9%86%D8%AF-%D9%86%D8%AE%DB%8C-yxlcheazzgmc</link>
                <description>سلام.️حالتون چطوره؟?بعد یه هفته غیبت برگشتم.توی این قسمت در مورد مفهوم برنامه نویسی چند نخی حرف میزنیم. یه مثال میزنیم (سرعت اجرا یه برنامه رو دو برابر میکنیم) و میگم که کجا ها و چجوری میتونید ازش استفاده کنید.ویدیو رو میتونید از لینک های زیر ببینید:youtube: https://youtu.be/Y3XIkbyrr84aparat: https://aparat.com/v/eRYTN https://aparat.com/v/eRYTN اینم کدی که توی این قسمت نوشته شد:import java.util.Date; 
 
public class ThreadTest{ 
 
    static boolean checkPrime(int n) { 
        int i, m = 0, flag = 0; 
        m = n / 2; 
        if (n == 0 || n == 1) { 
            return false; 
        } else { 
            for (i = 2; i &lt;= m; i++) { 
                if (n % i == 0) { 
                    return false; 
                } 
            } 
            if (flag == 0) { 
                return true; 
            } 
        } // end of else 
        return false; 
    } 
 
    static void countPrimes(){ 
        int count = 0; 
        for(int i=0 ; i&lt;1000000 ; i++){ 
            if(checkPrime(i)){ 
                count++; 
            } 
        } 
        System.out.println(count); 
    } 
 
    static int count = 0; 
    static boolean isFirstDone=false; 
    static void countPrimesMT(){ 
 
        new Thread(new Runnable(){ 
            @Override 
            public void run() { 
                for (int i = 0; i &lt; 700000; i++) { 
                    if (checkPrime(i)) { 
                        count++; 
                    } 
                } 
                if(!isFirstDone){ 
                    isFirstDone=true; 
                }else{ 
                    System.out.println(count); 
                } 
            } 
        }).start(); 
        for (int i = 700000; i &lt; 1000000; i++) { 
            if (checkPrime(i)) { 
                count++; 
            } 
        } 
        if (!isFirstDone) { 
            isFirstDone = true; 
        } else { 
            System.out.println(count); 
        } 
    } 
 
    public static void main(String[] args) { 
 
        long startTime = new Date().getTime(); 
        countPrimes(); 
        long endTime = new Date().getTime(); 
        System.out.println(endTime-startTime); 
 
        startTime = new Date().getTime(); 
        countPrimesMT(); 
        endTime = new Date().getTime(); 
        System.out.println(endTime-startTime); 
 
    } 
}اینم که همچنان گروه تلگراممونه: https://t.me/intern_plus_plus_groupاینم که لینک گیت هاب ماس که کد هایی که مینویسم رو میزارم:https://github.com/intern-plus-plus/باعث خوشحالی من میشه اگه این ویدیو رو به کسایی که فکر میکنید به دردشون میخوره بفرستید.website: internplusplus.irtelegram: @intern_plus_plus#سفر_به_اعماق_کامپیوتر</description>
                <category>intern plus plus</category>
                <author>intern plus plus</author>
                <pubDate>Thu, 03 Jun 2021 21:01:03 +0430</pubDate>
            </item>
                    <item>
                <title>سفر به اعماق کامپیوتر - قسمت نهم (مشتق و انتگرال)</title>
                <link>https://virgool.io/@intern_plus_plus/%D8%B3%D9%81%D8%B1-%D8%A8%D9%87-%D8%A7%D8%B9%D9%85%D8%A7%D9%82-%DA%A9%D8%A7%D9%85%D9%BE%DB%8C%D9%88%D8%AA%D8%B1-%D9%82%D8%B3%D9%85%D8%AA-%D9%86%D9%87%D9%85-%D9%85%D8%B4%D8%AA%D9%82-%D9%88-%D8%A7%D9%86%D8%AA%DA%AF%D8%B1%D8%A7%D9%84-s2ajt1s4x8gm</link>
                <description>سلام.️حالتون چطوره؟?با یه قسمت دیگه از سفر به اعماق کامپیوتر برگشتم.توی این قسمت بدون استفاده از فرمول های مشتق و انتگرال میخوایم با زبون C برنامه ای بنویسیم که مشتق و انتگرال رو حساب کنه و ببینیم آیا این کار واقعا راحته یا نه. (راهنمایی: راحته)ویدیو رو میتونید از یوتوب یا آپارات  یا همین زیر (ترجیحا از یوتوب) ببینید: https://aparat.com/v/umtG8 آخر ویدیو هم یه چالش داریم?. هر کی حل کرد اینجا بفرسته که در موردش صحبت کنیم: https://t.me/intern_plus_plus_groupاینم کد نوشته شده توی این قسمت:#include&lt;stdio.h&gt; 
 
double f(double x){ 
    return x*x + 1; 
} 
 
// 2x  
 
double epsilon = 0.0000001; 
double moshtah(double x){ 
 
    double x1 = x+epsilon; 
 
    double y = f(x); 
    double y1 = f(x1); 
 
    return (y-y1)/(x-x1); 
} 
 
double antegral(double minX,double maxX){ 
 
    double sum = 0; 
    for (double i = minX; i &lt;= maxX; i+=epsilon){ 
        double s = epsilon * f(i); 
        sum+=s; 
    } 
    return sum; 
} 
 
 
int main(){ 
 
    printf(&amp;quot%f&amp;quot,antegral(1,5)); 
 
}باعث خوشحالی من میشه اگه این ویدیو رو به کسایی که فکر میکنید به دردشون میخوره بفرستید.website: internplusplus.irtelegram: @intern_plus_plus#سفر_به_اعماق_کامپیوتر</description>
                <category>intern plus plus</category>
                <author>intern plus plus</author>
                <pubDate>Thu, 20 May 2021 21:32:30 +0430</pubDate>
            </item>
                    <item>
                <title>سفر به اعماق کامپیوتر - قسمت هشتم (رندوم)</title>
                <link>https://virgool.io/@intern_plus_plus/%D8%B3%D9%81%D8%B1-%D8%A8%D9%87-%D8%A7%D8%B9%D9%85%D8%A7%D9%82-%DA%A9%D8%A7%D9%85%D9%BE%DB%8C%D9%88%D8%AA%D8%B1-%D9%82%D8%B3%D9%85%D8%AA-%D9%87%D8%B4%D8%AA%D9%85-%D8%B1%D9%86%D8%AF%D9%88%D9%85-efkfexirs4dv</link>
                <description>سلام.️?️حالتون چطوره؟?همچنان دارم هر پنجشنبه یه ویدیو میزارم.?امروز هم با یه سفر به اعماق کامپیوتر اومدم که در مورد رندوم صحبت کنیم. و ببینیم میتونیم یه تابع بنویسیم که رندوم درست کنه یا نه (راهنمایی: معلومه که میتونیم).ویدیو رو میتونید از یوتوب یا آپارات های زیر ببینید: https://aparat.com/v/lAZXM اینم کد هایی که توی این قسمت نوشته شده:function ut(){
  return new Date().getTime() % 100;
}

var seed=46;
function random99(){
    seed = seed + seed + ut() + 7;
    seed = seed * seed * ut() * 3;
    seed = seed % 100
    return seed;
}
function random(min,max){
    var r =random99();
    return min + (r * (max-min)/100);
}
for(let i=0 ; i&lt;50 ; i++){
    console.log(random(25,75));
}اینم گروه تلگرامی برای سوالا و...  https://t.me/intern_plus_plus_groupباعث خوشحالی من میشه اگه این ویدیو رو به کسایی که فکر میکنید به دردشون میخوره بفرستیدwebsite: internplusplus.irtelegram: @intern_plus_plus</description>
                <category>intern plus plus</category>
                <author>intern plus plus</author>
                <pubDate>Fri, 14 May 2021 11:50:46 +0430</pubDate>
            </item>
                    <item>
                <title>زمان توی کامپیوتر چطوری کار میکنه؟</title>
                <link>https://virgool.io/intern-plus-plus/%D8%B2%D9%85%D8%A7%D9%86-%D8%AA%D9%88%DB%8C-%DA%A9%D8%A7%D9%85%D9%BE%DB%8C%D9%88%D8%AA%D8%B1-%DA%86%D8%B7%D9%88%D8%B1%DB%8C-%DA%A9%D8%A7%D8%B1-%D9%85%DB%8C%DA%A9%D9%86%D9%87-hsqzfcvptdij</link>
                <description>سلام.️?️حالتون چطوره؟?با یه قسمت دیگه از سفر به اعماق کامپیوتر برگشتیم ولی این بار به صورت ویدیو کست.در مورد زمان توی کامپیوتر و نحوه محاسبات و ذخیره سازی و استاندارد هاش حرف میزنیم.که به زبون ساده و یک بار برای همیشه یاد بگیریمش.ویدیو رو میتونید از یوتوب یا آپارات ببینید های زیر ببینید: https://aparat.com/v/LaktW سوالی چیزی هم بود اینجا میتونید بپرسید: https://t.me/intern_plus_plus_groupباعث خوشحالی من میشه اگه این ویدیو رو به کسایی که فکر میکنید به دردشون میخوره بفرستید.</description>
                <category>intern plus plus</category>
                <author>intern plus plus</author>
                <pubDate>Thu, 06 May 2021 19:16:56 +0430</pubDate>
            </item>
                    <item>
                <title>بریم تو کد - قسمت چهارم (تابع)</title>
                <link>https://virgool.io/@intern_plus_plus/%D8%A8%D8%B1%DB%8C%D9%85-%D8%AA%D9%88-%DA%A9%D8%AF-%D9%82%D8%B3%D9%85%D8%AA-%DA%86%D9%87%D8%A7%D8%B1%D9%85-%D8%AA%D8%A7%D8%A8%D8%B9-xqyzx4a54crl</link>
                <description>سلااام.️?️حالتون چطوره؟ با آخرین قسمت بریم تو کد در خدمتتون هستیم. توی این قسمت در مورد کامنت و تابع حرف میزنیم. و مزاحم اقای عطاران میشیم.امیدوارم مفید باشه. https://aparat.com/v/fHiRb اگه یوتوب من رو هم سابسکرایب کنید دیگه اوج معرفتتون رو نشون دادیدتابع جمع دو عدد توی زبون های برنامه نویسی مختلف:C , C++ :int sum(int a, int b) {
   return a + b; 
}Java:public static int sum(Int a, Int b) {    
    return a + b;
}Python:def sum(a,b):
      return a + b/p&gt;function sum(a,b){
    return a + b
}Kotlin:fun sum(a:Int, b:Int):Int {
    return a + b
}میبینید چقدر شبیه هم ان؟پس از یاد گرفتن زبون جدید نترسید.پایدار باشید?️</description>
                <category>intern plus plus</category>
                <author>intern plus plus</author>
                <pubDate>Thu, 29 Apr 2021 18:47:37 +0430</pubDate>
            </item>
                    <item>
                <title>بریم تو کد - قسمت سوم (حلقه و آرایه)</title>
                <link>https://virgool.io/intern-plus-plus/%D8%A8%D8%B1%DB%8C%D9%85-%D8%AA%D9%88-%DA%A9%D8%AF-%D9%82%D8%B3%D9%85%D8%AA-%D8%B3%D9%88%D9%85-%D8%AD%D9%84%D9%82%D9%87-%D9%88-%D8%A2%D8%B1%D8%A7%DB%8C%D9%87-s8noid66myz3</link>
                <description>بریم تو کد - قسمت سوم (حلقه و آرایه)سلام مجددامروز چطورید؟میتونید این ویدیو رو از این لینک های زیر ببینید:حواستون باشه که اگه دو قسمت قبلی رو ندیدید اول باید اونا رو ببینید.نظری؟ انتقادی؟ پیشنهادی؟ چیزی بود از هر راهی دوست داشتید به گوش من برسونید? https://aparat.com/v/JLlsM code pan link: https://codepan.egoist.sh/gist/7034e16cc9cabc55c1609d1a021b4b32youtube: https://youtu.be/9VBBT2AuRB4aparat: https://aparat.com/v/JLlsMwebsite: internplusplus.irtelegram: @intern_plus_plusپایدار باشید.</description>
                <category>intern plus plus</category>
                <author>intern plus plus</author>
                <pubDate>Thu, 22 Apr 2021 18:25:09 +0430</pubDate>
            </item>
                    <item>
                <title>بریم تو کد - قسمت دوم (شرط)</title>
                <link>https://virgool.io/intern-plus-plus/%D8%A8%D8%B1%DB%8C%D9%85-%D8%AA%D9%88-%DA%A9%D8%AF-%D9%82%D8%B3%D9%85%D8%AA-%D8%AF%D9%88%D9%85-%D8%B4%D8%B1%D8%B7-ijhc0b8aptmm</link>
                <description>سلااااااام.?️حالتون چطوره؟؟با قسمت دوم بریم تو کد برگشتم.سعی من بر اینه که هفته ای یه ویدیو رو داشته باشیم و بعد بریم تو کد هم که مطمئن شدیم همه ی شما اینا رو بلدید میریم سراغ بحث های خیلی باحال تر و جذاب تر در مورد کامپیوتر و اینکه هر چیزی چطوری کار میکنه.این قسمت رو میتونید از یوتوب یا آپارات ببینید (خیلی خوشحال میشم اگه یوتوب رو سابسکرایب کنید): https://aparat.com/v/QUBNP توی این قسمت از شرط صحبت میکنیم و ۵-۶ تا مثال هم حل میکنیم که دیگه کامل متوجه بشید.ادرس کد پن برای تمرین شما:https://codepan.egoist.sh/gist/7034e16cc9cabc55c1609d1a021b4b32موفق باشید.</description>
                <category>intern plus plus</category>
                <author>intern plus plus</author>
                <pubDate>Thu, 15 Apr 2021 17:39:31 +0430</pubDate>
            </item>
                    <item>
                <title>بریم تو کد - قسمت اول (انواع داده و عملگر ها)</title>
                <link>https://virgool.io/intern-plus-plus/%D8%A8%D8%B1%DB%8C%D9%85-%D8%AA%D9%88-%DA%A9%D8%AF-%D9%82%D8%B3%D9%85%D8%AA-%D8%A7%D9%88%D9%84-%D8%A7%D9%86%D9%88%D8%A7%D8%B9-%D8%AF%D8%A7%D8%AF%D9%87-%D9%88-%D8%B9%D9%85%D9%84%DA%AF%D8%B1-%D9%87%D8%A7-e9lht2tt0dl6</link>
                <description>سلاااام.حالتون چطوره؟همونطور که قول داده بودم که میریم سمت ویدیوکست ساختن. امروز با اولین ویدیو کست اومدم.این ویدیو اولین قسمت از یه سری ۳-۴ قسمتی هست که توش قراره اصول برنامه نویسی رو بگیم. برای این کار از زبون جاوااسکریپت استفاده کردم ولی تمرکز اصلی رو اصول کد نویسیه.میتونید این ویدیو رو از این لینک توی یوتوب یا اپارات ببینید.  https://aparat.com/v/cVdGF سرفصل ویدیو:۱. تعریف متغیر.۲. عملگر انتصاب.۳. دیتا تایپ های جاوااسکریپت:numberstringboolean۴. عملگر های این دیتاتایپ ها:number : + , - , * , / , ** , ++ , - -string: +boolean: || , &amp;&amp;مقایسه ای: &gt; , &lt; , ==۵. تبدیل تایپ ها به هم۶. دیدن زبون های برنامه نویسی دیگه (شباهت ها و تفاوت ها)اگه سوالی بود از اینجا میتونید بپرسید.و اگر دوست دارید میتونید تو چنل تلگرام ما هم عضو شید.</description>
                <category>intern plus plus</category>
                <author>intern plus plus</author>
                <pubDate>Thu, 08 Apr 2021 20:54:38 +0430</pubDate>
            </item>
                    <item>
                <title>آمار بازدید پست‌های من در سال ۹۹</title>
                <link>https://virgool.io/@intern_plus_plus/%D8%A2%D9%85%D8%A7%D8%B1-%D8%A8%D8%A7%D8%B2%D8%AF%DB%8C%D8%AF-%D9%BE%D8%B3%D8%AA-%D9%87%D8%A7%DB%8C-%D9%85%D9%86-%D8%AF%D8%B1-%D8%B3%D8%A7%D9%84-%DB%B9%DB%B9-zyqm3ivxi8u3</link>
                <description>در طول تاریخ از اعداد استفاده کردیم تا اغلب داد و ستد کنیم و آن‌چیزی که شمردنی است را بشماریم. برای هر عدد واحد درست کردیم تا عددهای زندگی قاطی نشوند و از اعداد، شفاف‌تر استفاده کنیم؛ مثلا وقتی می‌گوییم ده هزار تومان به پول اشاره داریم و وقتی می‌گوییم ده هزار بلیط به بلیط!روز به روز که در زندگی جلو‌تر رفتیم عددها فرقی نکردند ولی این واحدها بودند که زیاد شدند. واحد کریپتو، واحد اصله درخت، واحد فاصله و …«واحد» یک توافق عمومی است برای شمردن؛ تا همانطور که گفتم شمردن‌ها قاطی نشود. مشاهده افراد دارای ثروت (اجتماعی یا مالی) به من ثابت کرده اینکه چه چیزی را بشماریم از اینکه چطور بشماریم مهم‌تر است. هرکس با واحد خاصی مسائل زندگی را می‌شمارد. اینطور به نظرم آمده که مشخص کردن واحد یعنی مشخص کردن اینکه من در زندگی برای چه چیزهایی ارزش قائلم و می‌خواهم چه چیزهایی را در زندگی بشمارم. https://cdn.virgool.io/annual-report/1399/jah8dhenuqmq-dSYMS.mp4 اعدادی که بدون واحد ثبت کردمبه ویدیویی که ویرگول برایم ساخته که نگاه می‌کنم میبینم که در سال ۹۹، من در مجموع ۱۹,۸۵۵ کلمه در ویرگول نوشتم و منتشر کردم و مخاطبین، پست‌های من را ۱۶۸ مرتبه پسندیدند و  ۲۳ بار هم نظر خود را روی پست‌های من به اشتراک گذاشتند. در سال ۹۹، ۴۸ نفر در ویرگول من را دنبال کردند تا پست‌های بعدیم را بخوانند. این اعداد نشان میدهند من کاری کرده‌ام. هرکدام به واحدی وصل هستند. از خودم می‌پرسم من کدام واحد را شمارش کرده‌ام؟ کدامیک از واحدهای بالا از همه برای من مهم‌تر است؟ ادامه ویدیو را می‌بینم.آمار از اثر بیرونی می‌گویندطبق آمار پست‌های من ۱,۳۶۳ بار خوانده شدند و ۱۱۳,۰۰۹ ثانیه صرف مطالعه آنها شده است، که با توجه به جمعیتی که در ایران به اینترنت دسترسی دارند، ویرگول به من می‌گوید که توانستم  ۰/۰۰۱۵۴۹۳۴۲ ثانیه، سرانه مطالعه دیجیتال کشور را بالا ببرم.از طرف دیگر ویرگول به من می‌گوید که اگر قرار بود پست‌هایم را چاپ و به دست تک تک خوانندگان برسانم باید ۱۰,۸۶۸ کاغذ مصرف می‌کردم.آن عددهای کوچک ابتدای ویدیو حالا تبدیل شده‌اند به عددهای بزرگ به اینکه من جلوی مصرف این تعداد کاغذ را گرفتم یا به اینکه من  ۰/۰۰۱۵۴۹۳۴۲ ثانیه، سرانه مطالعه دیجیتال کشور را جابه جا کرده‌ام. واحد این عددها برای من ملموس‌تر است.واحد نوشتن چیست؟همه عددهای بالا و همینطور اثر بیرونی که روی خوانندگان و همینطور در مقیاس بزرگتر طبیعت و جامعه اطرافم گذاشتم اعدادی هستند که من دوستشان دارم و به آنها افتخار می‌کنم. اگر چنین ویدیویی دست شما نیز رسید به شما بابت تک تک اعداد تبریک می‌گویم.اثر هر نوشته تا حدودی معلوم است، اگر بنویسید جلوی قطع درخت را می‌گیرید، به سرانه مطالعه کشور اضافه می‌کنید و خوانندگانی جذب می‌کنید که شما را از طریق نوشته‌هایتان می‌شناسند و …به نظرم می‌رسد که نوشته‌های من و شما واحد ندارند ولی اثر بیرونی دارند.</description>
                <category>intern plus plus</category>
                <author>intern plus plus</author>
                <pubDate>Sun, 28 Mar 2021 20:41:42 +0430</pubDate>
            </item>
                    <item>
                <title>سفر به اعماق کامپیوتر (سیستم عامل و api)</title>
                <link>https://virgool.io/intern-plus-plus/%D8%B3%D9%81%D8%B1-%D8%A8%D9%87-%D8%A7%D8%B9%D9%85%D8%A7%D9%82-%DA%A9%D8%A7%D9%85%D9%BE%DB%8C%D9%88%D8%AA%D8%B1-%D8%B3%DB%8C%D8%B3%D8%AA%D9%85-%D8%B9%D8%A7%D9%85%D9%84-%D9%88-api-dtgd2vxerssi</link>
                <description>سلام.حالتون چطوره؟عیدتون مبارک.انچه در ادامه میخونید متن پادکست ما هست کی میتونید از اینجا گوش بدید همچنین میتونید مارو از اینجاها دنبال کنید. اگه توی کانال تلگرام ما هم عضو بشید خیلی خوبه چون از فعالیت های جدید ما با خبر میشیداینجا اینترن پلاس پلاسه . توی اینترن پلاس پلاس ما سعی می‌کنیم تجربه های شخصی خودمون رو با منابع علمی قاطی کنیم و چیزایی بهتون بگیم که توی راه برنامه نویس بهتری شدن کمکتون کنه و سردرگمی شما رو کم کنه.الانم  شما دارید به ششمین قسمت سری سفر به اعماق کامپیوتر گوش میدید.سفر به اعماق کامپیوتر هم یکی از سری پادکست های ماست که توش اصطلاحات فنی رو تعریف میکنیم.توی این قسمت من علی قهرمانی میخوام در مورد api و سیستم عامل صحبت کنم.اگه قسمت های قبلی این سری رو گوش نکردید اونارو هم گوش کنید. چون برای فهمیدن کامل این قسمت نیاز دارید یسری مفاهیم پایه تر رو بدونید.APIخوب بیاید از API شروع کنیم. API مخفف application programming interface هه. که یعنی واسط برنامه نویسی برنامه.حالا یعنی چی؟ببینید ما یه رابط کاربری داشتیم که توی قسمت های قبل در موردش صحبت کردیم که رابط بین یه کاربر با برنامه بود.حالا بعضی موقع ها خود برنامه ها نیاز دارن با هم ارتباط بگیرن یعنی به هم دیتا بفرستن و از هم دیتا بگیرن یا اتفاق افتادن چیزی رو به هم خبر بدن. عامیانه بخوایم بگیم برنامه ها نیاز دارن با هم حرف بزنن.حالا از نظر فنی بسترهای مختلفی برای حرف زدن دوتا برنامه با هم هست مثلا شبکه و خیلیای دیگه. ولی دقت کنید که ما اصلا با این بستر ها کاری نداریم. و واسط برنامه نویسی یه چیز دیگس.بیاید با یه مثال قضیه رو روشن کنیم.ببینید api مثل منوی رستوران میمونه توی منوی رستوران یه لیستی از غذا هارو با توضیحاتش میشه دید. حالا وقتی شما میاید از بین این غذا ها سفارش میدید اون رستوران اون غذا رو برای شما آماده میکنه. یه جورایی میشه گفت اون رستوران یسری منابع و عملکرد داره که نتیجه اش میشه اون غذا ها. حالا ما از طریق منوی رستوران میتونیم از این منابع و عملکرد ها استفاده کنیم.اوکی؟حالا من میام یه برنامه می نویسم که یکسری قابلیت رو ارائه میده. حالا میام لیستی از نحوه ی استفاده از قابلیت هارو با توضیحاتش میدم به برنامه نویسای دیگه. حالا اون برنامه نویسا میتونن از طریق api یا واسط برنامه نویسی برنامه ی من یه برنامه ای بنویسن که با برنامه ی من بتونه حرف بزنه.مثلا شنیدید میگن api تلگرام؟داستان اینه که شرکت تلگرام یه سرور داره و توش یه برنامه در حال اجراست.که در مورد اینکه سرور چیه توی سفر به اعماق کامپیوتر شبکه و اینترنت حرف زدیم و در مورد برنامه ای که توی سرور اجرا میشه هم توی سرکی به دنیای برنامه نویسی وب حرف زدیم.داستان اینه که شرکت تلگرام یه سرور داره که توی سرورش یه برنامه هست که داره گوش میده به درخواست هایی که از طریق شبکه میاد. و این درخواست دونه دونه میبینه و انجام میده. مثلا یه درخواست میگه این پیام رو بده به فلانی یه درخواست دیگه داره میگه عکس پروفایل منو عوض کن و…این درخواست ها از طریق اینترنت و از موبایل ها و کامپیوترهای کاربرا به دست سرور میرسه.نکته ی مهم اینه که همه ی این درخواست ها باید توی فرمت مشخصی به دست سرور برسن که سرور اونارو بفهمه.حالا اینجا تلگرام اومده لیست درخواست هایی که میشه به سرورش زد رو با جزئیات کامل منتشر کرده یعنی مثلا نوشته اگه میخوای پیام بفرستید باید یه درخواست با این فرم حاوی این اطلاعات به سرور من بفرستید که من پیامو بفرستم برای صاحبش.حالا منه برنامه نویس میتونم بیام یه برنامه بنویسم که از طریق این api ها با سرور تلگرام صحبت کنه. مثلا یه ربات بنویسیم یا یه برنامه اندروید برای تلگرام بنویسم. البته خود برنامه رسمی تلگرام هم از همین api ها استفاده میکنه.حالا اینجا به این api ها اصطلاحا web api میگن چون از طریق شبکه ی وب قابل دسترسیه. ولی همه ی api ها فقط توی وب نیستن.بخش زیادی از api هارو میتونید توی سیستم عامل ها پیدا کنید.مثلا توی همه ی سیستم عامل ها یه برنامه ای هست که زمان رو نگه میداره. هر موقع هر برنامه ی دیگه ای زمان رو بخواد بدونه باید از طریق api ای که برنامه نویس سیستم عامل در اختیارش گذاشته زمان رو از اون برنامه بپرسه و جوابش رو بگیره و استفاده کنه.یا مثلا توی سیستم عامل اندروید یه برنامه ای در حال اجراست که وظیفه اش مدیریت کردن نوتیفیکیشن هاست. برنامه های دیگه میتونن بیان بهش بگن این نوتیفیکیشن رو با این متن و این آیکون نشون بده. و تازه برنامه لانچر اندروید باید بیاد ازش بپرسه که کدوم برنامه ها نوتیفیکیشن جدید دارن که بغل آیکون اونا یه دونه دایره قرمز بیاره. اینجا برنامه ی مدیریت نوتیفیکیشن یه api مشخص داره که از طریق اون میتونه به بقیه برنامه ها سرویس بده.یا مثلا توی ویندوز یسری برنامه ها دکمه save as دارن. وقتی می زنید برنامه ی فایل منیجر ویندوز تون باز میشه و میتونید یه فولدری رو انتخاب کنید و یه اسم فایل هم مشخص کنید و بعد از زدن دکمه ی save همه ی این اطلاعات به برنامه اولیه داده میشه و برنامه میفهمه باید فایل رو کجا ذخیره کنه.و این قابلیتی که برنامه ی فایل منیجر در اختیار برنامه های دیگه میزاره و یه راه و فرم مشخصی برای استفاده ازش وجود داره که بهش میگن APIفکر کنم دیگه زیادی دارم مثال میزنم ولی خوب گستردگی موضوع زیاده. هر جا رو نگاه کنید API میبینید. و یه بخش جدانشدنی از برنامه نویسی هست.بریم یه موزیک گوش بدیم بیایم در مورد سیستم عامل صحبت کنیمسیستم عاملحالا بریم سراغ سیستم عامل.سیستم عامل یا Operating system یا OS یه برنامه اس که وظیفه اش اینه که سخت افزار و منابع کامپیوتر رو مدیریت کنه. در واقع میاد یه بستری رو برای اجرا شدن برنامه ها فراهم میکنه و سخت افزار رو توی یه لایه abstract میبره.گفتم abstract :)اشنا نیست؟توی قسمت قبلی پادکست که زهرا براتون از abstraction توی شئ گرایی حرف زد حالا ما abstraction رو اینجا هم داریم.داشتم میگفتم.اینکه سیستم عامل سخت افزار رو توی یه لایه abstract میبره یعنی اینکه برنامه ها مستقیم لازم نیست با سخت افزار کار کنن.بر فرض مثال من میخوام یه برنامه بنویسم که یه داده ای رو توی شبکه ارسال کنه. حالا اگر سیستم عامل نباشه باید بیام مستقیم برای کارت شبکه برنامه بنویسم. حالا این کارت شبکه ها هم که یکی دوتا نیستن. انواع دارن. کارت شبکه ی intel یجور کار میکنه واسه یه شرکت دیگه یه جور دیگه کار میکنه. حالا بعضی کارت شبکه ها وایرلس ان بعضیا سیم دار ان و در کل نابود میشم اگه بخوام واسه همه اینا جدا جدا کد بنویسم و تازه اگر هم بتونم همچین کاری رو بکنم. بعد از منتشر کردن برنامه یهو یه کارت شبکه جدید معرفی میشه و روی کامپیوتر های جدید دیگه برنامه من کار نمیکنه.حالا اگه بخوام یه برنامه بنویسم که توی یه سیستم عامل اجرا بشه و یه داده ای رو بفرسته تو شبکه خیلی راحت میام به سیستم عامل میگم داداچ این داده هارو بی زحمت بفرست به فلان آدرس اینجا سیستم عامله که همه ی اون پیچیدگی هارو هندل میکنه و منه برنامه نویس دیگه اصلا درگیر سخت افزار و جزئیاتش نمیشم.اگه قسمت قبل رو گوش کرده باشید شباهت مثال زهرا در مورد گاز و ترمز ماشین با سیستم عامل رو درک میکنید.حالا این فقط مربوط به شبکه بود حالا بیاید این مفهوم رو تعمیم بدیم به کل سخت افزار.مثلا دیسک. یه موقع ssd هه یه موقع hdd هه و رابط های مختلفی داره. بعد تازه دیسک اصلا فایل و فولدر نمیفهمه چیه که. یسری بلوک حافظه اس که توش میشه نوشت.حالا برنامه نویس از کجا میخواد بفهمه که توی کدوم بلوک دیسک باید بنویسه؟نکنه یجا شرو کنه نوشتن که قبلا یه برنامه دیگه اونجا یه چیزی نوشته بوده. و توی اجرا شدن اون برنامه اختلال ایجاد کنهحالا سیستم عامل میاد یسری مفهوم ساده تعریف میکنه مثل:فایل و فولدر و لینک و…بعد برنامه ای که روی سیستم عامل اجرا میشه میگه بیا توی این فولدر یه فایل بساز توش این داده هارو بنویس و اصلا برای برنامه مهم نیست که سیستم عامل این فایل هارو توی کدوم بلوک حافظه ی  دیسک ذخیره میکنه و این سیستم عامله که میاد مدیریت میکنه که کدوم فایل تو چه فولدری هست و کجای دیسک ذخیره شده و حواسش هم هست که یه جایی که یه فایل هست نیاد یه فایل دیگه روی اون بنویسه.حالا در مورد RAM هم همینطوره. وقتی یه برنامه اجرا میشه و نیاز به رم داره سیستم عامل میاد این رم رو در اختیار برنامه میزاره. تصور کنید که همزمان برنامه های دیگه هم توی سیستم عامل در حال اجرا هستن و اونا هم رم میخوان این سیستم عامله که میاد مدیریت میکنه این داستان رو.وظیفه ی بعدی سیستم عامل اصن مدیریت کردن این پردازش هاست.داخل پرانتز اینم بگم که برنامه وقتی که اجرا میشه بهش میگن پردازش.حالا اینکه هر لحظه کدوم هسته ی cpu در اختیار کدوم برنامه باشه چیزیه که سیستم عامل در موردش تصمیم میگیره و اگه پردازش ها زیاد شن میاد صف درست میکنه و براش زمان بندی میکنه که اجرا برنامه ها به سریع ترین و بهینه ترین شکل ممکن اتفاق بیفته. اصلا بعضی برنامه ها در حال اجرا هستن ولی اصلا cpu رو لازم ندارن و منتظر یه اتفاق هستن و سیستم عامل میاد cpu رو میده به بقیه برنامه ها تا اون اتفاق بیوفته. مثلا کاربر روی یه دکمه کلیک میکنه. بعد سیستم عامل میاد اون پردازش که منتظر بوده رو خبر میکنه و بهش cpu رو میده که کارش رو بکنه. هر پردازشی هم که کارش تموم شد رو از بین میبره و حافظه ای که گرفته بوده رو ازاد میکنه که بقیه استفاده کنن. حالا این وسط شاید یه پردازش یهو با ارور مواجه بشه. بازم این سیستم عامله که میاد ارور رو هندل میکنه. مثلا میاد اون برنامه رو میبنده و از به فنا رفتن کل سیستم جلوگیری میکنه.خلاصه که برنامه ای که روی سیستم عامل اجرا میشه اگه با هر تیکه سخت افزار بخواد ارتباط برقرار کنه از سیستم عامل کمک میگیره.هر تیکه از سخت افزار که فکرش رو بکنید.میکروفون و بلندگو و کیبورد و موس و صفحه نمایش و پرینتر و وبکم و خلاصه همه ی سخت افزار هارو اینجوری توی لایه abstract میبره و کار کردن باهاشون رو ساده میکنه و از تداخل برنامه ها جلوگیری میکنه.جا داره بگم سیستم عامل ها همه ی سخت افزار هارو ساپورت نمیکنن و بعضی موقع ها نیاز هست که ما بیایم درایور نصب کنیم.درایور هم یه برنامه اس که سازنده ی سخت افزار اونو مینویسه و قابل نصب روی سیستم عامله و عملکرد سیستم عامل رو توی کار با سخت افزار ها کامل میکنه.مثلا یه پرینتر جدید میخرید و سیستم عامل شما کار کردن با اون رو بلد نیست. اصطلاحا میگن پرینتر رو نمیشناسه. حالا شما می‌آید درایورش رو نصب میکنید بعد دیگه میشناسه.و حالا سیستم عامل برای همه ی این فرایند هایی که گفتیم میاد api ارائه میده به برنامه ها که از طریق این api ها چیزی که میخوان رو درخواست کنن.حالا بریم به چند تا سوالی که ممکنه پیش بیاد جواب بدیم.۱. سوال اول اینه که این api هارو از کجا پیدا کنیم؟جواب اینه که توی اینترنت.مثلا اگه بزنید android api میبینید که گوگل یه داکیومنت عظیم در مورد api های اندروید گذاشته توی سایتش. که با جزئیات خیلی زیاد کار کردن با هر بخش سیستم عامل اندروید رو توضیح داده.۲. سوال بعدی اینه که ایا همه ی کامپیوترها سیستم عامل دارن؟نههه.مثلا میکروکنترلر ها ندارن.اینا کامپیوتر های خیلی کوچولو و ارزون قیمت و ضعیفی هستن که واسه یه کار خاص معمولا تو حوزه ی اینترنت اشیا ازشون استفاده میشه.کلا یدونه برنامه قراره روش اجرا شه که یه کار ثابتی رو انجام بده و یسری ورودی و خروجی رو کنترل کنه. اینجور موقع ها نمیان سیستم عامل نصب کنن چون همه ی این کارایی که گفتیم پردازش میطلبه و رم اشغال میکنه. میان خود برنامه رو که معمولا با زبون های سطح پایینی مثل c یا c++ یا اسمبلی مینویسن. و مستقیم برای سخت افزار برنامه مینویسن.دقت کنید که سطح پایین فحش نیست. به زبونی که به زبون ماشین نزدیک باشه و جزئیات سخت افزار توش دخیل باشه میگن سطح پایین تازه این زبون های سطح پایین سرعت اجرا بیشتری هم دارن و حافظه ی کم تری اشغال میکنن که با توجه به اینکه پردازنده ی ما ضعیفه عملکرد بهتری رو ارائه میدن.داخل پرانتز بگم که بخش زیادی از سیستم عامل ها و درایور ها رو هم با همین زبونای سطح پایین مینویسن.نکته ی بین مریض سوسکی هم اینجا اینه که بعضی سیستم عامل ها مثل لینوکس و اندروید , نسخه های کوچولو و سبک مخصوص اینترنت اشیا دارن که روی سخت افزار های خیلی ضعیف هم قابل نصب شدن هستن.۳. سوال بعدی اینه که چرا بعضی برنامه ها فقط مخصوص یه سیستم عامل هستن. مثلا یه برنامه ی ویندوزی مثل فوتوشاپ چرا روی اندروید اجرا نمیشه؟جواب اینه که api های سیستم عامل ها با هم فرق داره وقتی یه برنامه مثل فوتوشاپ رو مخصوص ویندوز مینویسن میان توش کلی از api های ویندوز رو صدا میکنن. حالا اون api ها روی اندروید وجود ندارن واسه همین نمیتونه اجرا بشه.حالا یسری برنامه ها هم هستن که platform independent یا مستقل از محیط اجرا هستنند مثلا جاوا ایده اش اینه که شما برنامه ی جاوایی رو مینویسی و یه خروجی jar میگیری ازش و حالا میشه اون خروجی jar رو هم توی ویندوز هم توی لینوکس هم توی همه سیستم عامل های دیگه اجرا کرد.اما چجوری؟جاوا یه ماشین مجازی داره که واسه اینکه برنامه جاوایی کار کنه باید روی سیستم عامل نصب باشه. حالا این ماشین مجازی یسری توابع داره که کارایی که با سخت افزار داریم رو انجام میدن.حالا وقتی برنامه ای که روی ماشین مجازی داره اجرا میشه میخواد با سخت افزار کار کنه و ما میایم اون توابع رو صدا میزنیم و ماشین مجازی جاوا که روی لینوکس نصب شده میاد api های لینوکس رو صدا میزنه و ماشین مجازی که روی ویندوز نصب شده میاد api های ویندوز رو صدا میزنه.حالا یه زبون تفسیری مثل پایتون چطوری روی همه سیستم عامل ها اجرا میشه؟پایتون هم مثل جاوا برای اینکه اجرا بشه نیاز داره که مفسر پایتون نصب باشه و این مفسر پایتون هست که میاد برنامه ای که با پایتون نوشته شده رو اجرا میکنه حالا وقتی برنامه درخواست داره که با یه تیکه از سخت افزار ارتباط برقرار کنه این مفسره که میاد با توجه به سیستم عامل api های مربوط رو صدا میزنه.ولی این platform independent بودن یه مشکلی که داره اینه که شما مستقیم دیگه نمیتونید با همه ی بخش های سیستم عامل ارتباط برقرار کنید که اینجور موقع ها میتونید با زبون های سطح پایین تر مثل c برای زبون های سطح بالاتر لایبری بنویسید و از اون استفاده کنید.خوب دیگه حرفی نیست. الان دیگه دید کامل تر و بهتری نسبت به api و سیستم عامل و اینا دارید. خداروشکر.نکته ی خیلی آخرنکته ی خیلی آخر هم اینه که ما با شعار &quot;شنیدن کی بود مانند دیدن&quot; در کنار پادکست هامون میخوایم از این به بعد ویدیو کست هم منتشر کنیم. اگه از اپلیکیشن های پادکستی مارو دنبال میکنید. مطمئن شید که مارو توی جاهای دیگه هم دنبال کنید که ویدیو هارو از دست ندید. آدرس همه ی شبکه های اجتماعی ما توی وبسایتمون به ادرس internplusplus.ir هست.قسمت ششم پادکست سفر به اعماق کامپیوتر هم تموم شد.اگه سوالی داشتید میتونید توی گروه تلگرامی ما بپرسید.مارو به دوستاتون معرفی کنید و با این کار مارو خوشحال کنید.مرسی که این پادکست رو گوش دادید.عیدتون هم مبارک.خدافظ.</description>
                <category>intern plus plus</category>
                <author>intern plus plus</author>
                <pubDate>Mon, 22 Mar 2021 21:34:30 +0430</pubDate>
            </item>
                    <item>
                <title>سفر به اعماق کامپیوتر(شئ گرایی)</title>
                <link>https://virgool.io/intern-plus-plus/%D8%B3%D9%81%D8%B1-%D8%A8%D9%87-%D8%A7%D8%B9%D9%85%D8%A7%D9%82-%DA%A9%D8%A7%D9%85%D9%BE%DB%8C%D9%88%D8%AA%D8%B1%D8%B4%D8%A6-%DA%AF%D8%B1%D8%A7%DB%8C%DB%8C-lynnqoscrfn5</link>
                <description>.سلاامامروز حالتون چطوره؟انچه در ادامه میخونید متن پادکست ما هست کی میتونید از اینجا گوش بدید همچنین میتونید مارو از اینجاها دنبال کنید. https://castbox.fm/episode/سفر-به-اعماق-کامپیوتر-(شئ-گرایی)-id2716424-id362795547?utm_source=website&amp;utm_medium=dlink&amp;utm_campaign=web_share&amp;utm_content=%D8%B3%D9%81%D8%B1%20%D8%A8%D9%87%20%D8%A7%D8%B9%D9%85%D8%A7%D9%82%20%DA%A9%D8%A7%D9%85%D9%BE%DB%8C%D9%88%D8%AA%D8%B1%20(%D8%B4%D8%A6%20%DA%AF%D8%B1%D8%A7%DB%8C%DB%8C)-CastBox_FM سلام.حالتون چطوره؟اینجا اینترن پلاس پلاسه . توی اینترن پلاس پلاس ما سعی می‌کنیم تجربه های شخصی خودمون رو با منابع علمی قاطی کنیم و چیزایی بهتون بگیم که توی راه برنامه نویس بهتری شدن کمکتون کنه و سردرگمی شما رو کم کنه.الانم  شما دارید به پنجمین قسمت سری سفر به اعماق کامپیوتر گوش میدید.سفر به اعماق کامپیوتر هم یکی از سری پادکست های ماست که توش اصطلاحات فنی رو تعریف میکنیم.توی این قسمت من که زهرا ام میخوام در مورد شی گرایی صحبت کنم.اگه قسمت های قبلی این سری رو نخوندید اونارو هم گوش کنید چون دید جزئی تری بهتون میده نسبت به کامپیوتر.خب ، دیدین بعضی موقع ها وقتی برای توضیح یه قضیه از متضاد یا مخالفش استفاده میکنن که بهتر جا بیوفته؟ مثلا اینکه تاریکی چیه؟ جوابشو میشه اینطوری داد جایی که نور نباشه تاریکیه :))الان منم میخوام همین روش رو در پیش بگیرمببینید در حالت غیر شی گرا یعنی پروسیجرال شما توی برنامه اتون یسری تابع و یسری متغیر دارید که کل برنامه ی شما رو تشکیل میدن که از یه جایی شروع میشه به اجرا شدن و میره جلو.حالا مشکل چیه؟مشکل اینه که وقتی برنامه بزرگ میشه یعنی حجم کد زیاد میشه شما کلی تابع دارید که دارن همدیگه رو صدا میزنن در نتیجه مدیریت کردن این کد ها خیلی سخت میشه چون اگر بخواید یه بخش رو تغییر بدید باید مواظب باشید که کل برنامه به فنا نره.که بهش میگن کد اسپاگتی که مثال خیلی بامزه ایه چون همانطور که شما به یه اسپاگتی نگاه میکنید و نمی فهمید که کجاش به کجاش وصله وقتی به یه کد اسپاگتی نگاه میکنید هم متوجه نمیشید سرو تهش کجاست.و این نه تنها ذهن شما رو شلوغ میکنه بلکه سرعت شما رو پایین میاره و کیفیت برنامه هم پایین میاد چون احتمال خطای شما و در نهایت باگ توش بیشتر میشه.حالا اینجاست که شی گرایی وارد میشهداستان اینجوری شد که اومدن یه شیوه جدیدی واسه برنامه نویسی درست کنن که به عملکرد مغز آدما نزدیک تر باشه.خب عملکرد مغز ما چجوریه:اینجوریه که هرچی دور و برمون هست رو به صورت یه شیء میشناسیم مثلا: درخت، میز، پرتقال، شیشه پاک کن و … این اشیاء الان تو محدوده‌ی دید من بود.حالا اومدن توی برنامه نویسی هم همین کارو کردن که مغز ما بهتر مدیریتش کنهبرنامه نویسی شی گرا یه روش برنامه نویسیه که توی اون اشیا یا آبجکت ها هستن که اجزای برنامه رو تشکیل میدن.خب حالا بریم سراغ اینکه کدا چجوری نوشته میشن.شی گرایی یه قابلیته که خیلی از زبانهای برنامه نویسی دارن و این اجازه رو میده که شما برنامه ی خودتون رو در قالب کلاس های مختلف بنویسید.یعنی برنامه ی شما میشه چند تا کلاس که هر کدوم یه مفهومی رو دنبال میکنند و کد های مربوط به اون مفهوم رو توی اون کلاس مینویسید و در نهایت میتونید این کلاسا رو به هم ربط بدید و برنامه ی خودتون رو کامل کنید.بعد موقع استفاده از کلاس میایم یه نمونه از اون کلاس درست میکنیم که به اون میگیم شی.یعنی اینجا میتونیم بگیم که کلاس مثل دستور پخت غذاست و ابجکت یا شی مثل خود غذاست.حالا این کلاس که گفتیم چه شکلیه؟بسته به زبون برنامه نویسی که کار میکنید ممکنه یکم متفاوت باشه ولی در کل یه کلاس توش میشه  یکسری متغیر و یکسری تابع نوشت که به هم ربط دارن و برای تشکیل دادن یه مفهوم تلاش میکنن.هر کلاس میتونه چند تا رفتار داشته باشه که در قالب تابع نوشته میشه و یک سری ویژگی هم میتونه داشته باشه که در قالب متغیر نوشته میشه.حالا وقتی تابع میره تو کلاس بهش میگن متد و همینطور به متغیری هم که تو کلاس باشه میگن پروپرتی یا صفت .تا الان به صورت کلی فهمیدید که چیه داستان ولی شی گرایی بر پایه ی چهار تا مفهوم اصلیه:Abstraction, انتزاعInheritance, ارث بریEncapsulation, مخفی سازیpolymorphism چندریختیحالا بریم ببینیم حرف حسابشون چیه.انتزاع (Abstraction)اول میریم سراغ abstraction که از همه باحال تره به حالتی میگن که یه کلاس &lt;مکث&gt; کد ها و پیچیدگی های توی خودش رو از دید شما که از بیرون کلاس میخواید ازش استفاده کنید مخفی میکنهکه به این کار میگن abstractionیه مثال خیلی کلیشه ای و معروف در مورد abstraction وجود داره که میریم با هم برسیش کنیم.شما توی یه ماشین نشستید.میدونید وقتی پدال گاز رو فشار میدید سرعت ماشین بیشتر میشه.و وقتی پدال ترمز رو فشار میدید سرعت ماشین کم تر میشه.ولی در واقع به همین سادگی نیست و پشت داستان کلی قطعات مکانیکی هستن که باعث میشن این اتفاق بیوفته که  شما متوجه هیچ کدوم نمی شید.شما در نهایت یه پدال گاز و ترمز رو میبینیدو اگه قرار باشه موقع رانندگی حواستون رو بدیید به همه ی اون پیچیدگی ها دیگه رانندگی نمیتونی بکنی.حالا توی برنامه نویسی هم ما به این abstraction نیاز داریم و شی گرایی ابزار خوبی برای پیاده سازی این مفهوم به ما میده.یعنی شما یه کلاس مینویسی و کلی توش پیچیدگی داری.بعد موقعی که میای از اون کلاس استفاده میکنی دیگه به پیچیدگی‌های داخل اون فکر نمیکنی چون میدونی که کد های داخل کلاس رو قبلا نوشتی و درست کار میکنن و مهم نیست که چطوری کار میکنن و ذهنت رو درگیر اون پیچیدگی ها نمیکنی.وراثت (inheritance)حالا بریم سراغ وراثت یا inheritance که بهمون اجازه میده از تکرار کد در کلاس ها جلوگیری کنیم و اینطوریه که کد هایی که میخوایم رو توی یه کلاس پایه می نویسیم و بعد وقتی کلاس های دیگه ی ما از اون کلاس ارث بری میکنن اون کد هایی که توی کلاس پایه نوشته بودید رو انگار تو کلاس فرزند نوشتید.فهمیدید دیگه اسمش برای چی ارث بریه دیگه چون در دنیای واقعی هم فرزند ها ویژگیهای پدر و مادرشون رو به ارث میبرن.در حالت عادی یعنی اگه این کارو نکنید باید کلی کد تکراری رو توی همه ی کلاس هایی که اون کد رو نیاز دارن کپی پیست کنید که اینجوری هم حجم برنامه زیاد میشه هم اگه بخواید یه تغییری بدید باید توی همه ی اون کلاس های فرزند اون تغییر رو بدید که وقت شما رو میگیره.مخفی سازی (encapsulation)حالا میریم سراغ  مخفی‌سازی یا encapsulation که میتونیم با این قابلیت بعضی از ویژگی‌ها یا رفتار‌های کلاس رو از بیرون کلاس غیر قابل دستیابی کنیم.تو زبون جاوا مثلا سه تا کلمه کلیدی هست به اسم: public, private, protectedکه اینا هر کدوم میتونن پشت یه متغیر، متد، کلاس و .. بیان و دسترسی به اونا رو تغییر بدنا public ها که از اسمش معلومه دسترسی رو برای عموم آزاد میزاره. یعنی از بیرون کلاس هم میشه یه تابع public رو صدا زد یا یه متغیر public رو مقدارش رو ریخت تو یه متغیر دیگه و یا مقدارش رو تغییر دادا private ها رو هم فقط میشه داخل کلاس خودشون بهشون دسترسی داشت و ینی از بیرون کلاس نمیشه صدا زد و تغییر داد و اینا.ا protected ها هم فقط از داخل کلاس خودشون و کلاس های فرزندشون میشه دسترسی داشت بهشون.اما مفهوم چهارم و اخرچند ریختی یا polymorphismما میتونیم چندتا متد رو با اسم یکسان تعریف کنیم که نوع یا تعداد ورودی هاش فرق کنه. در این صورت موقع صدا زدن با توجه به نوع و تعداد ورودی هایی که شما پاس می دهید تابع مناسب اجرا میشه که بهش overloading میگن.یه اصطلاح دیگه هم هست به اسم overriding که یعنی ما متدی که داخل کلاس پدر بوده رو دوباره تو کلاس فرزند تعریف میکنیم این باعث میشه که در کلاس فرزند از این به بعد این متد جدیده استفاده بشه و نه اونی که تو کلاس پدر بود.و به جز اینا شی گرایی باعث میشه که کد هاتون دسته بندی بهتر و مرتب تری داشته باشه و وقتی میخواید یه بخشی رو تغییر بدید با توجه به اینکه هر کلاسی مربوط به یه کاری میشه راحت تر اون بخشی که میخواید رو میتونید پیدا کنیدو در غیر این صورت پیدا کردن کدی که میخواید تغییر بدید یا پیدا کردن بخشی از برنامه که باگ داره خیلی سخت میشه و باید همه جا رو بگردیدبین این چهار تا به نظرم این abstraction مهم ترین چیزیه که برنامه نویسی شی گرا به شما میده.شی گرایی با توجه به زبون های برنامه نویسی مختلف فرق داره واسه همین دیگه بیشتر از این هم توضیح دادن در موردش سخت میشه.مخصوصا توی پادکست.بهتره اگه خودتون با توجه به چیزایی که گفتیم دیدید به دردتون میخوره برید سراغش و یادش بگیرید.حالا بریم ببینیم رابطه ی زبان های برنامه نویسی با  شی گرایی چجوریاس:بعضی زبونا از شی گرایی پشتیبانی نمی کنن مثل:C , pascalبعضیا ذاتا شی گرا هستن یعنی شما اصلا نمیتونی خارج از مفهوم کلاس کد بزنی مثل:Java , c#بعضی هام هستن که امکانات شی گرایی رو در اختیار شما میزارن و دست شما رو تو استفاده کردن یا نکردن ازاد میزارن مثل:Python , javascript و اکثر زبان های مدرناینم از شی گرایی.امیدوارم که پادکست امروز ما هم براتون مفید بوده باشه.خیلی مهمه که مارو به دوستاتون معرفی کنید.ما به این حمایت شما نیاز داریم تا بتونیم با قدرت تر ادامه بدیم.مارو میتونید از جاهای مختلفی دنبال کنید.تلگرام و اینستاگرام کست باکس و ویرگول و خیلی جاهای دیگه.و آدرس همه اینا توی سایت ما به ادرس internplusplus.ir هست.از هر جایی که دوست داشتید مارو دنبال کنید.تا اپیزود بعدی و یه آموزش دیگه خدافظ.</description>
                <category>intern plus plus</category>
                <author>intern plus plus</author>
                <pubDate>Wed, 10 Mar 2021 21:34:41 +0330</pubDate>
            </item>
                    <item>
                <title>سرکی به دنیای برنامه نویسی (موبایل)</title>
                <link>https://virgool.io/intern-plus-plus/%D8%B3%D8%B1%DA%A9%DB%8C-%D8%A8%D9%87-%D8%AF%D9%86%DB%8C%D8%A7%DB%8C-%D8%A8%D8%B1%D9%86%D8%A7%D9%85%D9%87-%D9%86%D9%88%DB%8C%D8%B3%DB%8C-%D9%85%D9%88%D8%A8%D8%A7%DB%8C%D9%84-wlhkw8jwj0h3</link>
                <description>سلام =)امیدوارم که حالتون خوب باشه و سالم و سلامت باشید! انچه در ادامه میخوانید متن پادکستی هست که از اینجا ? میتونید گوش بدید و اگر هم تو کانال تلگرام ما عضو بشید باعث دلگرمیه ماس و این هم سایت ماست که توش آدرس شبکه های اجتماعی دیگه ما هست.در نهایت هم اگر سوالی داشتید میتونید توی این گروه بپرسید. اگه بلد باشیم جواب میدیم. https://castbox.fm/episode/سرکی-به-دنیای-برنامه-نویسی-(موبایل)-id2716424-id355842170?utm_source=website&amp;utm_medium=dlink&amp;utm_campaign=web_share&amp;utm_content=%D8%B3%D8%B1%DA%A9%DB%8C%20%D8%A8%D9%87%20%D8%AF%D9%86%DB%8C%D8%A7%DB%8C%20%D8%A8%D8%B1%D9%86%D8%A7%D9%85%D9%87%20%D9%86%D9%88%DB%8C%D8%B3%DB%8C%20(%D9%85%D9%88%D8%A8%D8%A7%DB%8C%D9%84)-CastBox_FM سلام.حالتون چطوره؟اینجا که اینترن پلاس پلاسه.توی اینترن پلاس پلاس ما سعی می‌کنیم تجربه های شخصی خودمون رو با منابع علمی قاطی کنیم و چیزایی بهتون بگیم که توی راه برنامه نویس بهتری شدن کمکتون کنه و سردرگمی شمارو کم کنه.با یه قسمت دیگه از سرکی به دنیای برنامه نویسی اومدیم که در مورد برنامه نویسی موبایل صحبت کنیم.کلا اپیزود هایی که با اسم سرکی به دنیای برنامه نویسی منتشر میشن یه رشته ی برنامه نویسی رو معرفی میکنیم و نقشه راهش رو نشون میدیم.من علی ام و اگه دوست دارید در مورد برنامه نویسی موبایل بدونید شما رو به خوندن  ادامه ی این متن دعوت میکنم.خوب بریم سراغ اصل داستان.سال هاست که ما توی دنیای موبایل جنگ داریم سر پلتفرم ها و سیستم عامل ها.مثلا سیمبیان بود ویندوز فون و ویندوز موبایل بود.بلک بری برای خودش یه سیستم عامل داشت.یکم قبل تر از اینا یسری گوشی های جاوایی بودن. و خیلی های دیگهولی الان تقریبا دیگه میشه گفت که توی این جنگ سیستم عامل ها همه کشته شدن و فقط اندروید و ios زنده موندن. واصولا وقتی الان بحث از برنامه نویسی موبایل میشه همه ذهنشون میره سمت برنامه نویسی اندروید و ios.در وهله ی اول میریم سراغ راه های پیشنهادی خود گوگل و اپل برای برنامه نوشتن برای این سیستم عامل های دوست داشتنی و در ادامه میریم سراغ کراس پلتفرم ها و راه هایی غیر از راه های استاندارد هستن که مزایای خودشون رو دارن که با هم برسی میکنیم.برنامه نویسی اندروید (به صورت native)اول میریم سراغ اندروید که بالای ۸۰ درصد از سهم بازار رو دارهگوگل یه IDE رایگان داره (اگه نمیدونید IDE چیه ینی قسمت های قبلی سفر به اعماق کامپیوتر رو گوش نکردید)داشتم میگفتم.گوگل یه IDE رایگان در اختیار برنامه نویس های اندروید قرار داده که بهش میگن اندروید استودیو و توش میشه به زبان جاوا یا کاتلین برای سیستم عامل اندروید برنامه نوشت و تست کرد و آنالیز کرد و خروجی گرفت و خلاصه هر چیزی که یه برنامه نویس اندروید نیاز داره توی این IDE هست.راه استاندارد توسعه برنامه اندرویدی از نظر گوگل اینه. البته قبلا فقط جاوا به عنوان زبان برنامه نویسی اندروید بود ولی الان چند سالی میشه که زبون کاتلین معرفی شده و مستقیما از طرف گوگل توصیه میشه که به جای جاوا از این زبون جدید استفاده بشه چون زبون مدرنیه و کد نوشتن توش راحت تر و تر تمیز تر و کم باگ تر و در مجموع بهتره.یه نکته ی بی ربط به اپیزود: معمولا زبون هرچی جدیدتر باشه کد نوشتن باهاش راحت تر و تر تمیز تر و کم باگ تره.چرا؟چون زبون های جدید رو با توجه به مشکلاتی که زبون های قدیمی داشتن طراحی میکنن و syntax اونا رو جوری طراحی میکنن که خطا های رایجی که معمولا ادما میکنن توش سخت تر بشه و از طرفی از استایل های کد نوشتن مدرن تر هم بهره میبرن که حاصلش میشه کد های کم تر و تر تمیز تر و خوانا تر.برگردیم سر بحث اصلی.پس چی شد؟شما اگر بخواهید از راه استاندارد برنامه اندروید بنویسید تشریف میبرید اندروید استودیو رو دانلود میکنید.زبان جاوا یا کاتلین رو یاد میگیرید.کلی چیز هم نیازه که در مورد سیستم عامل اندروید و api هاش و چرخه ی حیاتش و… بدونیددر مورد api هم توی اپیزود های بعدی سفر به اعماق کامپیوتر صحبت میکنیم فقط همین قدر بگم که مثلا توی موبایل شما وقتی میخواید یه تیکه کدی بنویسید که گوشی ویبره بزنه یا نوتیفیکیشن بده یا لوکیشن رو بگیره یا با میکروفون یا بلندگو کار کنه یا اینکه برنامه های دیگه رو باز کنه و خیییییییلی چیزای دیگه باید از اندروید بخواهید که اون کارو براتون بکنه.و این ها چیزایی نیست که شما تو برنامه نویسی جاوا یا کاتلین یاد بگیرید و مربوط به خوده خوده سیستم عامل اندروید و قابلیت هایی که حین اجرا در اختیار برنامه ها قرار میده.کهتوی ورژن های مختلف اندروید یچیزایی تغییر میکنه و قابلیت های جدید اضافه میشه.و در نهایت شمام بعد از اینکه کدتون رو نوشتید از اندروید استودیو خروجی apk میگیرید و میتونید اون فایل رو تو وب سایت خودتون یا کافه بازار و گوگل پلی و… بزارید برای دانلود.ملت هم دانلود میکنن و نصب میکنن و لذت میبرن.حالا بریم سراغ مشکلاتی که ممکنه بهش بر بخورید.۱. نصب اندروید استودیو و sdk ها به خاطر تحریم های ظالمانه ی گوگل کار سختی هست.ولی خوب کلی راه برای دور زدنش هست.۲. برای انتشار برنامه ی خودتون تو گوگل پلی هم ممکنه یکم به مشکل بخورید چون هم تحریم هستیم هم کانال های مالی باز نیست که بخوایم پول بریزیم و اکانت دولوپر گوگل بخریم ولی خوب این هم چیز غیر ممکنه نیست.  در نهایت میتونید برنامه ی خودتون رو توی مارکت هایی غیر از پلی استور بزاریدبرنامه نویسی ios (به صورت native)حالا بریم سراغ راهی که اپل برای برنامه نویسی ios پیشنهاد میدهای او اس هم یه IDE داره به اسم xcode که باهاش میشه برنامه ios نوشت.از نظر زبون برنامه نویسی هم قدیما objective c بود ولی چندین ساله که اپل swift ‌رو اپل معرفی کرده که جایگزین objective c هست و همون داستانایی که در مورد جاوا و کاتلین داشتیم رو اینجا  هم داریم ینی اپل مستقیما توصیه میکنه که از swift برای برنامه نویسی ios استفاده کنید و بسیار ساده تر و مدرنتر از objective c است.نکته ناراحت کننده اینه که شما این محیط رو فقط میتوانید روی سیستم عامل OSX داشته باشید که سیستم عامل لپ تاپ ها و کامپیوتر های اپل است.پس اگر بخواید برنامه نویسی ios کنید باید یا یه مک بوک یا کامپیوتر اپل بخرید که خوب میدونید که………. گرونه :)اما راه دوم اینه که سیستم عامل OSX رو روی مجازی ساز روی سیستم عاملی که الان دارید بیارید بالا که کار خیلی راحتی نیست و بعد از بالا اورندش هم زیاد بازدهی خوبی نداره ولی خیلیا به راه اول ترجیح میدن که میتونید حدس بزنید چرا.راه سوم اینه که روی سیستم غیر اپلی خودتون بدون مجازی سازی سیستم عامل OSX رو نصب کنید که بهش میگن هکینگتاش. که این روش هم تا جایی که من فهمیدم اصلا آسون نیست و نیاز به دانش فنی داره. و تو شروع کار میتونه شمارو خسته و ناامید کنه از زندگی.اما نکته ی جذاب اینه که این سختی ها باعث شده که تعداد برنامه نویس های ios خیلی کمتر از اندروید باشه و این در حالی هست که اکثر برنامه های موبایلی که نوشته میشن ios هم میخوان و در نتیجه تقاضای ios خیلی هم کم تر از اندروید نیست و در نتیجه ی همه ی این حرف هایی که زدم میشه فهمید که استخدام شدن و کار گرفتن به عنوان برنامه نویس ios راحت تر از اندروید باشهحداقل این چیزیه که تو این سال ها از برنامه نویس های ios زیاد شنیدمتازه درآمد برنامه نویس ios هم به همین دلایلی که گفتم به صورت میانگین بیشتر از اندروید هست. عرضه و تقاضاس دیگه.پس یه دوره بکنیم:۱. شما سیستم عامل مک میخواید که روش xcode نصب باشه.۲. شما باید زبون برنامه نویسی swift رو بلد باشید.۳. شما باید api های ios رو بشناسید و همون قصه هایی که در مورد اندروید گفتم ولی این بار در ios.حالاااااااااااابریم سراغ انتشار اپلیکیشندر حالت عادیحالت عادی ینی حالتی که شما اونور آب های نیلگون خلیج فارس دارید زندگی میکنید.شما باید یه مبلغی رو به اپل پرداخت کنید که اکانت دولوپر اپل داشته باشید که الان که من دارم این پادکست رو ضبط میکنم ۹۹ تا پول رایج مملکت بلاد کفر رو شما باید سالیانه بپردازید که بتونید توی app store بزارید برنامه اتون رو.اما بریم سراغ حالت غیر عادی که توش اپل اپلیکیشن های ایرانی رو حذف کرده و امکان انتشار برنامه های ایرانی تو app store رو نداریم.البته امیدوارم که اون موقعی که شما دارید این پادکست رو گوش میدید این عزیزانی که مارو تحریم میکنن سر عقل اومده باشن.الان تو این حالت غیر عادی شما میتونید اپلیکیشن های خودتون رو توی مارکت های ایرانی منتشر کنید که اینکه چطوری کار میکنن و چه مزیت ها و مشکلات احتمالی میتونن داشته باشن یه پادکست جدا میتونه باشه ولی میتونید برید همین الان شرایطشون رو بخونید ببینید که حرف حسابشون چیه. کراس پلتفرم:اول پلتفرم رو تعریف کنیم:به محیطی که یه برنامه توی اون اجرا میشه میگن پلتفرم که ترجمه فارسیش میشه سکو.بیخیال.سکو؟حالا یه موقع به نوع خاصی از سخت افزار میگن پلتفرم.یه موقع به یه سیستم عامل میگن پلتفرم.یه موقع به مرورگر ها میگن پلتفرم.حتی جاوا چون برنامه هاش روی ماشین مجازی جاوا که توی اپیزود های قبلی در موردش صحبت کردیم اجرا میشه هم میگن پلتفرم جاوا.حالا کراس پلتفرم یا چند سکویی ینی اینکه شما با یک بار کد نویسی با یه زبون برنامه نویسی بتونید اون رو روی چند تا پلتفرم اجرا کنید.این اصطلاح فقط مخصوص موبایل نیست و ما تو برنامه نویسی دسکتاپ هم این اصطلاح رو داریم یا حتی توی بازی سازی که مثلا یعنی این بازی هم رو pc هم رو xbox هم رو playstation اجرا میشه.ولی خوب ما اینجا داریم در مورد برنامه نویسی موبایل صحبت می کنیم منظورم میشه سیستم عامل های موبایل که اندروید و ios بودنحالا این کراس پلتفرم ها چطوری کار میکنن:اینا میان یه محیط اجرا رو روی محیط اجرای اندروید میارن بالاحالا مشابه همین رو روی ios میارن بالاحالا یه کدی که بتونه روی اون پلفرمی که روی هر دو پلتفرم ios و android اجرا شده اجرا بشه در واقع میتونه روی هر دو سیستم عامل اجرا بشه.حالا مشکلش چیه:۱. هر چی این لایه های پلتفرمی که رو هم رو هم میاد بیشتر بشه سرعت اجرا برنامه میاد پایین یعنی اگه ما مستقیم برای پلتفرم سخت افزاری برنامه بنویسیم بیشترین سرعت رو میتونیم تجربه کنیم ولی ما میایم برای پلتفرم هایی که روی سخت افزار نصب شدن برنامه مینویسیم که اون جوری سرعتش کم تره حالا باز روی این پلتفرم ها اگه رو هم رو هم پلتفرم بیاریم بالا سرعت یا فنی تر بخوایم بگیم پرفورمنس میاد پایین.۲. مشکل دوم اینه که انجام کار های مختلف روی سیستم عامل های مختلف راه های مختلفی وجود داره مثلا برای اینکه توی ios یه فایل صوتی رو بخونیم و صداش رو پخش کنیم با حالتی که تو اندروید بخوایم این کار رو بکنیم فرق داره حالا بگذریم از اینکه تو دوتا نسخه اندروید هم ممکنه فرق داشته باشه.حالا باید چی کار کنیم؟دو راه داره:۱. یه لایبری پیدا کنیم که اون کار واحد رو به یه شکل ثابت توی هر دو سیستم عامل انجام بده و توابع اون رو صدا بزنیم۲. خودمون یه لایبری بنویسیم که اون کار ثابت رو به یه شکل توی هر دو سیستم عامل انجام بدهجا داره یادآوری کنم که هیچ کدوم از راه های برنامه نویسی کراس پلتفرم توصیه شده از طرف apple , google نیستن. و این دوتا کمپانی راه های استانداردی که در موردشون صحبت کردیم رو پیشنهاد میکنن ولی خوب چون با یه بار کد نوشتن میشه رو دوتا پلتفرم موبایلی اجرا شه خیلی از شرکت ها و استارت آپ ها به خاطر کاهش دادن هزینه ی تیم برنامه نویسی موبایل میرن سمت این کراس پلتفرم ها و خوب ایده خوبیه به شرطی که برنامه خیلی درگیر api های مختلف سیستم عامل نباشه که دردسر نشه چون اونجوری هزینه ی تولید نرم افزار بیشتر هم میشه. و البته همه چی هزینه نیست و کیفیت هم مهمه که معمولا اون دوتا راه استانداردی که گفتیم کیفیت نرم افزار خروجی بیشتری نسبت به کراس پلتفرم ها دارن.برنامه نویسی کراس پلتفرم رو از کجا شرو کنیم:حالا بریم سراغ اینکه برنامه نویسی کراس پلتفرم رو از کجا باید شروع کنیم.همون طور که گفتیم کراس پلتفرم یه اصطلاحه و پیاده سازی های مختلفی ازش برای زبون های برنامه نویسی مختلف وجود داره.و این کراس پلتفرم ها هم یکی دوتا نیستن که بخوایم در موردشون مثل اون دو تا حالت استاندارد کامل توضیح بدیم. و به نظرم این مفاهیمی که گفتم مهم تر بود از صرفا معرفی کردن چنتا فریمورک.نهایتا ما به چند تا از معروف هاش اشاره میکنیم:react native:اولیش react native هه که محصول فیسبوکه و یکی از خیلی معروف ها تو این زمینه است و جدای اینکه خود فیسبوک برنامه هاش خودش مثل اینستاگرام و واتساپ و… خیلی اپلیکیشن های معروف دیگه ای مثل دیسکورد و اسکایپ و… رو با این نوشتن.زبون اصلیش هم جاوا اسکریپته.flutter:دومین چیزی که میخوایم بهش اشاره کنیم flutter هست که محصول گوگل هست و به شدت داره رشد میکنه و طرفدار هاش روز به روز بیشتر میشن و فقط هم به اندروید و ios خلاصه نمیشه و میتونید چیزایی که با فلاتر میزنید رو روی وب و حتی دسکتاپ هم اجرا کنید.زبون برنامه نویسیش هم دارت هست.xamarin:سومی زامارینه که محصول ماکروسافته و با c# میتونید برنامه android , ios بنویسید که دات نت کار ها که تو ایران هم تعدادشون کم نیست خیلی دوست دارنش.به جز این سه تا, حالا بازم هست مثلا ionic و cordova و QT و خیلیای دیگه که واقعا هر کدوم حرفی برای گفتن دارن(مخصوصا QT).کلا هم به نظر من بحث کراس پلتفرم ها الان داغه و چند سال دیگه در جنگ بین کراس پلتفرم ها یکی یکی کشته میشن و چند تا دونه باقی میمونه که همه از اونا استفاده میکنن. همون اتفاقی که برای سیستم عامل های موبایل افتاد.خوب دیگه به اخر این قسمت رسیدیم و امیدوارم که مسیر راه برنامه نویسی موبایل رو تونسته باشم بهتون نشون بدم.نمیدونم این قسمت رو از کجا دارید گوش میدید ولی ما تو شبکه های اجتماعی مختلفی هستیم و آدرس همه ی اونا رو میتونید توی وبسایت ما به ادرس internplusplus.ir ببینید.خدافظ.</description>
                <category>intern plus plus</category>
                <author>intern plus plus</author>
                <pubDate>Tue, 16 Feb 2021 20:43:12 +0330</pubDate>
            </item>
                    <item>
                <title>سرکی به دنیای برنامه نویسی(هوش مصنوعی)</title>
                <link>https://virgool.io/intern-plus-plus/%D8%B3%D8%B1%DA%A9%DB%8C-%D8%A8%D9%87-%D8%AF%D9%86%DB%8C%D8%A7%DB%8C-%D8%A8%D8%B1%D9%86%D8%A7%D9%85%D9%87-%D9%86%D9%88%DB%8C%D8%B3%DB%8C%28%D9%87%D9%88%D8%B4-%D9%85%D8%B5%D9%86%D9%88%D8%B9%DB%8C%29-py4k8i1fau8g</link>
                <description>سلام =)امیدوارم که حالتون خوب باشه و سالم و سلامت باشید! ~___~انچه در ادامه میخوانید متن پادکستی هست که از اینجا ? میتونید گوش بدید و اگر هم تو کانال تلگرام ما عضو بشید باعث دلگرمیه ماس و این هم سایت ماست که توش آدرس شبکه های اجتماعی دیگه ما هست.در نهایت هم اگر سوالی داشتید میتونید توی این گروه بپرسید. اگه بلد باشیم جواب میدیم. https://castbox.fm/episode/%D8%B3%D8%B1%DA%A9%DB%8C-%D8%A8%D9%87-%D8%AF%D9%86%DB%8C%D8%A7%DB%8C-%D8%A8%D8%B1%D9%86%D8%A7%D9%85%D9%87-%D9%86%D9%88%DB%8C%D8%B3%DB%8C(%D9%87%D9%88%D8%B4-%D9%85%D8%B5%D9%86%D9%88%D8%B9%DB%8C)-id2716424-id341737670?country=us اینجا اینترن پلاس پلاسه و شما دارید به یکی دیگه از قسمت های سری سرکی به دنیای برنامه نویسی گوش میدید.توی این قسمت من که زهرا ام قراره باهاتون کُلی راجع به هوش مصنوعی و مشتقاتش گپ بزنم.حالا اگه شما به این موضوع علاقه دارید و دوست دارید بدونید چه خبره و چی به چیه و دنیا دست کیه ، به گوش دادن به این قسمت ادامه بدید.?خب ، بیایم از اینجا شروع کنیم که هوش مصنوعی اصلا یعنی چی!هوش مصنوعی یا artificial intelligence یه شاخه از علوم کامپیوتریه که هدف اصلیش اینه ماشین های هوشمندی تولید کنه که بتونه کارهایی که نیاز به هوش انسانی داره رو انجام بده ، در واقع یه حالت شبیه سازی هوش انسانی برای کامپیوتره ؛ یه ماشینی که بتونه مثل انسان فکر کنه ، عمل کنه ، یاد بگیره و مسئله حل کنه و در حال حاضر یکی از شاخه‌ های ترند کامپیوتره که خیلی هم طرفدار داره!حالا شاید براتون جالب باشه که اصلا استارت این موضوع کِی خورد:موقع جنگ جهانی دوم ، وقتی که ارتش نازی برای رمزنگاری و ارسال امن پیام ها از ماشین enigma استفاده میکردن ، یه دانشمند بریتانیایی به اسم آلن تورینگ اومد سر از کار ارتش آلمان دربیاره و کدهاشونو دیکد یا رمزگشایی کنه :) که تونستن ماشین bombe رو بسازن و این ماشین enigma رو دیکد کرد.خب ، بریم راجع به سطوح هوش مصنوعی صحبت کنیم.اگه بخوایم مته به خشخاش بزاریم کلاً به ۳ سطح تقسیم میشه:هوش مصنوعی محدود (narrow)هوش مصنوعی عمومی (general)هوش مصنوعی سوپر (super)اینا نوع نیستنا! سطحن.هوش مصنوعی محدود artificial narrow intelligenceاین سطح رو بهش weak artificial intelligence هم میگن اتفاقا ، توی این سطح هوش مصنوعی فقط از اختیارات محدود و وظایف تعیین شده استفاده میکنه ، ماشین اینجا توانایی فکر کردن ندارهمثل چی؟siri , cortana , alexa , sofia the robot , auto-carو اینا ..هوش مصنوعی عمومی artificial general intelligenceاین یکی هم یه اسم دیگه داره که strong artificial intelligence گفته میشه ، و اینجا ماشین توانایی تصمیم گیری رو پیدا میکنه و توی این برهه‌ی زمانی هوش مصنوعی عمومی وجود نداره اما پیش بینیا حاکی از اینه که به زودی میان پیشمون!مثل دستیار پزشک ، البته اینکه الان پزشکا از هوش مصنوعی استفاده میکنن برای جراحی و تشخیص بیماری یه بحثه ، اینکه یکی باشه “مثل” پزشک که دنیای اطرافشو درک کنه و ظرفیت مشابه برای انجام فعالیت ها داشته باشه یه بحث دیگست!هوش مصنوعی عمومی تا حدودی میتونه نگران کننده هم باشه البتهبه قول خدابیامرز هاوکینگتوسعه‌ی هوش مصنوعی میتونه پایان نسل بشر رو رقم بزنه چون میتونه اختیار خودشو بگیره دستش و خودشو دوباره طراحی کنه!آخری هم هوش مصنوعی سوپر artificial super intelligenceتوی این سطح توانایی کامپیوترا از آدما میزنه جلو و بهش مسلط میشن!ولی نگران نباشید ، هنوز در حد یه فرضیست.یه مقایسه‌ی کلی بخوایم داشته باشیم از این ۳ تا اینجوری میشه:هوش مصنوعی ضعیف جاییه که فعلا ما قرار داریم ، عمومی آینده ایه که میخوایم بهش بریم و سوپر آینده ایه که برای هوش مصنوعی میبینیم.یادتونه گفتم اینا نوع نیستن سطحن؟حالا اینجا میخوایم بریم سر انواع هوش مصنوعی و اونارو دسته بندی کنیم!اینم در نظر بگیرید که این دسته بندی بر اساس کاربردهاییه که دارن.۴ تا نوع دارهماشین های واکنش‌گر یا انفعالی reactive machines aiهوش مصنوعی با حافظه‌ی محدود limited memory aiمبتنی بر تئوری ذهن theory of mind aiخود آگاه self-awareماشین های انفعالی:این ماشین بر اساس دیتاهایی که داره و در نظر گرفتن حالت فعلی ای که در اون قرار داره کارشو انجام میده ، منتها مشکلش اینه که حرکاتی که میزنه رو یادش نمیمونه ، یعنی تجربه هایی که کسب کرده رو نمیتونه ازشون استفاده کنههمین باعث میشه دست و پای انفعالیا بسته بشه و فقط تو موارد خاص کاربرد داشته باشنمثل وقتی که deepblue تو دهه‌ی ۹۰ ماشین تونست گری کاسپاروف که قهرمان شطرنج بود رو شکست بده :}هوش مصنوعی با حافظه‌ی محدود:اینم از اسمش تا حدودی معلومه چجوری کار میکنه ، برعکس قبلی تجاربشو ذخیره میکنه اماااا نه برای همیشه ، برای یه مدت محدود ؛ همین باعث میشه تصمیماتش بهینه و آگاهانه باشه.مثل ماشین های خودران که از طریق سنسور هایی که دارن میتونن عابر رو تشخیص بدن ، یا لاینی که داره توش رانندگی میکنه رو عوض کنه.کلاً دیتاها رو تا زمانی ذخیره میکنه که یه تصمیمی رو بخواد تو آینده‌ی نزدیک بگیره.ماشین مبتنی بر تئوری ذهن:این نوع از هوش مصنوعی به اون صورت تحقیقات تکمیلی انجام نشده براش و هنوز دارن روش کار میکنن ولی کلاً اساسش اینجوریه که تمرکزش روی هوش هیجانی افراده تا بتونه باور ها و افکار رو بهتر درک کنه و تاثیری که هرکدوم از اینا روی تصمیم گیریه یه فرد میذاره رو متوجه بشه.این نوع از ماشین میتونه تصمیم گیری رو درک و آنالیز کنه.ماشین خود آگاه:خب این یکی هم مثل قبلی هنوز وجود نداره ، چون این ماشین باید بتونه بدون دخالت انسان تصمیم گیری انجام بده و میتونن بفهمن توی چه حالتی هستن و بر اساس دیتاهایی که از بقیه دریافت میکنن میفهمن احساس بقیه راجع بهشون چیه!!حالا راجع به اینکه ماشین ها بتونن مثل انسانها رفتار کنن آلن تورینگ که راجع بهش صحبت کردیم اومد یه تستی رو انجام داد که اسمشم گذاشت تست تورینگ و تو سال ۱۹۵۰ مطرحش کرد.تست تورینگ اینو میگه که اگه یه دیوار رو در نظر بگیریم که یه طرفش ماشین باشه و یه طرف دیگش یه انسان قرار گرفته باشه ، اگه از طریق سؤال و جوابی که بین این ۲ تا صورت میگیره آدمه نفهمه اونی که پشت دیواره یه انسانه یا ماشین ، ماشین تست رو برنده میشه!حالا جالبه بدونید کانسپت هایی که ازشون کپچا حاصل میشه ، تست تورینگ معکوسه!برای تست تورینگ ماشین باید ۴ تا ویژگی رو داشته باشه:پردازش زبان طبیعی natural language processing:که بتونه محاوره داشته باشه و ارتباط برقرار کنه.بازنمایی دانش knowledge representation:که بتونه اطلاعاتی که دریافت میکنه رو ذخیره کنهاستدلال خودکار automated reasoning:اینجا از اون اطلاعات ذخیره شده استفاده میکنه و به سؤالا جواب میده و ممکنه این وسط به نتایج‌ جدیدی هم برسه حتی!یادگیری ماشین machine learning:برای انطباق با شرایط جدید و شناسایی و استخراج الگوها تا بتونه ازشون بعداً هم استفاده کنه.خب حالا بریم سر شاخه های هوش مصنوعی:تا اینجا یه سری تئوری های لازمو گفتیم که شما یه دیدی پیدا کنید نسبت به این داستاناز اینجا به بعد میتونید یدونه از ایناروانتخاب کنید و شروع به کار کنید!البته به همین سادگی هم نیست و شما نیاز دارید که پایه‌ی ریاضی نسبتاً خوبی داشته باشید ، علی الخصوص جبر خطی و آمار و احتمال.کلی هم بخوایم نگاه کنیم پایه‌ی این قضیه روی احتماله اصلا ، پس اینایی که گفتمو در نظر بگیرید.هوش مصنوعی رو میتونیم به شاخه های زیر تقسیم کنیم:Machine learningDeep learningNatural language processingRoboticsExpert systemFuzzy logicخب دوتاشون براتون آشنا بود ، machine learning و natural language processing!یادگیری ماشین:همونطور که گفتیم یادگیری ماشین یه علمیه که ماشینا یادمیگیرن تا بتونن برای پردازش و تجزیه و تحلیل دیتا ازش استفاده کنن.چجوری؟ سیستم از دیتا ها ، دستور العملا یا تجربه ها به یه سری الگو یا pattern میرسه و بر اساس اون شروع به تصمیم گیری و‌ حل میکنهکلا هدف یادگیری ماشین اینه که بدون کمک آدما ، کامپیوترا بتونن یادگیری داشته باشن و خب ۵۳۸۲۵ تا الگوریتم های مختلف وجود داره که اینا همشون بر اساس ۳ تا الگوریتم اصلینSupervised learning یادگیری با نظارتunsupervised learning  یادگیری بدون نظارتReinforcement learning یادگیری تقویتییه توضیح مختصر بخوام بدم راجع به این الگوریتما ، فرض کنید میخواید یه جوری به ماشینتون بفهمونید که فرق قناری و خروس چیه ، یه جوری که بعداً ازش سؤال پرسیدید با درصد خطای کمی بهتون جواب درست رو بدهخبمیتونید با این ۳ تا انجامش بدیدچجوری؟با نظارت اینطوریه که شما روی عکس یا هرچیزی لیبل گذاری میکنید و میگید این قناریه ، این خروسه بعد ماشین یاد میگیره.برای بدون نظارت ما هیچ lable یا برچسبی نمیزنیم.یکی از روش های بدون نظارت که بهش مصورسازی میگن ، شما یه تعداد زیااااادی عکس میدی به ماشین ، بعد ماشین خودش بر اساس اون الگوریتمی که داره باهاش پیاده سازی میشه ساختار عکسارو پیدا میکنه و دسته بندی میکنهیادگیری تقویتی دقیقاً مثل یه کودک نوپا میمونه که شما میخواید یه چیزی بهش یاد بدید ، بعد هی ازش سوال می پرسید ،اگه درست گفت ، بهش جایزه میدید ، مثلا یه آبنبات میدید بهش میگی آفرین ، یعنی چه با جواب درست چه غلط ، مراحل یادگیریش داره تکامل پیدا میکنهاینم دقیقا همونهمنتها دیگه آبنبات نمیدی ، یه سری راه ها وجود داره ، مثلا یه پالس سیگنال میدی بهش و اون میفهمه درست جواب داده یا نه.درکل هرکدوم از این بخشا پتانسیل اینو دارن که یه پادکست جدا بشنمیتونید بهمون بگید به کدوم بخش علاقه‌ی بیشتری دارید تا قسمت بعدی راجع به همون باشه =]یادگیری عمیق:اینم اتفاقا نوعی از یادگیری ماشینه که ایده‌ی طراحیش بر اساس یادگیری ذهن و شبکه‌ی عصبی انسانه.الگوریتماشم اینطوریه که با دیتاهای کم خیلی جواب درستی نمیده بهموناصولا با حجم بالاتر دیتا عملکردشم میره بالاتر ، بنابراین برای پیاده سازیش نیاز به کارت گرافیک های قوی داریمهرچی دیتا و زمان بیشتری بهش بدیم ، جواب بهتری هم بهمون میده.پردازش زبان طبیعی:همونطوری که گفتم استفاده‌ی nlp برای محاوره‌ی بین انسان و کامپیوترههدفش اینه که زبان انسان هارو بتونه بخونه و متوجه بشهفرض کنید یه انسان با یه ماشین صحبت میکنه ، ماشین صدای انسان رو دریافت میکنه و بعدم تبدیل به متنش میکنه ، حالا میاد روی متن پردازش انجام میده و تحلیلش میکنه ، جواب رو به صوت تبدیل میکنه و‌ به انسان برمیگردونهیا مثلا توییتر توییتی که مرتبط با خشونت یا تروریسم باشه رو حذف میکنه.اینجا دیگه فقط بحث text مطرحه.رباتیک:اینم دیگه کمو بیش آشنایی دارید باهاش ، روی کارکرد روبات ها تو دنیای واقعی تمرکز میکننمثل روبات سوفیا که گفتیم بالاترتو گوگل اگه سرچ کنید راجع به روبات سوفیا چیزای باحالی میبینید!منطق فازی:اینو ساده بخوام توضیح بدم ، منطق کامپیوتر بر چه اساسیه؟ آفرین ، صفر و یک.ولی خب این منطق کامل نیست دیگه ، چونکه خیلی از مسائل کاملا قطعی نیست و میتونن حدودی باشن. واسه همین لوکاسویچ که یه فیلسوف لهستانی بود بحث منطق فازی رو آورد وسطحالا فازی لاجیک بیشتر از ۲ تا حالت میتونه داشته باشهاین متد بر اساس نظریه‌ی degrees of truth یا سطوح درستیهیعنی مثلا من به جای اینکه بپرسم:این درسته یا غلط؟میپرسم:چقدر درست یا چقدر غلطه؟اینجوری.ازش هم برای حل مشکلات پیچیده‌ی پزشکی که شامل تصمیم گیریه استفاده میشه.سیستم های خبره:این سیستم هم میتونه یاد بگیره و هم میتونه تصمیم بگیره ، برای حل مسئله ها هم از if-then logic استفاده میکنندرکل گفتیم هدف هوش مصنوعی اینه که هوش انسانی رو بتونه شبیه سازی کنه دیگهحالا سیستم خبره الگوهای منطقی که یه متخصص انسانی بر اساس اونا تصمیم میگیره رو‌ شناسایی میکنه و بعدش بر اساس اون الگوها مثل انسان تصمیم میگیرهتو چه زمینه هایی کاربرد دارن؟تشخیص عیب خودرو ، تشخیص بیماری ، کنترل وضعیت بیمار و..جالب اینجاست که سیستم خبره میتونه با منطق فازی درهم تنیده بشه و اصلا یه چیز عجیب غریبی از کار در میادخب اینم از این.فکرکنم تا همینجا هم خیلی طولانی شد ، اگه علاقه مند بودید قسمتای بعدی سرکی رو همین فرمون با هوش بریم جلو ، که قسمت بعدی باشه چجوری و از کجا شروع کنیمکدوم فیلدو انتخاب کنیمبا کدوم زبانچگونهچطور..فایل pdf کتاب آقای راسل هم تو کانال تلگراممون همراه با این پادکست براتون گذاشتیم ، کتاب رفرنس هوش مصنوعی این کتابه ؛خلاصه این قسمتم تموم شد ، اگه فکرمیکنید ممکنه به درد کسی بخوره مارو بهش معرفی کنید.خدافظ.</description>
                <category>intern plus plus</category>
                <author>intern plus plus</author>
                <pubDate>Sun, 03 Jan 2021 20:20:23 +0330</pubDate>
            </item>
                    <item>
                <title>سفر به اعماق کامپیوتر (قسمت چهارم)</title>
                <link>https://virgool.io/intern-plus-plus/%D8%B3%D9%81%D8%B1-%D8%A8%D9%87-%D8%A7%D8%B9%D9%85%D8%A7%D9%82-%DA%A9%D8%A7%D9%85%D9%BE%DB%8C%D9%88%D8%AA%D8%B1-%D9%82%D8%B3%D9%85%D8%AA-%DA%86%D9%87%D8%A7%D8%B1%D9%85-j8xdbl68kmm9</link>
                <description>.سلاامامروز حالتون چطوره؟انچه در ادامه میخونید متن پادکست ما هست کی میتونید از اینجا گوش بدید همچنین میتونید مارو از اینجاها دنبال کنید. https://castbox.fm/episode/%D8%B3%D9%81%D8%B1-%D8%A8%D9%87-%D8%A7%D8%B9%D9%85%D8%A7%D9%82-%DA%A9%D8%A7%D9%85%D9%BE%DB%8C%D9%88%D8%AA%D8%B1(%D9%82%D8%B3%D9%85%D8%AA-%DA%86%D9%87%D8%A7%D8%B1%D9%85)-id2716424-id332336567?country=us سلام.حالتون چطوره؟اینجا که اینترن پلاس پلاسه.توی اینترن پلاس پلاس ما سعی می‌کنیم تجربه های شخصی خودمون رو با منابع علمی قاطی کنیم و چیزایی بهتون بگیم که توی راه برنامه نویس بهتری شدن کمکتون کنه و سردرگمی شمارو کم کنه.الانم  شما دارید به چهارمین قسمت سفر به اعماق کامپیوتر گوش میدید.سفر به اعماق کامپیوتر هم یکی از سری پادکست های ماست که توش اصطلاحت فنی رو تعریف میکنیم.اگه قسمت های قبلی این سری رو گوش نکردید اونارو هم گوش کنید.توی این قسمت من که فلانی ام با فلانیمون میخوایم در مورد لایبری و فریمورک که قبلا چند بار قولش رو داده بودیم صحبت کنیم و در بخش دوم پادکست هم میریم سراغ شی گرایی.«موزیک»خوب اول از همه میریم سراغ code reusability که ینی قابلیت استفاده ی مجدد از کد.دیگه اگه مارو دنبال کرده باشید میدونید که ما مستقیم نمی‌ریم سر اصل داستان.خیلی اصولی و ریشه ای میریم جلو که قشنگ مطلبو جا بندازیم.تعریف راحت ترش اینه که کدی که شما مینویسی چقدر راحته که ازش دوباره بتونی استفاده کنی؟برای مثال ما توی اکثر زبون های برنامه نویسی یه چیزی به اسم تابع داریم.شما وقتی یه تابع مینویسید در واقع دارید یه تیکه کُد reusable می‌نویسید که از جاهای مختلف برنامه میتونید صدا بزنیدش و ازش استفاده کنید. که این خیلی خوبه و خیلی کمک میکنه. که کد نوشتن براتون راحت تر بشه و مجبور نباشید کد های تکراری مشابه هم رو جاهای مختلف برنامه بنویسید.تازه اینجوری اگه اون تابع باگ داشته باشه رفع کردنش خیلی راحت تره تا اینکه بخواید برید ده جای برنامه دونه دونه اصلاح کنید. و این دونه دونه اصلاح کردن ها علاوه بر وقتی که ازتون میگیره احتمال خطا رو هم بالا میبره و قطعا یه روز گندش در میاد.از ما گفتن بود.حالا این تابع که گفتیم یه سطح پایینی از reusability هست. بعد از اون سوال بعدی که میتونید از خودتون بپرسید اینه که آیا من میتونم این تابع رو کپی پیست کنم تو یه برنامه ی دیگه ام ازش استفاده کنم؟قبل از جواب دادن به این سوال میریم سراغ مفهوم دیگه ای به اسم dependency یا وابستگی.جواب این سوال دقیقا تو همینه.ینی باید از خودتون بپرسید که چیزای مورد نیاز برای اجرا شدن تابع من چقدر وابسته به برنامه ی منه.اگه خیلی وابسته به برنامه شما باشه نمیتونید زارتی بدون هیچ تغییری کپی پیست اش کنید تو یه پروژه ی دیگه اتون و ازش استفاده کنید و نیاز به یسری تغییرات داره که توی پروژه ی جدیدتون درست کار کنه.و اینینی کدی که نوشتید خیلی هم reusable نبوده.و توی هر پروژه ای که توش اون تیپ کار نیاز باشه مجبورید یه تایمی رو برای تغییر دادن و هماهنگ کردن اون تیکه کدتون با پروژه ی جدیدتون کنار بزارید.حالا فرض میکنیم که شما یه تابعی نوشتید که به پروژه ی شما هیچ وابستگی نداره یا ساده تر بگیم مستقل از پروژه ی شماست.حالا به راحتی میتونید بدون هیچ تغییری کپی پیست اش کنید جاهای دیگه و ازش استفاده کنید.اینجوری میتونید ادعا کنید که کد های reusable تری نوشتید.آفرین ?اما اگه پاتون رو یه قدم فرا تر بزارید چی؟«پیش به سوی بینهایت و فراتر از آن»حالا همه ی اینا رو گفتیم که برسیم به تعریف لایبری.ببینید یه لایبری یه تیکه کده از پیش نوشته شده ی مستقل هست که شما میتونید اونو به برنامه اتون اضافه کنید و ازش استفاده کنید.حتی تو زبون های کامپایلی این کد ها به صورت کامپایل شده در اختیار شما قرار میگیرن و اینجوری حتی کامپایلر شما زحمت کامپایل کردن اون لایبری هم گردنش نیست.«با صدای یواش»اگه نمیدونید زبون کامپایلی چیه باید پاشید برید قسمت های قبلی ما رو به ترتیب گوش کنید بیاید.«بی صدای یواش»خلاصه که لایبری دیگه آخرت reusability عه.?حالا بریم به چند تا سوالی که ممکنه تو ذهنتون ایجاد شده باشه جواب بدیم.این لایبری هارو از کجا میتونیم گیر بیاریم؟بسته به زبان برنامه نویسی که دارید استفاده میکنید راه های مختلفی میتونه وجود داشته باشه. مثلا اگه یه لایبری میخواید که تو مثلا java فلان کار رو بکنه برید تو گوگل سرچ کنید:folan kar library for javaحتما اگه لایبری برای اون کار وجود داشته باشه آموزش نصب و استفاده ازش هم وجود داره.البته خیلی مواقع هم لایبری ها نوشته میشن ولی در اختیار عموم قرار نمیگیرن و مثلا فلان شرکت یه لایبری نوشته که فقط خودش استفاده کنه.تازه یسری لایبری هم هستن که پولی ان.آیا منی که دارم این پادکست رو گوش میدم میتونم لایبری بنویسم؟منی که دارم این پادکست رو ضبط میکنم که میتونم. پس تو ام میتونی. ولی اگه نوشتی در اختیار عموم قرارش بده که بقیه هم استفاده کنن. هر چی آدمای بیشتری ازش استفاده کنن reusable تره?.در کل لایبری ها اندازه های خیلی مختلفی دارن یه لایبری ممکنه صد ها هزار خط کد باشه و یه لایبری دیگه چار تا تابع کوچولو باشه.اگه خواستید یه لایبری بنویسید هم برید سرچ کنید ببینید توی زبان برنامه نویسی که کار میکنید راه اصولی برای نوشتن لایبری و منتشر کردنش چیه.توی لایبری که مینویسم میتونم از لایبری های دیگه استفاده کنم؟!بله یه لایبری میتونه به لایبری های دیگه وابستگی داشته باشه. حالا جالب میشه اگه اون لایبری ها هم باز به یسری لایبری دیگه وابستگی داشته باشن و تازه اون یکی…&lt;two hours later&gt;اونا هم باز به یسری لایبری دیگه وابسته باشن.حالا شما میتونید یه درخت وابستگی یا dependency tree رو تصور کنید. که برای اینکه یه لایبری کار کنه نیاز هست که تمام شاخه ها و برگ های درخت هم نصب بشن.و این وظیفه توی خیلی از زبون های برنامه نویسی به عهده ی package manager هاست.این package manager ها این درخت وابستگی رو درک میکنن و وقتی شما میاید یه لایبری رو نصب کنید میرن همه ی وابستگی هاش رو دانلود و نصب میکنن.«خیلی ممنون معروف»حالا جالبه بدونید یکی از چیزایی که باعث میشه یه زبون برنامه نویسی پیشرفت کنه و محبوب بشه لایبری هایی هست که برای اون زبون نوشته شده.مثلا میگن پایتون توی هوش مصنوعی زبون قدرتمندیه و دلیلش اینه که لایبری های خفنی تو این زمینه براش نوشته شده.اما بریم سراغ فریم ورک.ببینید فریم ورک یه چیزی تو مایه های لایبریه.بعضی جا ها میگن مجموعه ای از لایبری هاست.در کل مثل لایبری کد های از پیش نوشته شده و مستقله ولی نحوه ی استفاده اش فرق میکنه.یه فریم ورک با خودش ساختار میاره و شما رو مجبور میکنه که توی ساختار اون کد بزنید.ینی توی لایبری جریان اجرا شدن برنامه دست شماست و هر جا لازم بدونید لایبری هارو صدا میکنید.ولی توی فریم ورک جریان اجرا شدن دسته فریم ورکه و این فریم ورکه که کد هایی که شما نوشتید رو صدا میزنه.بنابراین شما راحت میتونید وقتی وسط یه پروژه هستید یهو میبینید یه لایبری نیاز دارید همون لحظه به پروژه استون اضافه اش کنید ولی فریم ورک اینطوری نیست و معمولا باید اول پروژه برای خودتون مشخص کنید که میخواهید از چه فریم ورکی استفاده کنید و معمولا هم نمیشه چند تا فریم ورک رو که همشون توی یه زمینه کاربرد دارن رو همزمان استفاده کرد چون جریان اجرا شدن اون ها با هم متفاوته و خلاصه اصلا جور در نمیاد.نمیگم غیر ممکنه ولی شتر گاو پلنگ میشه.نکته ی بعدی اینه که شما بین دوراهی فریم ورک و لایبری قرار ندارید و وقتی از یه فریم ورک استفاده میکنید همچنان میتونید لایبری ها رو هم به برنامه اتون اضافه کنید و مشکلی از این نظر ندارید.بعضی موقع ها هم مرز باریکی بین لایبری بودن و فریم ورک بودن وجود دارد و بعضی چیزا هستن که بعضیا بهشون میگن فریم ورک و بعضیا میگن لایبری اینا اینجوری ان که بخشی از جریان اجرا رو دست میگیرن و بخشی رو به عهده ی خودتون میزارن واسه همین آدما گیج میشن که به اینا چی بگن.خلاصه که سخت نگیرید به اینا.امیدوارم که پادکست امروز ما هم براتون مفید بوده باشه.خیلی مهمه که مارو به دوستاتون معرفی کنید.ما به این حمایت شما نیاز داریم تا بتونیم با قدرت تر ادامه بدیم.مارو میتونید از جاهای مختلفی دنبال کنید.تلگرام و اینستاگرام کست باکس و ویرگول و خیلی جاهای دیگه.و آدرس همه اینا توی سایت ما به ادرس internplusplus.ir هست.از هر جایی که دوست داشتید مارو دنبال کنید.تا اپیزود بعدی و یه آموزش دیگه خدافظ.</description>
                <category>intern plus plus</category>
                <author>intern plus plus</author>
                <pubDate>Mon, 30 Nov 2020 22:20:59 +0330</pubDate>
            </item>
                    <item>
                <title>فرق وبسایت های داینامیک و استاتیک چیست؟</title>
                <link>https://virgool.io/intern-plus-plus/%D9%81%D8%B1%D9%82-%D9%88%D8%A8%D8%B3%D8%A7%DB%8C%D8%AA-%D9%87%D8%A7%DB%8C-%D8%AF%D8%A7%DB%8C%D9%86%D8%A7%D9%85%DB%8C%DA%A9-%D9%88-%D8%A7%D8%B3%D8%AA%D8%A7%D8%AA%DB%8C%DA%A9-%DA%86%DB%8C%D8%B3%D8%AA-so0fojpes7hc</link>
                <description>سلام.چطورید؟توی این پست فرق بین وبسایت های static و dynamic رو با رسم شکل برسی کردیم. که توی پادکست قبلی در موردش صحبت کرده بودیم.هدف ما اینه که شما بفهمید ایده ای که میخواید پیادش کنید کدومه راه پیاده سازیش رو پیدا کنید. اگر هم پیدا نکردید بپرسید. از اینجا ها میتونید با ما در تماس باشید.مارو از اینجاها دنبال کنید.پایدار باشید?✋.</description>
                <category>intern plus plus</category>
                <author>intern plus plus</author>
                <pubDate>Sun, 08 Nov 2020 11:33:40 +0330</pubDate>
            </item>
                    <item>
                <title>سرکی به دنیای برنامه نویسی (وب)</title>
                <link>https://virgool.io/intern-plus-plus/%D8%B3%D8%B1%DA%A9%DB%8C-%D8%A8%D9%87-%D8%AF%D9%86%DB%8C%D8%A7%DB%8C-%D8%A8%D8%B1%D9%86%D8%A7%D9%85%D9%87-%D9%86%D9%88%DB%8C%D8%B3%DB%8C-%D9%88%D8%A8-apzbu1imcqgl</link>
                <description>.سلاامامروز حالتون چطوره؟انچه در ادامه میخونید متن پادکست ما هست کی میتونید از اینجا گوش بدید https://castbox.fm/episode/سرکی-به-دنیای-برنامه-نویسی(وب)-id2716424-id316631781?utm_source=website&amp;utm_medium=dlink&amp;utm_campaign=web_share&amp;utm_content=%D8%B3%D8%B1%DA%A9%DB%8C%20%D8%A8%D9%87%20%D8%AF%D9%86%DB%8C%D8%A7%DB%8C%20%D8%A8%D8%B1%D9%86%D8%A7%D9%85%D9%87%20%D9%86%D9%88%DB%8C%D8%B3%DB%8C(%D9%88%D8%A8)-CastBox_FM اینجا اینترن پلاس پلاسه و شما دارید به دومین قسمت سرکی به دنیای برنامه نویسی گوش میدیدتوی اینترن پلاس پلاس ما سعی میکنیم منابع علمی رو با تجربه ی شخصی خودمون قاطی کنیم و چیزایی بهتون بگیم که تو راه برنامه نویس بهتری شدن به شما کمک کنه و سردرگمی شما رو کم میکنه.توی سری پادکست سرکی به دنیای برنامه نویسی هم هر قسمت یه رشته ی برنامه نویسی رو با هم برسی میکنیم و توی این قسمت من که زهرا ام با علی مون  قراره بریم سراغ وب و مسیر برنامه نویس وب شدن رو بهتون نشون بدیماول میریم سراغ تعریف وب:وب یا world wide web یا www یه سیستم اطلاعاتیه که اسناد و یسری منابع دیگه هستن که هر کدوم یه آدرس منحصر به فرد دارن که بهش Uniform Resource Locators یا URL میگن که این منابع از اینترنت قابل دسترسی ان‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌مثلا شما تو بخش آدرس مرورگرتون یه URL وارد میکنید و اینتر رو میزنید مرورگرتون میره اون چیزی که url بهش اشاره میکنه رو پیدا میکنه , دانلود میکنه و به شما نشون میده.که میتونه یه صفحه ی وب باشهحالا بریم ببینیم که این صفحه های وب که ساختنشون کار برنامه نویس های وبه چطوری ساخته میشن.یه صفحه ی وب در کل سه تا بخش میتونه داشته:بخش اول: content یا محتواشه که با زبون HTML مینویسن و میشه توش متن و لینک و عکس و ویدیو و یسری input و دکمه و خیلی چیزای دیگه گذاشت که میشه به اسکلت صفحه ی وب تشبیهش کردبخش دوم: presentation یا نحوه ارائه شه که میتونه اندازه و نحوه قرارگیری و بقیه مشخصات ظاهری اون محتوا رو مشخص کنه که با زبون CSS مینویسنش که میشه به پوست صفحه ی وب تشبیهش کردبخش سوم: هم behavior یا رفتار صفحه اس که یعنی میشه یه عملکردی رو برای صفحه تعیین کرد و با زبون JavaScript  مینویسنش که میشه به عضله ی صفحه ی وب تشبیهش کردمثلا یه صفحه ی لاگین رو در نظر بگیریدمثلا با html میتونیم بگیم که دو تا ورودی داریم که میشه توش برای username و متن نوشتpassword و یه دکمه داریم که اگه بزنیم لاگین میکنه.بعد توی css میگیم هر کدوم از این آیتم های تو صفحه چه شکلی و چه رنگی باشن و کجای صفحه باشنو در نهایت توی javascript میتونیم بگیم وقتی روی دکمه ی لاگین کلیک شد این دستورالعمل ها اجرا شهااااااااااااااااااااااااااااااپس اینجا میتونیم نتیجه بگیریم که بین این سه تا زبون فقط زبون جاوا اسکریپته که زبون برنامه نویسیه و میشه باهاش دستورالعمل نوشت و با اون دوتای دیگه نمیشه.در مجموع یه برنامه نویس وب حداقل باید این سه تا زبون رو بلد باشه تا بتونه یه صفحه ی وب رو بسازه هر چند که یک سری سایت ها شاید به همش نیازی نباشهبرای یادگیریه این سه تا زبون آموزش های فارسی و غیر فارسی و رایگان و پولی تو اینترنت ریخته و برای اجرای این زبونا تنها چیزی که لازم  دارین فقط یه مرورگرهمون طور که توی سفر به اعماق کامپیوتر گفتیم قاعدتا اینجا شما نیاز به یک ide یا text editor دارید که باهاش بتونید فایل های html و css و js تون رو ادیت کنید که ما یه پست هم گذاشتیم و چند تا ide و text editor رو معرفی کردیم که میتونید از اونا هم استفاده کنید ولی برای دیدن نتیجه ی اجرا شدن کدتون باید فایل هایی که نوشتید رو با مرورگر باز کنید.بعد از اینکه اینا رو یاد گرفتید. در قدم بعد میتونید خیلی چیزای دیگه ای رو یاد بگیریدمثلا یسری فریم ورک برای css داریم که معروف ترینش bootstrap هه که خیلی هم چیز خوبیهو کلی فریم ورک جاوا اسکریپت داریم مثل react , angular , vue.js و خیلیای دیگه که توی پروژه های بزرگتر میتونید از اونا استفاده کنید و خیلی به شما کمک میکنن.و از مزایای استفاده از این فریم ورک ها بخوایم بگیم. اینه که یه چارچوبی رو برای شما فراهم میکنه ، شما هم با اضافه کردن یه سری کد کامل ترش می کنید ؛ یعنی لازم نیست کد زدن رو از صفره صفر شروع کنید و میتونید کد-استایل ثابتی رو توی همه ی پروژه هاتون داشته باشید.اگر معنی فریم ورک و لایبری رو نمیدونید اشکال نداره. یا برید سرچ کنید یا وایسید که قسمت بعدی در موردشون صحبت کنیم.به قول ممد:&lt; اگر جایی رو نگران شدید متوجه نشید &gt;حالا بعضیا هم هستن میگن ما فریم ورک vanilla js کار میکنیم.کهدر واقع دارن جک میگن. ?در واقع vanilla js کار ها اعتقاد دارن که خود جاوااسکریپت آنقدر کامل و خوب هست که نیازی به استفاده از فریم ورک های دیگه نیستحتی یه نفر برای vanilla js یه سایت ساخته که وقتی میرید توش میتونید فریم ورک vanilla رو دانلود کنید.که یه فایل خالیه. ?و منظورش هم اینه که شما به چیزی بیشتر از خود جاوااسکریپت نیازی نداریددر کل این اصطلاح بیشتر یه جک عه ولی جدای از شوخی طرفدار های خودش رو داره و از مزیت هاش بخوایم بگیم اینه که پروژه ی شما تا جایی که ممکنه سبک میشه چون هیچ چیز اضافه ای در کار نیست و این میتونه تو سرعت لود شدن صفحه ها تاثیر بزاره و انعطاف بیشتری هم دارید توش و با هر استایلی بخواید میتونید کد بزنید و محدودیتی ندارید. و در نهایت موقع توسعه دادن هم درگیر ابزار های زیادی نیستید و این ینی دردسر کم تر.ولی بیشتر آگهی های استخدامی که از شرکت ها میبینیم معمولاً web developer هایی میخوان که یکی از اون سه تا فریم ورکی که بالا تر گفتیم ینی (انگولار یا ویو یا ری اکت) رو بلد باشن. یکی از دلیل هاشم اینه که همون طور که گفتیم اون فریم ورک ها کد استایل ثابتی دارن. و مثلا اگه یکی استعفا بده شما بخواید برید جاش کار کنید راحت تر سر در میارید از کد های اون بنده خدا.از مزیتای  گفتیم vanilla js که به خاطر انعطافش هر کی هر جور میخواد کد میزنه ولی اینکه شما بخواید از کد های بقیه سر در بیارید یکم سخت میشه. و علاوه بر اون باز به خاطر انعطاف زیاد شما اگر نظم و وسواس رو نداشته باشید ممکنه کد هاتون خیلی پیچیده و به اصطلاح فنی اسپاگتی بشه تا جایی که خودتون هم نفهمید چی کار کردید.خلاصه که ما نمیخوایم بگیم کدوم بهتره و کدوم بدتره.اینترن پلاس پلاس یه پادکسته بی طرفه. :)))اون دیگه تصمیمش با شماست.کنار همه‌ی اینا کلی لایبری داریم که میتونید استفاده کردن ازشون رو یاد بگیرید مثلا anim.js که یه لایبری برای انیمیشن دادن به المان های صفحه اس و خیلی لایبری های دیگه که هر کدوم واسه یه کار خاصی کاربرد دارن و شما ممکنه تو پروژه اتون از اونا لازم باشه که استفاده کنید.و جدای از همه ی اینا به جز این سه تا زبون ما زبون های دیگه ای هم داریم که میشه ازشون برای طراحی و ساخت صفحات وبسایت ها ازشون استفاده کرد. ولی نکته ی مهمه اینه که همه ی اون زبون ها باید در نهایت تبدیل شن به این سه تا چون مرورگر فقط این سه تا زبون رو ساپورت میکنه.مثلا یه زبون داریم به اسم تایپ اسکریپت که علی خیلی دوسش داره و تبدیل میشه به جاوا اسکریپت و مستقیم قابلیت اجرا روی مرورگر هارو نداره.البته یه پروژه هایی مثل web assembly هم وجود دارن که با استفاده از اون ها میشه با زبون های دیگه ای هم برای مرورگر ها برنامه نوشت. ولی در لحظه ای که ما داریم این پادکست رو ضبط میکنیم هنوز خیلی جا نیفتادن و به نظر نمیاد که بتونن به راحتی جایگزین این تکنولوژی هایی که گفتیم باشن. نهایتا میتونن به عنوان یه آپشن در کنار این چیزایی که گفتیم استفاده بشن.بنابراین شما الان دیگه مسیر رو تا حدودی فهمیدید چیهو خوشبختانه چون این تکنولوژی ها خیلی ساله که هستن باعث شده که ادما کلی وقت داشته باشن که براش اموزش و ابزار و هر چیزی که شما نیاز داشته باشید رو آماده کنن.و اصولا هم تقاضای خوبی داره مخصوصا اگه یکی از فریم ورک های جاوا اسکریپت که گفتیم مثل angular , react , vue.js رو خوب بلد باشید رو زمین نمی مونید :)حالا شاید چند سال از تولید این پادکست گذشته باشه فریم ورک های دیگه ای رو بورس باشن ولی الان اینا رو بورس ان مخصوصا تو ایران الان react خیلی رو بورسه.ولی اگه چند سالی از تولید این پادکست میگذره میتونید برید تو وبسایت هایی که آگهی استخدام دارن آگهی هارو ببینید که کدوم مهارت هارو بیشتر میخوان و برید اونا رو یاد بگیرید.شاید از لهن من فکر کنید که با آخر پادکست رسیدیم.ولی نهنرسیدیمتازه وسطش ایمچون هر چی که تا اینجا گفتیم مربوط بود به front end وب.در واقع تعریف فینیش اینه که front end وب به جایی از وبسایت میگن که کاربر میبینه که میشه ظاهر وبسایت.و تا اینجای کار هم ما همش گفتیم ساختن و طراحی کردن صفحه های وب.در صورتی که یه وبسایت به جز صفحه هاش و بخش ظاهریش ممکنه بخش های دیگه هم داشته باشه.دقت کردید؟ گفتم ممکنه. ینی شاید خیلی وبسایت ها هم فرانت اند خالی باشن و با همین چیزایی که گفتیم کارتون راه بیوفته.ولی بخش دیگه ای که در کنار front end هه بهش میگن backend یا برنامه نویسی سمت سرور که میتونه از طریق یه web api وصل بشه به front end و یسری اطلاعات رو رد و بدل کنه.که تا حدود خوبی تو قسمت قبلی سفر به اعماق کامپیوتر از نظر فنی برسیش کردیم.حالا هم میریم یه موزیک گوش بدیم بیایم در مورد back end صحبت کنیم.حالا بریم سراغ بحث شیرین back end یا برنامه نویسی سمت سرورکه همانطور که از اسمش تابلوعه برنامه ای که backend developer مینویسه قراره توی سرور اجرا بشه و نه توی مرورگر کاربر و هیچ جای دیگه.در واقع برنامه ای که روی سرور اجرا میشه وظیفه ی اصلیش اینه که درخواست های کاربر هارو جواب بده حالا این درخواست ها میتونن یه صفحه ی وب رو درخوات کنن و یا یه اطلاعاتی رو یا هر چیز دیگه ای رو.حالا این درخواست ها از کجا میان؟از برنامه هایی که روی دستگاه های کاربر ها دارن اجرا میشن. که یه بخشیشون برنامه هایی هستن که front end developer اونا رو نوشته و روی مرورگر کاربر دارن اجرا میشن.حالا بریم سراغ مسیر یادگیری back endشما با خیلی زبون ها میتونید برنامه نویسی سمت سرور بکنید و عملا محدودیتی ک تو front end بود رو ندارید.مثلاJava , php , c# , Ruby , python , javascript , go langزبون های خیلی معمولی هستن برای برنامه نویسی سمت سرور.که فقط یکیشون رو هم یاد بگیرید کافیه برای این که کارتون راه بیفته.حالا چرا این زبون ها برای برنامه نویسی back end توصیه میشن؟چون یک سری فریم ورک های قدرت مندی برای این زبون ها نوشته شده که کار با این زبون هارو برای برنامه نویسی backend خیلی راحت میکنن.مثلا: php لاراول رو داره و java اسپرینگ رو داره و ruby روبی ان ریلز رو داره و python جنگو رو داره و javascript اکسپرس رو دارهکه اینا که گفتم از معروف ترین فریم ورک های توسعه ی برنامه های سمت سرور ان و کلی فریم ورک دیگه هم هستن.حالا کاری که شما برای backend developer شدن باید انجام بدید اینه که یکی از این فریم ورک هارو به اضافه ی زبونش مسلط بشید تا بتونید برنامه های سمت سرور رو بنویسید و درخواست هارو جواب بدید.اماااااااابرنامه نویسی سمت سرور در کنار این چیزایی که گفتیم به دانش فنی زیادی نیاز داره. و شما در کنار اینا باید کلی چیز دیگه هم بدونیدمثلا معمولا نیازه که شما کار با دیتابیس رو هم خوب بلد باشید چون برای جواب دادن خیلی درخواست ها باید برنامه ی شما یکی از چهار عمل اصلی رو روی دیتابیس اعمال کنه.و باید الگوریتم ها رو هم خوب بشناسید. هر چی از الگوریتم های بهینه تری استفاده کنید میتونید محاسبات تون رو سریع تر کنید و در نهایت سریع تر جواب درخواست های کاربر هارو بدید و در نهایت به درخواست کاربر های بیشتری بتونید توی یه زمان مشخص جواب بدید. و این داستان مهم تر میشه وقتی که حجم داده های دیتابیس بالا میره چون هر چی ورودی بیشتر باشه برنامه کند تر میشه و اهمیت الگوریتم بهینه تر اونجا معلوم میشه. البته که در همین حین باید حواستون به مصرف RAM هم باشه چون سرور هم یه مقدار محدودی رم داره.در کنار این ها شما باید امنیت داده هاتون رو هم حفظ کنید که هر کسی نتونه به بخش هایی که بهش مربوط نیست دسترسی پیدا کنه یا بخواد خراب کاری کنه. بنابراین باید مفاهیم اولیه ی امنیت رو بدونید و در کنارش انواع حملات رو بشناسید که بتونید جلوشون رو بگیرید.و در نهایت خیلی چیزای دیگه هم مثل شبکه و سیستم عامل هست که دیگه طولانی میشه پادکست مون اگه بخوایم همه رو بگیمو در کل مسئولیت بیشتری هم به دوش برنامه نویس back end هست چون خیلی مهمه که سرویس بک اند امن و پایدار بتونه به کار خودش ادامه بده که اگه اینطور نباشه اوضاع خیلی بی ریخت میشه.و در کنار همه اینا شاید لازم باشه که شما آشنایی هم با فرانت اند داشته باشید.و در نهایت اینم بگیم که یه عده هستن که هر دو بخش front end و back end رو تسلط دارن که بهشون میگن full stackینی یه تنه میتونن جفت طرف هارو توسعه بدننکته ی دیگه هم که اینجا وجود داره اینه که بعضی از وبسایت ها اصلا نیازی به backend ندارن و فقط یه ظاهری دارن یا نهایتا یسری کد که همون سمت کلاینت اجرا میشن.مثلا من یه وبساتی دارم که رزومه ی خودم رو و لینک های شبکه های اجتماعی خودم رو گذاشتم توش.قاعدتا نیازی به برنامه نویسی back end ندارهیا مثلا شما یه اپلیکیشنی نوشتید یه وبسایت میزنید تو وبسایت از قابلیتاش و اینجور چیزا حرف زدید و یدونه هم لینک دانلود گذاشتیداونم باز نیازی به بک اند نداره.ولی اگه بخواید یه شبکه اجتماعی یا فروشگاه یا هر وبسایتی که نیاز داره که ملت بیان توش اکانت بسازن یا هر گونه پردازشی سمت سرور داره قاعدتا نیاز به backend دارید.حالا یه نکته ای هستوبسایت هایی که نیاز به backend ندارن چجوری درخواست هاشون رو جواب میدن؟جواب این سوال اینه که یسری برنامه هستن که بهشون میگن web server که مثلا:Apache , IIS , ngnix , ….مثال هاشن و این برنامه ها اینطوری ان که شما فقط فایل های برنامه ی front end تون رو که با html , css ,js نوشتید رو میدید به این ها و این ها میان فایل هاتون رو اصطلاحا serve میکنن. یعنی اگه کسی درخواست داد در جواب صفحاتی که طراحی کردید رو میفرستن.البته که بعضیاشون قابلیت های خفن تری هم دارن.و در نهایت یسری چیز دیگه هم هستن که بهشون میگن CMS که یعنی Content managment system که با کمک اینا با حداقل دانش برنامه نویسی میتونید یه وبسایت رو بیارید بالا.این تیپی کار میکنن که مثلا شما wordpress رو نصب میکنید و با توجه به نیاز وب سایتتون یه سری پلاگین هم روش نصب میکنید یه قالب هم یا میخرید یا خودتون مینویسید یا رایگان دانلود میکنید و روش نصب میکنید و وبسایت بتون آماده میشهکه انعطاف خیلی کم تری دارن نسبت به اینکه خودتون بخواید از صفر بنویسید backend , front end وب سایتتون رو ولی خوب یه راه حل خیلی سریع و ارزون میتونن باشن.خیلی ها هم هستن که با نوشتن پلاگین و قالب برای این CMS ها کسب درامد میکننحرف اخراین قسمت پادکست ما هم تموم شد.امیدوارم که براتون مفید بوده باشهتو قسمت های بعدی سعی میکنیم که بحث رشته های دیگه ی برنامه نویسی رو براتون باز کنیم که در نهایت هم آشنا باشید هم اگه میخواید رشته ی خودتون رو پیدا کنید راحت تر این کارو بکنید.مارو از جاهای مختلفی میتونید دنبال کنید. میتونید تو وبسایتمون که internplusplus.ir هست لینک شبکه های اجتماعی دیگه ی مارو ببینید. مثلا توی ویرگول متن این پادکست هامون رو میزاریم و توی تلگرام فایل صوتی پادکست هامون رو میزاریم و توی چنتا از اپلیکیشن ها پادکستی مثل کست باکس و انکر هم هستیم.از همه اینا مهم تر اینکه مارو به کسی که فکر میکنید براش میتونه مفید باشه این پادکست هامون معرفی کنید.مطمئن ام اگه الان یه نگاهی به دور و برتون بندازید میبینید که یسری تازه کنکور دادن میخوان انتخاب رشته کنن و یا دبیرستانی ان ولی نمیدونن چی کاره میخوان بشن و یا دانشجوی نرم افزار هستن.خیلی این معرفی کردن شما برای ما مهمه.با تشکرخدافظ.</description>
                <category>intern plus plus</category>
                <author>intern plus plus</author>
                <pubDate>Fri, 16 Oct 2020 20:57:14 +0330</pubDate>
            </item>
                    <item>
                <title>پشت صحنه</title>
                <link>https://virgool.io/intern-plus-plus/%D9%BE%D8%B4%D8%AA-%D8%B5%D8%AD%D9%86%D9%87-gqmpqzn5hs49</link>
                <description>پشت صحنه پادکست هامونبه مناسبت روز پادکست یه میکسی از پشت صحنه پادکست هایی که تا الان ضبط کردیم گذاشتیم که دور هم یکم بخندیم.? https://castbox.fm/episode/backstage-id2716424-id312045254?utm_source=website&amp;utm_medium=dlink&amp;utm_campaign=web_share&amp;utm_content=backstage-CastBox_FM مارو هم میتونید از اینجا ها دنبال کنیدinternplusplus.irکدومش از همه بامزه تر بود؟</description>
                <category>intern plus plus</category>
                <author>intern plus plus</author>
                <pubDate>Thu, 01 Oct 2020 10:54:03 +0330</pubDate>
            </item>
                    <item>
                <title>تفاوت های TCP و UDP</title>
                <link>https://virgool.io/intern-plus-plus/%D8%AA%D9%81%D8%A7%D9%88%D8%AA-%D9%87%D8%A7%DB%8C-tcp-%D9%88-udp-qgcruvsjdblf</link>
                <description>سلام! حالتون چطوره؟تفاوت پروتکل های TCP و UDP با رسم شکل! اینم یه شوخی که دیگه کامل براتون جا بیوفته:همین :)مثل همیشه لازمه بگم که مارو میتونید از اینجا ها دنبال کنیدپایدار باشید.</description>
                <category>intern plus plus</category>
                <author>intern plus plus</author>
                <pubDate>Fri, 11 Sep 2020 22:38:30 +0430</pubDate>
            </item>
            </channel>
</rss>