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

وضعیت
موضوع بسته شده است.

☾♔TALAYEH_A♔☽

کاربر نگاه دانلود
کاربر نگاه دانلود
عضویت
2017/05/18
ارسالی ها
35,488
امتیاز واکنش
104,218
امتیاز
1,376
پیش نیازهای شروع برنامه نویسی


اکنون که ما تصمیم گرفته ایم به دنیای بی انتها و لـ*ـذت بخش برنامه نویسی قدم بگذاریم، لاجرم نیاز داریم تا در کنار اصول و مفاهیم برنامه نویسی به علوم و مهارتهای جانبی که به حرفه ما کمک می کنند نیز نیم نگاهی داشته باشیم. در حقیقت در کنار فراگیری اصول برنامه نویسی، ما می بایست تفکری انتقادی یا اصطلاحاً Critical Thinking و تفکر منطقی یا Logical Thinking داشته باشیم، کمی با ریاضیات آشنایی داشته باشیم، معانی رنگ ها و نحوه به کار گیری رنگ در اپلیکیشن یا نرم افزار را بدانیم و …

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

تاثیر تایپ اصلی در راندمان برنامه نویسی
در واقع همان طور که یک ویرایشگر کد به منزله یک ابزار برنامه نویسی است، نحوه صحیح تایپ نیز می‌تواند همچون ابزاری کاربردی، کمک شایانی در حرفه ای شدن ما به عنوان یک برنامه نویس کند. از دید ما کسب مهارت تایپ صحیح (ده انگشتی) برای حرفه ی برنامه نویسی لازم و ضروری است. به عبارت دیگر برنامه نویسی صرفاً در نوشتن کد خلاصه نمی شود بلکه ما به عنوان یک برنامه نویس گاهی نیاز داریم تا پیرامون اپلیکیشن خود توضیحاتی بنویسیم و یا چنانچه عضو یک تیم برنامه نویسی باشیم نیاز داریم تا با مابقی برنامه نویسان در تعامل بوده و مکاتبه نماییم و یا از طریق Comment، توضیحاتی را درون کد خود بنویسیم.

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

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

به منظور فراگیری نحوه صحیح تایپ راه کارهای متفاوتی وجود دارد من جمله نرم افزارهایی که برای این منظور طراحی شده اند و حتی یکسری کلاس های آموزشی نیز وجود دارند. در حقیقت ما با مد نظر قرار دادن این نکته که دو انگشت اشاره ما می بایست روی دکمه های J و F قرار گیرند و همچنین این که هر کدام از انگشتان دست ما صرفاً می تواند حروف خاصی از صفحه کلید را فشار دهد، به راحتی خواهیم توانست -با کمی تمرین- تایپ ده انگشتی را فرا گیریم.

نکته ای که در فراگیری نحوه تایپ ده انگشتی می تواند خیلی به ما کمک بکند این است که در مرحله اول سعی کنیم در تمرین های خود کلماتی را بنویسیم که کلیه حروف آن در خط وسط قرار دارند مثل کلمه ask سپس کلماتی را تمرین کنیم که کلیه حروف آن در خط بالای صفحه کلید قرار دارند مثل کلمه top و در نهایت کلماتی را تمرین کنیم که تلفیقی از کلیه حروف صفحه کلید می‌باشند (علت این که با خط پایین صفحه کلید کاری نداریم این است که به دشواری می توان کلمه ای معنا دار با استفاده از حروف خط پایین صفحه کلید نوشت.) شاید در هفته های اول این کار کمی دشوار به نظر برسد و از این کار خسته شویم، اما با گذشت زمان نه تنها به این مهارت تسلط پیدا خواهیم کرد بلکه از تایپ کردن هم لـ*ـذت خواهیم برد.

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

از جمله این دلایل می توان به این نکته اشاره کرد که یک برنامه نویس برای این که همواره به روز باشد و از آخرین پیشرفت ها در زمینه برنامه نویسی مطلع باشد می بایست با زبان انگلیسی آشنا باشد چرا که تولید علم در دنیا به این زبان صورت می گیرد. از سوی دیگر Documentation یا اسناد زبان های برنامه نویسی کاملاً به زبان انگلیسی نوشته شده است و برای خواندن آن ها ما می بایست با زبان انگلیسی آشنا باشیم. یکی دیگر از مواردی که دانستن زبان انگلیسی در آن به کمک ما می آید مکاتبه با دیگر برنامه نویسان در سرتاسر دنیا است. به طور مثال وب سایت Stack Overflow این امکان را به ما می دهد که سؤالات یا مشکلات خود به همراه کدی که نوشته ایم را به اشتراک بگذاریم و از نظر دیگر برنامه نویسان پیرامون آن آگاه شویم.

