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

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

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

برنامه ‌نویسی کامپیوتر چیست؟

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

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

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

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

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

بعضی این جواب را می‌دادند:

هر دستورالعملی که کامپیوتر را در انجام کاری هدایت کند، یک زبان برنامه نویسی است.

در مقابل، بعضی می‌گفتند:

خیر، HTML زبان برنامه نویسی نیست. حرف M، مخفف Markup است (به معنای نشان‌گذاری). زبان‌های برنامه نویسی، عموماً این امکان را به شما می‌دهند که فرایند انجام کاری را تشریح کنید، ولی HTML، روشی است برای تعیین ساختار متن.

در واقع، در سایت Stackify، نه HTML و نه CSS در لیست محبوب‌ترین زبان‌های کدنویسی، آورده نشده است.

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

محبوبترین زبانهای برنامه نویسی بر اساس اطلاعات سایت Stackify

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

کدام زبان برنامه نویسی کامپیوتر را یاد بگیرم؟

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

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

بعضی از رایج‌ترین زبان‌های برنامه نویسی، عبارتند از:

HTML

Javascript

Python

CSS

Ruby

PHP

++C

SQL یادگیری بعضی از این زبان‌ها ساده‌تر و دلپذیرتر از بعضی دیگر است. هرچند، این باعث نمی‌شود باقی زبان‌ها بی‌فایده باشند. در واقع، ممکن است بسته به شغل خود، به یادگیری یکی از زبان‌های برنامه نویسی ترسناک نیاز پیدا کنید. بر اساس داده‌های سایت Stack Overflow، منفورترین زبان‌ها عبارتند از Perl، Delphi و VBA و بعد از آن‌ها PHP، Objective-C ، CoffeeScript و Ruby قرار دارند.

منف

 

منفورترین زبانهای برنامه نویسی بر اساس داده های سایت Stackify

پیش از شروع یادگیری یک زبان برنامه نویسی کامپیوتر، مهم‌ترین سؤالی که باید از خود بپرسید این است:

آیا می‌خواهی روی ظاهر یک وب‌سایت در دید کاربران تمرکز کنی، یا به نحوه عملکرد آن بیشتر اهمیت می‌دهی؟

این سؤال، مشخص می‌کند که جایگاه شما در میان زبان‌های برنامه نویسی، از بین دو حوزه Front End و Back End، در کدام حوزه قرار دارد.

زبان‌های برنامه نویسی کامپیوتر Front-End و Back-End چه تفاوتی با هم دارند؟

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

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

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

از شمای رنگ تا طرح‌بندی وموقعیت المان‌های متنی، همگی در حوزه مسئولیت توسعه‌دهندگان Front-End طبقه‌بندی می‌شوند. سه زبانی که توسعه‌دهندگان Front-End با آن‌ها سر و کار دارند، عبارتند از:

HTML

Javascript

CSS

تصویر زیر، نمونه‌ای از کدهای HTML پایه‌ای را نشان می‌دهد که موقعیت یک تصویر، ضخیم شدن متن و نقاط بالت را مشخص می‌کنند:

کدنویسی در HTML

 

مثالی از کدهای HTML نوشته شده برای تعیین ساختار متن

شاید در مورد المان‌های دیگری نظیر Bootstrap ، AngularJS و EmberJS نیز شنیده باشید، که ظاهر محتوای سایت را در دیوایس‌های مختلفی نظیر تلفن هوشمند یا تبلت، کنترل می‌کنند. یک توسعه دهنده Front-End اغلب باید هم روی تجربه کاربری و هم روی رابط کاربری مسلط باشد تا بتواند در مورد ظاهر، حس و عملکرد سایت، کنترل کامل داشته باشد.

اما در سوی دیگر، زبان‌هایی که یک توسعه دهنده Back-End با آن‌ها سر و کار دارد، عبارتند از: PHP

Ruby

Python

NET.

تصویر زیر، نمونه‌ای از کدهای ابتدایی Python را نشان می‌دهد که به کامپیوتر می‌گوید، عبارت‌های hello و Ali Motavaze را نمایش دهد.

نمونه ای از کدهای پایتون

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

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

بعضی توسعه‌دهندگان وب، به زبان‌های برنام ‌نویسی در هر دو حوزه Front-End وBack-End تسلط دارند. به این قبیل افراد معمولاً توسعه دهنده Full-Stack گفته می‌شود.

چرا باید برای یادگیری زبان برنامه نویسی کامپیوتر، در دوره‌های مربوطه شرکت کنم؟

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

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

یکی از سریع‌ترین و کوتاه‌ترین مسیرها برای بدل شدن به یک توسعه دهنده وب، شرکت در بوتکمپ‌های برنامه نویسی بامداد است.

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