تجربه شخصی من درباره شروع برنامه نویسی

در این مطلب می خوام در مورد اینکه چطوری و از کجا برنامه نویسی رو شروع کردم براتون توضیح بدم. همچنین در مورد چالش های توی مسیر، نحوه یادگیری نیز بحث می کنیموب سایت ها چطوری متولد میشن !؟14 سال داشتم که یک باره برام سوالی پیش اومد! اونم اینکه وب سایت ها چجوری خلق میشن ؟ آیا نرم افزار خاصی مثل فتوشاپ احتیاجه که اجزاء سازنده وب رو کنار هم بچینیم و یه وب سایتی درست کنیم ؟ پیش خودم می گفتم حتما همینه دیگه، راه دیگه ای نمیتونه داشته باشه …برای همین گفتم یه سری به گوگل بزنم، یه سرچی بکنم ببینم داستان چیه ! سریع رفتم توی گوگل و عبارت “آموزش طراحی وب سایت” رو سرچ کردم، چند تا ویدئوی آموزشی از سایت آپارات برام اومد که مربوط به یه سری آموزشی رایگان طراحی سایت بود ( از همین پکیجایی که پر شده تو سطح وب ) راستش اولش یکم ترسیدم، چون وقتی بخشی از فیلم رو دیدم، متوجه شدم که داستان کاملا با اون چیزی که من فکرشو می کردم فرق می کنه و کاملا باید وارد دنیای کد نویسی بشم ?اولش خیلی مقاومت می کردم که وارد کدنویسی نشم چون علاقه ای نسبت به کد نداشتم و هیچ جذابیتی برام نداشت. یادمه انقدر کیفیت ویدئوی آموزشیه بد بود که کاراکتر “}” رو با پرانتز اشتباه می گرفتم و چون هیچ زمینه ای در مورد کد نویسی نداشتم، نمیدونستم کدوم کاراکتر رو باید استفاده کنم و به سختی بالاخره پیداش کردم !!تو 10 قسمت اول اون سری آموزشی، در مورد HTML و CSS توضیح داده بود و من با نوشتن هر خط از کد های ساده HTML کلی ذوق می کردم ?هر چی بیشتر جلو می رفتم کدنویسی برام جذاب تر و لذت بخش تر می شد تا اینکه بعد از مدتی رفتم و دوره های مجازی رو تهیه کردم تا بتونم بهتر یاد بگیرم و کار کنم. حل مسائل مختلف برام خیلی لذت بخش شده بود، به طوری که برای برخی از مسائل روز ها فکرم مشغول بود که راه حل این مسئله چی میتونه باشه !؟بعد از گذشت 3 – 2 سال از کار کردن در حوزه وب، تصمیم گرفتم یه سری هم به برنامه نویسی موبایل بزنم. یه اپلیکیشن ساده اندرویدی برای دریافت پست ها از سرور نوشتم و بعد متوجه شدم که کلا علاقه چندانی به برنامه نویسی موبایل ندارم، به همین دلیل گذاشتمش کنار !یه نکته ای که همیشه سعی داشتم به اون متعهد باشم این بود که اصطلاحا از این شاخه به اون شاخه نپرم ! یعنی مثلا اگر حوزه وب رو انتخاب کردم تا تهش پیش برم و اینطور نباشه که یه ذره از هر کدوم رو یاد بگیرم و کار کنم. به همین دلیل بود که سریع برنامه نویسیموبایل رو رها کردم تا از مسیری که برای خودم چیده بودم منحرف نشم.از این شاخه به اون شاخه پریدن ممنوع !دوست دارم این توصیه رو به دوستانی که تازه می خوان شروع کنن و وارد دنیای برنامه نویسی بشن بگم که شما هم این نکته رو فراموش نکنید و بهش متعهد باشید. اینکه رو یه مسیر متمرکز بشید و حتی روی یک موضوع متخصص واقعی باشید خیلی بهتر از اینه که چندین زمینه رو بلد باشید ولی روی هیچ کدوم از اونها تسلط کامل نداشته باشید.البته لازمه این رو هم بگم که داشتن پیش زمینه تو برخی فیلد ها میتونه کمک حال برنامه نویس باشه ! برای مثال یه Back-End developer که با مسائل هک و امنیت آشنا باشه، خوب می دونه که فرم ها رو چطوری اعتبار سنجی کنه که از SQL Injection جلوگیری بکنه !یا برنامه نویسی که آشنایی نسبی با سخت افزار داشته باشه، میدونه که Concurrency چیه و چطوری باید اون رو توی نرم افزارش هَندل کنه !هنوز یک زبان یا فریم ورک رو کامل یاد نگرفته میری سراغ بعدی در نتیجه میشی دریاچه ای به عمق یک سانت !کیوان علی محمدیمی خوام از حرف اقای علی محمدی و صحبتای خودم نتیجه گیری رو داشتم باشم، اونم اینکه سعی کنیم مثل اقیانوسی باشیم به عمق کم ولی دارای چاله ای با عمق چندین کیلومتر !! ( امیدوارم تونسته باشم منظورمو برسونم )در این مسیر باید چالش پذیر باشید !بعد از سال ها کار کردن در حوزه برنامه نویسی کاملا این موضوع رو درک کردم که برای تبدیل شدن به یک برنامه نویس ماهر و به اصطلاح خودمون Senior تنها یک راه وجود داره و اون هم حل مسائل مختلف در اون Stack هست. تمرین زیاد و حل کردن مسائل مختلف به ما این قدرت رو میده که بتونیم به معنای واقعی در حوزه کاریمون مسلط بشیم و روز به روز تخصص بیشتری کسب کنیم.از اینرو تصمیم گرفتم وب سایتی رو برای برنامه نویسان طراحی کنم که چالش پذیر هستن و عاشق حل کردن مسائل مختلف برنامه نویسی هستن. این وب سایت چالش هایی رو در حوزه ای که کار می کنید به شما ارائه میده و میتونید با تهیه اشتراک از اونها استفاده کنید و مهارت خودتون رو به چالش بکشید!اسم این سایت، کدلند هست که امیدوارم خوشتون بیاد و مورد استفادتون قرار بگیره.www.codelands.irکتاب هایی که هر برنامه نویسی باید آنها را بخواند !اگر دوست دارید مهارت برنامه نویسی خودتون رو افزایش بدید و به برنامه نویس بهتری تبدیل بشید، این دو کتاب رو حتما حتما مطالعه کنید. کتاب Clean Code اثر Robert Martinکتاب Clean Architucture اثر Robert Martinراستی خوشحال میشم نظرات شما رو هم بشنوم، شما چجوری شروع کردین ؟ پیشنهادتون برای افرادی که می خوان تازه شروع کنن چیه ؟ چه مدل یادگیری رو ترجیح میدین و از چه منابعی برای یادگیری استفاده می کنید ؟