نظرات گوناگونی پیرامون این مسئله وجود دارد که برای درک مطالب به زبان انگلیسی به چه تعداد واژه نیاز داریم. به طور مثال در زبان انگلیسی در حدود یک میلیون واژه وجود دارد که هر روز تعدادی به این لیست اضافه می‌گردد. اما سوال اینجا است که یک انگلیسی زبان به چه تعداد از این واژگان برای خواندن یک کتاب به زبان انگلیسی نیاز دارد.

طبق تحقیقات صورت گرفته، از این لیست واژگان که تعداد آن هم کم نیست در حدود 2 هزار واژه وجود دارد که در درصد قابل توجهی از متون عمومی مورد استفاده قرار می‌گیرند. به عبارت دیگر می‌توان گفت که برنامه نویسان مبتدی می‌توانند با فراگیری صرفاً 2000 واژه پرکاربرد زبان انگلیسی بخش قابل توجهی از مکالمات و مکاتبات خود (حدوداً 85 درصد) را با دیگر برنامه نویسان دنیا انجام داده و یا به سهولت بتوانند کتاب های مرجعی که به زبان انگلیسی نوشته شده اند را مطالعه نمایند. حال 15 درصد مابقی واژگان که جزو آن 2000 واژه پرکاربرد نیستند هم مربوط به تخصصی است که افراد بر مبنای آن، واژگان خاصی را مورد استفاده قرار می‌دهند. به طور مثال یک برنامه نویس دامنه خاصی از واژگان را مورد استفاده قرار می دهد که معانی آن واژگان ممکن است برای افراد با حرفه های متفاوت نا آشنا باشد.

پس از کسب مهارت در زمینه ی اصول تایپ ده انگشتی و همچنین آشنایی نسبی با زبان انگلیسی -حداقل خواندن و نوشتن- می بایست با موارد زیر هم آشنایی داشته باشیم تا بتوانیم با سرعت به مراتب بیشتری در زمینه ی برنامه نویسی گام برداریم:

- آشنایی نسبی با کامپیوتر: شروع برنامه نویسی با استفاده از یک کامپیوتر یا لپ تاپ است لذا دانشجویی که قصد دارد برنامه نویسی یاد بگیرد حداقل می بایست کار کردن با کامپیوترها را بلد باشد، می بایست بتواند یک برنامه یا بازی را روی سیستم خود نصب و استفاده کند و برخی مشکلات رایج در کامپیوترها را به تنهایی حل کند (مثلاً این که چه طور یک فایلی که Delete کردن است را مجدد بازیابی کند!)

