برنامه نویسی را از کجا شروع کنیم؟ مسیر یادگیری برنامه نویسی

اگر قصد ورود به دنیای برنامه نویسی را دارید سوالاتی از قبیل برنامه نویسی را از کجا شروع کنیم، چگونه برنامه نویس شویم، مسیر یادگیری برنامه نویسی چیست، با چه دوره ای برنامه نویسی را شروع کنیم؟ گرایش های مختلف برنامه نویسی چه چیزهایی هستند؟ تفاوت برنامه نویسی موبایل و دسکتاپ در چیست؟ تفاوت برنامه نویسی موبایل و وب در چیست؟ تفاوت طراحی وب و برنامه نویسی وب در چیست ذهن شما را درگیر کرده! در این مطلب قصد داریم پاسخ شما به این سوالات رو بدیم و بگیم چجوری باید وارد دنیای برنامه نویسی بشیم و بهترین مسیر یادگیری برنامه نویسی چیه؟

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

چقدر باید برای یادگیری برنامه نویسی زمان بزاریم و سوالاتی از این قبیل. خیلی از دوستان و اطرافیان این سوال رو از من میپرسن که کار تو دقیقاً چی هست یا برای برنامه نویس شدن از کجا باید شروع کنیم؟ در این مطلب قصد دارم تا تجربه های شخصی خودم رو که در طول 12 سال کار برنامه نویسی با اون ها روبرو بودم رو در اختیار دوستان قرار بدم تا شاید به خیلی از این سوالات جواب داده شود. البته سوالات و ابهامات در این زمینه بسیار هست، اما سعی می کنم که به مهمترین اون ها در این زمینه اشاره ای داشته باشم.

علاقه و صبر

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

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

برنامه نویسی شب و روز نداره، اکثر برنامه نویس ها شب زنده دار هستن (به قول معروف که من مرد تنهایی شبم :دی). موقعیت هایی پیش میاد که شاید تو 48 ساعت بیشتر از 5 ساعت نتونید بخوابید. پس یادتون باشه، مهمترین موضوع اینه که به برنامه نویسی علاقه مند باشید و این علاقه هست که توی کار به شما صبر میده و کمک میکنه تا بتونید با بی خوابی ها و مشکلات یک برنامه نویس کنار بیایید.

تعیین مسیر

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

کد نویسی Back-End (نوشتن کدهای مربوط به یک برنامه که توسط کاربر نهایی قابل دیدن نیست)، صبر و حوصله میخواد، برعکس کار طراحی واسط کاربری و طراحی وب که بیشتر خلاقیت و هنر در اون حرف اول رو میزنه. برای مثال، افرادی که علاقه زیادی به حل مسائل پیچیده دارند تو زمینه برنامه نویسی Back-End و البته برنامه نویسی سیستمی میتونن موفق باشند، همچنین این دسته از افراد تو زمینه نوشتن Framework های نرم افزاری موفق خواهند بود.

مطالعه دائم

شک نکنید که باید مطالعه داشته باشید. دنیای برنامه نویسی دائماً در حال تغییر است و سالانه تکنولوژی ها و نسخه های جدید از زبان های برنامه نویسی به بازار عرضه می شوند. برای مثال، برای زبان برنامه نویسی سی شارپ تا این لحظه 6 نسخه عرضه شده و هر نسخه شامل قابلیت های جدید است. باید زمانی رو برای مطالعه کتاب ها اختصاص بدید و این زمان همیشگی است. مطالعه دائمی شرط موفقیت شما است.

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

شخصی که مطالعه نمی کند مثل آب داخل یک برکه است که جریان ندارد. سعی کنید تا حد امکان از منابع به زبان انگلیسی استفاده کنید. (البته ITPRO رو از این مورد فاکتور بگیرید :دی) خیلی افراد با مطالعه کتاب ها با زبان انگلیسی مشکل دارند، اما در صورت اتمام یک کتاب، مطالعه کتاب های بعدی برای شما خیلی راحت می شود. اکثر منابعی که به زبان فارسی وجود دارند به دلیل وجود اشتباه در ترجمه یا حتی زیاده روی در ترجمه تنها باعث سردرگمی شما می شوند.

