سفر من به عنوان یک برنامهنویس از زمانی شروع شد که رشتهی مهندسی نرم افزار را پس از اتمام تحصیلات در مقطع دبیرستان به عنوان گرایش خود انتخاب کردم. طی ۳ سال گذشته مشغول برنامهنویسی بودم و زبانهایی مثل پایتون، جاوا، C++ و جاوا اسکریپت را نیز استفاده کردهام. من قبل از اینکه دورهی لیسانس خود را شروع کنم، هرگز یک خط کد هم ننوشته بودم. در مقطع راهنمایی و دبیرستان درس کامپیوتر را نیز نداشتهام. سایر دانش آموزان کلاس برای سرگرمی کد نویسی میکردند یا حتی یک برنامه را در Play Store منتشر کرده بودند، اما من مثل آنها نبودم.
به همین خاطر از همه نظر میتوانستید مرا کاملا یک تازهکار بدانید. من تصورات اشتباهی نیز در خصوص برنامهنویسی و کد نویسی داشتم. تقریباً ۲ سال و نیم گذشته، متوجهی غفلت خود شدم و فهمیدم که تا به حال چقدر اشتباه کرده بودم. بنابراین سعی دارم تا با نوشتن این مقاله به افراد تازه وارد در زمینه برنامهنویسی کمک کنم. بیایید با یکدیگر باورهای اشتباه برنامهنویسی را شناخته و با آنها مقابله کنیم.
بر روی اصول تمرکز کنید
اولویت شمارهی یک شما به عنوان یک برنامهنویس جدید باید تسلط داشتن بر اصول پایهای باشد. منظورم این است که شما باید مفاهیمی مثل متغیرها، انواع دادهها، ساختارهای دادهها، شرطیها، حلقهها، الگوریتمها و غیره را درک کنید.
اگر دانش صحیح و درستی در مورد اصول داشته باشید، میتوانید طی چند روز هر زبان برنامهنویسی را یاد بگیرید. تمام زبانهای برنامهنویسی به طور کلی مفاهیم یکسانی دارند. داشتن یک دانش خوب در مورد اصول پایهای میتواند بدون توجه به زبانی که انتخاب میکنید کمک رسان شما باشد.
طبق تجربهی خود میتوانم بگویم که وقتی اصول را بدانید، انتخاب یک زبان جدید مثل آب خوردن خواهد بود. شما باید درک خود از مفاهیم اساسی برنامهنویسی را ارتقا دهید.
لطفاً زیاد اشتباه کنید
ترس از اشتباه کردن را میتوان یکی از دلایل عمدهی شکست مردم در برنامهنویسی دانست. من هم چنین چیزی را تجربه کردهام. تصور میکردم که یک برنامهنویس خوب از کارکرد دقیق یک زبان اطلاع دارد و میتواند کدی را بنویسد که از همان ابتدا قابلیت اجرا شدن را داشته باشد. این طرز تفکر مانع توانایی من در یادگیری چیزهای جدید شد، چون از اشتباه کردن میترسیدم و هرگز چیزی را امتحان نمیکردم. این تصور طی بازه زمانی مختصری از بین رفت. نوشتن کدی تمیز و ظریف که از همان ابتدا اجرا شود و خروجی صحیحی داشته باشد، چیزی جز یک خیال فانتزی نیست.
حتی با تجربهترین توسعهدهندگان نیز در اولین تلاش خود نمیتوانند کدهایی کاملاً عملکردی و عاری از خطا بنویسند. هر چه این موضوع را زودتر درک کنید، از اشتباهات خود سریعتر درس خواهید گرفت. باید این واقعیت را درک کنید که بیشتر زمان برنامهنویسی شما صرف اشکالزدایی و جستجوی خطاها در اینترنت میشود. برای اینکه به عنوان یک توسعهدهنده ب موفقیت برسید، از شما انتظار نمیرود که کل نحو زبان را حفظ کنید. من باور دارم که مردم به سختی توانایی انجام چنین کاری را دارند.
در عوض باید برنامههای خود را به روشی تاثیرگذار رفع اشکال کنید. خطاها بخشی اساسی در برنامهنویسی هستند. هر چه زودتر با دیدن خطا در ورودی احساس راحتی کنید، سریعتر نیز در برنامهنویسی مهارت پیدا خواهید کرد. من برنامهنویسان بسیار موفقی را میشناسم که هنوز هم مقدار قابل توجهی از زمان خود را به حل خطاهای ساده اختصاص میدهند. این را به خاطر داشته باشید که اولین کد نوشته شده توسط شما هرگز بی نقص نخواهد بود. کار درست این است که ابتدا یک کد با قابلیت اجرا شدن را نوشته و سپس آن را با هدف خلاصهسازی و خوانایی اصلاح کنید.
به دانشگاه اعتماد نکنید تا همه چیز را به شما یاد دهد
بدترین تصوری که میتوانید به عنوان یک برنامهنویس جدید داشته باشید این است که برای یادگرفتن همه چیز به دانشگاه تکیه کنید. دانشگاهها از یک برنامه درسی ثابت پیروی میکنند. برخی از مطالب مربوط به سیستمهای دیتابیس، شبکههای کامپیوتری، ساختار دادهها و الگوریتمها برای من مفید بودهاند در حالی که برخی دیگر هیچ سودی برای من نداشتهاند. به عنوان مثال بیشتر دانشگاهها به شما در مورد توسعهی وب یا ابزارهایی مثل git و GitHub آموزش میدهند.
بنابراین شما باید این عادت را در خودتان به وجود آورید که به تنهایی مسائل جدید را یاد بگیرید. تمام دانش من در مورد توسعهی وب حاصل تلاشها و یادگرفتنهای خودم است. اگرچه این موضوع میتواند در سایر زمینههای مهندسی درست باشد، اما فضای برنامهنویسی با چنان سرعتی در حال تغییر است که موسسات آموزشی نمیتوانند با آن همگام بمانند. یادگرفتن کد نویسی یک فرایند دائمی است و اگر میخواهید در بازار رقابتی امروز مطرح باشید، باید مهارتهای خود را بهبود بخشیده و آنها را گسترش دهید. در اینجا بهترین چیز فراوانی منابع آنلاین است که میتواند به شما در این زمینه کمک کند. اگر قصد دارید یک زبان یا فریمورک جدید را یاد بگیرید، میتوانید از آموزشها و مقالات بسیاری برای این کار استفاده کنید. اگر حاضر به فداکاری و سختکوشی باشید، میتوانید مهارتهای خود را در کمترین زمان ارتقا ببخشید.
درگیر جهنم آموزشی نشوید
معضل دیگری که برنامهنویسان جدید با آن روبرو هستند این است که دوست دارند در جهنم آموزشی به دام بیفتند. بسیاری از ما برای یاد گرفتن هر زبان، فریمورک یا مهارتهای جدید دیگری دست به گریبان مطالب آموزشی YouTube و دورههای Udemy میشویم. این دورهها یک مشکل اساسی دارند که خیلی از ما متوجه آن نیستیم. وقتی دورههای خود را دنبال میکنید، ممکن است احساس اطمینان کنید یا تصور کنید که همه چیز را یاد میگیرید. اما وقتی دورهی شما به پایان میرسد و میخواهید به تنهایی چیزی را توسعه دهید، احساس سردرگمی خواهید کرد و نمیدانید که باید از کجا شروع کنید. این مشکل بارها برای من اتفاق افتاده و بسیار حس بدی دارد.
مشکلی که در این آموزشها و دورهها وجود دارد این است که نحوهی ساخت یک برنامهی خاص را به شما آموزش میدهند. آنها به شما یاد نمیدهند که چگونه باید یک ذهنیت را برای حل مسئلهای خاص توسعه دهید. شما نمیدانید که چرا مربی از فلان فریمورک استفاده کرده یا روش نوشتن یک قطعه کد خاص را نمیدانید. بنابراین شما فقط در حال کپی کردن کدهای نوشته شده توسط مربی هستید. به همین خاطر است که شما از دلیل برخی مسائل اطلاع ندارید. شاید بتوانید دوره را به اتمام رسانده و برنامه را بسازید، اما به تنهایی قادر به کد نویسی نخواهید بود.
بهترین روش برای استفاده از این دورهها، اصلاح کد پس از اتمام پروژه است. سعی کنید کد را شکسته و همه چیز را تغییر دهید. روش متفاوتی را برای پیادهسازی یک ویژگی خاص در پیش بگیرید. حداقل سعی کنید برخی از قابلیتها را به پروژههای دورهی خود اضافه کنید. با انجام این کار از علت عملکرد کدها با خبر میشوید و آنها را درک خواهید کرد.
سعی نکنید در همه چیز استاد شوید
آخرین توصیهای که به برنامهنویسان آینده میکنم این است که شما مجبور نیستید همه چیز را به بهترین شکل یاد بگیرید. هنگامی که برای اولین بار کد نویسی میکنید، به سرعت متوجه میشوید که زمینههای بسیار زیادی برای انتخاب کردن وجود دارند. اینکه تصمیم بگیرید قصد انجام چه کاری را خواهید داشت میتواند برای شما کمی استرسزا باشد. فرض کنید که به توسعهی وب علاقهمند هستید. شما میتوانید توسعهدهندهی فرانتاند را انتخاب کرده و با چیزهایی مثل جاوا اسکریپت، CSS، HTML، Sass و فریمورکهایی مانند Angular، Vue و React یا کتابخانههایی مثل Bootstrap، Tailwind CSS و غیره کار کنید؛ یا میتوانید توسعهدهندهی بکاند را انتخاب کرده و با زبان هایی مثل جاوا اسکریپت، پایتون، PHP یا فریمورکهایی مانند Django، Express، Flask و دیتابیسهایی مثل MySQL، PortgreSQL یا MongoDB و غیره کار کنید. همچنین میتوانید هر دو را انتخاب کرده و به یک توسعهدهندهی فول استک تبدیل شوید و با هر دو بخش فرانت و بکاند یک برنامهی وب کار کنید.
حالا متوجه منظور من میشوید؟ این تنها یک زمینه است. شاید شما به توسعهی موبایل یا بازی علاقهمند باشید. شاید درگیر یادگیری ماشین یا هوش مصنوعی باشید و با آنالیز دادهها و آموزش شبکههای عصبی پیچیده کار کنید. یا حتی ممکن است به امنیت سایبری علاقه داشته باشید و بخواهید در زمینه هکهای اخلاقی کار کنید.
برای هر کاری که میخواهید انجام دهید، زمینهای نیز فراهم است. به نظر من شما باید زمینهای که میخواهید در آن تخصص پیدا کنید را انتخاب کرده و خودتان را تماماً وقف آن کنید. در دنیا برای افراد با استعداد تقاضای زیادی وجود دارد؛ افرادی که به جای داشتن دانشی اندک در تمام مسائل، در زمینهای خاص تخصص دارند. بنابراین آزمایش کنید تا علایق خود را پیدا کرده و سپس روی مهارتهای لازم تمرکز کنید. با این کار شما نسبت به گذشته عملکرد بهتری خواهید داشت.
سخن پایانی
این موارد بخشی از چیزهایی بودند که من از زمان شروع کد نویسی خود یاد گرفتم. من به هیچ وجه هنوز متخصص نیستم. اینها چکیدهای از ۳ سال تجربهی شخصی من در برنامهنویسی بود. من از اینکه این رشته را به عنوان حرفهی خود انتخاب کردم، بسیار خوشحال هستم و میخواهم تا آنجا که ممکن است دانش خود را به جامعه نیز انتقال دهم.
روی صحبتم با تمام برنامهنویسان جدیدی است که تازه شروع به کار کردهاند، لطفاً روی اصول اساسی تمرکز کنید، به موقع یاد بگیرید و از آن لذت ببرید.
دیدگاه و پرسش
در حال دریافت نظرات از سرور، لطفا منتظر بمانید
در حال دریافت نظرات از سرور، لطفا منتظر بمانید