عنوان مقاله: چگونه برنامه نو یسی را شروع کنیم؟

طراحی وب چیست؟بسیاری از مردم تصور می کنند که طراحی وب و برنامه نویسی وب یکسان است و این دو تفاوتی ندارند اما این دو متفاوتاست.طراحی وب فرآیندی است که طی آن یک صفحه وب از نظر ظاهری تهیه می شود. هر فعالیتی که در قسمت طراحی وبانجام می شود برای کاربر قابل مشاهده است و کاربر می تواند آن را مشاهده کند . به عبارت دیگر، طراح وب می گوید چهعنصری باید در صفحه وب دیده شود، در چه مکانی و به چه شکلی و در چه زمانی؟ به شخصی که کار طراحی وب را انجاممی دهد، طراح وب می گویند . نام دیگر طراح وب، توسعه دهنده فرانت اند )End-Front )است.برای درک بهتر End-Front ،من یک مثال خیلی ساده می زنم. فرض کنید تصمیم دارید کار شرکت خود را شروع کنید .برایتبلیغ شرکت خود، شما به یک وب سایت حرفه ای نیاز دارید که از شرکت و تجارت شما عکس نشان مشتریان دهید .براینمایش محصوالت و خدمات، به عکس، رنگ و عناصر مختلف سایت نیاز دارید که همه اینها با فرانت اند امکان پذیر است. برنامه نویسی وب چیست؟برنامه نویسی وب، در حقیقت همان برنامه نویسی وب سمت سرور و ایچاد اتفاقاتی است که کاربر پردازش آن را نمی بینداما نتیجه را می بیند . برای مثال: اگر شما در یک وب سایت وارد می شوید و رمز عبور خود را فراموش کرده اید با پیغام خطامواجه می شوید که وقوع این پیغام و پردازش این که رمز عبور شما اشتباه است در سمت سرور یا همان End-Back برنامهنویسی شده است اما پیغام و ظاهر آن متعلق به فرانت اند است.در واقع، هر بار که فرم ارتباطی را در سایت وارد می کنید یا به سایتی وارد می شوید یا با سایت ارتباط برقرار می کنید، مرورگردرخواستی را به سرور ارسال می کند که اطالعات را پردازش کرده و نتیجه را به فرانت اند بفرستد و این اطالعات در فرانتاند توسط مرورگر نمایش داده شوند .دیتابیس چیست؟وب سایت شما برای مدیریت کلیه اطالعات مشتری و محصول به یک پایگاه داده نیاز دارد. پایگاه داده محتوای وب سایترا در ساختاری ذخیره می کند که بازیابی، سازماندهی، ویرایش و ذخیره سازی داده ها را تسهیل می کند .یک End-Back کارواقعی تا حدودی کار با دیتابیس را بلد است. به چه کسی فول استک میگویند ؟افرادی هستند که هم در طراحی وب و هم در برنامه نویسی وب فعالیت می کنند این افراد اصطالحًا، Stack Full هستند وخودشان می توانند سایتی را طراحی و برنامه نویسی کنند .چگونه طراح وب شویم؟برای اولین قدم برای تبدیل شدن به یک طراح End-Front ،باید HTML را بیاموزید، در کنار آن با یادگیری زبان نشانه گذاریCSS شما می توانید ، به یک برنامه نویس وب سمت کالینت تبدیل شوید . اما اگر میخواهید توانایی برنامه نویسی وبسمت کالینت خود را حرفه ای تر کنید، بهتر است که فریمورک های فرانت اند را هم یاد بگیرید .به عنوان مثال، یکی از این فریمورک ها که به شما کمک می کند تا یک وب سایت ریسپانسیو و زیبا ایجاد کنید . فریمورکBootstrap است که باید از آن استفاده کنید .همچنین یک نرم افزار قدرتمند گرافیکی را هم برای طراحی رابط کاربری یادبگیرید که من فتوشاپ را توصیه می کنم بیاموزید .آنچه آموخته اید تمرین و تکرار کنید تا کامال در ذهن شما نقش ببندد.چگونگی یادگیری برنامه نویسی وب؟● یادگیری زبان های نشانه گذاری CSS ,HTML● یادگیری یکی از زبان های برنامه نویسی سمت سرور● یادگیری یک پایگاه داده● تمرین و تکرار فراوان.برای برنامه نویسی وب سمت سرور نیازی به یادگیری نرم افزار گرافیکی نمی باشد اما الزام است که یک پایگاه داده مانندmysql را حتما بیاموزید . نکات مهم قبل از ورود به این حوزهاگر عالقه ای به این رشته ندارید، هرگز وارد این حوزه نشوید .بسیاری از دوستان فقط به این دلیل وارد این رشته می شوند که با تحصیل در این تخصص می توانند درآمد باالیی کسبئ کنند اما باید بدانید که تخصص در این زمینه به تالش زیادی نیاز دارد و اگر به این رشته عالقه نداشته باشید نمی توانیدموفق شوید . اول مطمئن شوید به فرانت اند عالقه مند هستید یا بک انددوستان زیادی هستند که وارد چندین حوزه شدهاند، اما متاسفانه در هیچ یک از این حوزهها تخصص ندارند،بنابراین پرش از این شاخه به اون شاخه ممنوع !دستیابی به موفقیت در این زمینه مستلزم تالش و پشتکار مداوم است.بسیاری از دوستان، اگرچه وقت زیادی را خرج یادگیری تخصص در این زمینه میکنند، اما متاسفانه نمیتوانند بهنتیجه برسند و دلیل آن این است که در میانه راه ناامید شده و منصرف می شوند، بنابراین شما میخواهید برنامه ریزی کنید.سواالت متداولآیا برای برنامه نویسی وب به ریاضی نیاز داریم؟برنامه نویسی وب یک کار منطقی است و به مهارت حل مسئله نیاز دارد. جدا از منطق، به تفکر هنری نیز نیاز دارد، اما درهمه اشکال آن الزم نیست که هر روز با ریاضیات سروکار داشته باشید . اگر در حوزه ای مانند نرم افزار شبیه سازی، نرم افزارمهندسی یا بازی های رایانه ای کار می کنید .بسته به کاری که انجام می دهید، مقداری به ریاضیات احتیاج خواهید داشت، امااگر در حال نوشتن برنامه های اداری یا برنامه هایی هستید که افراد معمو ًال بصورت آنالین از آنها استفاده می کنند، کار شمامعمو ًال خواندن و نوشتن داده ها در پایگاه داده است. منطقی است که در این صورت شما به ریاضیات نیازی ندارید .مطمئنًا، شما به تجزیه و تحلیل نیاز دارید، به همین دلیل افرادی که در ریاضیات مهارت دارند معمو ًال برنامه نویسان خوبیمی شوند .نکته مهم این است که شما برای نوشتن بیشتر برنامه هایی که نوشته شده اند، نیازی به محاسبات ریاضی ندارید، اما بایدسطح باالیی از حل مسئله داشته باشید . آیا برای برنامه نویسی وب به دانشگاه نیاز داریم؟این به شخصیت و نوع برنامه هایی که می خواهید بنویسید بستگی دارد. برنامه نویسی وب شغلی است که نیاز به تحقیقاتزیادی دارد و به هیچ وجه کار آسانی نیست، بنابراین اگر آن را دوست ندارید، نباید دنبال آن بروید . معمو ًال باید اطالعاتخود را به روز کنید تا یکی از بهترینهای این حوزه باشید .شما باید روزانه وقت زیادی را در این کار بگذرانید . دانشگاه به شما کمک خواهد کرد و اساتید می توانند سرنخ های خوبی بهشما بدهند، اما واقعیت این است که بیش از 30 ٪از برنامه نویسان در جهان اص ًال مدرک مهندسی نرم افزار یا علوم کامپیوترندارند . این افراد مواردی مانند فلسفه، ریاضیات یا فیزیک را خوانده اند .بنابر این مهم نیست رشته تحصیلی شما چیست مهماینه که عالقه به برنامه نویسی وب دارید و برای یادگیری اش تالش میکنید .درآمد برنامه نویسی وب چقدر است؟این سوال درستی نیست، برنامه نویسی وب کامال به میزان مهارت شما و حوزه کاری شما بستگی دارد.نکته مهم دیگر تعداد رقبا است، در حوزه هایی که رقبا کمتر هستند درآمد بیشتر است. مثال : فول استک درآمدش بیشتر ازفرانت کار است.همچنین اگر قصد دارید که به عنوان کارمند استخدام شوید شهر شما هم مهم است و شهرهای بزرگ مثل تهران و مشهد واصفهان حقوق بیشتری می دهند .برخی از افراد هم به صورت فریلنسری و به صورت شخصی بر روی پروژه های دیگر شرکت ها به صورت دورکاری کار می کننداز مزایای این نوع این است که ساعت کاری شما بسیار منعطف و دست خودتان خواهد بود. در ادامه شما رو با برنامه نویسی زبان پایتون بیشتر آشنا میکنم.البته من خودم برای شروع کار و استارتم از آموزش برنامه نویسی پایتون مقدماتی سایت فرادرس استفاده کردم که لینکشو در زیر براتون قرار میدم.آموزش برنامه نویسی پایتون Python - مقدماتی:https://faradars.org/courses/fvpht9808-basic-of-python-programmingچرا پایتون؟سیستم‌عامل گنو در سال ۱۹۸۳ با هدف ایجاد یک سیستم‌عامل کامل و آزاد شبه-یونیکس به‌وسیله ریچارد استالمن پایه‌گذاری شد. GNU مخفف بازگشتی «GNU's Not Unix» است.پروژه گنو در سال ۱۹۸۴ با هدف پشتیبانی و تولید نرم‌افزار آزاد برای سیستم‌عامل گنو تأسیس شد.بنیاد نرم‌افزار آزاد در سال ۱۹۸۵ با هدف حمایت از جنبش نرم‌افزار آزاد و به ویژه پروژهٔ گنو شروع به کار کرد.امروزه مهم‌ترین و رایج‌ترین سیستم‌عاملی که از نرم‌افزارهای پروژه گنو و پروانه GNU GPL استفاده می‌کند، لینوکس است که از کرنل لینوکس استفاده می‌کند و به شکل توزیع لینوکس عرضه می‌شود که بعضی اشخاص به آن «گنو/لینوکس» می‌گویند.گنو یک مخفف بازگشتی است و از نخستین حرف کلمات GNU's Not Unix به معنای گنو یونیکس نیست گرفته شده است. ریچارد استالمن این نام را روشی خلّاقانه برای ادای دین به سیستم‌عامل یونیکس می‌داند، زیرا استفاده از نام یونیکس به دلیل علامت تجاری بودن در یک محصول دیگر بدون اجازه ممکن نیست. همچنین گنو نام نوعی گاو وحشی است که در آفریقا زندگی می‌کند.نرم افزار های آزادطبق تعریف نرم‌افزار آزاد توسط بنیاد نرم‌افزارهای آزاد، هر نرم‌افزاری که آزادی‌های زیر را برای کاربرانش فراهم کند به عنوان یک نرم‌افزار آزاد شناخته می‌شود:üکاربران باید اجازه داشته باشند که نرم‌افزار مورد نظر را برای هر قصد و منظوری اجرا کنند.üکاربران باید اجازه داشته باشند نرم‌افزار را مطابق با نیازهای خود تغییر دهند. برای رسیدن به این هدف، کدهای منبع نرم‌افزار باید در اختیار کاربر قرار گیرد.üüکاربران باید اجازه داشته باشند نرم‌افزار را مجدداً منتشر کرده و در اختیار دیگران قرار دهند. این کار می‌تواند به صورت رایگان و یا در ازای دریافت مبلغی پول صورت گیرد.üüاگر کاربری نرم‌افزار را تغییر داد، باید اجازه داشته باشد آن را مجدداً منتشر کرده و در اختیار دیگران قرار دهد. (در مورد نرم‌افزارهای کپی‌لفت، لازم است تا کدهای منبع نرم‌افزار تغییریافته نیز در اختیار کاربران دیگر قرار گیرد)کپی لفتکپی‌لفت یک مفهوم عام است و پیاده‌سازی‌های مختلفی از این مفهوم در قالب اجازه‌نامه‌های مختلف پدید آمده‌اند. تعدادی از این اجازه‌نامه‌ها که توسط بنیاد نرم‌افزارهای آزاد منتشر شده‌اند، شامل این موارد است:üجی‌پی‌ال(GPL)، اجازه‌نامه جامع و عمومی گنو: این اجازه‌نامه به منظور اعمال کپی‌لفت به نرم‌افزارها و متن آنها پدیدآمده است و تضمین می‌کند کاربران تمام آزادی‌هایی که در تعریف نرم‌افزار آزاد آمده است را داشته باشند و هیچ شخصی نتواند این آزادی‌ها را از آنان بگیرد.üال‌جی‌پی‌ال(LGPL)، اجازه‌نامه کوچکتر جامع و عمومی گنو: این اجازه‌نامه برای اعمال به کتابخانه‌های نرم‌افزاری پدید آمده است و به کاربران اجازه می‌دهد کتابخانه‌هایی که تحت قوانین این اجازه‌نامه انتشار یافته‌اند را با نرم‌افزارهای مالکیتی ترکیب کنند.üپروانه مستندات آزاد گنو(GFDL): نرم‌افزار آزاد باید دارای مستندات آزاد نیز باشد. این اجازه‌نامه به کاربران اجازه می‌دهد تا مستندات را ویرایش کرده و مجدداً توزیع کنند؛ و در عین حال تضمین می‌کند آزادیِ ویرایش و توزیع مجدد آن برای دیگران نیز محفوظ بماند.زبان پایتونخالق زبان برنامه نویسی پایتونزبان Python توسط آقایGuido van Rossum ابداع شده است (لقبش Benevolent Dictator for Life ، دیکتاتور خیرخواه جاویدان است.) وی پیش از طراحی زبان پایتون، اقدام به طراحی زبانی تحت عنوان ABC کرده بود اما این زبان خیلی با اقبال عمومی مواجه نشد. پس از بازخوردهایی که در ارتباط با این زبان از سایر برنامه نویسان گرفت، آقای خودو فان روسوم در زمستان سال ۱۹۸۹ زبان پایتون را پایه ریزی کرد که برخلاف زبان قبلی، خیلی مورد استقبال سایر برنامه نویسان سرتاسر دنیا قرار گرفت.داستان نامگذاریون روسوم پیش از هر چیز، تلاش کرد نامی مناسب برای زبان جدیدی که در صدد طراحی آن بود پیدا کند و با توجه به این که این زبان جدید از دل پروژه ی ABC بیرون می آمد، در ابتدا قصد داشت آن را B بنامد، اما متوجه شد زبانی به همین نام وجود دارد. پس از آن که روسوم بسیاری از پیشنهادات اعضای گروه را در مورد نام زبان جدید رد کرد تصمیم گرفت اولین نامی را که به ذهنش رسید انتخاب کند، که به طور اتفاقی به یاد کمدی محبوبش که آن روزها از شبکه ی BBC با نام Monty Python’s Flying Circus پخش می شد افتاد و به این ترتیب نام پایتون را برای پروژه ی جدید خود انتخاب کرد.ویژگیهای زبان پایتونÒسادگی و صراحت (Simplicity)Éمی توان بیشتر روی حل مسئله متمرکز شد.Éبه زبان طبیعی دقیق بسیار نزدیک استÒمنحنی یادگیری کم شیب (Low Learning Curve)Éحذف پیچیدگی هاÉساده بودن syntaxÒرایگان و متن باز بودن (Free & Open Source)Òسطح بالا بودن (High-level)Òزبانی تفسیرشده (Interpreted)کاربرد پایتونÒبرای پروتوتایپ سازیÉپیاده سازی اولیه ایده هاÒساخت وب اپلیکیشنÉجاوا در این زمینه پر طرفدارÒطراحی اپلیکیشن های محاسباتی،‌ علمی و مهندسیÒکار با XMLÒارتباط با دیتابیسÒطراحی رابط کاربریAda LovelaceÒاوگوستا آدا بایرون (لاولیس)، دختر لرد بایرون، شاعر معروف انگلیسی، پدر برنامه نویسی است!Òشهرت آدا بیشتر به واسطه نوشتن توضیحاتی در مورد ماشین محاسباتی مکانیکی «چارلز بابیج» است. چارلز بابیج، یک فیلسوف تحلیلگر و ریاضیدان انگلیسی و نخستین کسی بود که ایده یک ماشین محاسبه گر برنامه‌پذیر را ارائه داد. وی در سال 1820 طراحی ماشین محاسبه گر خود را آغاز نمود ؛ ماشینی که بعدها به نام ماشین تفاضلی معروف شد. بابیج در زمان حیاتش هیچگاه نتوانست نتیجه کار ماشین محاسبه گر خود را ببیند، اما توانست امکانپذیر بودن برخی گزینه های بنظر نا ممکن را اثبات کند.Data TypeÒدر نسخه جدید(3.5) پایتون داده عددی intو long یکی شده و محدودیت آن حذف شده است. عدد می تواند به اندازه حافظه کامپیوتر بزرگ باشد!Òبا تابع type می توانیم نوع داده را مشخص کنیم.Òبا تابع isinstance هم می توان نوع یک داده را بررسی کرد.Òداده float با یک نقطه«.» یا به صورت توانی بااستفاده از e یا E نوشته می شود.ÒTrueمعادل یک و False معادل صفر می باشد.Òبا تابع del می توان یک متغیر را آزاد نمود.StringÒبرای نمایش یک رشته به صورت های زیر عمل می کنیم:É“Sample” امکان استفاده از نویسه «’»É‘Sample’ امکان استفاده از نویسه «”»É“””Sample””” به صورت چند سطریÉ‘’’Sample’’’ به صورت چند سطریÒمانند زبان C می توان از Escape Code استفاده کردÉ\n,\t, \\, \’, \”, \r, …Òبرای از نادیده گرفتن کد های گریز می توان قبل رشته حرف rگذاشت مانند:Éprint(r”a\nb”)Òبرای تبدیل شدن به یونیکد از پیشوند u استفاده می کنیم.listÒاز علامت [] برای نمایش آن استفاده می کنیم و بین عناصر لیست کاما می گذاریم.Òمانند رشته ها از عملگرهای زیر می توانیم استفاده کنیم:ÉSlicing OperatorÉ+ OperatorÉ* OperatorÉinÉnot inÒامکان تغییر یک عنصر لیست وجود دارد.tupleÒاز علامت () برای نمایش آن استفاده می کنیم و بین عناصر تاپل کاما می گذاریم.Òمانند رشته ها از عملگرهای زیر می توانیم استفاده کنیم:ÉSlicing OperatorÉ+ OperatorÉ* OperatorÉinÉnot inÒامکان تغییر یک عنصر تاپل وجود ندارد!DictionaryÒاز علامت {} برای نمایش آن استفاده می کنیم و بین گزینه های لغت نامه کاما می گذاریم.Òهر گزینه از یک کلید و یک مقدارتشکیل شده که با : تفکیک می شود.Òاز علامت [] برای دسترسی به گزینه ها استفاده می شودو اندیس آن کلید است.Òامکان تغییر یک عنصر لغت نامه وجود دارد.Òاز عملگر های قبلی پشتیبانی نمی شود.setÒاز علامت {} برای نمایش آن استفاده می کنیم و بین گزینه های مجموعه کاما می گذاریم.Òدر مجموعه گزینه تکراری نداریمÒاز عملگر in و not inبرای عضو بودن استفاده می کنیمÒامکان تغییر در گزینه ها وجود ندارد.Òاز عملگر های اجتماع (|)، اشتراک(&)، تفاضل(-) و دلتا(^) پشیبانی می کند.ادامه اموزش در پست های بعدی .موفق باشید.#فرادرس#تجربه_یادگیری