اگر قصد ورود به دنیای آموزش برنامه نویسی را دارید سوالاتی از قبیل برنامه نویسی را از کجا شروع کنیم، چگونه برنامه نویس شویم، مسیر یادگیری برنامه نویسی چیست، با چه دوره ای برنامه نویسی را شروع کنیم؟ گرایش های مختلف برنامه نویسی چه چیزهایی هستند؟ تفاوت برنامه نویسی موبایل و دسکتاپ در چیست؟ تفاوت برنامه نویسی موبایل و وب در چیست؟ تفاوت طراحی وب و برنامه نویسی وب در چیست ذهن شما را درگیر کرده! در این مطلب قصد داریم پاسخ شما به این سوالات رو بدیم و بگیم چجوری باید وارد دنیای برنامه نویسی بشیم و بهترین مسیر یادگیری برنامه نویسی چیه؟
یکی از مشاغل پر درآمد و البته بسیار پر طرفدار در میان فارغ التحصیلان رشته های مرتبط با فناوری و البته سایر رشته ها، برنامه نویسی هست. تمام این فراد قبل از ورود به دنیای برنامه نویسی، سوالات زیادی در ذهن خود دارند، سوالاتی مانند اینکه برنامه نویسی رو از کجا شروع کنم؟ بهترین زبان برنامه نویسی چه زبانی هست؟
چقدر باید برای آموزش برنامه نویسی زمان بزاریم و سوالاتی از این قبیل. خیلی از دوستان و اطرافیان این سوال رو از من میپرسن که کار تو دقیقاً چی هست یا برای برنامه نویس شدن از کجا باید شروع کنیم؟ در این مطلب قصد دارم تا تجربه های شخصی خودم رو که در طول 12 سال کار برنامه نویسی با اون ها روبرو بودم رو در اختیار دوستان قرار بدم تا شاید به خیلی از این سوالات جواب داده شود. البته سوالات و ابهامات در این زمینه بسیار هست، اما سعی می کنم که به مهمترین اون ها در این زمینه اشاره ای داشته باشم.
در اولین قدم باید مشخص کنیم که با چه هدفی قصد داریم وارد دنیای برنامه نویسی شویم؟ معمولاً افراد با دو هدف وارد این حرفه می شوند، یکی بحث علاقه ای هست که به موضوع برنامه نویسی دارند و دیگری بحث مالی. همانطور که در ابتدا گفتم، برنامه نویسی یکی از مشاغل پردرآمد به حساب می آید (البته نه به اندازه یک سوپر استار سینما یا یک فوتبالیست) و شخصی که به صورت حرفه ای وارد این شغل می شود بعد گذشت مدتی می تواند به سطح درآمدی بالایی برسد.
اما صرفاً داشتن هدف مالی کافی نیست. طبیعی هست که هر شخصی برای پیشرفت در هر کاری، قبل از هر چیز باید نسبت به اون کار علاقه داشته باشد. مخصوصاً کار برنامه نویسی که نیازمند صبر و حوصله زیادی است و شما به عنوان یک برنامه نویس گاهی باید چندین ساعت از وقت گرانبهاتون رو برای حل یک مسئله یا نوشتن یک الگوریتم اختصاص بدید.
برنامه نویسی شب و روز نداره، اکثر برنامه نویس ها شب زنده دار هستن (به قول معروف که من مرد تنهایی شبم :دی). موقعیت هایی پیش میاد که شاید تو 48 ساعت بیشتر از 5 ساعت نتونید بخوابید. پس یادتون باشه، مهمترین موضوع اینه که به برنامه نویسی علاقه مند باشید و این علاقه هست که توی کار به شما صبر میده و کمک میکنه تا بتونید با بی خوابی ها و مشکلات یک برنامه نویس کنار بیایید.
شما در ابتدا باید مشخص کنید که در چه حوزه ای قصد فعالیت دارید، شغل برنامه نویسی به شاخه های گوناگونی تقسیم میشه، از طراحی برنامه های سیستمی تا طراحی وب و نوشتن برنامه های موبایل، همگی زیر شاخه برنامه نویسی قرار دارند. روحیات شما تاثیر زیادی در راهی که انتخاب می کنید دارد. اجازه بدید مثالی بزنم، اگر شما به طبیعت و هنر علاقه زیادی دارید، مطمئن باشید تو زمینه طراحی وب و همینطور طراحی واسط کاربری برنامه ها می تونید موفق بشید.
کد نویسی Back-End (نوشتن کدهای مربوط به یک برنامه که توسط کاربر نهایی قابل دیدن نیست)، صبر و حوصله میخواد، برعکس کار طراحی واسط کاربری و طراحی وب که بیشتر خلاقیت و هنر در اون حرف اول رو میزنه. برای مثال، افرادی که علاقه زیادی به حل مسائل پیچیده دارند تو زمینه برنامه نویسی Back-End و البته برنامه نویسی سیستمی میتونن موفق باشند، همچنین این دسته از افراد تو زمینه نوشتن Framework های نرم افزاری موفق خواهند بود.
شک نکنید که باید مطالعه داشته باشید. دنیای برنامه نویسی دائماً در حال تغییر است و سالانه تکنولوژی ها و نسخه های جدید از زبان های برنامه نویسی به بازار عرضه می شوند. برای مثال، برای زبان برنامه نویسی سی شارپ تا این لحظه 6 نسخه عرضه شده و هر نسخه شامل قابلیت های جدید است. باید زمانی رو برای مطالعه کتاب ها اختصاص بدید و این زمان همیشگی است. مطالعه دائمی شرط موفقیت شما است.
باید بتوانید از منابع موجود در اینترنت به بهترین شکل استفاده کنید. بالا بردن توانایی جستجو در اینترنت کمک زیادی به پیشرفت شما می کند. خیلی وقت ها به مشکلاتی برخورد می کنید که تنها راه حل این مشکلات مراجعه به منابع موجود در اینترنت هست. مقالات زیادی در وب سایت های مختلف منتشر می شوند که باید به صورت مکمل در کنار کتاب ها آن ها را مطالعه کنید.
شخصی که مطالعه نمی کند مثل آب داخل یک برکه است که جریان ندارد. سعی کنید تا حد امکان از منابع به زبان انگلیسی استفاده کنید. (البته ITPRO رو از این مورد فاکتور بگیرید :دی) خیلی افراد با مطالعه کتاب ها با زبان انگلیسی مشکل دارند، اما در صورت اتمام یک کتاب، مطالعه کتاب های بعدی برای شما خیلی راحت می شود. اکثر منابعی که به زبان فارسی وجود دارند به دلیل وجود اشتباه در ترجمه یا حتی زیاده روی در ترجمه تنها باعث سردرگمی شما می شوند.
خیلی از افراد در انتخاب زبان برنامه نویسی دچار مشکل می شوند. اینکه چه زبانی را انتخاب کنید که مبتنی بر علایق شما باشد بسیار مهم است. همانطور که گفتیم شاخه برنامه نویسی به زیر شاخه های بسیاری تقسیم می شود، مانند Desktop Application و Web Application یا برنامه های موبایل و همچنین برنامه های تحت وب. هر یک از این شاخه ها نیازمند یادگیری یک یا چند زبان برنامه نویسی هستند.
مواردی که گفته شد از الزمات اولیه برای یک طراح وب سایت، در کنار این موارد آشنایی با تئوری رنگ ها، مفاهیم گرافیک نیز بسیار مهم بوده و به ایجاد طرح های جذاب کمک می کنند.
اکثر ما با این مدل برنامه ها هر روز سر و کار داریم، برنامه هایی مثل Word یا Excel. این ها برنامه های Desktop هستند. یک برنامه نویس Desktop برای ایجاد این برنامه ها می توانند از بین Java و NET. یکی را انتخاب کند. البته تکنولوژی های دیگری نیز وجود دارند مانند C++ MFC یا C++ QT، اما برای راحتی و سرعت کار Java یا NET. توصیه می شود. هر دو زبان بازار کار خوبی دارند، اگر شما Java را انتخاب کنید، یادگیری زبان جاوا باید اولویت شما باشد.
اما در صورت انتخاب NET.، می توانید بین Visual Basic و C# یکی را انتخاب کنید. پیشنهاد من به شما انتخاب C# است، زیرا بازار کار بهتری دارد و منابع و کتاب هایی که در اینترنت وجود دارند اکثراً بر اساس زبان سی شارپ ارائه شده اند. شاید بتوان مزیتی که جاوا نسبت به NET. دارد را قابلیت اجرای برنامه های جاوا بر روی پلاتفرم های مختلف مانند لینوکس، ویندوز و ... ذکر کرد. البته NET. نیز از این قابلیت پشتیبانی می کند، اما نه به صورت کامل! در کنار یادگیری زبان های برنامه نویسی، یادگیری بانک های اطلاعاتی مانند SQL Server یا Oracle را نیز جزو برنامه خود قرار دهید.
یادگیری یک زبان برنامه نویسی به تنهایی از شما یک برنامه نویسی حرفه ای نخواهد ساخت. تبدیل شدن به یک برنامه نویس حرفه ای نیازمند تلاش بسیار است. مثالی میزنم، شما اگر در کشور خودتان زبان انگلیسی را بسیار خوب هم یاد بگیرید، زمانی که به یک کشور انگلیسی زبان سفر کنید، در ارتباط بر قرار کردن مشکل خواهید داشت. این مشکل تنها در صورتی برطرف خواهد شد که در مدتی در آن کشور زندگی کرده و به مرور با گویش و اصطلاحات آن کشور آشنا شوید.
برنامه نویسی نیز به همین صورت است، یک زبان برنامه نویسی چیزی بیشتر از چند کلمه کلیدی نیست. اما یادگیری این کلمات کلیدی به تنهایی کمکی به شما نمی کند. شما باید بتوانید یک مشکل را با کد نویسی حل کنید که لازمه آن آشنایی با الگوریتم های برنامه نویسی است. ذهن شما باید به ذهنی تبدیل شود که با مشاهده مشکل به سرعت راهکاری را برای آن تولید کند.
به این ذهن، ذهن شرطی شده برای الگوریتم ها یا ذهن تولید کننده الگوریتم گفته می شود. این ذهن، تنها با تمرین و نوشتن ده ها برنامه مختلف برای شما حاصل می شود. یکی دو سال اول، شما به شدت در مورد الگوریتم ها با چالش روبرو خواهید شد. اما پس از گذشت مدتی، ذهن شما برای نوشتن الگوریتم ها شرطی می شود و حتی برای مشکلاتی که برای شما جدید است، به راحتی و به سرعت می توانید راهکار ایجاد کنید.
خیلی ها این سوال در ذهنشان شکل میگیرد که بهتر است برای خودمان کار کنیم یا در جایی استخدام شویم؟ شک نکنید که برای شروع بهتر است در یک سازمان استخدام شوید. حتی پیشنهاد می کنیم در صورتی که تازه شروع کردید به عنوان کار آموز برای یک شرکت کار کنید تا راه و چاه کار را یاد بگیرید. بودن در کنار افراد با تجربه کمک زیادی به شما می کند. در قسمت قبلی گفتم که مطالعه در پیشرفت شما تاثیر زیادی دارد، اما مطالعه به تنهایی کافی نیست و خیلی از دانسته های شما در صورتی که کاری را به صورت عملی انجام ندهید به سرعت از ذهنتان پاک خواهد شد.
باید خودتان را درگیر کار کنید تا مواردی که یاد میگیرید را بتوانید استفاده کنید. یک برنامه نویس موفق، به دلیل تجربه موفق است، نه به خاطر چیزهایی که با مطالعه فراگرفته. مطالعه و تجربه در این کار مکمل هم هستند. زمانی که در یک سازمان استخدام می شوید، تازه یاد میگیرید که چگونه از دانسته های خود در پروژه های واقعی استفاده کنید. به مرور تمام این ها تبدیل به تجربیات می شود و از شما یک برنامه نویس موفق خواهد ساخت.
به مرور زمان و با کسب تجربه می توانید برای خودتان کار کنید. در این مرحله باید از خودتان یک برند بسازید. شاید نیاز باشد در ابتدای این مرحله، چند پروژه را با قیمت های خیلی پائین تر انجام دهید تا دیگران شما را بشناسند. زمانی که قصد دارید برای خودتان کار کنید، حتماً یک وب سایت شخصی داشته باشید و تخصص های خود را در آن قرار دهید. می توانید با فعالیت در سایت هایی که در زمینه فعالیت شما وجود دارند برند سازی کنید.
مطالعه کدهای دیگران تاثیر زیادی در پیشرفت شما دارد. سعی کنید نمونه کدهای دیگران را از اینترنت دانلود کرده و مطالعه کنید. حتی می توانید با کدها بازی کنید. هر چقدر که جلوتر بروید، دانسته های شما بیشتر می شود، این دانسته از طریق مطالعه و یادگیری از دیگران است. در جمع هایی که سایر برنامه نویسان نیز حضور دارند شرکت کنید و با آن ها به بحث و گفتگو بپردازید. از تجربیات آن ها استفاده کنید. در وب سایت های تخصصی سوالات خود را مطرح کنید و جواب بگیرید. ایجاد ارتباط با سایر برنامه نویسان سرعت پیشرفت شما را چندین برابر می کند.
اگر می خواهید تبدیل به یک برنامه نویس حرفه ای شوید، دائماً برای خودتان پروژه تعریف کنید. نیازی نیست که حتماً پروژه ها از جانب دیگران به سمت شما سرازیر شوند. زمان هایی که وقت آزاد دارید را به تمرین و نوشتن برنامه های مختلف اختصاصی دهید. فکر می کنید می توانید یک بانک اطلاعاتی بنویسید، پروژه ای برای همین موضوع برای خودتان تعریف کنید و شروع به کار کنید. نیازی نیست که حتماً پروژه ای که تعریف می کنید به عنوان محصول ارائه شود، به چشم تمرین و یادگیری به آن نگاه کنید.
خود من بارها همچین پروژه هایی رو برای خودم تعریف می کنم و برای خودم کدنویسی می کنم، موضوعات مختلف هستند، برای مثال چند وقت پیش تصمیم به نوشتن یک ORM گرفتم، ORM های زیادی وجود دارند، مانند Entity Framework و NHibernate که بسیار هم قدرتمند هستند، اما پروژه رو تعریف و شروع به کد نویسی کردم. مهمترین مزیت این کار برای من یادگیری مسائلی بود که قبلاً با آن ها آشنایی نداشتم و تو چندین پروژه همین مسائل به کمک من آمدند.
ایده پردازی کنید و بر روی ایده هاتون کار کنید، جمله ای هست که میگه چرخ رو نباید دوباره اختراع کرد، اما خیلی از افرادی که می خوان وارد یک حرفه بشن، برای حرفه ای شدن تو اون حرفه شاید از ابتدا شروع به خلق کردن یک ارزش بکنند. شاید شما چیز بهتری ایجاد کردید. به خودتون اطمینان داشته باشید و شروع کنید، بعد از مدتی تغییر رو احساس خواهید کرد.
زمانی که در یک زبان به سطح متوسط رسیدید، به سراغ یادگیری تکنیک های برنامه نویسی و همچنین استفاده از ابزارهای جانبی بروید. برای مثال، یکی از مباحثی که یک برنامه نویس باید با آن آشنا باشد، الگوهای طراحی (Design Pattern) است. یادگیری تکنیک ها به شما کمک می کند که بتوانید مشکلات خود را در زمان کمتری حل کنید و البته کدهای بهتری بنویسید. همچنین از ابزارهای مختلف استفاده کنید، ابزارهای زیادی هستند که به عنوان مکمل به شما و کار شما کمک می کنند.در انتها مروری میکنم بر مواردی که در این مطلب به آن ها اشاره کردم:
امیدوارم که این مطلب مورد استفاده دوستان و عزیزانی که قصد ورود به دنیای برنامه نویسی را دارند قرار گرفته باشد
بنیانگذار توسینسو و برنامه نویس و توسعه دهنده ارشد وب
حسین احمدی ، بنیانگذار TOSINSO ، توسعه دهنده وب و برنامه نویس ، بیش از 12 سال سابقه فعالیت حرفه ای در سطح کلان ، مشاور ، مدیر پروژه و مدرس نهادهای مالی و اعتباری ، تخصص در پلتفرم دات نت و زبان سی شارپ ، طراحی و توسعه وب ، امنیت نرم افزار ، تحلیل سیستم های اطلاعاتی و داده کاوی ...
زمان پاسخ گویی روز های شنبه الی چهارشنبه ساعت 9 الی 18
فقط به موضوعات مربوط به محصولات آموزشی و فروش پاسخ داده می شود