مرحله 1. آموزش
من آگاهانه به JavaRush آمدم: لیست قیمت ماهانه مناسب، ساختار واضح مواد، تمرین زیاد و حضور جامعه خودم. نکته اول کاملاً واضح است، اما یادگیری یک زبان بدون ساختار بسیار دشوار است و مطمئناً چنین آموزش هایی باعث می شود فرد با خلاءهای جدی در Java Core مواجه شود. تجربه مصاحبه ها و مشخصات فنی نشان می دهد که سوالات مربوط به "هسته" را می توان برای همه چیز استفاده کرد: از تغییر بیتی و ریخته گری ژنریک ها تا IO و سریال سازی. تمرین یک امر ضروری است. من هنوز فقط می توانم نیمی از چیزها را بفهمم و به خاطر بسپارم اگر خودم آنها را بنویسم. خوب، جامعه: شما مشکل را حل کردید - در نظرات درباره آن لاف بزنید. اگر تصمیم نگرفته اید، می توانید سؤال بپرسید، اما به احتمال زیاد هیچ کس راه حل آماده ای به شما نمی دهد. و حتی پس از اتمام دوره به مقالات سفارشی در مورد موضوعات رایگان برگشتم، چیزهای خوبی برای شروع وجود دارد (مخصوصا اولین تجربه با چارچوب ها با استفاده از مثال های گام به گام + سوالات برای مصاحبه). به طور کلی، من از این پروژه برای پایه ای که دریافت کردم سپاسگزارم، اما من فقط به JavaRush متکی نیستم - همان Shildt از همه بهتر در مورد موضوع مورد مطالعه "همپوشانی" دارد و اغلب نکاتی را آشکار می کند. قبلاً در بررسی ها در مورد کارهایی که گاهی از تئوری جلوتر می روند و شما را مجبور به گوگل می کنند، گفته شده است. برای من، این بیشتر یک مزیت است تا منفی - و این یک واقعیت نیست که اکنون وضعیت مشابه زمانی است که من در حال تحصیل بودم. توصیه فوری به کسانی که مانند من "از ابتدا" وارد جاوا می شوند : در مرحله ای ممکن است خسته یا سخت شوید:-
شروع از صفر برای همه سخت است؛ خدای نکرده فقط 5 درصد از افراد به پایان دوره می رسند. وظیفه شما این است که یکی از آنها شوید.
-
بعد از یکی دو ماه که کارها سخت تر و جالب تر شد، علاقه مند شدم. صبور باش.
- نکته اصلی پیشرفت هفتگی است. پس از دو هفته استراحت، بازگشت از قبل دشوار است و همه نمی توانند هر روز برای چندین ماه متوالی بنویسند. برای خود محدودیتی در هفته قائل شوید - مثلاً 15 ساعت. می توانید هر روز هفته 1.5 ساعت و در هر دو آخر هفته 3 تا 4 ساعت دیگر کدنویسی کنید، یا می توانید چند شب مرخصی بگیرید، اما "محدودیت آخر هفته" این کار را انجام می دهد. افزایش دادن. به این ترتیب، برنامه منعطف، اما منظم خواهد بود. البته، در این صورت امکان اندازهگیری کار بر اساس وظایف و پروژهها وجود خواهد داشت، اما در سطح نحو و هسته، ساعتها انجام خواهد شد.
مرحله 2. خودآموزی
بنابراین ، من دوره کارآموزی را نگرفتم: فقط چند روز در مورد الزامات فنی تا پایان استخدام در گروه باقی ماندم و وقت نداشتم شرایط را بفهمم - کلمات ناآشنا زیادی وجود داشت. زیرا من نمی خواستم سه ماه دیگر صبر کنم، تصمیم گرفتم خودم را ادامه دهم. خوشبختانه، راهنماها و آموزش های ویدئویی برای همه فریمورک های محبوب وجود دارد. طی چند ماه آینده، من با Spring MVC، Spring Boot + Data، Spring Security، Hibernate، jUnit، Maven، Git، RDBMS سروکار داشتم، به SQL مسلط شدم و سعی کردم همه آن ها را در یک کل واحد قرار دهم. شش ماه بعد، پروژههایی داشتم که اکنون دیدن آنها ترسناک است، اما تجربه عملی در استفاده از چارچوبهای «بزرگسالان» و یک GitHub به دست آوردم که به درخواست یک کارفرمای بالقوه میتوان آن را نشان داد. نصیحت :-
هر چه زودتر درباره .gitignore یاد بگیرید، بهتر است. ;)
-
بسیاری از راهنماها شامل چندین چارچوب به طور همزمان هستند. از این استفاده کنید و خودتان اضافه کنید. ما یک فروشگاه آنلاین با استفاده از Maven + Spring Boot + Data - اضافه کردن مجوز، آزمایش واحد و ورود به سیستم نوشتیم.
-
برای پروژههای وب، میتوانید قالبهای ظاهری رایگان را از اینترنت بگیرید - کار با آنها لذتبخشتر است، بهعنوان اسکرینشات در README در Git بهتر به نظر میرسند. در همان زمان، شما می توانید HTML و CSS را به خاطر بسپارید - احتمالاً می خواهید سبک ها و طرح بندی را اصلاح کنید.
آنچه را که از دست داده بودم (بعداً در طول مصاحبه سوختم)
-
الگوریتم ها برای جلوگیری از اشتباهاتم، فوراً یک کتاب کوتاه به زبان روسی به نام «الگوریتم های غم انگیز» را توصیه می کنم. پیچیدگی الگوریتم ها چیست، از چه چیزی تشکیل شده است، چرا مرتب سازی سریع کافی نیست، مقدمه ای بر نظریه گراف - همه چیز وجود دارد و به قابل درک ترین زبان.
-
مجموعه های "زیر کاپوت". به یاد نمیآورم که آیا این در JavaRush بود یا نه، اما دانستن اینکه HashMap.get() چگونه کار میکند یا اینکه چرا HashSet تضمینی برای حفظ نظم عناصر نیست مفید است. باز هم، کدام مجموعه ها امن هستند و چرا.
-
SQL. شما حداقل به JOIN نیاز دارید - چه هستند، چگونه کار می کنند، توانایی نوشتن یک SELECT روی دو جدول روی کاغذ در حال پرواز. من www.sql-ex.ru را توصیه می کنم: یک یا دو روز دیگر شما را به سطح مورد نظر می رساند.
-
Spring Core: چه نوع حاشیه نویسی وجود دارد، یک زمینه چیست، چگونه bean ایجاد می شود، چه Bean Scope ایمن است، و چگونه می توان تزریق متقابل را حل کرد - همه سوالات مصاحبه. نحوه برگرداندن یک صفحه، نحوه برگرداندن JSON و غیره من در حال حاضر در حال خواندن "Spring 5 for Professionals" به زبان روسی هستم، اما به طور کلی آنها "Spring in Action" را توصیه می کنند.
مرحله 3. جستجوی کار
در واقع، در چند ماه اول پس از تکمیل پروژههای خانگی، من حدود 30 پاسخ به مشاغل مختلف Junior\Trainee (از طریق HH، LinkedIn، آژانسهای استخدام)، با نتایج تقریباً صفر ارسال کردم. من فقط روی جای خالی بدون تجربه تمرکز کردم، صادقانه یک پشته آشنا را نشان دادم و در مورد توانایی یادگیری بالای خود در نامه های جلد نوشتم. نتیجه دو تماس است (یکی از آنها بلافاصله به زبان انگلیسی پیش از متوسط من به پایان رسید)، دو شرکت دیگر مشخصات فنی را ارسال کردند، تنها یک "جلسه" وجود داشت، و سپس من به تنهایی در آنجا بودم و مسائل مربوط به الگوریتم ها را روی یک تکه کاغذ حل می کردم. پس از آن HR به سادگی اوراق را برداشت و "ما با شما تماس خواهیم گرفت." من سعی کردم چند دوره کارآموزی (بدون حقوق و مشروط) بگیرم: مشخصات فنی را انجام دادم اما از تامین اجتماعی نهایی فراتر نرفته ام. اما اکنون می توانم بگویم که کارآموزان قطعا توسط T-Systems، CFT، Andersen و EPAM جذب می شوند (آنها نظرات متفاوتی دارند، خودتان تصمیم بگیرید). در مورد من، اگر فرصت داری که چندین ماه بدون درآمد بشینی و نمردی، راه خوبی برای ورود به عرصه است =) در کل بعد از این تجربه تا حدودی افسرده شدم و کل داستان را با جستجو در حالت مکث قرار دادم. تقریباً شش ماه - من به کار بر روی نمایه قبلی ادامه دادم، برخی از برنامه ها را فقط برای سرگرمی نوشتم، اما حتی آنها را در Git پست نکردم. تا اینکه با یکی از آشنایان آشنا شدم که به طور اتفاقی در مورد شکست های شغلی به او گفتم: در آن زمان او قبلاً به عنوان توسعه دهنده میانی کار می کرد ، اما او به همان روش شروع کرد - با خودآموزی. یکی از آشنایان چند توصیه به من کرد که خودش از آنها استفاده کرد و به من در جستجوی شغل در آینده کمک زیادی کرد. این که آنها را دنبال کنید یا نه به خودتان بستگی دارد، زیرا ... آنها به نوعی کاملاً صادق نیستند. بنابراین، نقل قول های بیشتر:-
به هر ترتیب، 6+ ماه تجربه تجاری در رزومه خود داشته باشید: کارآموزی، پروژه های فارغ التحصیلی، مشاغل آزاد، کار از راه دور - هر چه باشد. این در مرحله غربالگری اولیه رزومه ها توسط منابع انسانی کمک زیادی خواهد کرد.
-
کلمه Junior و حقوق و دستمزد مورد انتظار را از رزومه خود حذف کنید. فقط آن را به عنوان توسعه دهنده جاوا بگذارید و در مورد پول به صورت جداگانه با هر شرکت صحبت کنید.
-
سعی کنید قبل از اینکه انتظارات خود را نام ببرید، از منابع انسانی نام "چنگال" حقوق پیشنهادی را بخواهید. اگر شرکتی 80-120k ارائه دهد، و شما به دنبال 40k یا بیشتر باشید، برخی از انتخاب کنندگان با شما رفتار تحقیر آمیز خواهند داشت.
-
برای همه مشاغل خالی که مناسب پشته شما هستند، درخواست دهید، حتی اگر به 1 تا 3 سال تجربه تجاری نیاز داشته باشند.
-
کل پشته زبان ها، فن آوری ها و چارچوب هایی را که با آنها کار کرده اید در رزومه خود بگنجانید.
-
در لینکدین ثبت نام کنید - واقعاً تعداد زیادی از افراد منابع انسانی از شرکت های مختلف در آنجا هستند. نمایه خود را با دقت پر کنید - در واقع این رزومه شما نیز هست. برای توسعه شبکه مخاطبین خود، LION های مرتبط با نمایه خود را اضافه کنید؛ آنها درخواست های همه کاربران را می پذیرند.
-
خودتان را در تست های رایگان جاوا امتحان کنید - آنها اغلب قبل از مصاحبه Junior روی کاغذ داده می شوند. بهتر است از قبل آماده شوید.
-
آنها همیشه در مورد مجموعه ها می پرسند: کدام یک وجود دارد، تفاوت آنها چیست، بهترین زمان استفاده از آنها چه زمانی است.
-
همیشه روی کلاسها و رابطهای انتزاعی - آیا میتوانند متدها، فیلدها، کدامها، میتوانند به ارث برده شوند و غیره داشته باشند.
-
تقریباً همیشه در چند رشته - آنچه در کار خود استفاده می کنید، کلمات کلیدی، روش ها، آیا با util.concurrent آشنا هستید.
-
اغلب هنگام کار با حافظه - پشته، پشته، و آیا این رشته ها برابر هستند، و این اشیاء، چرا.
-
گاهی اوقات در مورد الگوریتم ها - کدام یک را می دانید، چه پیچیدگی، چرا، می توانید اکنون یک الگوریتم بنویسید.
-
گاهی اوقات بر اساس الگوها - کدام یک را می شناسید، کدام یک را استفاده می کنید، تک تک یا کارخانه بنویسید.
-
گاهی اوقات در SQL - انواع JOIN ها، تراکنش چیست، نحوه انجام آن در JDBC، یک پرس و جو کوتاه بنویسید.
-
صفحه تماس های تجاری پروفایل Salesforce با ویرایش و افزودن سوابق جدید.
-
شبیه سازی آسانسور در یک ساختمان چند طبقه با استفاده از دستگاه Spring State با کنترل کنسول.
-
برنامه اندروید مبتنی بر کتابخانه LibGDX با خروجی متن نویسه به نویسه هنگام فشار دادن یک دکمه.
-
REST تقلید اشتراکگذاری خودرو، با افزودن مشتریان از طریق درخواست HTTP و بازگشت JSON.
-
مشکل مرتب سازی یک گراف بدون جهت از طریق یک سلول آزاد.
-
با استفاده از مختصات یک فایل مثلث های متساوی الساقین را جستجو کنید.
-
بازسازی کد نهایی با استفاده از Stream API.
-
ماشین حساب UI با پشتیبانی از عبارات سه تایی.
-
Race of Threads با نوشتن نتایج در یک فایل.
-
سعی کنید نه تنها کار را کامل کنید، بلکه از مطابقت کد با اصول OOP نیز اطمینان حاصل کنید.
-
کد خود را از نظر کارایی بررسی کنید - من یک بار رد شدم زیرا، از جمله، از PrintStream به جای BufferedWriter استفاده کردم.
-
زمان اجرای خود را با حاشیه 50 درصد برنامه ریزی کنید - بهتر است زودتر شروع کنید و به پایان برسانید تا اینکه در ساعت هشت صبح آخرین مهلت، یک فشار git انجام دهید.
GO TO FULL VERSION