خیلی از مردم در تلاش هستند تا بفهمند که آیا میخواهند برنامه نویسی کنند؟ یا اینکه برنامه نویسان چه کارهایی را به طور روزمره انجام میدهند؟ اصلاً با برنامه نویسی چه کاری میتوان انجام داد؟ اما بیشتر اوقات آنها به دلیل کمبود اطلاعات، در درک این مسائل شکست میخورند. من به چنین مقالاتی "اولیه" یا "از اینجا شروع کن" میگویم. اگر میخواهید بفهمید که آیا این کار به درد شما میخورد یا نه، به خواندن ادامه دهید. بخشی را انتخاب کنید که به آن علاقه دارید. اصول اولیه را بیاموزید. پروژههایی واقعی اما کوچک بسازید. تا حد ممکن تمرین کنید. سپس بیشتر تمرین کنید. این مقاله را برای کسانی مینویسم که میخواهند بفهمند آیا برنامه نویس شدن یا کدنویسی ارزش دنبال کردن را دارد یا نه. این مقاله برای کسانی است که میخواهند بدانند از کجا باید شروع کرد و چه چیزهایی را باید یاد گرفت. تجربهی من در زمینه برنامه نویسی بیشتر مربوط به توسعهی برنامههای وب است، بنابراین چیزی در مورد موارد سخت افزاری نمینویسم.
برنامه نویسی چطور است؟
برنامه نویسی فرایندی جهت ارتباط برقرار کردن با ماشینهاست که به ما این امکان را میدهد تا بایدها و نبایدها را به آنان توضیح دهیم. به وسیلهی برنامه نویسی میتوانید به ماشینها بگویید که در مواقع خاص چه کارهایی را انجام داده و چه کارهایی را انجام ندهند. شاید به نظر برسد که با زبانی عجیب با ماشینها صحبت میکنید اما آنها به نوعی شما را درک خواهند کرد. افرادی که این زبان را میدانند، میتوانند دستورالعملهای داده شده به ماشین ها را بخوانند. زبانهای زیادی وجود دارد. بعضی از برنامه نویسان میتوانند به چندین "زبان" صحبت کنند.
خلاصه: برنامه نویسی به دستگاهها میگوید که چه کاری انجام دهند.
شما میتوانید چه کار کنید؟
با مدیریت کردن ماشینها میتوانید برنامهها یا سیستمهای جالب و پیچیدهای را خلق کنید که کارهای معمول را آسان یا سرگرمکننده میکند. تمام تجهیزات الکترونیکی برای کمک به ما انجام کارهای روزمره برنامه ریزی شدهاند. لامپهای اتوماتیکی که با نزدیک شدن شما روشن می شوند؟ بله برنامه ریزی شدهاند. شما حتی میتوانید دنیاهایی جادویی را در یک ماشین برنامه نویسی کنید. در اینجا میتوان وبسایتها یا بازیهای ویدیویی را مثال زد. جدا از قوانین فیزیک و پیشرفت تکنولوژی، شما برای ساخت یک چیز مفید به تخیل و مهارت خود تکیه میکنید.
ما همین الان میلیاردها ماشین داریم که منتظر انجام دادن کاری هستند. گوشی هوشمند شما منتظر است تا با کمک آن یک مرورگر را باز کرده و مقالات مربوط به "نحوه شروع برنامه نویسی" را جستجو کنید. روتر وای فای شما منتظر مدیریت کردن درخواستهای شبکه است، او از سایر ماشینهای موجود در اینترنت میپرسد که آیا چنین اطلاعاتی را در اختیار دارند یا خیر. سپس سرورها درخواست را کنترل کرده و اطلاعات را ارسال میکنند. تمام آنها برای انجام مجموعهی خاصی از وظایف برنامه ریزی شدهاند.
در آخر میلیاردها ماشین منتظر ما هستند تا کارهای مفیدی را به آنها بسپاریم. بگذارید سادهتر بیان کنم، کارهایی که میتوانم به عنوان یک برنامه نویس انجام دهم:
- میتوانم ربات بسازم - جزئیات را بدست آورید، آنها را جمع آوری کنید و سپس یک ربات را برنامه ریزی کنید. این تنها مختص رباتها نیست و شامل تمام دستگاههایی بوده که میتوانند برنامه ریزی شوند. میتوان تجهیزات هوشمند موجود در خانه یا پهبادها را نیز مثال زد.
- میتوانم اپلیکیشنهای موبایل بسازم؛ درست مانند همان مواردی که هر روز در گوشیهای خود استفاده میکنید.
- میتوانم صفحات وب، برنامههایی پیچیده و یا وبسایتهایی مثل وبلاگهای شخصی را بسازم. این مورد را در ادامه با جزئیات بیشتری توضیح خواهم داد.
- و غیره.
برنامه نویسان چه کارهایی را انجام میدهند؟
من کارهای خود را مربوط به برنامههای وب میدانم.
مقداری "چرا"
برخی از مردم و شرکتها به ساخت و حفظ صفحات وبی علاقه دارند که همه میتوانند از طریق اینترنت به آنها دسترسی داشته باشند. آنها نشاندهنده شغلی هستند که در دنیای واقعی انجام میدهند، بنابراین شاید به یک وبسایت تجاری نیاز داشته باشند. افرادی که در جستجوی چنین مسائلی هستند، میتوانند صفحهی وب آنها را ببینند، اطلاعات مفید آنها را بخوانند و سپس تصمیم بگیرند که آیا میخواهند بابت خدمات شرکت پول پرداخت کنند یا خیر.
بعضی از شغلها فروش آنلاین دارند. بنابراین آنها به یک صفحهی وب نیاز دارند تا بتوانند درخواست مشتری، روند خرید و فروش و غیره را مدیریت کنند. سعی دارم به شما بگویم که تقاضای بسیاری برای ساخت صفحات وب یا برنامههای وب وجود دارد.
شرکتها وبسایت میخواهند. پس؟
ممکن است آنها به سراغ شرکتهایی بروند که در ساخت وبسایت به آنان کمک میکنند. بیایید آنها را آژانسهای دیجیتالی بنامیم. آنها تخصص دارند و وبسایتهایی را میسازند که تجارتها دوست دارند. آژانس دیجیتال برای انجام این کار، برنامه نویسانی را در اختیار دارد. آنها از نحوهی ساخت یک وبسایت خوب مطلع هستند.
آژانسهای مشابه دیگری نیز وجود دارد که برنامه نویسان را در اختیار مشتریان قرار میدهند. برخی از آنها بر حسب هر یک پروژه حقوق دریافت میکنند. خدمات آنها شامل کار برنامه نویسان، تست، جمع آوری الزامات، مدیریت کارکنان و غیره میباشد.
شرکتهای تولیدی نیز محصولاتی را میسازند که به خودی خود با ارزش است. در حال حاضر این یک تجارت قابل قبول است.
برنامه نویسان به طور روزانه چه کارهایی انجام میدهند
یک نوع مدیریت تجاری وجود دارد که به توسعهدهندگان میگوید چه کارهایی را باید برای بعداً انجام دهند. مهندسان در مورد برنامهها، نحوه اجرای خواستههای تجاری و بررسی جنبههای لازم صحبت میکنند. ما هم یک لیست TODO را در اختیار داریم که شامل تمام وظایف مربوط به یک پروژه خاص است. هر مهندس یک بخش را انتخاب کرده و بر روی آن کار خواهد کرد. این طرح ساده میباشد اما مجموعهای واقعی از چیزها را نشان میدهد.
وظایف
اگر به تازگی وارد این عرصه شده باشید، کارهای راحتی را انجام میدهید. همکاران ارشد شما انتظار دارند که به طور مرتب از آنها سوالاتی را بپرسید. با کسب تجربههای بیشتر، کارهای پیچیدهتری را انجام خواهید داد و مسئولیتهای بیشتری به شما سپرده خواهد شد.
کارهای روزانه در پروژهها بسیار متفاوت است. اما اکثر آنها شامل کدنویسی هستند. شما باید کاری کنید تا یک چیز با روشی خاص عملی شود. همینطور که مشغول صحبت در مورد برنامههای وب هستیم، باید خاطر نشان کنم که چند دسته برنامه نویس وجود دارد.
توسعهدهندگان Front-end
آنها کارهای مربوط به بخش قابل مشاهده توسط کاربر را انجام میدهند. آنها بخشهای موجود در وبسایت مثل متنها، مدلها، تصاویر، انیمیشنها و غیره را خلق میکنند. آنها برای طراحی صفحات استاتیک حداقل CSS و HTML را میدانند. HTML یک زبان علامتگذاری است تا به مرورگر بگویید که چه چیزهایی را در "کجا" قرار دهد. مثلاً میخواهم یک منوی پیمایش را در بالای وبسایت خودم قرار دهم، سپس دو تصویر در پایین آن و یک متن را در انتهای وبسایت پیادهسازی کنم. میتوانید تمام اینها را به HTML تبدیل کنید. بنابراین مرورگرها میتوانند خواستههای شما را به طور دقیق تفسیر کنند.
CSS زبان استایلهاست و به المانهای خام HTML ظاهری خوب میبخشد. میتواند رنگ، اندازه و پهنای متنها و بلوکها را تنظیم کند. مردم با استفاده از HTML و CSS میتوانند وبسایتهایی استاتیک را خلق کنند. منظورم از وبسایتهای استاتیک مواردی است که به منطقهای اضافی مثل مدیریت دکمه کلیکها، عکسالعمل با ماوس یا دابل کلیک بر روی یک المان خاص نیاز نداشته باشد.
برنامههای وب همان صفحات وب با منطق و پیچیدگیهای اضافی هستند. میتوانید همیشه آنها را در اینترنت مشاهده کنید. فروشگاههای آنلاین یک برنامهی وب هستند چون آنها منطق شما را در انتخاب محصول، افزودن آن به سبد خرید و ذکر محل دریافت کالا مدیریت میکنند. این نوع وبسایتها به توسعهدهندگان front-end نیاز دارند و آنها نیز باید یک زبان برنامه نویسی مناسب را بلد باشند. زیرا نمیتوانید چنین دستورالعملهایی را با HTML یا CSS بنویسید. گستردهترین زبان برنامه نویسی برای این کار JavaScript است.
به طور خلاصه توسعهدهندگان front-end قسمت بصری وبسایتها را خلق میکنند و منطقی را میسازند که نحوه رفتار وبسایت را در بخش قابل مشاهده توسط کاربر بیان میکند. به نظر شما آیا قسمتهای دیگری نیز در وبسایت وجود دارد؟ بله، بخش back-end (سرور) مورد بعدی بحث ما خواهد بود.
توسعهدهندگان Back-end
آنها منطقی را مینویسند که در آن دادههای بخش بصری منتقل، اعتبارسنجی و بازبینی میشود و سپس در بخشی ذخیره و بازیابی خواهد شد. یک سرور دادهها را مدیریت میکند. اگر بخش FE دارای یک منطق است، چرا پس به سرور نیاز داریم؟ بخش FE به محیط مرورگر محدود شده است، به همین خاطر نمیتوانیم تمام کارهای ممکن را در آنجا انجام دهیم.
توسعهدهندگان سرور ساید (Back-end یا همان BE) معمولاً یک API مختص FE یا سرورهای دیگر را مینویسند. منظور از API چیست؟ بیایید نگاهی به ویکی پدیا بیاندازیم:
Application Programming Interface که یک واسطه نرم افزاری بوده و به دو برنامه امکان مکالمه با یکدیگر را میدهد.
API مانند دهان و گوشهای ما است. من صحبت میکنم، شما من را میشنوید و بالعکس. این یک روش برای تبادل اطلاعات است.
بیایید دوباره به مثال فروشگاههای آنلاین برگردیم. شما میخواهید چیزی را در آنجا خریداری کنید. FE دادههای شما را جمع آوری کرده و سپس آنها را به سرور ارسال میکند. حال سرور اطلاعات ورودی را اعتبارسنجی میکند، سپس آنها را در یک دیتابیس بررسی کرده و با یک سرور بانکی ارتباط برقرار میکند تا مطمئن شود که پرداخت انجام شده است. سرور بعد از تمام این بررسیها به FE پاسخ میدهد که همه چیز مرتب است، مشتری هزینه محصول را پرداخت کرده و حالا باید یک پیام تشکر در وبسایت به او نشان دهیم.
بنابراین FE به وسیلهی API با BE ارتباط برقرار میکند و آنها اطلاعات را بین یکدیگر رد و بدل میکنند. برخی از مردم میدانند که چگونه باید هم با FE و هم با BE کار کرد.
نینجاهای Full-stack
آنها مهارتهای لازم برای کار با FE و BE را دارند. بنابراین این توانایی را دارند که سیر تا پیاز برنامههای وب را به تنهایی انجام دهند.
گروه دیگر نیز توسعهدهندگان موبایل هستند که در بخش FE جای میگیرند. میتوانیم در بخش بعدی بیشتر دربارهی آنها صحبت کنیم.
دیدگاه و پرسش
در حال دریافت نظرات از سرور، لطفا منتظر بمانید
در حال دریافت نظرات از سرور، لطفا منتظر بمانید