اگه این مقاله رو میخونید به احتمال زیاد دنبال یاد گرفتن برنامه نویسی هستی و به احتمال زیاد هم به برنامه نویسی بعنوان یه شغل نگاه میکنی من میخام در این نوشته کامل شما رو راهنمایی کنم که بدونید چطور میتونید یک برنامه نویس و البته برنامه نویس موفقی بشید کافیه این مقاله را با حوصله تا انتها مطالعه کنید.
در این نوشته بطور خلاصه مورد های زیر را نوشته ام :
به زبان ساده ، برنامه نویسی یعنی نوشتن کدهایی که منجر به تولید یک نرم افزار ، سایت ، اپلیکیشن ، گیم یا هرچیز مشابه دیگر شود. کد چیه ؟ کد ها در واقع همان زبان برنامه نویسی هستند که شما با آن میتوانید به کامپیوتر بفهمانید منظور شما چیست و انتظار دارین چه کاری انجام بگیره
یک مثال ساده :
اپ موبایل در نظر بگیرید که میخواهید صفحه ی ثبت نام داشته باشد ، در این صفحه باید چند ورودی از کاربر بگیرید که شامل نام ، نام خانوادگی و ... باشد شما باید با کد اینها را تعریف کنید و برای هر اقدام بعدی هم با کدنویسی بگویید که موبایل چه کاری برای شما انجام دهد.
موبایل خود یک نوعی کامپیوتر کوچک است وقتی من میگم کامپیوتر منظورم تمام دستگاه هایی هست که توانایی پردازش اطلاعات دارن مثل موبایل ، تلویزیون هوشمند و حتی یک ماشین لباسشویی که هوشمند و قابل برنامه ریزی است...
برنامه نویس کسی هست که مهارت کدنویسی را یاد میگیره و این کدها را مینویسه تا کامپیوتر متوجه شه چیکار باید بکنه ، تمام اینها رو هم جمع شده و یک محصول نهایی تولید میشود.
برای نوشتن یک سایت فروشگاهی ممکن است نیاز باشه شما چند هزار خط کد بنویسید
یا برای نوشتن یه اپلیکیشن خدماتی ممکنه نیاز باشه شما هزار خط کد بنویسید
کدها به زبان برنامه نویسی نوشته میشن که هر حیطه ای زبان برنامه نویسی مخصوص خودش را داره
برای شروع و آشنایی اسم چند زبان برنامه نویسی را در زیر اورده ام که بهتر است در ذهن داشته باشید :
برنامه نویسی به حوزه های مختلفی تقسیم بندی میشه و شما براساس علاقه ی خود باید یکی را انتخاب کنید و وارد آن حوزه شوید ، زیرا هر حوزه ابزارهای خاص خود و زبان های برنامه نویسی خاص خود را دارد و شما باید دقیقا آنها را یاد بگیرید نه چیزی بیشتر نه چیزی کمتر. در لیست زیر حوزه های مختلف برنامه نویسی را آورده ام :
برای اینکه بفهمید دقیقا چه زبانی مناسب کدام حیطه ی برنامه نویسی است ویدیو زیر را ببینید
بعد از دیدن ویدیو بالا شما میدونید که کدوم زبان یا زبان ها را باید انتخاب کنید بعد باید برید سراغ یادگیری همون زبان ها و کم کم تخصص اون حوزه را کسب کنید.
برای شروع برنامه نویسی بهتر است از یک زبان خوب و کامل مثل سی پلاس پلاس شروع کنید ، از کتاب های آموزشی ، دوره های آموزشی آنلاین و ویدیو کلیپ های آموزشی که در سایت هایی مثل یوتیوب ، آپارات و ... منتشر میشود استفاده کنید. در شروع برنامه نویسی بهتر است مفاهیم پایه ای مثل متغیر ها ، شرط ها ، حلقه ها ، توابع و ... را کامل یاد بگیرید زیرا این مباحث مبنای اصلی زبان های برنامه نویسی هستند و تقریبا در هر زبان برنامه نویسی وجود دارند.
توجه کنید که در یادگیری برنامه نویسی ، مهمترین قسمت یادگیری اصول برنامه نویسی و منطق آن هست خود زبان زیاد مهم نیست.
و اینکه بهتر است ویدیو زیر را هم ببینید :
برنامه نویسی چیزیست که با تکرار و تمرین مداوم بدست میاد سعی کنید در شروع کار پروژه های کوچک انجام بدید و رفته رفته آنها را بزرگ کنید تا مهارت برنامه نویسیتون آرام آرام شکل بگیره
در ادامه ی مسیر برنامه نویسی بهتر است در اجتماع برنامه نویسان باشید و انجمن های مختلف برنامه نویسی شرکت کنید مثل انجمن استک اورفلو ( stackoverflow ) و ...
کلید موفقیت در برنامه نویسی به نظر من استمرار است استمرار در هرچیزی استمرار در یادگیری استمرار در کار کردن استمرار در حل مسائل و مشکلات و ... باعث میشود که نتیجه ی کار برای شما راضی کننده باشد.
شرکت در دوره ی آموزشی جامع و کامل در ابتدای کار خیلی مهمه و خیلی شما را جلو میندازه پس دنبال یک دوره ی آموزشی خوبی باشید تا با استفاده از آن بتوانید وارد دنیای برنامه نویسی باشید البته دوره ای که برای شروع انتخاب میکنید بهتر است شامل مبانی برنامه نویسی هم باشه مثل دوره ی ۱۲ قدم شروع برنامه نویسی که برای خود من در شروع برنامه نویسی عالی بوده.
بعد از اینکه آموزش برنامه نویسی را تمام کردید و چند پروژه ی بصورت تمرینی انجام دادید نوبت آن رسیده است که وارد بازار کار شوید مراحلی که در زیر برای شما آوردم حاصل تجربیات خودمه و صد در صد به شما کمک میکنه تا وارد بازار کار برنامه نویسی شوید.
برنامه نویسی یکی از پردرآمدترین و دردسترس ترین شغل هاست ، ولی اینم شرط داره شرطش اینه که شما واقعا یک تخصصی در یکی از حوزه های برنامه نویسی کسب کنید ، نمونه کارهای قوی داشته باشید و متعهدانه کارکنید. در این صورت است که شما میتونید از برنامه نویسی پول دربیارید
بصورت کلی شغل های برنامه نویسی دو دسته ان :
برنامه نویسی شغلیه که تو اینترنت هست و بخاطر همین تمایل به دورکاری داخلش زیاده و بخاطر همین مهم نیس شما کدوم شهر یا منطقه زندگی کنین به راحتی میتونید شغلی داشته باشین و کسب درآمد کنین کافیه یه لپتاپ داشته باشید و یه اینترنت
بعضیا که برنامه نویسیو شروع میکنن ، نمیتونند پروژه بگیرند این به معنی این نیست که پروژه نباشه ، مشکل اینه که نمیدونند چطوری باید پروژه رو بگیرن !
برای حل این مشکلم کارآموزی بصورت حضوری پیشنهاد میشه وقتی شما در محیط یه شرکت باشید که دو سه تا برنامه نویس رو ببینید سرعت پیشرفت شما را چندین برابر زیاد تر میکنه ، پس سعی کنید جایی پیدا کنید تا کارآموز باشید
مدت کارآموزی بین سه تا شش ماهه و معمولا هم نباید انتظار حقوق یا مزایا از سمت مدیر اون شرکت داشته باشین
بعد از طی کردن این مدت زمان بازار کار تقریبا دستتون میاد و بصورت دورکاری هم خیلی راحت میتونین کار کنین
برنامه نویسانی که بتونن از تخصص خود برای ایجاد کسب و کار شخصی خودشون استفاده کنن و اونو به درآمد برسونن از همه جلوتر هستن و درآمد بیشتری ام دارن ، سعی کنید تو این دسته بندی باشید
اگه از من بپرسید شغل برنامه نویسی نسبت به پزشکی راحت تره یا سخت تر قطعا میگم راحت تره ! فکر کنید شما پزشک متخصص هستید و باید روزانه با کلی آدم سر و کله بزنید زحمت و زمان خیلی زیادی هم میخاد استرس بالایی ام داره ولی برنامه نویسی خودت هستی و پروژت ! تکمیل که کردی پولت دستت میرسه
از نظر درآمد شاید پزشکی ابتدا بهتر باشه چون برای یه متخصص خوب همیشه کار و پول هست ولی برای برنامه نویس مبتدی ممکنه اولش هیچ درآمدی نباشه و باید مدت ها روی مهارت هاش کار کنه ولی اگه برنامه نویس پروژه هاشو عملی بکنه به نظرم درآمدش بعدا خیلی بیشتر از یه متخصص خواهد بود.
شخصیو میشناسم که اپلیکیشن مینویسه و در مارکت کافه بازار منتشر میکنه میزان درآمدش در ماه بین 200 تا 300 میلیون تومان متغیره
شخصی ام هست که استخدام یک شرکت استارتاپی هست بعنوان برنامه نویس لاراول و ماهانه حقوق ثابت 60 میلیون تومان میگیره
قطعا میانگین حقوق برنامه نویسی رو میتونید موارد بالا در نظر داشته باشید ولی خب میتونید مبالغ بیشتری ام کسب کنید و این بستگی به هوش و ذکاوت خودتون داره
برخی نمونه حقوق های برنامه نویسان را مشاهده کنید البته حقوق برنامه نویسان قطعا خیلی بیشتر از این اگهی ها میباشد و اینا فقط برای افرادی هست که متخصص یک حوزه ی خاص هستند و البته برنامه نویسی که حقوق ثابت میگیرد داستان درآمدش به همینجا ختم نمیشود بعد از کار در اداره میتواند پروژه های برنامه نویسی هم بگیرد و حقوق خود را مرتبا افزایش دهد.
خب حالا که به انتهای این نوشته رسیدی میخام ببینم قصد داری برنامه نویس بشی یا نه ؟ دنیای برنامه نویسی رشته ای آینده داره ، هر روز به تعداد افرادی که از تکنولوژی استفاده میکنن اضافه میشه
تا حالا دیدید مثلا تعداد گوشی هایی که فروش میره کمتر بشه
یا تعداد کاربرای اینترنت کم بشه ؟
این آمارها همیشه در حال بیشتر شدنه چون جهان در حال حرکت به سمت تکنولوژیه و این تکنولوژی رو برنامه نویسا میسازن
سلام دوستان! اگر میخواهید یک توسعهدهنده بهتر شوید و به دنبال چند نکته کاربردی هستید، جای درستی آمدهاید. در گذشته نقشههای راه زیادی را مثل نقشه راه توسعهدهنده جاوا در سال ۲۰۲۴، نقشه راه توسعهدهنده وب، نقشه راه مهندس DevOps، و نقشه راه توسعهدهنده React.js را به اشتراک گذاشتهام. در این مقاله قصد دارم چند نکته عملی برای تبدیل شدن به یک توسعهدهنده بهتر و همهجانبه در سال ۲۰۲۴ با شما به اشتراک بگذارم.
بسیاری از توسعهدهندگان جاوا از من میپرسند چطور میتوانم یک برنامهنویس بهتر شوم؟ چطور میتوانم مهارتهای برنامهنویسی خود را ارتقا دهم؟ یا مثلاً میگویند من در جاوا خوب هستم ولی توانایی حل مسئله من چندان قوی نیست و غیره.
این واقعیتی است که در دوران امروز بیشتر شاهد حضور متخصصان زبانهای برنامهنویسی هستیم تا برنامهنویسان واقعی. فهمیدن کلمات کلیدی، متدها و APIهای زبان برنامهنویسی جاوا آسان است.
اما در عین حال، حل مسائل عملی، طراحی نرمافزارهای قابل استفاده مجدد و مقاوم، و استفاده بهینه از ساختارهای داده و الگوریتمها چالشبرانگیز است.
من اغلب دیدهام که برنامهنویسان جاوا در مواقعی که از آنها خواسته میشود در زمان محدود یک راهحل طراحی و کدنویسی کنند، چندان خوب عمل نمیکنند، اما در عین حال در مفاهیم و تئوریهای جاوا بسیار مهارت دارند.
برای اینکه یک برنامهنویس بهتر شوید، باید در زمینههایی مثل ساختار دادهها، الگوریتمها، طراحی با استفاده از اصول شیءگرایی (OOP)، چندنخی (multi-threading)، و مفاهیم مختلف برنامهنویسی مثل بازگشت (Recursion)، تقسیم و غلبه (divide and conquer)، نمونهسازی (prototyping) و تست واحد (unit testing) مهارت داشته باشید. برنامهنویسی ترکیبی از مهارتهای مختلف است، بنابراین نمیتوان آن را در زمان کوتاهی یاد گرفت؛ بلکه با گذشت زمان و کسب تجربه به دست میآید، اما این اتفاق خود به خود نمیافتد.
شما میتوانید پنج سال در شغل برنامهنویسی جاوا کار کنید بدون اینکه تبدیل به یک برنامهنویس خوب شوید. چون بیشتر مصاحبههای شغلی جاوا بر تئوری تمرکز دارند نه بر مهارتهای برنامهنویسی و کدنویسی.
بسیاری از برنامهنویسان این مهارتهای ضروری برنامهنویسی را تمرین نمیکنند. اگر تست حل مسئله برنامهنویسی به عنوان یک الزام بود، مطمئنم که برنامهنویسان متوسط عملکرد بهتری داشتند. به هر حال، این لیست من از چیزهایی است که میتواند به شما کمک کند تا یک برنامهنویس خوب شوید.
چرا کدنویسی را در بالای این فهرست قرار دادهام؟ چون این بخش هم دشوارترین و هم اصلیترین بخش برنامهنویسی است.
با کدنویسی، شما به اشتباهات خود در طراحی، مدیریت خطاها، و چندنخی (threading) پی میبرید و سپس به آن مهارتها بازمیگردید تا آنها را بهبود دهید. شما نمیتوانید تنها بر روی طراحی کار کنید؛ کدنویسی خروجی ایجاد میکند که برای یادگیری و موفقیت حیاتی است.
راستی، بعد از حل مسئله متوقف نشوید؛ همیشه بهتر است اولین راهحل خود را کنار بگذارید. آن فقط یک نمونه اولیه است؛ راهحل بعدی شما باید مشکلات و نیازهای نادیدهای را که در هنگام ساخت نمونه اولیه کشف کردهاید، برطرف کند.
همچنین میتوانید دوره "Clean Code" توسط Maximillian Schwarzmuller برای توسعهدهندگان جاوا اسکریپت و دوره "Clean Code with Java: Learn Simple Design, Refactoring & TDD" برای توسعهدهندگان جاوا را بررسی کنید تا بیشتر در مورد نوشتن کدی با کیفیت تولیدی که بتواند در برابر گذر زمان مقاوم باشد، یاد بگیرید.
کدنویسی گفتنش آسانتر از انجام دادنش است، و تفاوت بزرگی بین کد خوب و کد بد وجود دارد. اما چطور میتوان این تفاوت را تشخیص داد؟ تا زمانی که یک کد خوب را ندیده باشید و ندانید چرا یک کد خاص خوب است، نمیتوانید این تفاوت را درک کنید.
اینجاست که کتابها به کمک میآیند؛ بیشتر اوقات، نویسندگان خودشان برنامهنویسان بزرگی هستند و تجربهشان را به شکل کتاب ارائه میدهند. من کتابها را دوست دارم، اما یکی از کتابهایی که به طور خاص به من کمک کرد، کتاب "Clean Code" اثر عمو باب بود.
با خواندن این کتاب، متوجه شدم که مرتباً مشکلاتی را در کد خود پیدا میکنم و هر از گاهی توصیههای دادهشده در این کتاب را به کار میبرم. توصیه من این است که اگر با چنین کتابهایی روبرو شدید، حتماً آنها را بخوانید. همچنین پیشنهاد میکنم این کتابهای کلاسیک را چندین بار بخوانید و هر از گاهی به آنها مراجعه کنید.
کتاب دیگری که مشابه این است، Effective Java نوشته جاشوا بلاچ است که پر از توصیههای خوب است. همچنین با خواندن کتابها، از تجربه دیگران یاد میگیرید، و فقط دو راه برای بهبود خودتان وجود دارد: یا از تجربه خودتان یاد بگیرید (که بسیار محدود است) یا از تجربه دیگران (که نامحدود است).
به یاد داشته باشید که بیشتر همیشه بهتر نیست. به جای خواندن ۵ کتاب، پیشنهاد میکنم دو کتابی را بخوانید که از خواندن چندباره آنها لذت میبرید. این دو کتاب نیز از فهرست کتابهای ضروری من برای برنامهنویسان جاوا هستند.
من فکر کردم که این مورد را به عنوان دومین آیتم قرار دهم، اما در نهایت سوم شد. به نظر من، این مهمترین کاری است که برای تبدیل شدن به یک برنامهنویس بهتر باید انجام دهید. بیشتر برنامهنویسان خوبی که دیدهام و با آنها آشنا شدهام، در زمینه ساختار دادهها، الگوریتمها و اصول پایهای علوم کامپیوتر بسیار مهارت دارند.
با یادگیری این موارد، میتوانید از امکانات موجود بهتر استفاده کنید. از آنجا که ساختار دادهها بخش کلیدی هر برنامهای است، داشتن دانش قوی در این زمینهها به شما در حل مسائل کمک میکند.
به همین ترتیب، آگاهی از اصول کلیدی برنامهنویسی، الگوریتمهای جستجو و مرتبسازی، و دیگر الگوریتمهای شناخته شده، مهارتهای برنامهنویسی شما را توسعه میدهد.
میتوانید در یک دوره جامع مثل "Data Structure and Algorithms: Deep Dive Using Java" شرکت کنید تا بیشتر با ساختارهای دادهای پایه، ویژگیهای آنها و زمان استفاده از آنها در برنامههای خود آشنا شوید. این یکی از بهترین دورههایی است که من در اینترنت پیدا کردهام.
و اگر مطالعه کتاب را بیشتر از دورههای آنلاین دوست دارید، میتوانید از این کتابها برای بهبود دانش خود در زمینه ساختار دادهها و الگوریتمها استفاده کنید.
یکی دیگر از موارد مهم برای تبدیل شدن به یک توسعهدهنده بهتر، یادگیری طراحی سیستم و معماری نرمافزار است. این چیزی است که میتواند تفاوت بین یک برنامهنویس با ۱۰ سال تجربه و یک برنامهنویس باتجربه را ایجاد کند.
شما باید با نحوه کار سیستمها، چگونگی همکاری بخشهای مختلف آنها، انواع مختلف معماریها مانند میکروسرویسها و مونولیت، مزایا و معایب آنها و غیره آشنا باشید.
اگر به منابعی نیاز دارید، من دوره "Grokking System Design Interview" را در وبسایت Educative به شدت توصیه میکنم. این دوره تعاملی و بخش دوم آن که درباره مسائل پیشرفته طراحی است، میتواند چیزهای مفیدی درباره طراحی و بهینهسازی سیستم به شما بیاموزد.
مشارکت در کدهای متنباز، بهویژه از پروژههایی مانند Apache، Google و برخی پروژههای دیگر، روش دیگری برای بهبود مهارتهای برنامهنویسی و تبدیل شدن به یک برنامهنویس بهتر است. تنها عضویت در فهرست پستی آنها و دنبال کردن بحثها، به شما چیزهای زیادی میآموزد.
از آنجا که بیشتر بحثها بین برنامهنویسان خوب انجام میشود، گوش دادن به آنها و درک مشکلات، رویکردها، راهحلها و دیدگاههای آنها به طور خودکار عادتهای برنامهنویسی خوبی را در شما توسعه میدهد.
برای بهرهبرداری بیشتر از این فرصت، فقط به صورت غیرفعال ننشینید، سوال بپرسید، نظر خود را ارائه دهید و به نظر دیگران نیز ارزش قائل شوید. اگر میپرسید که چگونه با مشارکت در پروژههای متنباز شروع کنید، در اینجا مقالات خوبی از Medium برای یادگیری درباره مشارکت در پروژههای متنباز وجود دارد.
خواندن وبلاگهای خوب بخشی کوچک از خواندن کتابها است. چگونه خواندن وبلاگها میتواند به شما کمک کند تا برنامهنویس بهتری شوید؟ خب، واقعاً کمک میکند. از آنجا که وبلاگها معمولاً توسط خود برنامهنویسان نوشته میشوند و بیشتر آنها نظرات و تجربیات شخصی خود را به اشتراک میگذارند، معمولاً محتوای آنها برای شما مرتبط و مفید است.
علاوه بر این، وبلاگها اطلاعاتی مختصر و مفید ارائه میدهند که به راحتی قابل هضم است. وبلاگها همچنین به یادگیری فناوریهای جدید و ویژگیهای جدید زبانها و APIهای موجود کمک میکنند.
بارها پیش آمده که در یک پست وبلاگی کوتاه، نکات ظریف یا چیزهایی را از بخشی شناختهشده از جاوا که ممکن است از قلم افتاده باشد، دیدهام. وقتی به دنبال مقالات خوب توسعه هستم، ترجیح میدهم به وبسایتهایی مثل Dev.to، FreeCodeCamp و Medium، بهویژه نشریات متمرکز بر توسعهدهندگان، مراجعه کنم.
اگر خواندن وبلاگها به شما کمک میکند تا برنامهنویس بهتری شوید، خواندن کد حتی بیشتر از آن کمک میکند؛ اما در عین حال، خواندن وبلاگها آسان است و خواندن کد دشوارتر است. آیا مقاومت میبینید؟ پس باید آن را امتحان کنید.
به کد پروژههای متنباز، کد برنامهنویسان همکار، کدهای موجود در کدهای اختصاصی خود، کدهای SDK جاوا نگاه کنید و سعی کنید بفهمید چگونه کار میکنند؛ سعی کنید ببینید آنها چه کارهایی انجام میدهند و چرا این کارها را انجام میدهند.
الگوها را پیدا کنید، مهارتهای ناوبری را توسعه دهید؛ در ابتدا ممکن است این کار خستهکننده و دشوار به نظر برسد، اما با گذشت زمان حس کد خوبی پیدا خواهید کرد که به شما در شناسایی اشتباهات خود، پیدا کردن اشتباهات و کاستیها و بوی بد کد کمک میکند.
این حس کد یکی از نشانههای یک برنامهنویس بهتر است؛ آنها معمولاً به دنبال چیزهایی هستند که شما از دست دادهاید.
تستهای واحد فرآیند تفکر و کدنویسی را تکمیل کرده و به شما کمک میکنند تا طراحی بهتری داشته باشید. هر چیزی که تست کردن آن دشوار باشد، فرصتی برای بهبود دارد. همچنین، نوشتن تستهای واحد در پیدا کردن نامهای بهتر، انتزاع بهتر، رابطهای بهتر، طراحی کلاسهای انتزاعی و به طور کلی بهبود کیفیت کد بسیار کمک میکند.
اما مانند کدنویسی و طراحی، تست واحد نیز برای برنامهنویسان متوسط کار دشواری است و شما مقاومت زیادی را در این زمینه خواهید دید. برخی از برنامهنویسان تستهای بیاهمیت مینویسند به جای اینکه به سناریوهای استفاده فکر کنند.
به یاد داشته باشید، هیچ چیزی نمیتواند جایگزین تفکر در فرآیند شود. پس از تحلیل، طراحی و توسعه، تست واحد فرصتی دیگر برای بررسی سناریوها و شکافهای موجود در کد شماست. این را به یک قاعده تبدیل کنید: همیشه برای کد خود تست واحد بنویسید.
اگر میخواهید تست واحد را در جاوا یاد بگیرید، پیشنهاد میکنم با JUnit و Mockito آشنا شوید، که دو فریمورک ضروری برای تست واحد در جاوا هستند. و اگر به دوره آموزشی نیاز دارید، پیشنهاد میکنم به دوره "JUnit 5 in 20 steps" از Ranga Karnan در Udemy بپیوندید.
این دوره توسط مهندس سام نیک زاد در آموزشگاه برنامه نویسی آواسام برگزار شده است که با سرچ گوگل به راحتی میتوانید در آن شرکت کنید.
مانند تستهای واحد، بررسی کد نیز یکی از روشهای توسعه است که به شما کمک میکند تا برنامهنویس بهتری شوید. بررسی کد به هر دو طرف، یعنی بازبینیکننده و نویسنده، کمک میکند؛ بازبینیکننده حس کد خود را بهبود میبخشد و مشاوره صادقانهای ارائه میدهد، در حالی که نویسنده از اشتباهات خود یاد میگیرد.
اغلب پیش میآید که کدی که فکر میکنید بدون نقص است، دارای باگهایی است که تنها دیگر برنامهنویسان میتوانند آنها را ببینند. بررسی کد و چک کردن توسط دو چشم این کار را برای شما انجام میدهد.
اگر خوششانس باشید و فرصتی برای کار در شرکتی که تستهای واحد و بررسی کد را به عنوان یک قاعده دارد، پیدا کنید، احتمالاً برنامهنویس بهتری خواهید بود. این دو روش به شدت به بهبود مهارتهای برنامهنویسی کمک میکنند.
اگر میپرسید در بررسی کد چه نکاتی را باید بررسی کنید، پیشنهاد میکنم بررسی کنید که آیا کد از نظر عملکردی صحیح است، آیا استانداردها و روشهای طراحی مانند اصول طراحی SOLID و کنوانسیونهای نامگذاری جاوا رعایت شدهاند یا خیر. همچنین میتوانید بررسی کنید که آیا تستهای واحد کافی وجود دارد یا نه، که اغلب نادیده گرفته میشود.
خواندن یک فعالیت غیرفعال است در مقایسه با صحبت کردن. صحبت کردن درباره یک برنامه و بحث درباره آن با یک برنامهنویس همکار اغلب به حل بهتری منجر میشود؛ این طبیعی است زیرا ذهن شما وقتی صحبت میکنید و به دیگران گوش میدهید، بیشتر درگیر میشود.
من در حین بحث با اعضای تیم، شکافها، نیازهای گمشده، باگها و نقصهای طراحی را پیدا کردهام. در صنعت نرمافزار، جایی که برنامهنویسان معمولاً خود را با کامپیوترهایشان تنها میسازند، صحبت کردن، به اشتراک گذاشتن و برگزاری جلسات وایتبرد به شدت کمککننده است.
فقط ننشینید و کدنویسی کنید؛ صحبت کنید، گوش دهید، فکر کنید و با برنامهنویسان همکار خود وقت بگذرانید. شرکت در رویدادها نیز مفید است. شما ممکن است نکات مفید و تمرینهایی برای تبدیل شدن به یک توسعهدهنده بهتر شبانه پیدا کنید، مانند این :-)
این نیز نوعی فعالیت است که به شما کمک میکند تا دانش خود را مرور کنید. با به اشتراک گذاشتن دانش، اولین کسی که بهرهمند میشود، همان کسی است که دانش را به اشتراک میگذارد. از آنجا که برنامهنویسی بسیار گسترده است، شما ممکن است بسیاری از چیزهایی را که بیش از سه ماه استفاده نکردهاید فراموش کنید.
شرکت در StackOverflow، پاسخ دادن به سوالات دیگران، کامنت گذاشتن در وبلاگها و انجمنها راهی خوب برای مرور دانش و اصلاح تصورات نادرست شماست.
با به نمایش گذاشتن دانش خود به دیگران، هم به آنها کمک میکنید و هم دانش خود را به چالش میکشید. بارها پیش آمده که شخصی از دانش شما بهرهمند شده و در عین حال تصورات نادرست شما نیز اصلاح میشود.
هر برنامهنویسی میخواهد برنامهنویس بهتری شود، اما همه موفق نمیشوند. علاوه بر استعداد طبیعی در برنامهنویسی و حل مسئله، تبدیل شدن به یک برنامهنویس بهتر نیاز به تلاش زیاد، یادگیری مداوم و پشتکار دارد.
هرچه بیشتر در کارهای واقعی مانند کدنویسی، طراحی، تست واحد و بررسی کد فعالیت کنید، بهتر خواهید شد. اگر در حال حاضر فقط میخواهید یک کار را انجام دهید، پیشنهاد میکنم به سراغ خواندن کد تمیز (Clean Code) بروید.
لاراول فریمورکی برای زبان برنامه نویسی PHP است که برای توسعه ی وب سایت ساخته شده است ، امکاناتی که لاراول در اختیار یک برنامه نویس وب میزاره بی نظیر هست و با استفاده از آنها در مدت زمان کم میتونه پروژه های خوبی رو پیاده سازی بکنه.
شما میتونید با Laravel فروشگاه اینترنتی کاملا اختصاصی بسازید و با استفاده از امکانات آن امنیت و سرعت را برای فروشگاه تامین کنید.
لاراول برخلاف فروشگاه سازهای اماده مثل وردپرس ، ووکامرس ، اپن کارت و ... سیستمی به شما تحویل میدهد که کاملا برنامه نویسی شده و کاملا اختصاصی هست.
اولین دلیل برای اینکه فریمورک لاراول را انتخاب کنید استفاده از زبان برنامه نویسی پی اچ پی است. پی اچ پی پرمخاطب ترین زبان برنامه نویسی جهان در سمت وب میباشد و قطعا این زبان آزمون های خود را پس داده است و پروژه های بسیار بزرگی در سطح جهانی نیز با این زبان پیاده سازی شده است.
فریمورک لاراول برای زبان برنامه نویسی پی اچ پی ساخته شده است و قطعا برای یادگیری لاراول ابتدا باید پی اچ پی را آموخته باشید.
دومین دلیل بروزرسانی های مداوم فریمورک لاراول و همچنین تامین امنیت و سرعت پروژه ی شما میباشد.
بعلت اینکه بسیاری از امکانات مد نظر در فریمورک لاراول از قبل برنامه نویسی و آماده شده است در زمان توسعه ی یک فروشگاه اینترنتی بسیار صرفه جویی خواهد شد. آموزش های فراوانی برای یادگیری لاراول وجود دارد و من خودم به شخصه از آموزش های مهندس نیکزاد در وب سایت آواسام جهت یادگیری لاراول استفاده کردم.
نمونه سایت معروف ایرانی که برای ساختن فروشگاه اینترنتی خود از فریمورک لاراول استفاده کرده است سایت فروشگاهی باسلام میباشد.
دیجی کالا در ابتدا از سیستم دات نت برای پیاده سازی فروشگاه آنلاین خود بهره میگرفت اما پس از گذشت چند سال و ورود تکنولوژی های بهتر ، تصمیم گرفتند که فروشگاه خود را با زبان برنامه نویسی پی اچ پی و با استفاده از یک فریمورک اختصاصی مشابه لاراول پیاده سازی کنند.
اینکه دیجیکالا از تکنولوژی های دیگری نیز بهره گرفته یا نه تقریبا یک راز است چون هیچکس نمیتواند به سیستمی که در پشت صحنه ی دیجیکالا هست دسترسی داشته باشد و آنها صرفا در سمت سرور به عملیات خود ادامه میدهند و ما فقط نتیجه ی رندر شده و نهایی را میتوانیم ببینیم و شاید براساس آنها حدسیاتی بزنیم
اما تا به حال نشانه ای نبوده که بفهمیم سایت دیجیکالا با فریمورک لاراول پیاده سازی شده باشد.
سایت ها و پروژه های دیگری مثل آپارات مثل باسلام و .... از لاراول استفاده میکنند.
در یکی از پروژه های خودم که مشتری از من درخواست کرده بود یک فروشگاه اینترنتی مشابه دیجیکالا را بسازم و من تجربه ی زیادی را در این مسیر کسب کردم اما تونستم با موفقیت فروشگاه را با لاراول بسازم و تحویل دهم
در این زمان من دنبال فریمورک های دیگری نیز بودم مثل جنگو پایتون و ... اما راه حل نهایی من استفاده از لاراول بود
آموزش های زیادی را طی کردم اما دوره ای که به من کمک کرد و دقیقا منطبق بر نیاز های پروژه ی من بود یک دوره بود به اسم دوره ی آموزش پروژه محور ساخت دیجیکالا با لاراول به همراه سورس کد که مهندس نیکزاد در سایت آواسام برگزار کرده بود.
علاوه بر اینکه تخصص برنامه نویسی با لاراول را یاد گرفتم که در پروژه های بعدی نیز برای من سودمند بود بلکه سورس کد آماده نیز درون دوره بود که من با استفاده از آن سورس کد که مشابه دیجی کالا بود تقریبا 80% جلوافتادم و همیشه هرکجا میگم این بهترین تجربه تو زندگیم بود.
فرض کنید میخواهیم یک کاری را شروع کنیم مثلا ساختن یک آپارتمان ، آیا امکان دارد بدون اینکه پی ریزی خوبی انجام دهیم دیوارهای مستحکمی را روی آن بنا کنیم؟ قطعا نه ! در شروع آموزش برنامه نویسی نیز یک سری مبانی و مقدمات نیاز هست که بدون یاد گرفتن آنها شما نمیتوانید برنامه نویس خوبی بشید.
درک الگوریتم و فلوچارت یکی از این مبانی است که برای هر شخصی که در حیطه ی برنامه نویسی فعالیت میکند واجب است که آنرا به صورت کامل درک کند . در این مقاله بصورت روان و ساده درباره ی الگوریتم و فلوچارت براتون مینویسم.
به زبان ساده الگوریتم یعنی انجام کارها بصورت مرحله به مرحله و کاملا مشخص و اگر بخوام مثال بزنم فرض کنیم میخواهیم خانه را رنگ آمیزی کنیم. از زمانی که این تصمیم را میگیریم دقیقا کارهایی که میکنیم به شکل زیر است:
خطوط بالا که مرحله به مرحله و بصورت خیلی ساده شیوه ی انجام یک کار را به شما نشان میدهد در کامپیوتر و برنامه نویسی ، الگوریتم نامگذاری شده است.
علاوه بر اینکه شما میتوانید برای هرکاری یک الگوریتم کاملا جدید بنویسید میتوانید از انواع الگوریتم های اماده که قبلا طراحی شده اند نیز استفاده کنید.
الگوریتم بصورت گسترده ای در دنیای برنامه نویسی ، آی تی ، هوش مصنوعی و زمینه های مشابه استفاده میشود و معمولا مشکلات و مسائل با استفاده از الگوریتم مشخص بصورت گام به گام حل میشود تا در زمان صرفه جویی شود.
کمی که جلوتر میرویم میبینیم که بعضی اوقات قرار است ما چیزی بعنوان ورودی و چیزی به عنوان خروجی داشته باشیم همچنین ما میتوانیم شرط گذاری کنیم. به مثال زیر توجه کنید.
الگوریتمی بنویسید که یک عدد را از کاربر دریافت کند و زوج یا فرد بودن آن را نشان دهد . تا زمانی که عدد وارد شده زوج باشه دوباره عدد بگیره و اگه عدد فرد بود برنامه تمام شود.
1-شروع
2-یک عدد از کاربر دریافت کن
3-باقیمانده عدد بر 2 را حساب کن
4-اگر باقیمانده صفر بود یعنی زوج است برو خط 5 وگرنه عدد فرد است برو خط 6
5-عبارت " عدد زوج است " را چاپ کن و برو خط 2
6-عبارت " عدد فرد است " را چاپ کن
7-پایان
همانطور که میبینید در پاسخ به سوال بالا ورودی داریم که یک عدد است و خروجی دو عبارت است که نشان میدهد عدد فرد بوده یا زوج و همچنین شرط گذاری کردیم ( در خط 4 )
در قسمت بالا با الگوریتم و الگوریتم نویسی آشنا شدیم. حال اگر بخواهیم همون الگوریتم ها را بصورت تصویری در بیاریم و با اشکال هندسی نمایش بدیم از فلوچارت استفاده میکنیم.
فلوچارت همون الگوریتم هست ولی بصورت تصویری و با استفاده از چند شکل ساده که هر کدام به منزله ی یک چیز از الگوریتم است که در زیر بهش میپردازیم
اهمیت فلوچارت در برنامه نویسی خیلی زیاد است اگر شما بصورت تصویری و با اشکال بتوانید شیوه ی حل مسائل کوچک را یاد بگیرید ، ذهن شما آماده ی حل مسائل بزرگتر در آینده خواهد بود.
بعد از یادگیری الگوریتم و فلوچارت ، اگر بخواهید آنها را بصورت کدهای برنامه نویسی دربیارید باید برنامه نویسی بلد باشید اما همیشه نیاز نیست شما تخصص برنامه نویسی داشته باشید و شما میتوانید با استفاده از شبه کد الگوریتم یا فلوچارت خود را به کد تبدیل کنید.
شبه کد را میتوانید در لپتاپ یا حتی روی کاغذ بنویسید زیرا هرگز نیاز به اجرا ندارد.
شبه کد که نام انگلیسیش Pseudocode در تقویت یادگیری برنامه نویسی بسیار موثر هست و شما میتوانید نحوه ی نوشتن شبه کد را از دوره های مختلفی یاد بگیرید.
یکی از بهترین دوره های آموزشی در وب فارسی که من شخصا ازش راضی بودم دوره ی 12 قدم شروع برنامه نویسی با تدریس مهندس سام نیکزاد بود چون برخلاف دیگر دوره ها توش الگوریتم فلوچارت و... کامل پوشش داده شده و کسی که با این دوره شروع میکند بعدا به مشکلات دیگری که مربوط به مبانی باشد برخورد نمیکنه
همچنین تمام مفاهیم بالا درون دوره به زبان برنامه نویسی سی پلاس پلاس هم تدریس میشه
طبق تجربه ی شخصی خودم ، دوره ی 12 قدم یکی از اصولی ترین دوره های آموزشی برای یادگیری و ورود به دنیای برنامه نویسی است که با دوره های دیگه خیلی متفاوته و واقعا چیزهایی که نیازه را بصورت اصولی به شما آموزش میدهد
تهیه دوره ی آموزش 12 قدم شروع برنامه نویسی
موفق باشین
امروزه بیشتر کسب و کارها به بستر اینترنت مهاجرت کرده اند ، اینترنت در ایران در حال گسترش است و روز به روز به تعداد کاربران اینترنت اضافه میشود ، این دنیای پرمخاطب بهترین مکان برای کسب و کارها میباشد تا فروش خود را افزایش دهند. اما برای ساخت فروشگاه اینترنتی مثل دیجیکالا که درآمد میلیاردی دارد باید با نحوه ی ساختن آن و علم آن آشنا باشید تا بتوانید خودتان نیز چنین فروشگاهی را بسازید.
فروشگاه آنلاین دیجی کالا الگوی بسیاری از فروشگاه های اینترنتی است و دلیلش هم این است که این فروشگاه از هر نظر برنده ی اینترنت بوده و بسیاری از رقبای خود را کنار زده و به موفقیت بالایی در اینترنت رسیده است.
ویدیو ها و آموزش های زیادی در اینترنت منتشر میشود که در عنوان آن ذکر شده است شما میتوانید بدون هیچ دانش و تخصص برنامه نویسی ، فروشگاه اینترنتی بسازید که همگی بیهوده و فقط جنبه ی تبلیغاتی دارند. شما باید خودتان برنامه نویس باشید یا از یک برنامه نویس حرفه ای کمک بگیرید تا بتوانید یک فروشگاه اینترنتی برنامه نویسی کنید.
هر وب سایت یا اپلیکیشن که شما استفاده میکنید توسط برنامه نویس یا برنامه نویسان ساخته شده است و آنها به کمک زبان های برنامه نویسی ( که در ادامه مقاله معرفی خواهم کرد ) آنها را میسازند.
فروشگاه های اینترنتی معمولا ابتدا وب سایت هستند ، سپس برای جذب مشتری بیشتر اپلیکیشن مناسب با اندروید و آیفون نیز تولید و منتشر میکنند.
حال شما باید مشخص کنید آیا سایت برای شما کافی است یا نیاز به اپ موبایلی هم دارید؟
اگر نیاز به اپلیکیشن موبایلی فروشگاهی مثل دیجی کالا داشته باشید باید برنامه نویسی موبایل نیز بلد باشید تا بتوانید اپلیکیشن را برنامه نویسی و منتشر کنید.
شاید بپرسید داشتن اپلیکیشن چه ضرورتی دارد ؟
منتشر کردن اپلیکیشن در مارکت های موبایلی مثل کافه بازار باعث میشود که اپلیکیشن شما در معرض دید میلیون ها کاربر موبایلی قرار بگیرد .
همچنین نصب شدن اپلیکیشن روی گوشی باعث میشود تا کاربر مداوم به فروشگاه شما سر بزند و آنرا فراموش نکند. اگر کاربر یک سایت فروشگاهی را در مرورگر خود باز کند ممکن است بعد مدتی آنرا فراموش کند و احتمال برگشت او بسیار کاهش پیدا میکند.
بطور خلاصه شما باید برنامه نویسی بلد باشید ، هر سایت و هر اپلیکیشن که استفاده میکنید توسط برنامه نویسان ساخته شده اند.
برخلاف چیزایی که در اینترنت نوشته میشه یادگیری برنامه نویسی اصلا سخت نیست و شما میتوانید با دوره های آموزشی خوب برنامه نویسی که تولید میشن ، برنامه نویسی یاد بگیرید و علاوه بر اینکه میتونید فروشگاه شخصی خودتان را بسازید میتوانیدانواع سایت ها و اپلیکیشن های دیگر را هم تولید کنید.
زبان ها و تکنولوژی های فراوانی وجود دارد که با استفاده از آنها میتوانید سایت و اپلیکیشن بسازید ولی من مناسب ترین آنها را برای برنامه نویسی وب و اپلیکیشن مشابه دیجیکالا آماده کردم و در لیست زیر قرار دادم که میتوانید از انها استفاده کنید.
بعد از سالها تجربه ی برنامه نویسی و تحقیقات فراوان به این نتیجه رسیدم که بهترین زبان برنامه نویسی برای ساختن فروشگاه اینترنتی قطعا زبان PHP است و این زبان یک فریمورک ( چهار چوب ) در کنار خود ارائه میکند به نام لاراول ( Laravel ) که برای ساخت یک فروشگاه اینترنتی کاملا اختصاصی بسیاری مناسب است.
همچنین برای پایگاه داده و ذخیره سازی اطلاعات شما باید کار با mysql را بلد باشید
برای ساختن اپلیکیشن موبایلی نیز شما باید زبان برنامه نویسی کاتلین ( Kotlin ) را یاد بگیرید.
شروع برنامه نویسی وب با زبان های زیر میباشد که به ترتیب باید یاد بگیرید :
و برنامه نویسی موبایل نیز نیاز به تخصص های زیر دارد :
البته توجه فرمایید که برنامه نویسی موبایل با برنامه نویسی وب دو تخصص کاملا جدایی هستند و شما مجبور نیستید هر دو را یاد بگیرید اگر یکی را یاد گرفتید و فروشگاه خود را بالا آوردید میتوانید برای تخصص دومی از یک برنامه نویس دیگر استفاده کنید که آنرا هم میتوانید از طریق اینترنت و سایت های کاریابی مثل جابینجا پیدا کنید.
برای آموزش برنامه نویسی فروشگاه اینترنتی مثل دیجیکالا ، یک پروژه داشتم برای این پروژه نیاز شدید به تخصص هایی داشتم که هم بتوانم سایت فروشگاهی را بسازم هم اپلیکیشن موبایلی !
دنبال آموزش های متنوع رفتم چون من فقط برنامه نویسی وب با PHP بلد بودم و لاراول و کاتلین و ... را اصلا بلد نبودم
تا دوره ی آموزشی پیدا کردم که درونش همه ی موارد بالا را پوشش داده بود و سورس کد آماده ی دیجیکالا را هم درون خود گنجانده بود.
دوره توسط استاد سام نیکزاد برگزار شده و واقعا یکی از بی نظیرترین دوره های آموزشی وب فارسی است
تخصص هایی که توش یاد میده به شرح زیره :
این دوره را میتوانید از سایت avasam.ir پیدا کنید البته در گوگل سرچ کنید دوره ی آموزش ساخت دیجیکالا سایت آواسام هم برای شما میاره و میتونید در دوره شرکت کنید و از سورس کدش هم استفاده کنین
بسیاری از افراد به دنبال سورس کد آماده ی اپلیکیشن و سایت مشابه دیجیکالا میگردند و پیدا کردن آن در سطح وب نیز بسیار سخت است. خیلی از سورس ها با استفاده از سایت ساز های اماده مثل وردپرس یا ووکامرس هستند که اصلا برای پروژه های واقعی پیشنهاد نمیشوند. هرگز سمت چنین سورس ها و قالب هایی نروید چون هدر دادن وقت و پول شما میباشد.
سورس دیجی کالا بصورت کاملا اختصاصی با فریمورک لاراول ( laravel ) و اپلیکیشن مشابه دیجیکالا با زبان کاتلین ( Kotlin ) نوشته شده است که از قدرت ، امنیت و سرعت عالی برخوردار است.
من یک پروژه ی ساخت فروشگاه اینترنتی مشابه دیجیکالا داشتم و بعد از تحقیقات فراوان به سورس کد درج شده در دوره ی اموزش ساخت دیجیکالا سایت آواسام رسیدم و از سورس آن به همراه آموزش استفاده کردم
این سورس از آخرین ورژن لاراول و زبان عالی و جدید کاتلین استفاده میکنه
هیچ مشکلی نداشتم و به راحتی تونستم از سورس کد اماده ی درون این پروژه استفاده کنم و پروژه ی خودم را تحویل بدهم
به همین علت معرفیش میکنم که اگر شما هم نیاز به سورس فروشگاه اینترنتی مشابه دیجیکالا دارید حتما ازش استفاده کنید.
لینک سورس کد دیجیکالا به همراه دوره ی آموزش پروژه محور برنامه نویسی سایت و اپلیکیشن دیجیکالا
اگر سوالی یا مشکلی داشتید پیام بزارید پاسخ میدهم