من در ابتدا این مقاله را برای مبتدیان و توسعه دهندگان کم سن و سال در Reddit نوشتم. سپس با استقبال فوقالعادهای رو به رو شد و پیامهای دلچسب زیادی به دنبال داشت. بنابراین بر اساس واکنشهای کاربران مقاله را ارتقا دادهام. در اینجا مواردی وجود دارد که کاش در شروع کار خود به عنوان یک توسعه دهنده نرمافزار میدانستم. این نکات به من کمک میکردند کمتر استرس داشته باشم و امیدوارم که برای شما نیز چنین باشد.
همه آموزشها با هم برابر نیستند
وقتی برای اولین بار کار خود را شروع میکنید، چیزهای مختلفی را امتحان میکنید. همانطور که یاد میگیرید و آزمایش میکنید، به آموزشهایی که برای شما مناسب هستند توجه کنید. دقت داشته باشید که خیلی از آنها کاربردی ندارند و فقط وقتتان را هدر میدهند.
زمانی که یک آموزش مفید و ارزشمند پیدا کردید، از محتوای آن نهایت استفاده را بکنید و بعد آموزشهای مشابه آن را بیابید تا بتوانید به رشد سریع خود ادامه دهید.
من وقتی شروع کردم کتاب Head First Java را خریدم، اما بعد از ساعتها مطالعه به جایی نرسیدم. همه از آن تعریف میکردند و میگفتند که این بهترین کتاب برنامه نویسی تاکنون است. اما آموزشهای TheNewBoston در یوتیوب این کار را برای من انجام داد، هرچند کسی دیگر آن را توصیه نمیکند.
سپس شروع به یادگیری الگوریتمها کردم، اما تمام آموزشهای وبلاگی که دنبال میکردم معنایی نداشت، تا اینکه ویدئوهای یوتیوب را تماشا کردم. در آن زمان، رویکرد من برای یادگیری این بود که از چندین منبع استفاده کنم تا وقتی که مربی و سبکی را پیدا کنم که برای من مناسب باشد.
نمیتوانم تعداد دفعاتی را که برای برنامه نویسی پایتون در وب سایتهایی مانندUdacity و Coursera شرکت کردم و هربار همه چیز را فراموش میکردم، حساب کنم. این خیلی آزاردهنده بود.
اما از آن زمان یاد گرفتهام هر آنچه را که در یادگیریهای جداگانه میآموزید فراموش خواهید کرد، زیرا در حافظه کوتاه مدت ذخیره میشوند. تحقیقات علوم اعصاب نشان میدهد که این به خاطر نحوه کار مغز است. اگر نمیخواهید فراموش کنید، دانش خود را با استفاده از چند تکرار با فاصله تقویت کنید. میتوانید برای این منظور پروژههای کوچکی را برای خود پیاده سازی کنید.
یک مثال مشخص برای شما میزنم:
len(myList)
این دستور در پایتون به شما یک لیست میدهد. آن را در دوره مقدماتی پایتون خواهید آموخت.
یک ماه بعد برگردید و میبینید که یادتان رفته. با خود میگویید آیاlen ، ()length یا ()myList.size بود.
اما با تکرار فاصله دار از طریق یک پروژه، نتیجه متفاوت است.
فرض کنید روی یک برنامه جنگو به مدت دو ماه کار میکنید و لازم است:
- تعداد کاربران را چندین بار بشمارید.
- تعداد تمرینات انجام شده را ذخیره کنید.
- تعداد چتها را پیدا کنید.
تصور کنید این کار را در طول دوره پروژه و به مدت دو ماه انجام دهید. فراموش کردن آنچه که ()len انجام میدهد غیرممکن است.
این یک مثال پیش پا افتاده است، اما امیدوارم ایده بهتری به ذهن شما خطور کند.
زبان آموزان جدید میتوانند با مثالهای ساده تر شروع کنند.
اما اگر در محدوده یک پروژه تمرین نکنید و از آنچه آموختهاید استفاده مجدد نکنید، هیچ چیزی به حافظه طولانی مدت شما نمیرسد. همه اینها در حافظه کوتاه مدت هستند و این بدان معنی است که شما آن را فراموش خواهید کرد.
با ترس مواجه شوید به جای اینکه با آن مقابله کنید
این نگرش وجود دارد قبل از اینکه یاد بگیرید، ابتدا ترس خود را برطرف کنید. متأسفانه این جمله به خوبی جواب نمیدهد.
در واقع شما زمان زیادی را صرف تلاش برای از بین بردن ترس خود خواهید کرد، اما در عوض فقط اضطراب خود را دو چندان میکنید و صادقانه بگویم شما برای مدت طولانی ترس خواهید داشت.
نیازی به مبارزه با آن نیست. گاهی اوقات با تقویت مهارت خود، این ترس به مرور زمان از بین میرود. در مواقعی دیگر، ترستان برای مدتی ناپدید میشود و وقتی وارد محیط جدیدی شوید و با توسعه دهندگان نرمافزار هوشمند کار کنید، دوباره برمیگردد و به سراغتان میآید.
اگر میخواهید به عنوان یک توسعه دهنده نرمافزار پیشرفت کنید، باید به یاد داشته باشید:
زندگی همین است. یک موج سینوسی است، بی وقفه بالا و پایین میرود. خیلی جدی نگیرید وگرنه خودتان را گم میکنید.
تداوم و سخت کوشی
ممارست کلید موفقیت است. هنگامی که شروع به یادگیری میکنید، رشتههای عصبی را پرورش میدهید که بازیابی اطلاعات را آسانتر میکند. طبق تحقیقات علوم اعصاب، این رشتهها فقط از طریق استفاده فراوان و نه فقط شدت، تقویت میشوند. این بدان معنی است که 30 دقیقه تمرین در روز و به مدت 5 روز در هفته بهتر از روزی 2.5 ساعت و تنها یک بار در هفته است.
استعداد = تمرین پنهان
اولین کلاس برنامه نویسی من به زبان سی پلاس پلاس بود و همکلاسیهایم باور نمیکردند که من قبلا هرگز کدنویسی نکردهام، زیرا بسیار با استعداد بودم.
همچنین آنچه آنها نمیپذیرفتند این بود که بلافاصله بعد از کلاس، پنج ساعت مشغول تایپ کردن بودم:
cout << “
this
is my first program”
بعد میفهمیدم که کد اجرا نمیشود و دلیلش هم فراموش کردن یک نقطه ویرگول بود!
سپس میخواستم آن را دوباره تایپ کنم و متوجه میشدم که جمله من را روی خط جدید چاپ نمیکند، زیرا endl را اضافه نکرده بودم.
هیچ کس نمیخواهد بشنود که شما سخت کار کردید و به اینجا رسیدید. فقط بگویید که از این طریق متولد شدهاید، قابل باورتر است.
استعداد در برابر شتابزدگی - اکثر ما اغلب با عجله از کنار آن عبور میکنیم.
تبدیل شدن به یک توسعه دهنده ماهر نرمافزار مانند نواختن ساز است.
فقط تعداد اندکی با استعداد متولد میشوند.
اکثریت میتوانند به اندازه میزان تمرین کردنشان خوب باشند.
اگر مهارتهای خود را از طریق انجام انواع پروژههای برنامه نویسی تقویت کنید، در نهایت تسلط خواهید یافت.
گاهی شما را احمق میپندارند.
کدنویسی به شما احساس داشتن یک قدرت فوق العاده یا یک مهارت نادر را میدهد. اگر یک توسعه دهنده مبتدی هستید، وقتی با کسانی که سالها برنامه نویسی کردهاند ملاقات میکنید، آنها فکر میکنند هیچ کس دیگری نباید وارد شود.
مثلا یک توسعه دهنده ویندوز، با متعصبان لینوکس روبه رو خواهد شد. آنها هم تصور میکنند متوسط هستند.
اگر زن هستید، به دلیل جنسیت بلافاصله از کار برکنار خواهید شد. من این را از خاطرات شخصی همکارانم در طول سالها میدانم.
اگر اقلیت باشید، افرادی را ملاقات میکنید که به شما میگویند فقط باید قهوه درست کنید نه کد بنویسید.
اگر از یک حوزه دیگری میآیید، با افرادی ملاقات خواهید کرد که به طور خودکار خود را دروازه بان جامعه برنامه نویسی معرفی میکنند.
اینگونه افراد همه جا حضور دارند.
همه چیز در حال بهتر شدن است و چیزهای زیادی برای آموزش مردم وجود دارد.
اما اجازه ندهید این مانع شما شود. انعطاف پذیری خود را ایجاد کنید تا بعد از ملاقات با این افراد، دلسرد نشوید.
اما یک نکته:
توسعه دهندگان جدید باید بیشتر یاد بگیرند و چیزهای زیادی را بیاموزند.
ریاکت کار کنید. سپس جاوااسکریپت. بعد لاراول و سپس موارد دیگر...
متوقف نشوید.
باید آگاه باشید و زمان را برای یادگیری هر چیز مفیدی افزایش دهید.
"اگر کسی بر یک موضوع مسلط باشد و آن را به خوبی درک کند، در عین حال بینش و درک بسیاری از چیزهای دیگر را هم به دست میآورد." وینسنت ون گوگ
یک موضوع را انتخاب کنید. چند ماه را صرف آن کنید. در حالت ایده آل 6 تا 12 ماه با آن بمانید قبل از اینکه چیز دیگری یاد بگیرید.
این کار دو مزیت دارد:
- به اندازه کافی وارد عمق ماجرا خواهید شد و به مهارتی که شما را به تسلط میرساند، دست خواهید یافت.
- بعد از تسلط بر یک موضوع، میتوانید دانش خود را در زمینه دیگری گسترش دهید. مثال: فلسک را یاد بگیرید و بعد به راحتی میتوانید وارد جنگو شوید. ریاکت را به طور کامل فرا بگیرید، سپس در طی چند روز به سرعت میتوانید جوانب مثبت و منفی لاراول را تشخیص دهید.
این به معنای یادگیری HTML به مدت شش ماه و بعد شش ماه دیگر برای CSS نیست.
فقط توجه داشته باشید که یادگیری را با هم مخلوط نکنید. موضوعات مرتبط را با هم کار کنید.
اینگونه نباشد که اول جنگو را یاد بگیرید و بعد به سراغ بازی سازی بروید و بعد از مدتی به توسعه iOS بپردازید.
ممکن است در مدت زمان کوتاهی کارهای زیادی انجام دهید و شاید احساس کنید که یک برنامه نویس مبتدی در حال رشد هستید. اما این یک توهم است.
در واقع شما بر هیچ چیز تسلط ندارید. توسعه نرمافزار یک زمینه در حال پیشرفت است. هیجان انگیز است و در عین حال ناامید کننده. اما من اگر به عنوان یک توسعه دهنده عقب برگردم، همه این کارها را انجام میدهم.
دیدگاه و پرسش
در حال دریافت نظرات از سرور، لطفا منتظر بمانید
در حال دریافت نظرات از سرور، لطفا منتظر بمانید