- آشنایی نسبی با اینترنت: تأثیرات مثبت اینترنت در زندگی روزمره ی ما بر کسی پوشیده نیست و جالب است بدانیم که برای یک برنامه نویس، اینترنت و برخی سایت‌های اینترنتی -همچون گوگل و استک اور فلو- به منزله ی بهترین دوست می باشند. فردی که قصد ورود به دنیای برنامه نویسان را دارد می بایست بتواند وارد اینترنت شده و یک چیز خاص را در اینترنت سرچ کرده و نتیجه را به دست آورد، در برخی سایت ها ثبت نام کند، استفاده از ایمیل را بلد باشد و ...
 
  • پیشنهادات
  • ☾♔TALAYEH_A♔☽

    کاربر نگاه دانلود
    کاربر نگاه دانلود
    عضویت
    2017/05/18
    ارسالی ها
    35,488
    امتیاز واکنش
    104,218
    امتیاز
    1,376
    فواید یادگیری برنامه نویسی


    یادگیری اصول برنامه نویسی فواید بسیار زیادی دارا است اما اگر بخواهیم دو مورد از اصلی‌ترین آن‌ها را برشمریم، بایستی بگوییم پس از آن که ما فراگیریم چگونه کدنویسی کنیم، از یک مصرف کننده ی فناوری به یک تولید کننده ی فناوری مبدل شده‌ایم و علاوه بر آن، با یادگیری اصول کدنویسی، ما به حوزه ی یکی از پردرآمدترین مشاغل حال حاضر دنیا نیز ورود پیدا کرده ایم (البته این قضیه تا حدودی در ایران مصداق عینی ندارد!)

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

    در عصر حاضر، مهارت برنامه نویسی جزو یکی از اساسی‌ترین مهارت ها محسوب می شود، اما این در حالی است که در کشورمان ایران این مسأله خیلی جدی گرفته نمی‌شود و نظام آموزشی موجود در مدرسه‌های ایران هنوز به اهمیت آموزش اصول کدنویسی به بچه‌ها پی نبرده است! لذا این وظیفه به دوش آکادمی های غیر انتفاعی است تا فضایی را از یک سو برای کاربران، والدین، معلم‌ها و مربی های علاقمند به آموزش اصول برنامه نویسی به سایرین و از سوی دیگر آموزش راحت و اثربخش برای کاربران -به خصوص بچه‌های علاقمند به یادگیری مهارت های برنامه نویسی- فراهم آورند.

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

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

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

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

    چند سال پیش -قبل از سال ۲۰۰۰- گفته می‌شد که اگر کسی دو مهارت را نداشته باشد، بی‌سواد محسوب می شود: یکی زبان انگلیسی و دیگری کار با کامپیوتر! امروزه در کشورمان می‌بینیم که اکثر بچه‌ها از سنین ابتدایی به کلاس زبان می‌روند و کامپیوتر هم تقریباً می‌شود گفت که در تمامی خانه‌ها وجود دارد (البته به جزء برخی استثناء ها!) پس این تعریف باسوادی در طول زمان دستخوش تغییر شده و در عصر حاضر، چیزهای دیگری هستند که در کشورهای جهان اول با استفاده از آن ها برچسب باسواد روی افراد می زنند.

    میشل رسنیک -دانشمند علوم کامپیوتری در دانشگاه آم آی تی آمریکا- عقیده ی جالبی دارد؛ وی اعتقاد دارد که در عصر حاضر -یعنی قرن بیست و یکم- هر کسی که اصول کدنویسی را بلد نباشد بی‌سواد است! به عبارت دیگر، کار با کامپیوترها به صورت یک مهارت خیلی عادی درآمده و بلد بودن کار با کامپیوتر اصلاً کار عجیب و غریبی نیست بلکه ما علاوه بر آن، می بایست نحوه دستور دادن به کامپیوترها -که از طریق یادگیری Coding یا برنامه نویسی امکان‌پذیر است- را نیز بلد باشیم.
     

    ☾♔TALAYEH_A♔☽

    کاربر نگاه دانلود
    کاربر نگاه دانلود
    عضویت
    2017/05/18
    ارسالی ها
    35,488
    امتیاز واکنش
    104,218
    امتیاز
    1,376
    برنامه نویسی چیست؟


    به زبان خیلی ساده،‌ برنامه نویسی عبارت است از نوشتن دستوراتی که یک سیستم -مثل کامپیوتر- آن‌ها را متوجه شده و دستورات ما را یکی پس از دیگری اجرا می کند. حال، یک زبان برنامه نویسی لغات، دستورات و قوانینی را در اختیار ما به عنوان یک برنامه نویس قرار می‌دهد که از آن طریق می‌توانیم با کامپیوترها و سیستم‌های کامپیوتری صحبت کنیم (دقیقاً به همان صورت که ما از واژگان زبان شیرین فارسی برای ارتباط با یکدیگر استفاده می‌کنیم و حرف همدیگر را می فهمیم!)

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

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

    هر برنامه کامپیوتری یا به عبارتی هر نرم افزار مجموعه ای از دستوراتی است که به ترتیب خاصی به کامپیوتر داده می شوند و یکی پس از دیگری اجرا می شوند. به طور مثال یک ویروس -که یک برنامه ی مخرب کامپیوتری است- دستوراتی بر مبنای تخریب و یا از بین بردن بخشی از اطلاعات ذخیره شده روی کامپیوتر را دارا است. برای روشن تر شدن مطلب، نرم افزار را به یک مثال از زندگی روزمره مان تشبیه می کنیم. فرض را بر این بگذاریم که خودروی شخصی شما خراب می شود و شما مجبور می شوید که آن را نزد مکانیکی ببرید. مکانیک پس از عیب یابی خودروی شما از شاگرد خود می خواهد که موارد ذیل را به ترتیب اجرا کند:

    اول ماشین را خاموش کند. دوم کاپوت ماشین را بالا بزند. سوم روکش انژکتور را بردارد. چهارم پس از باز کردن انژکتور سوزن سوم آن را تعویض کند. پنجم انژکتور را مجدداً سوار کند. ششم روکش آن را نصب کند. و در نهایت کاپوت ماشین را بسته و استارت بزند.

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

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

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

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

    برخی از افراد بر این باورند که برای برنامه نویس شدن نیاز است تا تحصیلات دانشگاهی داشت یا یک متخصص علم ریاضیات بود. درست است که داشتن ذهن ریاضیاتی و تحلیلی به هرچه بهتر شدن شما به عنوان یک برنامه نویس کمک می کند، اما این اصلاً بدان معنا نیست که اگر شما متخصص ریاضیات نباشید نمی‌توانید به یک برنامه نویس موفق مبدل شوید (در واقع این باور نادرست شبیه به آن است که یک زن و شوهر برای بچه‌دار شدن، هر دو می بایست لیسانس بیولوژی داشته باشند!)
     

    ☾♔TALAYEH_A♔☽

    کاربر نگاه دانلود
    کاربر نگاه دانلود
    عضویت
    2017/05/18
    ارسالی ها
    35,488
    امتیاز واکنش
    104,218
    امتیاز
    1,376
    آشنایی با تاریخچه برنامه نویسی


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

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

    ایده ی ماشین‌های قابل برنامه‌ریزی توجه خانمی به نام Ada Lovelace را به خود جلب کرد که یک ریاضیدان بود. لذا او برنامه‌ای نوشت -یا بهتر است بگوییم کارت هایی ترتیب داد- که تعدادی عدد خاص را پشت سر هم چاپ می‌کرد (با توجه به این که این خانم اولین کسی بود که کار خاصی را با Analytical Engine یا همان موتور تحلیلگر انجام داد، وی را می‌توان به نوعی اولین برنامه نویس دنیا نیز تلقی کرد که نامگذاری زبان برنامه نویسی Ada هم به احترام وی صورت گرفته است.)

    چیزی پس از گذشت یک‌صد سال، اولین کامپیوتر به معنای واقعی کلمه در سال 1943 توسط ارتش ایالات متحده طراحی شد. این ماشین که Electronic Numerical Integrator and Computer یا به اختصار ENIAC نامیده شد، از کابل ها و سوییچ های مختلفی تشکیل شده بود و برای دستور دادن به آن، برنامه نویس می بایست جای کابل ها و سوییچ ها را تغییر دهد (جالب است بدانیم که اولین برنامه نویسان این کامپیوتر همگی خانم بوده اند!) نکته ی اصلی اینجا است که کامپیوترهای آن موقع بسیار حجیم و گران بودند و کار کردن با آن ها واقعا تخصص نیاز داشت!
     

    ☾♔TALAYEH_A♔☽

    کاربر نگاه دانلود
    کاربر نگاه دانلود
    عضویت
    2017/05/18
    ارسالی ها
    35,488
    امتیاز واکنش
    104,218
    امتیاز
    1,376
    الگوریتم چیست؟


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

    8a7025ca3e1e47608341f12b8619aa0b.jpg


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

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

    ☾♔TALAYEH_A♔☽

    کاربر نگاه دانلود
    کاربر نگاه دانلود
    عضویت
    2017/05/18
    ارسالی ها
    35,488
    امتیاز واکنش
    104,218
    امتیاز
    1,376
    آشنایی با زبان های برنامه نویسی سطح پایین و سطح بالا


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

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

    به جای روشن یا خاموش کردن این سوییچ ها به صورت دستی، زبان ماشین یا همان صفر و یک این امکان را به شما می‌دهد تا با 0 و 1 که 0 به معنی خاموش و 1 به معنی روشن است، این سوییچ ها را خاموش و روشن کنید.

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

    در یک کلام، هدف اصلی زبان اسمبلی این بوده است تا برنامه نویسی و یا بهتر بگوییم صحبت کردن با سی پی یو را راحت‌تر سازد. برای آن که درک کنیم که ساز و کار زبان اسمبلی به چه شکل است، ابتدا می بایست بفهمیم که پردازنده ها چگونه داده‌ها را پردازش می کنند. توجه داشته باشیم که پردازنده ی سیستم‌های کامپیوتری همانند «مغز» آن کامپیوتر است. همان‌طور که مغز انسان‌ها زمانی که در ارتباط با سایر اعضای بدن و جهان واقع باشد می‌تواند کارایی داشته باشد، پردازنده ی کامپیوتری هم صرفاً زمانی کار خواهد کرد که با سایر بخش‌های سیستم در ارتباط بوده و بتواند با دنیای بیرون -یا همان برنامه نویس- در ارتباط باشد. راه‌های ارتباطی که یک پردازنده از آن طریق با بخش‌های دیگر سیستم در ارتباط است اصطلاحاً باس گفته می شود.

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

    اگرچه که زبان اسمبلی به مراتب از زبان ماشین -یا همان صفر و یک- راحت‌تر است، اما به هر حال برای ساخت نرم افزارهای بزرگ و پیچیده زبانی دشوار برای برنامه نویسان محسوب می شود. در گذشته، بسیاری از نرم‌افزارها با استفاده از این زبان نوشته می‌شد اما به مرور که برنامه‌ها پیچیده‌تر شدند، ثابت شد که زبان اسمبلی زبان اثربخشی برای کدنویسی نیست!

    بزرگ‌ترین مشکل زبان اسمبلی این است که برای نوشتن یکسری دستورات با استفاده از این زبان، می بایست با رجیسترهای پردازنده که پیش از این با آن‌ها آشنا شدیم کار کنیم. به عبارت دیگر، به منظور جمع کردن دو عدد با یکدیگر، برنامه نویس می بایست به پردازنده دستور دهد تا یک عدد را در یک رجیستر ذخیره سازد، سپس عدد دوم را به عددی که در رجیستر ذخیره شده اضافه کند و در نهایت نتیجه را از رجیستر بازخوانی کند.

    نوشتن یک برنامه به زبان ماشین -حتی اگر آن برنامه خیلی هم ساده باشد- کار نسبتاً دشواری است. بسیاری از برنامه نویسان از زبان اسمبلی در جاهایی که نیاز به سرعت و اثربخشی بالا دارند استفاده می‌کنند اما توجه داشته باشیم که برنامه‌های نوشته شده با استفاده از زبان اسمبلی به مراتب کندتر از برنامه‌های نوشته شده با زبان ماشین هستند چرا که برای اجرا، برنامه‌های نوشته شده با زبان اسمبلی ابتدا می بایست به زبان ماشین تفسیر شوند که معمولاً این کار توسط برنامه‌هایی تحت عنوان Assembler انجام می شود که این اسمبلر کارش این است که یک برنامه‌ای که با استفاده از زبان اسمبلی نوشته شده باشد را گرفته و آن را تبدیل به زبان ماشین یا همان صفر و یک کند.

    توجه داشته باشیم که هر پردازنده ای صرفاً زبان اسمبلی خاص خود را می فهمد. بنابراین یک پردازنده ی Intel Core 2 زبان اسمبلی پردازنده PowerPC را نمی‌فهمند و بالعکس. به هر حال برخی پردازنده ها هم هستند که با سایر پردازنده ها تعامل خوبی دارند مثل پردازنده های AMD که مثلاً با پردازنده های اینتل سازگار می باشند.

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

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

    هدف اصلی طراحی زبان‌های High-level یا همان سطح بالا این بوده است تا فرایند برنامه نویسی راحت‌تر گردد. بنابراین به جای این که به سیستم دستور دهیم تا عدد 2 را در رجیستر ذخیره سازد، سپس عدد 3 را به آن اضافه کند و در نهایت خروجی آن را بگیرد، زبان‌های برنامه نویسی سطح بالا این امکان را در اختیار برنامه نویس قرار می‌دهند تا به سیستم هر دستوری که می‌خواهند بدهند و اصلا کاری به این که سیستم قرار است به چه شکل آن دستور یا دستورات را عملی سازد نداشته باشند.

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

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

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

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

    نکته
    در پاسخ به این سؤال که سریع‌ترین زبان برای صحبت کردن با سی پی یو آیا زبان ماشین، زبان اسمبلی، زبان‌های سطح بالا یا زبان سی است، بایستی گفت که مسلماً زبان ماشین -یا همان صفر و یک- سریع‌ترین زبان برنامه نویسی دنیا است چرا که سیستم‌ها فقط و فقط زبان ماشین را می‌فهمند و به نوعی می‌شود گفت که زبان ماشین، زبان مادری آن‌ها است!
    برای این که پردازنده ها برنامه‌هایی که با استفاده از زبان‌های سطح بالا نوشته می‌شوند را هم بفهمند، دانشمندان برنامه ی واسطی تحت عنوان Compiler طراحی کرده‌اند تا کدهای زبان‌های سطح بالا را به زبان ماشین یا زبان باینری یا همان زبان صفر و یک مبدل سازند تا برای کامپیوتر قابل فهم شوند.
     

    ☾♔TALAYEH_A♔☽

    کاربر نگاه دانلود
    کاربر نگاه دانلود
    عضویت
    2017/05/18
    ارسالی ها
    35,488
    امتیاز واکنش
    104,218
    امتیاز
    1,376
    ابزارهای مورد نیاز برای برنامه نویسی


    پیش از هر چیز ما نیاز به یک سیستم عامل داریم. در ساده‌ترین کلام، سیستم عامل یک برنامه ی خیلی بزرگ و پیچیده است که کلیه ی بخش‌های یک کامپیوتر را به یکدیگر متصل می‌سازد لذا ما می‌توانیم از کلیه سخت افزارهای سیستم خود مثل کیبورد، مانیتور، اسپیکر، ماوس و ... استفاده کنیم . سیستمی که سیستم عامل یا OS روی آن نصب نباشد، صرفاً مجموعه ای از سخت‌افزارهایی است که به هیچ کاری نمی آیند. از معروف ترین سیستم عامل های دنیا می‌توان به ویندوز، لینوکس و مکینتاش اشاره کرد.

    پس از آن که ما یک زبان را از میان انواع زبان‌های برنامه نویسی انتخاب کردیم، نیاز به نرم افزاری تحت عنوان Editor یا ویرایشگر کد داریم تا با استفاده از آن بتوانیم کدنویسی کنیم. یکی از ویرایشگرهای کد معروف که در سیستم عامل ویندوز به صورت پیش‌فرض نصب شده است، Notepad نام دارد که حتماً با آن آشنا هستید اما این در حالی است که نرم افزارهای بسیار پیشرفته‌تر از آن هم وجود دارند که در ادامه، بیشتر با آن‌ها آشنا خواهیم شد. ادیتور پیش فرض سیستم عامل گنو/لینوکس VIM نام دارد و مکینتاش اپل هم از ادیتوری تحت عنوان TextEdit برخوردار است.

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

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

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

    بسیاری از کامپایلرها صرفاً برای یک سیستم عامل خاص و یک نوع پردازنده سورس کد را به زبان ماشین تبدیل می کنند. لذا، یک کامپایلر ویندوزی صرفاً خواهد توانست برنامه‌هایی که تحت سیستم عامل ویندوز اجرا می‌شوند را ایجاد کند (البته گفته می‌شود که بسیاری از برنامه‌های نوشته شده برای سیستم عامل مکینتاش دارای دو فایل اجرایی هستند؛ یکی برای پردازنده های PowerPC که در مک استفاده می‌شوند و دیگری برای پردازنده های Intel که در سایر سیستم‌ها من جمله سیستم‌های جدید مکینتاش مورد استفاده قرار می گیرند.

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

    با توجه به این که کامپایلرها خیلی کند بودند، دانشمندان علوم کامپیوتری چیزی جدیدی تحت عنوان Interpreter یا مفسر طراحی کردند. دقیقاً همانند مترجم یک زبان زنده که به صحبت‌های فردی گوش می‌دهد سپس خط به خط آن‌ها را به زبانی دیگر ترجمه می کند، Interpreter هم خیلی سریع خط به خط دستوراتی که ما نوشته‌ایم را به زبان ماشین تبدیل می کند. مسأله ای که در ارتباط با Interpreter ها وجود دارد این است که بر خلاف کامپایلرها، این نرم افزارهای جدید نمی‌توانند دستوراتی که به زبان ماشین تبدیل شده‌اند را در فایل اجرایی جداگانه ای ذخیره سازند و در عوض، دستورات تبدیل شده به زبان ماشین را در جایی در حافظه ی سیستم نگهداری می کنند. لذا اگر بخواهید برنامه ی خود را به فروش برسانید، هیچ فایل اجرایی ندارید که در اختیار مشتریان قرار دهید بلکه می بایست سورس کد ارزشمند خود را به فروش برسانید که بعداً ممکن است کسی نام آن را تغییر داده و با نامی جدید، مجدد شروع به فروش کند!

    نکته
    البته با پیشرفت علوم کامپیوتری، دانشمندان توانسته اند کامپایلرهای به مراتب سریع‌تری طراحی کنند و امروزه اینترپریترها برای برخی زبان‌های خاص که تحت عنوان زبان‌های Scripting شناخته می‌شوند مورد استفاده قرار می گیرند.
    دیدیم که استفاده از کامپایلرها کند بود و اینترپریترها ها هم منجر به لو رفتن سورس کد می شدند، لذا نیاز به راه‌کار سومی می‌بود تا برنامه نویسان بتوانند برنامه‌های خود را منتشر کنند و این شد که راه‌کار سومی تحت عنوان Byte-code یا Pseudocode که غالباً تحت عنوان P-code شناخته می‌شود ابداع شد. برخلاف روش اول که برنامه نویسان می‌آمدند و سورس کد خود را با استفاده از کامپایلر یک سیستم عامل خاص به زبان ماشین مبدل می ساختند، در روش سوم برنامه نویس برنامه اش را به یک فایل P-code کامپایل می کرد.

    حال با استفاده از این فایل P-code و یک اینترپریتر اختصاصی -نام این فایل اصطلاحاً Virtual Machine یا ماشین مجازی است- می‌توان دستوارت قرار گرفته داخل این فایل را به کدهای باینری قابل فهم برای هر سیستم عاملی مبدل ساخت.

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

    معروف ترین زبانی که از P-code استفاده می‌کند زبان برنامه نویسی جاوا است. پس از آن که شما برنامه‌ای با این زبان نوشتید، ابتدا می بایست آن را به یک فایل P-code کامپایل کنید سپس روی هر سیستمی که ماشین مجازی جاوا یا JVM نصب باشد، برنامه ی شما قابل اجرا خواهد بود.

    ایده ی پشت P-code این است که برنامه نویس یک بار برنامه اش را می نویسد، سپس در هر جایی و روی هر سیستم عاملی آن را اجرا می‌کند (شعار زبان جاوا دقیقاً همین است؛ به عبارت دیگر، Write Once, Run Everywhere) توجه داشته باشیم که احتمال وجود دارد برنامه‌هایی که به این روش اجرا می‌شوند روی یک سیستم عامل به خوبی کار کنند اما روی سیستم عامل دیگری با کمی مشکلات مواجه باشند البته این در حالی است که زبان‌هایی همچون جاوا توانسته اند تا حد زیادی این مشکل را رفع کنند.

    آشنایی با IDEها
    با گسترش نیازهای برنامه نویسان از یک سو و همچنین حرفه ای تر شدن -یا بهتر بگوییم گسترده تر شدن- زبان های برنامه نویسی، این نیاز احساس گردید تا ویرایشگرهای کد به چیزی بیش از یک ادیتور سورس کد مجهز شوند و نتیجه این شد که IDE ها توسط شرکت های نرم افزاری طراحی شده و روانه ی بازار شدند.

    IDE که مخفف واژگان Integrated Development Environment به معنی محیط یکپارچه توسعه ی نرم افزار است این امکان را در اختیار برنامه نویسان زبان های برنامه نویسی مختلف قرار می دهد تا علاوه بر کدنویسی، کارهایی همچون دیباگ کردن،‌ کامپایل کردن، ارتباط با گیت و بسیاری کارهای دیگر را انجام دهند. از معروف ترین IDEهای اپن سورس و رایگان، می توان به Eclipse اشاره کرد که از زبان های برنامه نویسی مختلف مثل سی، سی پلاس پلاس، جاوا، پی اچ پی و ... پشتیبانی می کند.
     

    ☾♔TALAYEH_A♔☽

    کاربر نگاه دانلود
    کاربر نگاه دانلود
    عضویت
    2017/05/18
    ارسالی ها
    35,488
    امتیاز واکنش
    104,218
    امتیاز
    1,376
    فرایند دیباگ کردن در برنامه نویسی به چه معنا است؟


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

    - ارورهای سینتکسی: به نوشتار کدهای یک زبان برنامه نویسی Syntax گفته می شود. گاهی اوقات برنامه نویسان در حین نوشتن برخی دستورات، غلط املایی مرتکب می شوند. مثلاً به جای نوشتن دستور print، می‌نویسند pritn. در برخی زبان‌ها مثل HTML و CSS مرتکب شدن چنین خطاهایی خیلی مشکل ساز نیست اما برخی از دیگر زبان‌ها مثل PHP و Python با ارورهای سنتکسی خیلی مشکل دارند و برنامه هرگز اجرا نخواهد شد.

    - ارورهای سمنتیک: این دست ارورها زمانی رخ می‌دهند که کدهای شما درست است اما نتیجه ی مطلوب را دریافت نمی‌کنید مثل زمانی که عددی را بر صفر تقسیم کنید (در ریاضیات چنین عملی امکان پذیر نیست!)

    - ارورهای منطقی: این دست از ارورها یا مشکلات جزو ارورهای سخت هستند و شاید یک برنامه نویس روزها و شاید هفته‌ها برای یافتن آن‌ها می بایست زمان بگذارد. سینتکس برنامه درست است و برنامه می بایست همان‌ طور که انتظار می‌رود اجرا شود اما واقعیت این گونه نیست! فرض کنیم که یک فروشگاه آنلاین داریم و زمانی که مشتری به سبد خرید خود می رود، برنامه‌ای که ما نوشته‌ایم جمع سبد خرید را اشتباه در معرض دید وی قرار می دهد.

    به خاطر داشته باشید
    توجه داشته باشیم که اصطلاح Debug کردن یک نرم‌افزار در دهه ی ۴۰ میلادی رواج پیدا کرد زمانی که برنامه نویسی به نام Grace Hopper یک حشره را از داخل یک سیستم کامپیوتری که منجر به اختلال در کار آن شده بود خارج کرد. کلمه ی Bug به معنی حشره است.
     

    ☾♔TALAYEH_A♔☽

    کاربر نگاه دانلود
    کاربر نگاه دانلود
    عضویت
    2017/05/18
    ارسالی ها
    35,488
    امتیاز واکنش
    104,218
    امتیاز
    1,376
    چرا زبان های برنامه نویسی زیادی در دنیا وجود دارد؟


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

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

    ما زبان‌های برنامه نویسی بسیاری داریم که از آن جمله می‌توان به زبان‌های سی پلاس پلاس، جاوا، فورتران و … اشاره کرد. به عنوان مثال، زبان سی پلاس پلاس زمانی مد نظر قرار داده می‌شود که سرعت و عملکرد برنامه مد نظر باشد. مرورگرهای کروم، فایرفاکس، سافاری اپل و … با استفاده از این زبان نوشته شده اند. برخی بازی‌ها هم که خیلی حرفه‌ای هستند -مثل Call of Duty- با این زبان توسعه داده شده اند.

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

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

    ☾♔TALAYEH_A♔☽

    کاربر نگاه دانلود
    کاربر نگاه دانلود
    عضویت
    2017/05/18
    ارسالی ها
    35,488
    امتیاز واکنش
    104,218
    امتیاز
    1,376
    برنامه نویسی را از کجا شروع کنیم؟


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

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

    در دنیای برنامه نویس هم قضیه دقیقاً به همین صورت است. شما وقتی اصول برنامه نویسی را بیاموزید، دیگر فرقی نمی‌کند که از چه زبانی دارید استفاده می کنید، بلکه هر زبانی که در اختیار شما قرار گیرد، با کمی تمرین خواهید توانست برنامه ی مد نظر خود را با استفاده از آن زبان بنویسید.

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

    5f91159842a12eb3219f54f465b56f6c.jpg


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

    اگر در تالارهای گپ و گفتگوی مرتبط با برنامه نویسی این سوال را بپرسید که مناسب ترین زبان برنامه نویسی برای ورود به دنیای برنامه نویسی چه زبانی است؟ بدون شک بسیاری از پاسخ ها حاوی زبان برنامه نویسی پایتون خواهند بود!

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

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

    برخی موضوعات مشابه

    بالا