چگونه یک برنامه نویس خوب شویم؟ چطور می توان یک برنامه نویس خوب بود؟ فاکتورهای یک برنامه نویس خوب چه چیزهایی هستند؟ تا حالا خیلی ها پرسیدن برنامه نویسی رو از کجا شروع کنم چی بخونم چقدر بخونم چطور پیش برم جواب های کم و بیش قانع کننده ای رو گرفتن و به همین خاطر بر این شدم تا چند خطی راجع به اینکه چطور میشه یه برنامه نویس خوب شد و چطور شروع کنیم و مختصری راجع به زبان های روز دنیا بنویسم امید است مورد توجه دووستان قرار بگیره و دوستانی که میخوان راهی رو انتخاب کنن راحت تر بتونن تصمیم بگیرن. پس با ما در توسینسو باشید تا این مقاله رو بخونید.
همونطور که میدونیم انواع و اقسام زبان های برنامه نویسی اومدن و رفتن و یه سری ها اومدن و ول کن ماجرا نیستن و خیلی ها هنوزم بهشون علاقه دارن ، حتماً شنیدید که هر چی علم پیشرفت کرده زبان های برنامه نویسی بهتر و کاربردی تری هم اومدن و جای زبان های قدیمی رو گرفتن ولی شاید اصلاً اینطور نباشه درسته که نو که میاد به بازار کهنه میشه دل آزار اما این در مورد زبان های برنامه نویسی صدق نکرده البته شاید عدهای باشن که مخالف این حرف های من باشن اما خوب که دقت کنید واقعاً اینچنین هست.
توی کتاب ها زبان برنامه نویسی اینطور بیان شده :زبان برنامه نویسی یا زبان کامپیوتری یک تکنیکی است دارای ارتباطی استاندارد برای سیستم ها و برای بیان دستورالعمل های یکسان از نظر قواعد دستوری به یک رایانه. میتوان گفت زبان برنامه نویسی مجموعه ای از قواعد نحوی و معنایی برای تعریف و تولید یک برنامه کامپیوتری هست و انتخاب یک زبان به برنامه نویس (Development)اجازه می دهد که دقیقا مشخص کند که رایانه روی چه داده ای عمل کند ،چه ورودی هایی را به سیستم بدهد و انتظار چه خروجی هایی را داشته باشد، این داده چگونه ذخیره یا منتقل شود، و دقیقا تحت شرایط مختلف کدام الگوریتم روی آن اعمال شود.
لازم هست در اینجا اعلام کنم شاخص ارزيابي محبوبيت زبانهاي برنامه نويسي (PYPL) نشان ميدهد در سال ۲۰۱۲ زبان سي شارپ برترين زبان برنامه نويسي بوده است.
حتماً تا به حال اسم شی گرایی را شنیده اید زبانهای جدید و مدرن این خصوصیت رو به خودشون اختصاص دادند.مفهوم شی گرایی یک برنامه را با توجه به مفاهیم object مشخصات و اعمال آنها توصیف میشوند بدین صورت که محیط برنامه نویسی بجای درگیر کردن کاربر با کد نویسی های طولانی اشیا یا Object هایی با مشخصه های خاص و کاری که یک شیی خاص انجام میدهد در اختیار ما قرارمیدهد که زیر به معرفی تک تک این مفاهیم میپردازیم
ما برای برنامه نویسی نیاز به نقشه داریم و در برنامه نویسی مدرن به این نقشه ها Class گفته میشود و این کلاس ها چیزی جز نقشه اولبه نیستند و برای اجرای این نقشه ها نیاز به آبجکت هست و برای هر کلاس میتوان یک یا چندین آبجکت طراحی کرد مثلاً کلاسی وجود دارد به نام انسان و میبینید که انواع و اقسام انسانها روی این کره خاکی زندگی میکنند و هر شخصی آبجکت مخصوص به خود را دارد . در دنیای حقیقی اشیاء مانند میز و بشقاب و چنگال و ... میباشند, در زبان برنامه نویسی "شی گرا" اشیاء درون browser ها بوده و عبارتند از فرم ها ودگمه ها و پنجره های مختلف.
اشیاء (object) خود دارای مشخصه هایی (خصوصیات)میباشد در زبان برنامه نویسی "شی گرا" پنجره دارای تیتر و فرمها دارای check box میباشند. هر Object ای میتواند خصوصیات خاص خودش را داشته باشد و میتواند از دیگر المانها با تغییر این خصوصیات متمایز باشد مثلاً همان انسانها را در نظر بگیرید یکی با رنگ پوست سیاه و یکی سفید یکی بلند قد و یکی کوتاه قد و این یعنی متمایز کردن آبجکت های مختلف.. تغییر مشخصه یک شی میتواند آن را تغییر میدهد, بطوریکه میتوان همان مشخصه را در اشیای کاملا متفاوتی بکار برد.فرض کنید که دارای مشخصه ای بنام empty هستید, پس بنابرآنچه گفته شد این مشخصه (خالی بودن) را میتوانید برای یک بشقاب بکار ببرید.
کاری که اشیاء میتوانند انجام دهند, Methods نامیده میشود و معمولاً بر پایه زبان دستوری به کار برده میشود یعنی این کار رو انجام بده این کار رو انجام نده , اشیاء زبان برنامه نویسی "شی گرا"نیز دارای methodsهایی میباشد مثلا عمل کلیک برای دکمه ها, بازکردن پنجره و انتخاب متن مورد نظر را بدنبال دارد.
خیلی ها هم این سوال رو دارن از کجا شروع کنم؟ البته حق دارن از بس نظر ها مختلف هست انتخاب یه راه خوب سخته چون پیشنهاد ها متفاوته. اما بهترین راه اینه که شروع کنید و قدم های ابتدایی رو بردارید آروم باشید و دنبال چراهایی که تو برنامه نویسی اتفاق میافته برید چون 100% پشت هر علتی دلیلی نهفته هست و هیچ چیز رو سر سری قبول نکنید و دنبال یه دلیل کاملاً منطقی باشید و سعی نکنید مشکلات رو دور بزنید چون دقیقاً این مشکلاتی که شما دورشون میزنید روزی شما رو دور میزنن و جلو راهتون رو میبندن پس همیشه منطقی فکر کنید.اصولاً برنامه نویس ها انسانهای کاملاً منطقی و دقیق بار میان چون ذات برنامه نویسی اینو به ما یاد میده.
میتونید از کلاس رفتن شروع کنید و یا میتونید خودتون بخونید و این بستگی به پشت کار و تلاش شما داره که چطوری پیشرفت میکنید همیشه یک راه رو انتخاب کنید و به محض برخورد با مشکلات سوالاتتون رو در انجمن های اینچنینی مطرح کنید تا به بهترین جواب ها برسید از نظر من دانشگاه فقط گرفتن مدرکه پس انتظار نداشته باشید همه چیز رو بهتون یاد بدن چون وقتی هم برای این نیست باید رو پاهای خودتون به ایستید با الگوریتم و فلوچارت آغاز کنید تا راه حل ها رو یاد بگیرید. سپس میتونید با سی پلاس پلاس شروع کنید هرچند از نظر شخصی من شما میتونید با سی شارپ هم استارت رو بزنید و در این موضوع اختلاف نظر بین دوستان زیاده.
این هم سوالی هست که دغدغه خیلی از دوستان هست به علت اینکه زبان های متعددی وجود داره به تبع کار سختیه که با چه زبونی کار کنم اما باید دید شما چیکار میخوایید انجام بدید یه سری از زبون ها مختص کارهای ریاضی و نوشتن توابع ریاضی هستن یه سری ها مختص طراحی وب و یه سری ها هم برنامه های کاربردی پس بسته به نیازتون و علاقه تون میتونید انتخاب کنید.این روز ها برنامه نویس ها به سمت سی شارپ و جاوا میرن چون دو تا از بهترین و به روز ترین زبان ها هستن.همونطور که میدونید سی شارپ تشکیل شده از نسل زبان C و بعد C++ که از Object oriented ساخته شده .
زبان C جزء زبان های structured programing بود از این زبان امروزه بیشتر جهت ارتباط های سخت افزاری استفاده میشه مثلاً درایور نویسی چون نزدیک به سخت افزار کار میکرد اما پایه و اصول سی پلاس پلاس بر Object Oriented بود که از مدیریت حافظه خیلی خیلی بهتری نسبت به زبان های قدیمش استفاده میکرد و نزدیک به زبان محاوره ما انسانها بود سی شارپ هم تکمیل شده سی پلاس پلاس هست اما کامل تر و کاربر پسند تر و بهترین برنامه نویس برنامه نویسی هست که در کمترین زمان به بهترین محصول دسیت پیدا کنه.
به نقل از مهندس احمدی : یکی از زمینه هایی که باید خیلی قوی کار کرد تا برنامه نویس خوبی بشید ، ذهن الگوریتم نویسیه ، یعنی باید ذهن در مورد الگوریتم ها شرطی بشه و این لازمه اش تمرین خیلی زیاده اگر میخواهید برنامه نویسی تحت وب رو پیش بگیرید، یادگیری یک زبان برنامه نویسی و قوی شدن توی اون زبان هست، حالا یه سری ها میگن PHP و یه سریا میگن ASP.NET اما قبلش بهتره در مورد تفاوت PHP و ASP.NET در بخش وب مطالعه کنی.
برای یادگیری تحت وب بهتره در کنار یک زبان برنامه نویسی، HTML و CSS و JavaScript و هم حتما" یاد بگیرید. چون آینده توی وب هست و اکثر سرویس ها و خدمات در آینده به صورت وب ارائه میشن و کسی که به این سمت حرکت کنه حتما" برد میکنه .
ضمناً یه بخشی از برنامه نویس خوب رو تجربیاتش تشکیل میده، علم برنامه نویسی بدون تجربه هیچ فایده ای نداره. باید تجربت رو تو این زمینه زیاد کنی، با انجام کارهای مختلف و مطالعه مطالبی که دیگران از تجربیاتشون تو اینترنت میزارن کمک میکنه تا تجربیات رو بیشتر کنید و هیچ وقت نباید به خودت بگی دیگه این آخرش بود چون این فیلد آخر نداره و باید خودت رو به روز نگه داری، هیچ نباید این تفکر رو داشته باشی که یه روز به جایی میرسی که به قول معروف تو برنامه نویسی همه چی تموم میشی. باید دائم در حال مطالعه و تحقیق باشی و خودت و به روز نگه داری. امروزه، شرکت های نرم افزاری بیشتر دنبال افرادی هستن که علمشون به روز هست، نه کسی که هنوز توی تکنولوژی چندین سال پیش داره درجا میزنه.
پس فهمیدیم که برنامه نویسی دنیای تجربه هست باید تجربه دار باشی تو این شاخه تا بتونی به عنوان یک شغل بهش نگاه کنی ، باید با تکنولوژی جلو رفت و از امکاناتی که .net و visual studio در اختیار قرار میده کمال استفاده رو برد ، این روز ها نباید چرخ رو اختراع کرد چون قبلاً اختراع شده. یکی از مهمترین کارهایی که باید یاد بگیری کار کردن با تیم هست چون این روز ها کمتر کسی پیدا میشه که تنهایی کار کنه الان فاکتور زمان مهمه و همینطور برنامه های تخصصی و بزرگ باید بتونی تیمی کار کنی که مایکروسافت بهش میگه TFS که مخفف Team Foundation Server هست.
و در آخر باید بگم هیچگاه دلسرد نشوید گاهی مواقع هر کاری میکنی Error داری و باید بگم این Error ها هست که از شما یه برنامه نویس میسازه اگه قرار باشه شما به Error ها بر نخوری هیچ فرقی با اون کسی که دو تا کوچه اونور تر داره فوتبال بازی میکنه نمیکنی پس با مشکلات دست و پنجه نرم کنید تا بتونید بهترین تجربیات رو کسب کنید.
همیشه به روز باشید و آخرین ورژن از برنامه ها و کدهای نوشته شده را دانلود کنید، سعی کنید همه مطالب برنامه نویسان هم زبانتان را بخوانید، اگر نسخه ی جدید از مفسر زبانتان عرضه شد شما باید از اولین اشخاصی باشید که آنرا دانلود میکنید همه چیز را خودتان بنوسید ، یعنی تا حد امکان از برنامه ها و کدهای آماده استفاده نکنید. البته استفاده از کدهای آماده حرام نیست اما مکروه است پس دست به آدامس های جویده شده شخص دیگری نزنید . از طرف دیگه استفاده از کدهای آماده در صورت تحلیل کد موردنظر قبل از استفاده مستحب هم هست. البته باید بگم چرخ قبلاً اختراع شده نیازی به اختراع اون نیست ولی اگر میخواهید یاد بگیرید خودتان اقدام کنید.
در ادامه سوال هایی رو که دوستان مطرح کردن برای یادگیری یک زبان برنامه نویسی رو قرار میدم امیدوارم این مقاله همراه با لینک های داخلش بتونه برای انتخاب یک زبان برنامه نویسی و سوالاتی که ذهنشون رو درگیر کرده رو بتونه جواب بده و مورد توجه دوستان قرار گرفته باشه.
کارشناس ارشد شبکه مایکروسافت
فرهاد خانلری ، مدرس شبکه و برنامه نویسی مبتنی بر زیرساخت های مایکروسافت ، سابقه فعالیت در موسسات و مراکز دولتی در قالب پروژه ، مشاوره و تدریس ، برنامه نویسی ++C ، سی شارپ و دات نت ، متخصص و مدرس شبکه های مبتنی بر سیستم عاملهای مایکروسافت و سرویس های مربوطه ، سخت افزار و ...
زمان پاسخ گویی روز های شنبه الی چهارشنبه ساعت 9 الی 18
فقط به موضوعات مربوط به محصولات آموزشی و فروش پاسخ داده می شود