ورود به دنیای برنامهنویسی درست مانند بستن چمدان خود برای رفتن به سفری است که پایان آن مشخص نیست. ازآنجاکه در این سفر مقصدی ندارید، باید در طول مسیر با مشکلات مختلف سروکله بزنید و مداوم به فکر ارتقای مهارتهای خود باشید.
ازجمله سؤالهایی که قبل از شروع برنامهنویسی باید از خود بپرسید، این است که نگرش دقیق شما به این شغل و آیندهی آن چیست؟ آیا از سر تعریفها و تمجیدهای دیگران به فکر یادگیری برنامهنویسی افتادهاید یا حقوق وسوسهکنندهای را دیدهاید که شرکتها برای برنامهنویسان در نظر گرفتهاند؟
آموختن علم برنامهنویسی در پایهترین حالت خود نیازمند علاقه و فداکاری و صبر بسیار زیاد است. این شغل که درصد کمی از افراد جهان مشغول انجام آن هستند، باعث بهوجودآمدن برترین تکنولوژیها و ابزارهایی شده که امروزه زندگیکردن بدون آنها برای ما بسیار سخت است. هرآنچه در اطراف خود مشاهده میکنید، کدهای ساختاری زیادی را در دل خود جای داده است؛ درست مانند همین لحظه که در حال خواندن مقالهای در زومیت هستید.
سایت زومیت و بعد از آن مرورگری که با آن سایت را باز کردید و درنهایت سیستمعاملی که مرورگر روی آن نصب است، همهوهمه هزاران خط کد دارند که از ذهنهای خلاق و با دیدگاههای مختلف بیرون آمده است. قصد ما ترساندن شما از این مسیر نیست؛ بلکه میخواهیم ابتدا سختیهای مسیر را بهتر بشناسید و با ذهنی باز در آن قدم بگذارید.
برنامه نویسی را از کجا شروع کنیم؟
بسیاری از علاقهمندان به دنیای برنامهنویسی با ندانستن نکاتی که درادامه خواهیم گفت، از شروع برنامهنویسی منصرف شدند یا حداقل با فکرهای اشتباهی که دربارهی بعضی موضوعات میکنند، آرزوی برنامهنویسشدن را برای همیشه بهدست فراموشی سپردند. پس دانستن نکات اصولی و پایهای دربارهی علم برنامهنویسی مهمترین عامل برای برنامهنویسشدن است.
۱. حتماً نیاز نیست که شاگرد اول کلاس ریاضی باشید
احتمالاً بیشترین فکری که در ذهن عموم دربارهی برنامهنویسی وجود دارد، مسائل ریاضی سخت و نفسگیر است. در همین ابتدا حجت را بر شما تمام میکنیم که چنین چیزی بههیچوجه درست نیست؛ مگر در برخی زمینهها! بسیاری از زبانهای برنامهنویسی مانند پایتون که جزو پردرآمدترین زبانهای برنامهنویسی در ایران و جهان است، برای یادگیری مفاهیم مقدماتی و پیشرفته خود، به فرمولهای ریاضی پیشرفته نیازی ندارد؛ ازاینرو، در بسیاری از مدارس ابتدایی جهان از این زبان بهعنوان زبان پایه برای شروع برنامهنویسی استفاده میکنند.
حتی زبانهای برنامهنویسی حوزه فرانتاند نیز که جزو شغلهای پرتقاضا در ایران محسوب میشوند، به علم ریاضی خاصی نیاز ندارند و فقط دانش کمی درزمینهی زبان انگلیسی میتواند تا مدتی کار شما را راه بیندازد. تنها برخی زمینههای خاص در برنامهنویسی به ریاضیات پیشرفته نیاز دارند که که مهمترین آنها هوش مصنوعی و یادگیری ماشین و برخی حوزههای برنامهنویسی بکاند است. اگر میخواهید دربارهی حوزههای گفتهشده مانند برنامهنویسی فرانتاند و بکاند بیشتر بدانید، مقالات تخصصی زومیت دربارهی این حوزهها را میتوانید مطالعه کنید.
بنابراین، اگر هیچوقت به ریاضی و مسائل پیچیده انتگرال و مشتق علاقه نداشتهاید؛ اما درزمینه کار با کامپیوتر خود را مصمم میدانید، بهراحتی فرصت برنامهنویسشدن را خواهید داشت. ناگفته نماند که جدا از مسائل ریاضی، هر زبان مشکلات خاص خود را دارد که درادامه، به آنها نیز اشاره خواهیم کرد.
۲. بسیار مهم است که هدف و انگیزه مشخصی داشته باشید
چرا می خواهید برنامهنویسی یاد بگیرید؟ با کدنویسی میخواهید به چه چیزی برسید؟ اگر پاسخی که در ذهنتان شکل گرفته، تنها مربوط به درآمد این حوزه است، باید به شما بگوییم که میزان درآمد فقط یکی از بخشهای مهم علم برنامهنویسی است و بخشهای بسیار بزرگتری نیز دارد.
اینکه تنها به درآمد فکر کنید، مطمئناً در مدت کوتاهی پس از شروع یادگیری برنامهنویسی خسته خواهید شد؛ چون رسیدن به درآمد در این شغل کمی زمانبر است. بااینحال، اگر برای خود هدف و انگیزه مشخص کنید، داستان کمی متفاوت خواهد بود. برای مثال، با خلق ایدههای کوچک و بزرگ و رساندن آنها به مرحلهی اجرا هم میتوانید تجربهی خود را افزایش دهید و هم رزومهتان را قویتر کنید.
۳. ابتدا روی یادگیری اصول اولیه تمرکز کنید
برنامهنویسی رشتهی وسیع با مفاهیم و زبانها و ابزارهای مختلف است. شما نه میتوانید همهچیز را یکباره یاد بگیرید و نه به این کار نیازی دارید. سعی کنید موارد و ساختمان تشکیلدهندهی هر زبانی که انتخاب میکنید، بهخوبی یاد بگیرید و کمکم با تمرین زیاد بهسمت مفاهیم پیشرفتهتر بروید.
بسیاری از کارآموزان برنامهنویسی با درک برخی مفاهیم اولیه مانند بهموفقیترساندن چند پروژهی کوچک، فکر میکنند به دانش بسیار زیادی در زبان مدنظرشان رسیدهاند. اگر شما در این نقطه هستید، باید بدانید که این نوع طرزتفکر باعث شکستخوردن زودهنگام شما در آینده میشود. هرگز یادگیری را رها نکنید و اجازه ندهید که غرورتان برایتان دردسرساز شود.
۴. زبان برنامهنویسی متناسب با هدف خود را انتخاب کنید
پس از اینکه هدف خود را مشخص کردید، از میان صدها زبان برنامهنویسی که در ۵۰ تا ۷۰ سال گذشته اختراع شدهاند، میتوانید یکی را انتخاب کنید؛ البته پیشنهاد ما انتخاب زبانهای بهروز است. سعی نکنید که وقت خود را با یادگیری زبانهای بسیار پیچیده و قدیمی که دیگر کاربردی ندارند، هدر دهید.
هر زبانی که انتخاب میکنید، مزایا و معایب و کاربردهای خاص خود را دارد؛ اما باید بدانید که نیازی نیست چندین زبان را همزمان یاد بگیرید و اصلاً نباید این کار را بکنید. در ابتدا تمرکزتان را روی یادگیری زبانی بگذارید که با هدف و علایق شما بیشترین سازگاری را دارد.
درادامه، هنگامیکه تا حد کافی زبان مدنظر را فراگرفتید، میتوانید به درک مناسبی از نحوهی کارکردن کدها برسید. بعد از گذراندن این مراحل، میتوانید زبان یا زبانهای دیگر همسو با حوزهی انتخابیتان را در مدت کوتاهتری درمقایسهبا افراد تازهکار یاد بگیرید.
۵. تاحدممکن تمرین کنید تا بهروز بمانید
دو معیار بسیار مهم در هر مرحله از یادگیری برنامهنویسی، «تمرین زیاد» و «بهروزبودن» است. اگر تنها آموزشهای موردنیاز اعم از ویدئوهای آموزشی را تماشا میکنید و در پایان فیلم فکر میکنید که برنامهنویس هستید، باید بدانید که در پروژههای عملی هرچند کوچک با مشکلات و خطاهایی مواجه میشوید که در ویدئوهای آموزشی اشارهای به آنها نشده است و تنها با جستوجوکردن و آزمون و خطا میتوانید باگ بهوجودآمده را پشتسر بگذارید.
بهروزبودن نیز دقیقاً بهاندازهی تمرین زیاد در موفقیت شما مؤثر است. روزبهروز پلاگینها و کتابخانههای زیادی برای زبانهای مختلف، ازجمله زبانهای پرتقاضا عرضه میشود. یادگیری و استفاده از آنها در پروژههای واقعی، هم به تجربهی شما میافزاید و هم باعث پیشرفت سریعتر کارهایتان میشود.
۶. صبور باشید
در بخش قبلی، اشاره کوچکی به چگونگی رفع باگها کردیم. باگ در زبان انگلیسی به نوعی حشره اشاره میکند. در گذشته که کامپیوترها به سیستمهای مکانیکی مجهز بودند، با رفتن حشرات لای چرخدندهها دچار اختلال در عملکرد میشدند. این کلمه خاصیت خود را حفظ کرده است و اکنون هنگام کارنکردن کد نوشتهشده یا بهوجودآمدن مشکل، میگوییم که برنامه باگ دارد.
وقتی با باگی مواجه میشویم، در اولین مرحله باید صبور باشیم و خود را برای حل مشکل پیشآمده آماده کنیم. گاهی اوقات احتمال دارد که رفع باگ تا چند روز یا چند هفته طول بکشد و دلیل آن نیز ممکن است به سادگی اشتباه تایپی در یک خط یا به پیچیدگی ساختار نادرست یک تابع باشد.
در مقالهی بهترین ابزارها برای شروع برنامه نویسی، با معرفی برخی برنامهها که روند کدزنی را آسانتر و لذتبخشتر میکنند، سعی کردیم از بروز باگهای ساده جلوگیری کنیم؛ بنابراین، بد نیست که قبل از شروع برنامهنویسی درکنار این نکات ضروری، ابزارهای لازم را نیز بهتر بشناسید.
۷. از منابع و ابزارهای آنلاین غافل نشوید
در دنیای گستردهی برنامهنویسی، خیلی بعید است که در ابتدای یادگیری، نتوانید مشکلاتتان را با استفاده از جستوجو یا ابزارهای توسعهیافته برای رفع مشکلات متعدد برطرف کنید. بسیاری از افراد در سراسر دنیا تجربهها و راهحلهای خود را در بسترهایی مانند Stack Overflow، یوتیوب، W3schools و بسیاری از جوامع آنلاین دیگر بهاشتراک گذاشتهاند؛ پس بهانهجویی را کنار بگذارید و از این ابزارهای آنلاین بهخوبی استفاده کنید.
همچنین، برای شمایی که قصد دارید بهتازگی برنامهنویسی را شروع کنید و تا حدودی در زبان انگلیسی نیز مهارت دارید، برنامههای مناسب برنامهنویسی در گوشیهای موبایل انتخاب مطلوبی هستند. این برنامهها با محیط کاربری زیبا و دوستداشتنی، بخشهای مقدماتی هر زبان را بهخوبی آموزش میدهند.
برنامهنویسی در ایران
بازار برنامهنویسی در ایران درست مانند تمام کشورهای جهان پررونق است. این بازار بهپای کشورهای بزرگ صنعتی نمیرسد؛ اما بازهم شغلی پردرآمد محسوب میشود. امروزه که حتی سوپرمارکتهای هر محله نیز برای خود فروشگاه اینترنتی راه انداختهاند و به برنامهنویس و طراح سایت و سئوکار نیاز دارند، یادگیری مهارتهای مربوط به برنامهنویسی آینده شغلی درخشانی را برای شما تضمین میکند.
باوجوداین، آن روی سکهی این ماجرا قسمت تاریک شغل برنامهنویسی در ایران است. متأسفانه برای تجربههای اولیه در این شغل و حرفهایشدن در آن، به کارآموزی در یکی از شرکتها یا استارتاپهای روبهرشد نیاز دارید؛ موضوعی که در تمام استانهای ایران یافت نمیشود و فقط به شهرهای بزرگ و صنعتی مانند تهران، کرج، اصفهان، ساری یا مشهد محدود میشود.
منظور ما این نیست که در شهرها یا شهرستانهای دیگر ایران مکانی برای استخدامشدن برنامهنویسها وجود ندارد؛ بلکه شرکتهای زیادی وجود دارند که به برنامهنویس ماهر و ارشد نیاز داشته باشند و کمتر بهدنبال جذب کارآموزها هستند.
پس بسیاری از افراد برای دستیافتن به شغل رؤیایی خود، یعنی برنامهنویسی، به شهرهای بزرگ و صنعتی مهاجرت میکنند که پیشتر به آنها اشاره کردیم. این مهاجرت روزافزون باعث شده است تا موقعیتهای شغلی کمتر از کارآموزانی باشد که برای آن موقعیتها رزومه ارسال میکنند؛ بنابراین، رقابت بهشدت افزایش مییابد و کار برای کارجویان کمی سخت میشود.
ازآنجاکه هیچچیز غیرممکن نیست و با تلاش و پشتکار بسیار میتوانید به هرآنچه میخواهید برسید، تنها کافی است با برنامهریزی و فداکاری چند سال سخت اول را پشتسر بگذارید و رزومهی پرباری برای خود مهیا کنید. بعد از اینکه در حوزهی انتخابی خود به مهارت نسبتاً کافی رسیدید، میتوانید به شهرستان خود برگردید و بهصورت دورکاری برای شرکتهای مختلف کار کنید.
علاوهبراین، با شرکتکردن در پروژههای آزاد میتوانید بهصورت فریلنسری برای شرکتها یا کارفرماهای داخلی و خارجی کد بزنید و درآمدتان را تا حد زیادی افزایش دهید.
جمعبندی
برنامهنویسی علمی بسیار جذاب برای عاشقان دنیای تکنولوژی محسوب میشود؛ زیرا قدرت خلق ایدههای زیادی را دراختیار برنامهنویسان قرار میدهد. اگر بتوانید با سختیهای موجود در مسیر برنامهنویسشدن بهخوبی کنار بیایید، آیندهای روشنی هم ازنظر مالی و هم ازنظر جایگاه شغلی در تمام کشورهای دنیا، ازجمله ایران خواهید داشت.