آیا می توانم یک توسعه دهنده نرم افزار شوم؟

چرا توسعه نرم افزار؟
قبل از شروع آموزش برنامه نویسی به شخص، بهتر است بدانیم که چه چیزی به او می دهد.1 کار ساده و جالب
مهندس نرم افزار کار ساده و جالبی است. فضای زیادی برای خلاقیت دارد. عاشقشم. ابتدا از این فکر کردم که کاری را که دوست دارم انجام می دهم و بابت آن پول می گیرم دیوانه شدم. اما در نهایت به آن عادت کردم.2 پرداخت خوبی دارد.
من به سادگی از تماشای دوستانم در حال خرید ماشین و خانه در 5 سال کار لذت می برم.3 ساعت انعطاف پذیر
برنامه کاری سختگیرانه چیز بدی است. هر فردی که تا به حال در ساعت شلوغی در ترافیک بوده یا به دلیل 5 دقیقه تاخیر جریمه شده است، می تواند آن را تایید کند. و در مورد اینکه بتوانید ساعت 11 صبح به محل کار خود برسید و ساعت 5 بعد از ظهر آن را ترک کنید چطور؟ برای اکثر برنامه نویسان این یک برنامه معمول است. فقط کار خود را انجام دهید و هیچ کس حرف متقاطع نمی گوید. حتی ممکن است در اکثر شرکت ها در خانه کار کنید. همیشه می توانید با کارفرمای خود به یک توافق معقول برسید.4 رشد حرفه ای
در اکثر شرکت ها برای دریافت حقوق خوب باید از نردبان شغلی بالا بروید. یک توسعه دهنده نرم افزار فقط باید یک توسعه دهنده نرم افزار باشد. شما مجبور نخواهید بود که از یک توسعه دهنده به مدیر دیگر صلاحیت شوید یا سعی کنید در موقعیتی پیشرو باشید. تنها کاری که باید انجام دهید رشد حرفه ای است. توسعه دهندگانی که 5 تا 10 سال سابقه کار دارند به صورت سلطنتی حقوق دریافت می کنند.5 تحرک بین المللی بالا.
سه حرفه پردرآمد در جهان وجود دارد: یک وکیل، یک پزشک و یک توسعه دهنده نرم افزار. این یک چالش واقعی برای وکلایی است که در خارج از کشور کار می کنند: قوانین مختلف، رویه قضایی و غیره. یک پزشک باید زبان، سایر استانداردهای پزشکی را یاد بگیرد و امتحانات را بگذراند. یک توسعه دهنده نیازی به یادگیری چیزهای اضافی نخواهد داشت. همون زبان همان استانداردها در اکثر مواقع حتی مشتریان یکسان هستند.چرا جاوا؟
مجموع سه عامل زیر باعث شد افراد را برای توسعه دهندگان جاوا بازآموزی کنم.1. جاوا - یکی از ساده ترین زبان ها برای یادگیری است.
فردی که به تازگی مدرسه را به پایان رسانده است، بسته به دانش پایه و تعداد ساعات مطالعه، می تواند آن را در 3 تا 6 ماه یاد بگیرد.2. تقاضای بالا در بازار کار.
شما می توانید بدون تجربه قبلی کار پیدا کنید. شرکت ها کارآموزان را مشتاقانه استخدام می کنند و به آموزش آنها ادامه می دهند.3. بالاترین حقوق در این زمینه.
یکی از بالاترین. این امر به ویژه برای توسعه دهندگان جوان بسیار مهم است.برنامه نویسی یک مهارت است

روش نوین آموزش نوین
آموزش CodeGym به روشی متفاوت از تحصیلات دانشگاهی ساخته شده است. خیلی زود متوجه آن خواهید شد. خیلی موثرتره مطالعات شما در کالج احتمالاً به این صورت بوده است: سخنرانی های طولانی و تمرین برای به نتیجه رساندن آنچه یاد گرفته اید. با پیروی از این رویکرد، دانش خود را ارتقا می دهید، نه مهارت های خود را. صادقانه بگویم، مهارتهایی که از این طریق به دست میآیند، عملاً ارزشی ندارند. من رویکرد دیگری دارم. من معتقدم که یک شخص باید ابتدا سوال بپرسد و فقط بعد از آن پاسخ آن را دریافت کند. پاسخ قبل از سوال ارزشی ندارد. سخنرانی های من پاسخی به سوالات شماست. بنابراین ابتدا به شما کارهای عملی می دهم که حل آنها با دانش فعلی شما دشوار است. این کارها سوالاتی را ایجاد می کند و سپس شما پاسخ های من را دریافت می کنید که دانش و سخنرانی است. من دانش جدید را در سه مرحله به شما ارائه می کنم:-
مقدمه (حداقل تئوری و چند کار عملی)
-
دانش بلوک اصلی (شما باید موضوع را کاملاً درک کنید)
-
جزئیات و تفاوت های ظریف (من در اینجا شکاف ها را پر می کنم)
سطح 5

