کارتمن به عنوان مربی برنامه نویسی بارها با این سؤالات مواجه شدهام: چه طور کد نویسی را شروع کنم ؟َ “کدام زبان برنامهنویسی را باید یاد بگیرم؟” “کدام زبان برنامهنویسی بازار کار بهتری دارد؟” “کدام زبان برنامهنویسی، کاربرد بیشتری دارد؟”
برترین زبانهای برنامهنویسی اگر به دنبال رنکینگ برترین زبانهای برنامهنویسی هستید، میتوانید در این آدرس آن را ببینید. IEEE Spectrum top programming languages . این لیست به شما کمک میکند که ببینید یک زبان برنامهنویسی خاص، در دنیای امروز، چقدر کاربرد دارد.
با این حال، اگر در حوزه برنامهنویسی تازهکار هستید، پیشنهاد نمیکنم زبان برنامه نویسی خود را صرفاً با اتکا بر این لیست، انتخاب کنید.
چطور کدنویسی را شروع کنم؟ چه طور زبان برنامهنویسی خود را انتخاب کنم ؟
رشته علوم کامپیوتر، حوزهای در حال پیشرفت است و این یعنی هر مبحث درسی، بر پایه موضوعات مختلف طراحی شده است. اگر قبلاً سعی کردهاید برنامهنویسی یا هر موضوع دیگری در حوزه STEM (مخفف Science، Technology، Engineering و Mathematics) را یاد بگیرید ولی با وجود تلاش بسیار، شکست خوردهاید، باید بدانید که مشکل از طرف شما نیست.
اساتید خوب در تمام حوزههای در حال پیشرفت، برنامه آموزشی خود را طوری طراحی میکنند که تمام دانشجویان بتوانند پیشنیازها را به خوبی بیاموزند و از آموزش خود راضی باشند. هدفمندیها باید در این زمینه کاملاً مشخص باشند. یک مدرس خوب، این اهداف را به خوبی میشناسد و در صورت عدم موفقیت دانشجو این مباحث را دوباره آموزش میدهد.
جایگاه هر یک از عناوین موجود در برنامه درسی، باید با توجه به عناوین دیگر مشخص شود. زمانی که با یکی از موضوعات در حال پیشرفت (مثل برنامهنویسی) سر و کار داریم، هنگام طراحی برنامه درسی دوره یا مسیر آموزشی دوره باید دقیق باشیم. بنابراین، در شروع باید زبانی انتخاب کنید که مسیر آموزشی مربوطه هیچ پیشنیازی نداشته باشد. نباید زبان برنامه نویسی مورد نظر را بر اساس رنکینگ آن انتخاب کنید. مهم است که نکتهای را که در بالا به آن اشاره شد، رعایت کنید: تمام علوم کامپیوتری، در حال پیشرفت هستند.
اینکه فکر کنید هوش کافی برای یادگیری برنامه نویسی ندارید، فکر اشتباهی است که میتوانید در راه تبدیل شدن به یک برنامه نویس داشته باشید.
یادگیری کدنویسی و این فکر که چه طور کد نویسی را شروع کنم، هیچ ربطی به هوش شما ندارد.
چه طور کد نویسی را شروع کنم؟ بله، یادگیری کد نویسی کار سختی است، ولی این ربطی به هوش شما ندارد و بستگی به میزان تمرین و مباحثی که یاد میگیرید دارد. اولین قانون ورود به حوزه یادگیری برنامه نویسی، پذیرش این واقعیت است که چنین سناریویی پیش روی شماست: قرار است موضوع جدیدی که هیچ درکی از آن ندارید، به شما آموزش داده شود. این سناریو به دفعات تکرار میشود. این که چه طور با این شرایط کنار میآیید، دقیقاً تنها عاملی است که موفقیت شما را تعیین میکند.
اگر مطلب فعلی را به خوبی یاد نگرفتهاید همانجایی که هستید بمانید و به سراغ مطلب بعد نروید. برنامه نویسی یک حوزه در حال پیشرفت است و برای درک عمیق مباحث، باید آنها را مرحله به مرحله یاد بگیرید. بر هم زدن نظم مراحل مانند این است که بخواهید در خانهای که هیچ راهپله یا نردبانی ندارد به پشتبام بروید.
من همیشه خودم را در چنین شرایطی میبینم. اغلب مجبور میشوم یک ویدیوی آموزشی را بارها و بارها از ابتدا تماشا کنم تا مفهوم آن را درک کنم. اگه شما نیز در چنین شرایطی قرار گرفتید، اعتماد به نفس خود را از دست ندهید و اگر فیلم یوتیوب یا جزوه (یا کتابی) که در حال خواندن آن هستید، موضوع مربوطه را به خوبی توضیح نمیدهد، باید منبع آموزشی دیگری پیدا کنید.
در یوتیوب تقریباً آموزشهای مربوط به همه موضوعات موردنظرتان به طور رایگان در اختیارتان قرار دارد. نحوه جستجوی مطالب موردنظر را یاد بگیرید. اگر در یوتیوب به دنبال مواد آموزشی موردنظرتان هستید، ابتدا به آمارها دقت کنید. نگاهی به رتبهبندیها و تعداد بازدیدها داشته باشید. اگر هنوز مطمئن نیستید که یک ویدیوی خاص، ارزش وقتتان را دارد یا خیر، میتوانید به کامنتها و نظرات کاربران مراجعه کنید. در حین آموزش ممکن است بسیاری از عناوین برای شما مفهومی نداشته باشد. مهم این است که خود را از افکار منفی دور نگه دارید و تمرکز خود را روی مفهومی که از هر مطلب میفهمید بگذارید.
با پیشرفت شما در مسیر آموزش، باید به خودتان بازخورد بدهید. بعد از تکمیل هر عنوان، از خود بپرسید:
- آیا این عنوان برای من قابل فهم بود؟
- آیا اصطلاحات جدیدی در این عنوان وجود داشت؟
- اگر این طور بود، آیا تعریف رسمی برای آن اصطلاح وجود دارد؟
- آیا مهارت جدیدی در آن عنوان درسی آموختم؟ آیا نحوه استفاده عملی از آن مهارت را درک کردهام؟
- آیا با حل مسائل تمرینی میتوانم درک خود را ثابت کنم؟
- آیا فردا هم مطالبی که یاد گرفتهام را به یاد خواهم داشت؟ و حتی روز بعد؟ اگر نه، چه طور میتوانم آن را به حافظهام بسپارم؟
- چه طور کد نویسی را شروع کنم ؟
و آخرین توصیه این که: هرگز نیروی حفظ کردن را دست کم نگیرید.
حفظ کردن، یکی از روشهای یادگیری است که کمترین استفاده از آن میشود. بله، هدف نهایی، درک یک عنوان درسی است. اما درک کامل، زمان میبرد. اگر در فهمیدن یک عنوان با مشکل مواجه شدید، آن را به اجزای خرد تبدیل کنید و عبارات مهم را حفظ کنید. اگر نحوه عملکرد چیزی را درک نمیکنید، هدف بعدی شما باید حفظ کردن باشد.
استفاده از تکنیک کارت برای حفظ کردن
1- مبانی علوم کامپیوتری اولین گام، یادگیری مبانی علوم کامپیوتری است.
به این منظور، میتوانید در دورههای آموزش ICDL شرکت کنید. این دورهها مخصوص کسانی است که هیچ پیشزمینهای در حوزه کار با کامپیوتر ندارند و اصطلاحات و مفاهیم بنیادین کار با کامپیوتر را شرح میدهد.
2- ریاضیات منطقی خیر، برای این که به یک برنامهنویس بدل شوید،
به ریاضیات قوی نیاز ندارید. مهارتهای ریاضی میتواند مفید باشد ولی شرط لازم نیست. اگر در مورد تواناییهای خود در ریاضیات، اطمینان ندارید، پیشنهاد میکنم ریاضیات منطقی را بیاموزید. اصول ریاضیات منطقی، بلوکهای سازنده برنامهنویسی هستند. با کمک ویدیوها در یوتیوب میتوانید با مفاهیم اصلی ریاضیات منطقی آشنا شوید.
Basic Concepts in Propositional Logic 3- برنامهنویسی جاوا بعد از این که مبانی علوم کامپیوتری را فراگرفتید.
حالا آماده یادگیری یک زبان برنامهنویسی هستید. من بسیار تلاش کردم تا مسیری برای آموزش برنامهنویسی طراحی کنم که برای همگان، صرفنظر از زمینه تحصیلی آنها مناسب باشد و جاوا را برای این مسیر آموزشی انتخاب کردم، چرا که جاوا زبانی است که من بیشترین تجربه کاری را در آن دارم.
جاوا یکی از پرکاربردترین زبانهای برنامهنویسی است و در طبقهبندی زبانهای برنامهنویسی شیء گرا (Object Oriented) قرار میگیرد (بعداً معنی این جمله را خواهید دانست) و میتوان برای ساخت اپلیکیشنهای دسکتاپ، وب و موبایل از آن استفاده کرد. اگر کتاب را برای یادگیری ترجیح میدهید، من کتاب Head First Java نوشته Bert Bates و Kathy Sierra را پیشنهاد میکنم.
اگر آموزش ویدیویی را ترجیح میدهید، من ویدیوهای آموزشی شماره 1 تا 19 ، 31 تا 33 ، 88 و 93 درک باناس (Derek Banas) در یوتیوب را پیشنهاد میکنم. اولین ویدیو از سری معرفی شده، مراحل بارگیری (Download) یک برنامه کامپیورتی به نام Eclipse را به شما آموزش میدهد.
Eclipse یک محیط توسعه یکپارچه (Integrated Development Environment یا IDE) است. میتوانید IDE را معادل خیالی یک برنامه واژهپرداز که مخصوص برنامهنویسها ساخته شده درنظر بگیرید. این برنامه چیزی نیست جز یک برنامه واژهپرداز که امکان برنامهنویسی در آن وجود دارد و ابزارهایی برای اجرای برنامه نوشته شده در آن وجود دارد.
میتوانید ویدیوی درک باناناس برای دانلود Eclipse را دریافت کنید.
Install Eclipse for Java. 4- الگوریتمها و ساختارهای داده یک الگوریتم،
الگوریتم مجموعهای از دستورالعملها (مراحل) اجرایی برای انجام یک کار خاص است به گونهای که هر مرحله باید به طور واضح در آن تعریف شده باشد، قابلیت اجرا داشته باشد و (انجام آن تا ابد طول نکشد). ساختار داده نیز، روشی است برای سازماندهی به دادهها در حافظه. الگوریتمها و ساختارهای داده، دو عنوان چالشبرانگیز برنامهنویسی به حساب میآیند. البته برای کسب شایستگیهای پایهای برنامهنویسی، نیازی به دانستن آنها نخواهید داشت.
ولی اگر هدفتان این است که به عنوان یک مهندس برنامهنویس یا یک عنصر قابل اطمینان در شرکتهای فناورانه مشغول به کار شوید، در حین مصاحبه شغلی از شما انتظار میرود درک خود را از مفاهیم فوق، به اثبات برسانید. به عنوان یک تجربه شخصی، یک مقاله، باعث شد مهارتهای من در زمینه الگوریتم، از مبتدی تا پیشرفته ارتقاء پیدا کند.
5- توسعه اندروید به نظر من توسعه اندروید،
یکی از کاربردهای مفرح برنامهنویسی جاوا است. برنامههای اندروید، عمدتاً توسط جاوا برنامهنویسی شدهاند و به همین دلیل، وقتی جاوا را یاد بگیرید، در واقع آماده یادگیری اندروید شدهاید.