انتخاب زبان درست

خیلی از افراد در انتخاب زبان برنامه نویسی دچار مشکل می شوند. اینکه چه زبانی را انتخاب کنید که مبتنی بر علایق شما باشد بسیار مهم است. همانطور که گفتیم شاخه برنامه نویسی به زیر شاخه های بسیاری تقسیم می شود، مانند Desktop Application و Web Application یا برنامه های موبایل و همچنین برنامه های تحت وب. هر یک از این شاخه ها نیازمند یادگیری یک یا چند زبان برنامه نویسی هستند.

برنامه نویسی موبایل : برنامه های موبایل مبتنی بر چندین پلاتفرم مختلف نوشته می شوند. برای مثال برای Android شما می بایست حتماً زبان برنامه نویسی جاوا را یاد بگیرید. نوشتن برنامه های Android شدیداً وابسته به زبان جاوا هستند. البته فرم ورک های دیگری نیز وجود دارند مانند Ionic یا Apache Cordova و همینطور Xamarin که بوسیله آن ها می توانید برنامه هایی برای Android بنویسید.اما برنامه های Android به صورت مستقیم با زبان جاوا نوشته می شوند که اصطلاحاً به آن ها برنامه های Native می گویند. برای برنامه های IOS، شما باید با Swift که رابطه مستقیمی با زبان Objective-C دارد آشنا باشد. یا برای برنامه های Windows Phone امکان نوشتن برنامه ها با زبان سی شارپ یا HTML و CSS و JavaScript وجود دارد.

برنامه نویسی وب : اگر قصد دارید کار برنامه نویسی وب انجام دهید ابتدا باید مشخص کنید که از چه تکنولوژی می خواهید استفاده کنید. معروف ترین ها در حوزه برنامه نویسی وب PHP و ASP.NET هستند، البته تکنولوژی های دیگری مانند JSP نیز وجود دارند، اما به انداه PHP و ASP.NET بازار کار ندارند. خیلی ها سر اینکه PHP بهتر است یا ASP.NET دائماً در حال بحث کردن هستند. اما این نکته رو بگم که شما چه ASP.NET و چه PHP رو به صورت حرفه ای یاد بگیرید، می توانید هر سایتی را طراحی کنید. در حال حاضر سایت های بزرگی وجود دارند که با PHP نوشته شدند، برای مثال Facebook کاملاً مبتنی بر PHP و MySQL می باشد یا سایت هایی مانند ITPRO و StackOverflow با ASP.NET نوشته شده اند. به نظر شخص خود من، مزیتی که یادگیری ASP.NET نسبت به PHP دارد این است که دست شما برای نوشتن برنامه های دیگر مانند Desktop Application باز خواهد بود، زیرا با یادگیری ASP.NET می بایست زبان سی شارپ را نیز فرا بگیرید. هم PHP و ASP.NET ریشه در زبان سی دارند.در کنار PHP و ASP.NET نیز باید با HTML و CSS و JavaScript نیز آشنایی داشته باشید. همچنین شما باید با بانک های اطلاعاتی نیز آشنا شوید، معمولاً برنامه نویسان PHP از بانک MySQL و برنامه نویسان ASP.NET از بانک SQL Server استفاده می کنند. البته شما در ASP.NET می توانید از بانک MySQL استفاده کنید و بالعکس.تکنولوژی جدید دیگری نیز که معرفی شده NodeJS می باشد که کاملاً مبتنی بر JavaScript است و خیلی از برنامه نویسان، NodeJS را انتخاب خود برای برنامه نویسی وب قرار می دهند و بسیار هم محبوب است.

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


زبان HTML برای ایجاد صفحات وب

زبان CSS برای استایل دهی به صفحات وب

JavaScript برای نوشتن کدهای سمت کاربر

jQuery که یک کتابخانه مبتنی بر javaScript است

Bootstrap برای راحتی کار در ایجاد صفحات وب

Photoshop برای ایجاد طرح اولیه وب سایت