1 الی در مورد کلاس ها صحبت می کند
- هی، آمیگو! - سلام الی! - امروز می خوام براتون توضیح بدم که کلاس ها چیه. - توضیح شماره 1. من با یک قیاس شروع می کنم. همه چیز در جهان ما از اتم ساخته شده است. آنها می توانند انواع مختلفی داشته باشند: هیدروژن، اکسیژن، آهن، اورانیوم، ... ترکیب اتم ها باعث ایجاد چیزها یا اشیاء مختلف می شود. - همین امر در مورد جهان جاوا نیز صادق است. در اینجا برنامه ها از اشیاء انواع مختلفی تشکیل شده اند (که کلاس یک نوع است): عدد صحیح، رشته، فایل، شی، ... ترکیب اشیاء امکان ایجاد سرویس ها یا برنامه های مختلف وب را فراهم می کند. - اتم های مختلف ساختار داخلی متفاوتی دارند. آنها حاوی تعدادی الکترون، پروتون و نوترون هستند. - کلاس های مختلف (انواع شی در جاوا) ساختار داخلی متفاوتی نیز دارند. آنها شامل متغیرها و روش های مختلفی هستند. - بله، من تصور کلی از ساختار اتم دارم. من یک ربات هستم، نه؟ - بیایید به برنامه به عنوان یک کل نگاه کنیم: اشیا مانند بلوک های ساختمانی هستند که برنامه را تشکیل می دهند. کلاس ها انواعی از آن بلوک ها هستند. بلوک های انواع مختلف اشیایی از کلاس های مختلف هستند. - یه جورایی فهمیدم. - توضیح شماره 2. زمانی که به نوع جدیدی از شی نیاز داریم یک کلاس جدید ایجاد می کنیم. در این کلاس رفتار مورد نظر اشیا را توصیف می کنیم. -خب من یه چیزی فهمیدم ولی مطمئن نیستم. - با در نظر گرفتن ساختار داخلی، کلاس شامل متدهای کلاسی است که کاری را انجام می دهند و از متغیرهای کلاسی که متدها داده های مشترک را ذخیره می کنند. - به عبارت ساده، کلاس مجموعه ای از متدها است؟ - تقریباً، به طور خاص، کلاس گروهی از متدها است که با هم کار می کنند و متغیرهایی که در آنها متدها مقادیر مختلفی را برای اشتراک گذاری ذخیره می کنند. - آره برای ایجاد یک کلاس جدید، باید این متدها را بنویسیم... - بله. ما همچنین باید تصمیم بگیریم که کدام متغیرها توسط متدهای مختلف به اشتراک گذاشته شوند، و سپس متغیرها را از یک متد به کلاس خارج کنیم: متغیرهای متد را به متغیرهای کلاس تبدیل کنیم. - کلاس ها بر اساس الگوی زیر ایجاد می شوند: 1 برنامه نویس تصمیم می گیرد که به چه چیزهای دیگری نیاز دارد. 2 برنامه نویس این اشیا را بسته به کاری که انجام می دهند به انواع مختلفی تقسیم می کند. 3 برنامه نویس برای هر نوع یک کلاس جداگانه می نویسد. 4 در کلاس متدها و متغیرهای لازم را اعلام می کند. 5 دستور باید در هر متد نوشته شود تا متد کاری را که برنامه نویس می خواهد انجام دهد. 6 کلاس آماده است، اکنون می توانید اشیاء آن را ایجاد کنید. - عالی! طرح جالبی است من آن را به خاطر بسپارم. - باید حفظش کنی، مفید خواهد بود. رویکرد برنامه نویسی که در آن برنامه به اشیاء تقسیم می شود، برنامه نویسی شی گرا نامیده می شود( OOP ). - جاوا یک نمونه کلاسیک از رویکرد OOP است، زیرا در جاوا همه چیز شی است. - یادگیری جاوا از دو وظیفه اصلی تشکیل شده است: یادگیری نوشتن کلاس های خود و یادگیری استفاده از کلاس های دیگران . امروز با ساده ترین چیزها شروع می کنیم. شما یاد خواهید گرفت که کلاس های ساده بنویسید و البته اشیاء آنها را بسازید. اشیاء اغلب نمونه های کلاس ها نامیده می شوند. اینها مترادف هستند، در هر صورت صحیح است. - فهمیدم. - به طور خلاصه می توانم بگویم که کلاس یک miniprogram است: مجموعه ای از داده ها و توابع که با این داده ها کاری انجام می دهند. یکی از ویژگی های مهم کلاس ها امکان ایجاد نمونه هایی از این کلاس ها (اشیاء) است. - برای ایجاد یک شی کلاس، باید در کد «new class_name()» بنویسید .

