دنبال کننده و علاقمند برنامه نویسی و معماری نرم افزار، شاغل در سازمان عمومی
برنامه نویسی، کمی بیشتر
تقریباً همه افرادی که در جامعه کنونی زندگی میکنند کم و بیش واژه برنامهنویسی رو یا شنیدند و یا اطلاعاتی در مورد آن دارند، تصور اکثر کسانی که برای یادگیری برنامهنویسی مراجعه میکنند این است که برنامه نویسی در مجموع کشیدن یک کلید(button) به صفحه یا کشیدن یک کادر متن به صفحه و تعریف وظایفی برای هرکدام است، به همین دلیل، برخی از آنها از آموزشهای ابتدایی که در واقع بمنظور فراگیری الگوریتم نویسی و افزایش قدرت تحلیل و حل مسئله بیان میگردد خسته میشوند، حرفه برنامهنویسی مانند بسیاری از حرفهها نیازمند آموزشهای ابتدایی، یادگیری الفبا و افزودن بر مهارت هست، در این نوشته قصد داریم کمی بیشتر با خود مفهوم برنامه نویسی آشنا شویم و در نهایت توصیههایی نیز برای یادگیری آن ارائه دهیم.
در ویکی پدیای فارسی برنامه نویسی را چنین تعریف میکند:
"برنامهنویسی رایانه (به انگلیسی: Computer Programming) (یا به اختصار برنامهنویسی) بهطور کلی به فرایند نوشتن و توسعه نرمافزار کامپیوتر گفته میشود. به بیان جزئیتر برنامهنویسی رایانه به معنای فرایند تبدیل و سوق دادن فرمول حل یک مسئله یا الگوریتم محاسباتی، به یک برنامه قابل اجرا (نرمافزار) میباشد."
از این تعریف میتوان دریافت که در واقع نوشتن برنامه در ابتدا درک مسئله یا مشکلی است که برنامه باید آنرا حل کند، ساخت یک روند منطقی برای حل آن مسئله(نوشتن الگوریتم) و در نهایت تبدیل آن به یک روند منطقی قابل فهم برای کامپیوتر است.
باید این نکته رو به یاد داشته باشیم که در ابتدا(در اصل) برنامه نویسی برای حل مسائل ریاضی بوجود آمده است، و هماکنون نیز بسیاری مسائل و منطقهای ریاضیاتی وجود دراند که موضوع بحث محافل دانشگاهی و صنعتی میباشند که مهندسان کامپیوتر در تلاشند برای آنها راهحل کامپیوتری بوجود بیاورند یا روشهای قدیمی رو بهبود بخشند، نرمافزارهای گرافیکی، آماری، هوش مصنوعی و... نمونههای کاملاً مرتبط با ریاضیات هستند و مطمئناً داشتن هوش ریاضی(نه الزاماً از قبل یاد گرفتن ریاضیات تا آن حد) و قدرت حل مسئله قوی میتواند در پیشرفت برنامه نویس در آن حوزهها تأثیر مثبت زیادی بگذارد. برخلاف تصور عموم، برنامه نویس حرفه ایتر برنامه نویسی است که بتواند مسائل سخت را حل کند، ریاضیات کم و بیش در همه زمینههای برنامه نویسی کاربرد دارد، در برخی ،مفاهیم پایهای و ساده ریاضیات، در برخی، هم مفاهیم پایهای و هم مفاهیم پیشرفتهتر نیاز هست.
چون اکثر ما با برنامه های کاربردی سر و کار داریم ممکن است تصورمان از برنامه نویسی تنها در حد ترسیم چند کلید و کادر ورود مقادیر و کمی هم کد نویسی برای ارتباط بین آنها باشد، اما در اصل واقعاً اینطور نیست، با یک دیدگاه ساده و ابتدایی باید گفته شود که در یک برنامه ما درواقع قسمتی برای ایجاد ارتباط با کاربر(ظاهر یا محیط کاربری برنامه- FRONTEND)، و بخشی نیز برای کدهای اصلی و اجرایی برنامه (بخش پشت صحنه- BACKEND )داریم، همچنین ابزارها و محیطهایی برای نوشتن و ساخت این بخشها وجود دارد.
یک سبک برنامهنویسی ابتدایی (و نه اصولی) این است که همه بخش backend و frontend برنامه در یکجا و به صورت به هم تنیده نوشته شود، حتی در سالهای نه چندان دور بسیاری از برنامهنویسان متوسط و مبتدی بیشتر با همین سبک برنامه مینوشتند آنها با کمک ابزارهایی یک صفحه (فرم) از برنامه را طراحی میکردند و در همانجا نیز کدهای بخش backend را هم مینوشتند باید باخبر شوید که این سبک و حیطه برنامهنویس(ویژوال، مثل دلفی، ویژوال بیسیک، WINfORMS در دات نت و ...) روز به روز محبوبیت خود را از دست میدهد، حتی پلتفرمهای جدیدتر طوری طراحی میشوند که مجبورتان کنند از این سبک برنامهنویسی دوری کنید، نوشتن نرمافزار برای محیطهای آنلاین و تحت وب روزبه روز محبوبتر شده و سرمایهگذاری بیشتری روی آن انجام میشود، حتی برای نرمافزارهای دسکتاپی(قابل اجرا روی کامپیوتر محلی) و یا موبایل نیز برنامه نویسان بیشتر از ابزارها و امکانات نوشتاری استفاده میکنند، استفاده از تکنولوژیهای وب برای ساخت INERFACE در نرمافزارهای محلی نیز برای خود جای بزرگی باز کرده، پس در سبک برنامه نویسی مدرن نوشتن بخشهای backend و frontend کاملاً از هم جدا شده و حتی هرکدام سبکها و مهارتهای خاص خود را میطلبند، هنگام ساخت نرمافزاراهای بزرگ برای هرکدام از بخشهای backend و frontend تیم یا تیمهای مستقلی تدارک دیده میشود.
امروزه برنامهنویسی تقریباً در همه امورات جاری ما انسانها رسوخ کرده، لباسها و گجتهای کنترل سلامت، ابزار ارتباط همگانی، اینترنت، هوش مصنوعی، رباطها، سیستمهای کنترل امنیت و هویت سنجی، بانکهای اطلاعاتی، ابزارهای تحلیل بازار و علوم اجتماعی و پزشکی و... در همه اینها به همراه سختافزارهای استفاده شده نقش اصلی رو علوم مربوط به برنامهنویسی ایفا میکنند، هرکدام اصولیتر و دقیقتر برنامهنویسی شده باشند بهتر و سریعتر به نیازها پاسخ خواهند داد، شما به عنوان یک مبتدی با گزینههای مختلفی برای شروع یادگیری مواجه خواهید بود که ممکن است موجب سردرگمی یا حتی ترس و دوری از یادگیری شود، اما خبر خوش این است که قضیه چنانکه فکر میکنید سخت نیست، تنها نیاز برای برنامه نویس شدن شروع یادگیری یک زبان برنامهنویسی و روشهای حل مسئله است، لازم هم نیست برای انتخاب زبان وسواس به خرج دهید، چیزی که اهمیت دارد یادگیری الگوریتم نویسی و توانمند شدن در حل مسائل و تطابق دادن راهحلها با منطق کامپیوتر است، کافیاست به طور روزانه تمرین کنید و سعی کنید در ذهن یا کاغذ اتفاقاتی که در اطرافتان واقع میشود را به منطق قابل فهم کامپیوتر(الگوریتم) تبدیل کنید. این تمرین کمک میکند تا راحتتر ذهنتون را با منطق کامپیوتر تطبیق دهید و درک درستتری از روند نوشتن برنامه را برای شما مهیا میکند، که در نهایت باعث میشود برنامهنویسی را سریعتر و راحتتر یاد بگیرید، گذر از این مرحله، شما رو قادر میکند به سرعت و با زحمت کمتری هر زبان و تکنولوژی برنامهنویسی رو یاد بگیرید.
نتیجه گیری
برنامهنویسی در واقع داشتن مهارت در تحلیل درست یک مسئله، یافتن یک راه حل منطقی(با فرض اینکه منطق ریاضیات هست نه فلسفه) برای آن، و درنهایت تبدیل آن منطق به صورتی هست که برای کامپیوتر قابل فهم باشد، است. این مفهوم در بسیاری از امورات روزمره ما رسوخ کرده و درواقع تأثیر قابل درک و زیادی در سبک زندگی ما دارد، اگر تمرین کنیم و نسبت به درک اصول کامپیوتر و حل مسائل به صورت منطقی قابل فهم کامپیوتر مهارت پیدا کنیم به راحتی میتوانیم برنامهنویسی رو یاد بگیریم و وقتی اصول آنرا یادگرفتیم و مهارت کافی داریم به راحتی میتوانیم زمینه کاری یا زبان برنامهنویسی مورد استفادهمان را تغییر دهیم. پس در ابتدا نیاز است که مفاهیم پایهای رو با دقت یاد بگیریم و سپس تمرین کنیم تا بتوانیم راهحلهایی برای حل مسائل ساده و به تدریج پیشرفتهتر ریاضیات توسط کامپیوتر رو پیدا کرده و بنویسیم. سپس میتوانیم در زمینههای مختلف ورود کرده و در هرکدام که نیاز است(یا مورد علاقهمان است) حرفهایتر شویم.
مطلبی دیگر از این انتشارات
نقشه راه برنامه نویسی فرانت اند
مطلبی دیگر از این انتشارات
پیشنهادهای مدرسه خبرنگاری در این «سیل اخبار جعلی»
مطلبی دیگر از این انتشارات
فریلنسر کیست؟ کسب درآمد از فریلنسینگ