برای بخش بزرگی از افراد یادگیری برنامه نویسی حداقل برای رفع نیازشان در سطح دانش آموزشی و دانشگاهی است و شاید نخواهند به طور کامل با این مبحث آشنا شوند. اغلب هم بعد از آموزش اولیه کم کم به آن علاقه مند شده و به دنبال راه های اصولی برای یادگیری برنامه نویسی هستند.
در این مطلب اشاره ای خواهیم کرد به اینکه گام های ابتدایی و پیش نیاز های یادگیری برنامه نویسی چیست و چگونه باید به سراغ آنها برویم؟
در ادامه با بایت لرن همراه باشید.
چرا باید برنامه نویسی را یاد بگیریم؟
مشاغل مربوط به علوم کامپیوتر، به خصوص حوزه برنامهنویسی، هر روزه با نیاز فزایندهای مورد درخواست شرکتها، صنایع و کارفرمایان هستند. البته، این موضوع چندان دور از ذهن هم نیست؛ چرا که ما هم اکنون در عصر اطلاعات زندگی میکنیم و مهمترین مولفه و ابزار این عصر، کامپیوترها هستند؛
کامپیوترهایی که اساسا بدون آنها، این عصر وجود نمیداشت و برای توسعه فناوری در این عصر نیز، مهمترین مسیر از دل دنیای کامپیوتر میگذرد.
به خصوص که بررسیها نشان میدهند با افزایش نفوذ مهندسی نرمافزار در حوزههای مختلف کسب و کار، سرعت افزایش موقعیتهای شغلی برنامهنویسی در حال پیشی گرفتن از سرعت رشد تعداد برنامهنویسان تعلیم دیده در دانشگاهها و موسسات فنی است.
علاوه بر تعدد موقعیتهای شغلی، برنامهنویسی یکی از مشاغل پردرآمد دنیا نیز میباشد. مثلا طبق آمار رسمی منتشر شده از طرف دولت آمریکا، درآمد سالانه برنامهنویسان در سال ۲۰۱۴، به طور متوسط برابر با ۷۷,۵۵۰ دلار بوده است که نسبت به سال ۲۰۱۲، به میزان ۳,۲۰۰ دلار (۴٫۳ درصد) افزایش داشته است.
که البته نسبت به افزایش درآمد سایر مشاغل در اقتصاد آمریکا، عدد بزرگی محسوب میشود. طبق همین آمار، درآمد سالیانه نخستین دهک پردرآمد برنامهنویسان، بالغ بر ۱۲۷ هزار دلار در سال بوده است.
برای بسیاری از افراد نیز، آموزش برنامهنویسی (حداقل در حد رفع نیاز) بخشی از تحصیلات دانشگاهی و تخصصی است، که اهمیت ویژهای را برای این موضوع ایجاد میکند.
مثلا، یک دانشجوی رشته مهندسی، که قصد دارد الگوریتم و شیوه محاسباتی جدیدی را برای یک مسأله تخصصی ارائه نماید، بدون یاد گرفتن مهارتهای برنامهنویسی کار بسیار سختی را در پیش خواهد داشت.
دهها موضوع دیگر را نیز میتوان به این بخش افزود و در خصوص اهمیت و ضرورت یادگیری برنامهنویسی صحبت کرد. اما اغلب خوانندگان این مطلب، معتقد به اهمیت یادگیری برنامهنویسی هستند و مشکلی که در مسیر وجود دارد، چگونگی محقق شدن این یادگیری است.
سئوالات فراوانی از طرف افراد مطرح میشوند که از میان آنها، میتوان به این موارد اشاره کرد:
❓ برای آموزش برنامهنویسی از کجا باید شروع کرد؟
❓ آیا برای برنامهنویس شدن، حتما باید تحصیلات در زمینه مهندسی کامپیوتر یا مهندسی نرمافزار داشته باشم؟
❓ آیا در این سن میتوانم برنامهنویسی یاد بگیرم؟
❓ بهترین زبان برنامهنویسی چیست؟
و …
در ادامه سعی شده است که به اکثر این پرسشها پاسخ داده شود و مسیری عملی و شدنی در پیش روی خوانندگان گرامی، که تمایل به یادگیری برنامهنویسی دارند، ترسیم شود.
پیشنهاد ما به شما!
آشنایی با مبانی برنامه نویسی ساختار و مولفه ها
پیشنیازهای یادگیری برای برنامه نویسی شدن !!!
یکی از بزرگترین دغدغههای افراد در شروع آموزش برنامهنویسی این است که «پیشنیازهای برنامهنویسی چیستند؟» و این که «آیا آنها این پیشنیازها را دارند یا نه؟». در حالت کلی، یادگرفتن مهارت برنامهنویسی، بسیار شبیه به یادگیری زبان (منظور زبانهای انسانی) است.
وجه مشترک میان زبانهای انسانی و زبانهای برنامهنویسی این است که به واسطه آنها، مطلبی از ذهن گوینده، به ذهن شنونده منتقل میشود.
بسیاری از افرادی که برنامهنویسی بلد نیستند، بر این باورند که یادگیری برنامه نویسی نیاز به استعداد یا امکانات خاصی دارد که احتمالا فقط در عده خاصی از مردم وجود دارد. این باور چندان درست نیست و در واقع، اکثر انسانها، میتوانند برنامهنویسهای خوبی باشند؛ به شرطی که بخواهند.
چرا که از نظر تئوری، اساسا هر کسی که توانایی درک زبان انسانی را دارد و میتواند حرف بزند یا بنویسد، توانایی برنامهنویسی را هم میتواند کسب کند. پس خیلی نگران نباشید؛ برنامهنویسی آن قدرها هم که به نظر میآید، سخت نیست.
یادگیری برنامه نویسی بازه سنی خاصی ندارد؛ یعنی اگر خیلی جوان هستید و یا فکر میکنید پا به سن گذاشتهاید، خودتان را ناتوان از یادگیری برنامهنویسی فرض نکنید. برنامهنویسی را میتوان تقریبا در هر سنی یاد گرفت؛ از ۷ تا ۷۰ سال. فقط کافی است به اندازه کافی علاقه و پشتکار داشته باشید؛ مطمئنا شما هم میتوانید یکی از هزاران نفری باشید که برنامهنویسی را یاد گرفتهاند.
از نظر تحصیلات هم، نیازی نیست که شما حتما دانش آموخته رشته مهندسی کامپیوتر یا نرمافزار باشید تا بتوانید برنامهنویس خوبی باشید. البته، مباحثی که در دانشگاه آموزش داده میشوند، بسیار بسیار مهم هستند؛ اما بسیاری از برنامهنویسان موفق نیز هستند که بدون داشتن مدرک، اما با صرف زمان و یادگیری مداوم فنون برنامهنویسی، توانستهاند موفق شوند.
ما در بندهای قبلی، در مورد شرایطی که چندان ضروری نبودند، و اغلب مانعی میشوند بر سر راه علاقه مندان، صحبت کردیم. اما چند مورد در ادامه آمدهاند که برای یادگیری موثر برنامهنویسی، مهم و بعضا ضروری هستند. این شرایط عبارتند از:
منطق: کامپیوترها همیشه بر پایه اصول منطقی ثابتی کار میکنند و مهمتر از این که به چه زبانی با ایشان صحبت میکنید، این است که منطقی صحبت کنید. برای منطقی بودن نیز، درک اصول منطق ریاضی، ضروری است.
البته، شاید برای شما این موضوع کمی ترسناک شده باشد؛ اما منطق ریاضی چیزی است که ما همه با آن آشنا هستیم و هر روزه آن را به کار میبریم.
ریاضیات (به طور خاص ریاضیات گسسته): درک صحیح مفاهیم ریاضی، در یادگیری برنامهنویسی بسیار مهم است. متأسفانه بسیاری از افراد این موضوع را جدی نمیگیرند و بعضا دچار مشکلاتی میشوند؛ اما ریاضیات و به ویژه ریاضی گسسته، بیش از آنچه به نظر میرسد، در یادگیری برنامهنویسی مهم هستند.
زبان انگلیسی: آگاهی به زبان انگلیسی (حداقل در حد مهارت خواندن و درک مطلب) در خصوص آموزش برنامهنویسی بسیار مهم است. دانش برنامهنویسی رشد بسیار سریعی دارد و برای به روز بودن، شما هیچ گاه بی نیاز از مطالعه نیستید.
از طرفی، اغلب منابع نیز به صورت ترجمه شده در دسترس نیستند و حتی در صورت ترجمه نیز، شاید اصالت مطلب مخدوش شود و چندان قابل استفاده نباشد. لذا، تسلط به زبان انگلیسی، یک مهارت بسیار کلیدی برای برنامهنویس شدن است.
جالب است که در موضوع آموزش برنامهنویسی، سه موضوع به هم گره خوردهاند یعنی آموزش (۱) ریاضیات، (۲) زبان خارجی و (۳) خود برنامهنویسی.
از کجا باید شروع کنیم؟
برای یادگیری برنامه نویسی ، باید قبل از هر چیزی، یک زبان برنامهنویسی انتخاب کنید و آموزش کار با آن را، شروع کنید. اما پیش از آن، لازم است مقدماتی را از منطق، ساختار زبانهای برنامه نویسی، فلوچارت و الگوریتم یاد بگیرید.
این موارد، مستقل از هر زبان برنامهنویسی هستند و اغلب مشکلی که وجود دارد، این است که افراد بدون دانش کافی در مورد این مباحث، اقدام به یادگیری یک زبان برنامهنویسی میکنند و اتفاقا همه اجزای زبان را هم به خوبی میآموزند.
اما زمانی که قرار است مستقلا کاری را انجام دهند، به مشکل بر میخورند. ریشه مشکل دقیقا در همین جاست.
یادگیری برنامه نویسی و ساختار آن، با یادگرفتن مهارت برنامهنویسی تفاوت دارد. یادگرفتن زبان برنامهنویسی، مثل یاد گرفتن حروف الفبا و مهارت املا (نوشتن) است. اما میدانیم که هر نوشتنی، الزاما به معنای انشا نیست.
تفاوت میان تسلط بر یک زبان برنامهنویسی با تسلط بر مهارت برنامهنویسی، مانند تفاوت دو درس املا و انشاست. برای انشا نوشتن، علاوه بر مهارت املا، نیازمند درک صحیح از ساختار جمله و اجزای آن هستیم.
ضمنا، باید بدانیم که مفاهیم را چطور در قالب کلمات و جملات بیان کنیم و خواننده را از نقطهای به نقطه دیگر منتقل نماییم. این دقیقا همان مهارتی است که برای برنامهنویسی لازم داریم. در واقع، برنامهنویسی یک نوع انشا نویسی برای کامپیوترهاست.
کدام زبان برنامهنویسی بهتر است؟
قبل از همه، باید متذکر شویم که اساسا هیچ زبان برنامهنویسی بهتر از دیگری نیست. اغلب زبانهای برنامهنویسی، برای مقصد خاصی طراحی شدهاند و آن کار را، از برخی ابعاد، بهتر انجام میدهند. اما هیچ زبان برنامهنویسی وجود ندارد که به صورت مطلق، بهتر از سایرین باشد.
شاید بهتر باشد باشد سئوال فوق، به این صورت پرسیده شود: «بهترین زبان یادگیری برنامه نویسی برای شروع چیست؟» و یا این که «بهترین زبان برنامهنویسی برای فلان منظور خاص کدام است؟».
در واقع، اگر میخواهید یک برنامهنویس حرفهای باشید، احتمالا مجبور خواهید شد که چند زبان برنامهنویسی را فرا بگیرید.
اما برای شروع، یکی از این زبانهای برنامهنویسی را توصیه میکنیم:
اگر کم سن و سال هستید، احتمالا شروع یادگیری برنامه نویسی با زبان اسکرچ (Scratch)، که محصولی از دانشگاه MIT است، برای شما جذاب باشد. در این زبان برنامهنویسی، برنامهها به جای نوشته شدن، ترسیم میشوند و به همین دلیل، درک مفاهیم آن برای کودکان، بسیار آسان است.
اگر کم سن و سال و یا مبتدی هستید، و میخواهید برنامهنویسی را با نوشتن شروع کنید (به جای ترسیم)، شاید زبان برنامهنویسی اسمال بیسیک (Small Basic)، که محصول مایکروسافت است، گزینه خوبی باشد.
زبان برنامهنویسی سی (C)، یکی از قدیمیترین و با سابقهترین زبانهای برنامهنویسی است که تعداد قابل توجهی از زبانهای برنامهنویسی مدرن نیز، با اقتباس از آن ایجاد و توسعه داده شدهاند.
به عنوان مثال، زبانهای برنامهنویسی سی پلاس پلاس، سی شارپ، جاوا، جاوا اسکریپت و PHP، که همگی از زبانهای برنامهنویسی بسیار پرکاربرد هستند،اشتراکات فراوانی با زبان سی دارند. از این رو، یادگیری زبان C، میتواند نقطه شروع بسیار خوبی برای ورود به دنیای برنامهنویسی باشد.(البته از سی پلاس پلاس هم میشه شروع کرد)
به همین دلیل است که در دانشگاهها و موسسات آموزشی، این زبان یکی از انتخابهای رایج برای آموزش درس برنامهنویسی و برنامهسازی کامپیوتری است و نقطه شروع بسیاری از دانشجویان برای ورود به دنیای برنامهنویسی بوده است.
زبان برنامهنویسی متلب (MATLAB)، که اغلب در میان دانشجویان رشتههای فنی و مهندسی شناخته شده است، یکی از زبانهای بسیار آسان برای یادگیری است و نقطه شروع خوبی برای آموزش برنامهنویسی محسوب میشود.
به خصوص که، امکانات منحصر به فردی در نرمافزار متلب وجود دارند که آن را به یک آزمایشگاه فنی تمام عیار برای همه رشتههای فنی، مهندسی و علمی تبدیل میکند.
البته، هیچ محدودیتی برای استفاده از زبان متلب وجود ندارد و شما در هر شرایطی که باشید، میتوانید از این زبان برنامهنویسی استفاده نمایید.
زبان برنامه نویسی پایتون یکی از زبان های فوق العاده قوی با یادگیری آسان به دلیل شبیه بودن به زبان انگلیسی . شما با این زبان میتوانید برای هر پلتفرمی برنامه نویسی کنید(البته خیلی از زبان ها این مدلی هستن)
هر چند، شاید زبانهای برنامهنویسی دیگری هم به عنوان نقطه شروع به شما توصیه شوند؛ اما این موارد، طبق تجربه دوستان و صرفا به عنوان توصیه، مطرح شدهاند.
چطور باید ادامه بدیم؟
برای ادامه، شما میتوانید یادگیری هر زبان برنامهنویسی دیگری را، که متناسب با نیازها و علایق شماست، در برنامه خود قرار دهید. هر چند، مهارت برنامهنویسی، اساسا ربطی به خود زبان برنامهنویسی ندارد و شما بعد از یادگیری یک یا دو زبان برنامهنویسی، خواهید دید که یادگیری زبانهای برنامهنویسی جدید، چندان هم سخت نیست و حتی در عرض چند روز یا ساعت، میتوانید یک زبان جدید به زبانهای برنامهنویسی که بلد هستید، اضافه نمایید.
اما مهمتر از یادگیری چندین زبان، یادگیری تکنیکها و فنون برنامهنویسی است. همان طور که یک نویسنده خوب، احتمالا بخش زیادی از عمر خودش را صرف خواندن آثار سایر نویسندگان میکند، شما هم سعی کنید که همیشه از منابع مختلف استفاده کنید و برنامههای برنامهنویسان حرفهای را مطالعه کنید. بسیاری از فنون هستند که در هیچ کلاسی به خوبی مطرح نمیشوند؛ اما در دل برنامههای پیادهسازی شده توسط برنامهنویسان حرفهای قابل درک هستند.
همیشه سعی کنید به اندازه کافی تمرین حل کنید؛ مسائل روزمره را به مسائل برنامهنویسی تبدیل کنید و با استفاده از برنامهنویسی، آنها را حل نمایید. این همان مهارتی است که فقط خودتان مسئول تقویتش هستید و متأسفانه (یا شاید خوشبختانه) هیچ کسی غیر از خودتان، نمیتواند در توسعه این مهارت، به شما کمک کنید.
اما قبل از هر گونه تلاش، مطمئن باشید که به اندازه کافی آموزش دیدهاید؛ چه به صورت حضوری، چه در قالب ویدئوهای آموزشی، و چه با مطالعه کتب آموزشی برنامهنویسی.
اما حتما به یاد داشته باشید که دریافت این مطالب، از هر کانالی که باشد، صرفا شرط لازم هستند و نه کافی؛ شما هیچ گاه بینیاز از تمرین و تکرار نیستید. من معمولا به دوستانی که از من مشاوره برای یادگیری برنامه نویسی میخواهند این طور میگویم که: «برای برنامهنویس شدن، یک راه بیشتر ندارید؛ و آن این است که برنامه بنویسید».
خوشبختانه امروزه منابع مطالعاتی فراوانی نیز در سطح اینترنت در دسترس هستند و شما به راحتی میتوانید پاسخ سئوالات خود را، از این منابع پیدا کنید.
البته، برای استفاده مناسب از این منابع، قطعا باید به زبان انگلیسی مسلط باشید (حداقل در حد رفع نیاز). از طرفی، مثلا اگر در برنامه با خطایی مواجه میشوید، پیام خطا را بخوانید. این پیامها بسیار بسیار مهم هستند و درسهایی را در خود دارند، که در هیچ کلاسی شاید مجال مطرح شدن پیدا نکنند. در بسیاری از موارد نیز، پاسخ سئوال شما، دقیقا در همان پیام خطاست؛ اما اغلب افراد متوجه این موضوع نیستند.
هیچ گاه از یاد گرفتن خسته نشوید. به روز بمانید. اگر چند سال است با یک زبان برنامهنویسی کار میکنید و هنوز، یک برنامه را، مانند سال قبلتان مینویسید، احتمالا یک مشکلی در مسیر است. اگر به اندازه کافی مطالعه و تمرین دارید، اصولا باید سبک برنامهنویسیتان بهبود یابد و اگر این طور نیست، حتما به فکر تغییر در رویه خودتان باشید.
چند توصیه مهم به شما
✅ علمی باشید. بسیاری از برنامهنویسان شاید دانش خود را به صورت تجربی و یا شاید شفاهی دریافت میکنند. اما اغلب دیده میشود که بیانهای نادقیق و غیر علمی، باعث ایجاد باورهای نادرستی در برنامهنویسان میشود.
از این رو، اگر میخواهید یک برنامهنویس قوی و اصولی باشید، در اولین فرصتی که دارید، از طریق منابع آکادمیک و کتب معتبر دانش خود را اعتبارسنجی نمایید. دلیل علمی و دقیق هر نکته را جویا شوید و همواره این روحیه را حفظ کنید.
✅ منظم و خوش سلیقه باشید. اغلب برنامهنویسان زندگی چندان منظمی ندارند. میز کارشان به هم ریخته است و ساعات کارشان، نظم خاصی ندارد.
اما در مقابل، برنامهنویسان حرفهای، در برنامههایی که مینویسند، با نهایت دقت عمل میکنند. متغیرها، توابع و فایلها را به درستی نامگذاری میکنند. فواصل خالی را در متن برنامههایشان، به خوبی رعایت میکنند. اصولی برنامهنویسی میکنند. اما متأسفانه در کشورمان، برنامهنویسان آماتور و بعضا حرفهای، چندان پایبند به این اصول نیستند.
شاید عدهای بر این عقیده باشند که رعایت این موارد چندان ضروری نیست. اما به زعم بنده، این طور نیست. به خصوص، زمانی که قرار است دو یا چند برنامهنویس به صورت تیمی با هم کار کنند، ارزش و اهمیت رعایت این موارد، بیشتر مشخص می شود. این یک مورد را، حتما باید از برنامهنویسان خارجی یاد بگیریم.
✅ برای کدهای خود توضیح بنویسید. این موارد را، اصولا باید در بند قبل مینوشتیم. اما به دلیل اهمیت آن را جدا کرده و در بندی مستقل بیان کردیم. نوشتن کامنت یا توضیح برای کدها، یکی از اصول حرفهای و مهم است.
برنامهای که کامنت مناسب داشته باشد، به راحتی توسط شما و همکارانتان قابل خواندن است؛ اشکالاتش به سرعت یافت میشود؛ و البته ظاهری حرفهای تر هم دارد.
✅ تمرین کنید؛ مسأله حل کنید. مجددا و به دلیل اهمیت بسیاری که دارد، تاکید میکنیم که برنامهنویسی یک مهارت صرفا تئوری نیست. تقویت مهارتهای برنامهنویسی نیز، صرفا با تکیه بر منابع آموزشی، قابل حصول نیست.
جمله ای از بزرگان :
بهترین استاد برنامهنویسی هم، نمیتواند شما را برنامهنویس کند.
او میتواند زبان را و برخی اصول را به شما یاد دهد؛ اما ادامه مسیر را، شما باید به تنهایی بروید. یک استاد خوب، نهایتا میتواند در را به شما نشان دهد؛ این که در را باز کنید و قدم بردارید، کاملا وابسته به شماست.