2 ریشا در مورد بسته ها صحبت می کند
- هی، آمیگو! حالا در مورد بسته ها به شما می گویم. - فایل های موجود در رایانه در پوشه ها گروه بندی می شوند. کلاس ها در جاوا (هر کلاس در یک فایل جداگانه است) توسط بسته هایی که پوشه های روی یک دیسک هستند گروه بندی می شوند. این چیز جدیدی نیست. اما دو نکته وجود دارد. - ابتدا ، «نام کامل کلاس منحصر به فرد» «نام بسته» + «نام کلاس» است . مثال:

آموزش تصویری 3 کیم شو
- هی، آمیگو! در اینجا چند آموزش ویدیویی، نحوه ایجاد کلاس ها و بسته ها آورده شده است:4 Elly، ایجاد اشیا، ارجاعات شی
- پس، ما آخرین بار کلاس ها را یاد گرفتیم. امروز می خواهم به شما بگویم که چگونه اشیا ایجاد کنید. خیلی ساده است: کلمه کلیدی new و نام کلاس را برای شیئی که می خواهیم ایجاد کنیم بنویسید:


5 دیگو، وظایف برای ایجاد کلاس ها و اشیاء خود
- هی، آمیگو! در اینجا چند کار برای ایجاد کلاس ها و اشیاء وجود دارد:وظایف | |
---|---|
1 | ایجاد یک کلاس گربه ایجاد یک گربه کلاس. گربه باید نام خود (نام، رشته)، سن (سن، بین المللی)، وزن (وزن، وزن) و قدرت (قدرت، بین المللی) را داشته باشد. |
2 | مبارزه با روش پیاده سازی روش مبارزه بولی (Cat AnotherCat): یک مکانیسم مبارزه را بسته به وزن، سن و قدرت گربه ها اجرا کنید. خودت وابستگی درست کن این روش باید تعیین کند که آیا گربه فعلی (شیئی که روش مبارزه با آن نامیده می شد) یا گربه دیگری برنده مبارزه شده است، یعنی اگر گربه فعلی برنده شد true و اگر برنده نشد، false را بازگرداند. شرط زیر باید رعایت شود:
|
3 | گیرنده و تنظیم کننده برای کلاس سگ < ایجاد کلاس سگ. سگ باید یک نام داشته باشد - نام رشته و سن - بین سن. برای همه متغیرهای کلاس Dog getters و setter ایجاد کنید. |
4 | C reate سه شی از نوع Cat سه شی از نوع Cat را در متد main ایجاد کنید و آنها را با داده پر کنید. از کلاس Cat اولین کار استفاده کنید. کلاس Cat را ایجاد نکنید. |
5 | سه دعوای دو نفره بین گربه ها برگزار کنید با استفاده از کلاس Cat سه گربه ایجاد کنید. سه مبارزه دونفره بین گربه ها برگزار کنید. کلاس Cat را ایجاد نکنید. برای مبارزه، از روش مبارزه بولی (Cat AnotherCat) استفاده کنید. نمایش نتیجه هر مبارزه. |
6 ریشا در مورد مقداردهی اولیه شی صحبت می کند
- می خواهم در مورد مقداردهی اولیه شی به شما بگویم. هنگامی که یک شی ایجاد میشود، لازم است که دادههای راهاندازی را به متغیرهای آن اختصاص دهید تا از موقعیتی که سعی میکنید به یک شی دسترسی داشته باشید و برای درست کار کردن آن هیچ دادهای لازم نیست، اجتناب کنید. - بیایید یک شی از نوع File را در نظر بگیریم. حداقل اطلاعات لازم برای فایل نام آن است. فایل بدون نام مزخرف است. - فرض کنید در حال نوشتن نسخه خود از کلاس File (به عنوان مثال MyFileClass) برای کار با فایل ها هستید. برای هر شیء از این کلاس چه اطلاعاتی لازم است؟ - نام فایلی که این شی با آن کار خواهد کرد؟ - درست است. به همین دلیل است که متد ()initialize را به کلاس خود اضافه می کنیم. به این صورت خواهد بود:



7 دیگو، وظایف مقداردهی اولیه شی
- هی، آمیگو! من بدون درس هایمان حوصله ام سر رفته است. در اینجا برخی از وظایف اولیه سازی شی وجود دارد:وظایف | |
---|---|
1 | ایجاد یک کلاس Friend ایجاد یک کلاس Friend با سه مقداردهی اولیه (سه روش اولیه): - نام - نام، سن - نام، سن، جنسیت |
2 | ایجاد یک کلاس Cat یک کلاس Cat با پنج مقدار اولیه ایجاد کنید: - نام - نام، وزن، سن - نام، سن (وزن استاندارد) - وزن، رنگ، (نام، آدرس و سن مشخص نیست، گربه کوچه است) - وزن، رنگ، آدرس (این گربه خانه شخص دیگری است) وظیفه Initializer این است که یک شی را معتبر کند. به عنوان مثال، اگر وزن نامشخص است، باید مقداری وزن متوسط را مشخص کنید. یک گربه اصلاً نمی تواند وزن داشته باشد، به همین ترتیب سن. اما می تواند بدون نام (null) باشد. همین امر در مورد آدرس نیز صدق می کند - می تواند تهی باشد. |
3 | ایجاد یک کلاس Dog یک کلاس Dog با سه مقداردهی اولیه ایجاد کنید: - نام - نام، ارتفاع - نام، ارتفاع، رنگ |
4 | ایجاد یک دایره کلاس ایجاد یک دایره کلاس با سه مقدار اولیه: - centerX، centerY، شعاع - centerX، مرکزY، شعاع، عرض - مرکزX، مرکزY، شعاع، عرض، رنگ |
5 | یک کلاس Rectangle ایجاد کنید یک کلاس Rectangle ایجاد کنید. داده های آن بالا، چپ، عرض و ارتفاع خواهد بود. تا جایی که ممکن است روش های مقداردهی اولیه (...) را برای آن بنویسید. مثال ها: - 4 پارامتر باید تنظیم شود: چپ، بالا، عرض، ارتفاع - عرض/ارتفا تنظیم نشده است (هر دو برابر 0) - ارتفاع تنظیم نشده است (برابر با عرض)، یک مربع ایجاد کنید - یک کپی از مستطیل دیگر ایجاد کنید (در پارامترها ارسال می شود) |
8 الی در مورد سازنده ها صحبت می کند
- وقت آن است که در مورد سازنده ها به شما بگویم. خیلی ساده است: برنامه نویسان یک نماد مختصر برای ایجاد و مقداردهی اولیه شی اختراع کردند:

- نام متد سازنده همان نام کلاس است (به جای مقداردهی اولیه ).
- متد سازنده هیچ نوع بازگشتی ندارد (اصلاً نوع مشخصی ندارد).
9 دیگو، وظایف سازنده
- فکر می کنم کمی استراحت کردی. خوب. در اینجا برخی از وظایف ایجاد سازنده آورده شده است:وظایف | |
---|---|
1 | ایجاد یک کلاس Friend یک کلاس دوست با سه سازنده ایجاد کنید: - نام - نام، سن - نام، سن، جنسیت |
2 | یک کلاس Cat ایجاد کنید یک کلاس Cat با پنج سازنده ایجاد کنید: - نام، - نام، وزن، سن - نام، سن (وزن استاندارد) - وزن، رنگ، (نام، آدرس و سن نامشخص است. گربه کوچه است) - وزن، رنگ، آدرس (این گربه خانه شخص دیگری است) وظیفه Initializer این است که یک شی را معتبر کند. به عنوان مثال، اگر وزن نامشخص است، باید مقداری وزن متوسط را مشخص کنید. یک گربه اصلاً نمی تواند وزن داشته باشد، به همین ترتیب سن. اما می تواند بدون نام (null) باشد. همین امر در مورد آدرس نیز صدق می کند - می تواند تهی باشد. |
3 | ایجاد یک کلاس Dog یک کلاس Dog با سه سازنده ایجاد کنید: - نام - نام، ارتفاع - نام، ارتفاع، رنگ |
4 | ایجاد یک دایره کلاس ایجاد یک دایره کلاس با سه سازنده: - centerX، centerY، شعاع - centerX، مرکزY، شعاع، عرض - مرکزX، مرکزY، شعاع، عرض، رنگ |
5 | یک کلاس Rectangle ایجاد کنید یک کلاس Rectangle ایجاد کنید. داده های آن بالا، چپ، عرض و ارتفاع خواهد بود. تا حد امکان سازنده برای آن ایجاد کنید: مثالها: - 4 پارامتر تنظیم شده است: چپ، بالا، عرض، ارتفاع - عرض/ارتفاع تنظیم نشده است (هر دو برابر 0) - ارتفاع تنظیم نشده است (برابر عرض)، یک مربع ایجاد کنید - یک کپی از مستطیل دیگر ایجاد کنید (در پارامترها ارسال می شود) |
10 استاد، کلاس ها و سازندگان
- بازم منم سخنرانی های ما به سادگی عالی هستند. من به شما پیوندی به سخنرانی های خسته کننده نمی دهم. این یک پیوند به چیزهای عالی است! - هنوز اینجایی؟ سریع برو بخون و باید برم آزمایشگاه. گفتگوی CodeGym Lecture 511 جولیو
- هی، آمیگو! کمی خسته ام. کمی استراحت کنیم و بعد درس را شروع کنیم. من یک قسمت جدید پیدا کردم:12 جان سنجاب
- سلام سرباز! - صبح بخیر آقا! - یه خبر عالی برات دارم. در اینجا وظایفی برای تقویت مهارت های شما وجود دارد. این کار را هر روز انجام دهید، و به سرعت مهارت های خود را افزایش خواهید داد. وظایف به طور ویژه برای انجام در Intellij IDEA طراحی شده اند.کارهای اضافی برای انجام در Intellij Idea | |
---|---|
1 | 1. سه کلاس 1. کلاس Cat and Dog را با قیاس با کلاس Duck ایجاد کنید. 2. به این فکر کنید که متد toString باید چه چیزی را در کلاسهای Cat و Dog برگرداند. 3. در متد main در هر کلاس دو شی بسازید و نمایش دهید. 4. اشیاء کلاس Duck ایجاد و نمایش داده می شوند. |
2 | مرد و زن 1. ایجاد کلاس های استاتیک عمومی Man and Woman در کلاس Solution. 2. کلاس ها باید دارای فیلدهایی باشند: name(String)، age(int)، address(String). 3. سازنده هایی ایجاد کنید تا تمام پارامترهای ممکن را به آنها منتقل کنید. 4. از سازنده برای ایجاد دو شی از هر کلاس با تمام داده ها استفاده کنید. 5. نمایش اشیاء در قالب [نام + " " + سن + " " + آدرس]. |
3 | 3. ایجاد کلاس های استاتیک عمومی Dog and Cat. به انتخاب خود سه فیلد به هر کلاس اضافه کنید. برای شخصیت های کارتونی تام و جری، تا جایی که به یاد دارید، اشیایی ایجاد کنید. مثال: موش jerryMouse = ماوس جدید ("جری"، 12 (ارتفاع، سانتی متر)، 5 (طول دم، سانتی متر)) |
4 | 4. نمایش تاریخ فعلی تاریخ جاری را به شکلی شبیه به «21 02 2014» روی صفحه نمایش دهید. |
5 | 5. اعداد را از صفحه کلید بخوانید و مجموع آنها را محاسبه کنید. نمایش کل به صفحه نمایش |
وظایف پاداش | |
---|---|
1 | 1. برنامه کامپایل و اجرا نمی شود. درستش کن وظیفه: برنامه باید دو عدد را از صفحه کلید خوانده و مجموع آنها را نمایش دهد. |
2 | 2. قابلیت جدیدی به برنامه اضافه کنید. وظیفه قدیمی: یک تابع جدید اضافه کنید که دو عدد را از صفحه کلید خوانده و حداقل آنها را نمایش دهد. وظیفه جدید: یک تابع جدید اضافه کنید که پنج عدد را از صفحه کلید خوانده و حداقل آنها را نمایش دهد. |
3 | 3. الگوریتم یادگیری و تمرین. وظیفه: برنامه ای بنویسید که 1. از عدد کنسول N که بزرگتر از 2 است بخواند . سپس N عدد را از کنسول 3 بخواند. حداکثر N عدد وارد شده را نمایش دهد. |
GO TO FULL VERSION