1-КЕЗЕҢ. Тренинг
Мен JavaRush-ке саналы түрде келдім: барабар айлық прейскурант, материалдың нақты құрылымы, көп тәжірибе және өз қауымдастығының болуы. Бірінші тармақтың бәрі түсінікті, бірақ құрылымы жоқ тілді үйрену өте қиын және мұндай оқыту адамды Java Core бағдарламасында елеулі кемшіліктер қалдырады. Сұхбаттар мен техникалық сипаттамалар тәжірибесі көрсеткендей , «ядро» туралы сұрақтарды барлығына қолдануға болады: генериктерді биттік ауыстыру мен құюдан бастап IO және сериялауға дейін. Тәжірибе міндетті болып табылады; Мен әлі күнге дейін өзім жазған болсам, оның жартысын ғана түсініп, есімде сақтай аламын. Ал, қауымдастық: сіз мәселені шештіңіз - бұл туралы түсініктемелерде мақтаныңыз; Егер сіз шешпеген болсаңыз, сұрақтар қоюға болады, бірақ сізге ешкім дайын шешім бермейді. Мен курсты бітіргеннен кейін де тегін тақырыптар бойынша арнайы мақалаларға қайта оралдым, онда бастау үшін көптеген жақсы нәрселер бар (әсіресе қадамдық мысалдарды қолдана отырып, фреймворктармен алғашқы тәжірибе + сұхбатқа арналған сұрақтар). Жалпы алғанда, мен осы жобаға алған база үшін ризамын, бірақ мен JavaRush-ке ғана сенбеймін - сол Шилдт ең жақсы зерттелетін тақырып бойынша «қабатталады» және жиі кейбір тармақтарды ашады. Кейде теориядан асып түсетін және сізді Google-ге мәжбүрлейтін тапсырмалар туралы шолуларда көп нәрсе айтылған. Мен үшін бұл минусқа қарағанда плюс - және қазір жағдай мен оқыған кездегідей екені шындық емес. Мен сияқты Java тілін «нөлден» енгізетіндерге дереу кеңес : кейбір кезеңде сіз жалықтырып алуыңыз немесе қиын болуыңыз мүмкін:-
Барлығына нөлден бастаған қиын, Құдай сақтасын, адамдардың 5% ғана курстың соңына жетеді. Сіздің міндетіңіз солардың бірі болу.
-
Бір-екі айдан кейін тапсырмалар қиындап, қызық бола бастағанда қызыға бастадым. Сабыр бол.
- Ең бастысы - апта сайынғы прогресс. Екі апталық демалыстан кейін қайтып оралу қиын, және әркім бірнеше ай қатарынан күн сайын жаза алмайды. Аптасына өзіңізге сағат шегін беріңіз - мысалы, 15. Әр жұмыс күні 1,5 сағат, ал екі демалыста тағы 3-4 сағат codeтауға болады немесе бірнеше кешке демалуға болады, бірақ «демалыс күндерінің шегі» арттыру. Осылайша, кесте икемді, бірақ тұрақты болады. Әрине, жұмысты тапсырмалар мен жобалар бойынша өлшеуге болады, бірақ синтаксис пен ядро деңгейінде сағаттар орындалады.
2-КЕЗЕҢ. Өзін-өзі тәрбиелеу
Сонымен, мен тағылымдамадан өте алмадым: топқа қабылдау аяқталғанша техникалық талаптарға бірнеше күн қалдым және талаптарды анықтауға уақыт болмады - тым көп таныс емес сөздер болды. Өйткені Мен тағы үш ай күткім келмеді, мен өзімді жалғастыруды шештім. Бақытымызға орай, барлық танымал фреймворктар үшін нұсқаулықтар мен бейне оқулықтар бар. Келесі бірнеше айда мен Spring MVC, Spring Boot + Data, Spring Security, Hibernate, jUnit, Maven, Git, RDBMS мәселелерімен айналыстым, SQL тілін меңгердім және барлығын бір бүтінге біріктіруге тырыстым. Алты айдан кейін менде қазір қарауға қорқынышты жобалар болды, бірақ мен әлеуетті жұмыс берушінің сұрауы бойынша көрсетілетін «ересек» фреймворктарды және GitHub-ты пайдалануда практикалық тәжірибе алдым. кеңес :-
.gitignore туралы неғұрлым тезірек білсеңіз, соғұрлым жақсы. ;)
-
Көптеген нұсқаулықтар бірден бірнеше фреймворктерді қамтиды; мұны пайдаланыңыз және өзіңізді қосыңыз. Біз Maven + Spring Boot + Data көмегімен интернет-дүкен жаздық - авторизацияны, бірлік сынақтарын және журналды қосу.
-
Веб-жобалар үшін сіз Интернеттен тегін интерфейс үлгілерін ала аласыз - олармен жұмыс істеу ыңғайлы, олар Git-тегі README ішіндегі скриншоттар ретінде жақсырақ көрінеді. Сонымен қатар, сіз HTML және CSS-ті есте сақтай аласыз - стильдер мен орналасуды түзеткіңіз келуі мүмкін.
Маған жетіспейтін нәрсе (кейін сұхбат кезінде күйіп қалдым)
-
Алгоритмдер. Қателіктерімді болдырмау үшін мен бірден орыс тіліндегі «Грокинг алгоритмдері» атты шағын кітапты ұсынамын. Алгоритмдердің күрделілігі неде, ол неден тұрады, неліктен жылдам сұрыптау жеткіліксіз, графиктер теориясына кіріспе - бәрі бар және ең түсінікті тілде.
-
«Төбе астында» топтамалары. Бұл JavaRush-те болғаны есімде жоқ, бірақ HashMap.get() қалай жұмыс істейтінін немесе неге HashSet элемент тәртібін сақтауға кепілдік берілмегенін білу пайдалы. Қай топтамалар қауіпсіз және неге.
-
SQL. Сізге кем дегенде JOIN-ге дейін қажет - олар не, олар қалай жұмыс істейді, ТАҢДАУды екі кестеде қағазға жылдам жазу мүмкіндігі. Мен www.sql-ex.ru сайтын ұсынамын: ол сізді бір-екі күнде қажетті деңгейге жеткізеді.
-
Spring Core: қандай annotationлар бар, контекст деген не, бұршақтар қалай жасалады, қай Bean Scope жіп қауіпсіз және өзара инъекцияны қалай шешуге болады - барлық сұхбат сұрақтары. Бетті қалай қайтаруға болады, JSON қалай қайтарылады және т.б. Мен қазір «Кәсіби мамандарға арналған 5-ші көктемді» орыс тілінде оқып жатырмын, бірақ олар негізінен «Спринг в ише» ұсынады.
3-КЕЗЕҢ. Жұмыс іздеу
Шындығында, үй жобаларын аяқтағаннан кейін алғашқы екі айда мен әртүрлі Junior\Trainee вакансияларына (HH, LinkedIn, рекрутинг агенттіктері арқылы) нөлге жуық нәтижелермен 30-ға жуық жауап жібердім. Мен тәжірибесіз бос орындарға ғана назар аудардым, шынымды айтсам, өзіме таныс стекті көрсеттім және ілеспе хаттарда жоғары оқу қабілетім туралы жаздым. Нәтижесі екі қоңырау болды (олардың біреуі менің ағылшын тіліндегі ағылшын тілінде бірден аяқталды), тағы екі компания техникалық сипаттама жіберді, тек бір «кездесу» болды, содан кейін мен қағаздағы алгоритмдер бойынша есептерді жалғыз шештім, содан кейін HR жай ғана құжаттарды алып кетті және «біз сізге қоңырау шаламыз». Мен бірнеше тағылымдамадан өтуге тырыстым (ақысыз және шартты түрде төленген): Мен техникалық спецификацияны орындадым, бірақ соңғы әлеуметтік қамсыздандыру шеңберінен шықпадым; бірақ қазір тыңдаушыларды міндетті түрде T-Systems, CFT, Andersen және EPAM қабылдайды деп айта аламын (олардың пікірлері аралас, өзіңіз шешіңіз). Мен болсам, бірнеше ай табыссыз отыруға және өлмей қалуға мүмкіндік болса, бұл салаға кірудің жақсы жолы =) Жалпы, осы тәжірибеден кейін мен біраз күйзеліске түсіп, бүкіл оқиғаны іздеумен үзіліске қойдым. алты айға жуық - мен алдыңғы профильде жұмыс істеуді жалғастырдым, көңіл көтеру үшін кейбір қосымшаларды жаздым, бірақ оларды Git-те де жарияламадым. Мен бір танысымды кездестірмейінше, мен оған бос орындардағы сәтсіздіктер туралы кездейсоқ айттым: ол кезде ол орта әзірлеуші болып жұмыс істеді, бірақ ол дәл осылай - өздігінен оқудан бастады. Бір танысым маған бірнеше кеңес берді , оны өзі қолданды және болашақта жұмыс іздеуіме көп көмектесті. Сіз оларға ілесесіз бе, жоқ па, бұл сізге байланысты, өйткені... олар қандай да бір жолмен мүлдем адал емес. Сонымен, қосымша дәйексөздер:-
Қалай болғанда да, түйіндемеңізде 6+ айлық коммерциялық тәжірибені беріңіз: тағылымдамалар, дипломдық жобалар, фриланс, қашықтан жұмыс - кез келген нәрсе. Бұл HR бойынша түйіндемелерді бастапқы скрининг кезеңінде үлкен көмектеседі;
-
түйіндемеңізден кіші және күтілетін жалақы сөзін алып тастаңыз; жай ғана оны Java әзірлеушісі ретінде қалдырыңыз және ақшаны әр компаниямен жеке талқылаңыз;
-
Сіздің үміттеріңізді атамас бұрын, HR ұсынылған жалақының «шанышқысын» атауға тырысыңыз. Егер компания 80-120к ұсынса және сіз 40к немесе одан да көп іздесеңіз, кейбір селекторлар сізді менсінбей қарайды;
-
1-3 жылдық коммерциялық тәжірибе қажет болса да, стекке сәйкес келетін барлық бос орындарға өтініш беріңіз.
-
Түйіндемеңізге сіз жұмыс істеген тілдердің, технологиялардың және фреймворктардың бүкіл сағын қосыңыз.
-
LinkedIn сайтында тіркеліңіз - мұнда әртүрлі компаниялардың HR қызметкерлері шынымен де көп. Профильді мұқият толтырыңыз - шын мәнінде, бұл сіздің түйіндемеңіз. Контактілер желісін дамыту үшін профиліңізге қатысты LION қосыңыз; олар барлық пайдаланушылардың сұрауларын қабылдайды.
-
Өзіңізді тегін Java сынақтарында сынап көріңіз - олар көбінесе Junior сұхбатына дейін қағазда беріледі. Алдын ала дайындалған дұрыс.
-
Олар әрқашан жинақтар туралы сұрайды: олардың қайсысы бар, олар қалай ерекшеленеді, оларды пайдаланудың ең жақсы уақыты қашан.
-
Әрқашан абстрактілі сыныптар мен интерфейстерде - олардың әдістері, өрістері болуы мүмкін бе, қайсысы, мұралануы мүмкін және т.б.
-
Әрқашан дерлік көп ағынды - жұмысыңызда не пайдаландыңыз, кілт сөздер, әдістер, сіз util.concurrent-пен таныссыз ба.
-
Көбінесе жадымен жұмыс істегенде - үйме, стек және бұл жолдар тең бола ма, және бұл нысандар, неге.
-
Кейде алгоритмдер туралы - қайсысын білесіз, қандай күрделілік, неліктен, алгоритмді қазір жаза аласыз.
-
Кейде үлгілерге негізделген - қайсысын білесіз, қайсысын пайдаланасыз, синглтонды немесе зауытты жазыңыз.
-
Кейде SQL-де - JOIN түрлері, транзакция дегеніміз не, оны JDBC-де қалай жүргізу керек, қысқаша сұраныс жазыңыз.
-
Жаңа жазбаларды өңдеу және қосу арқылы Salesforce профилінің бизнес контактілері беті;
-
консольді басқаруы бар Spring State Machine көмегімен көпқабатты ғимараттағы лифтті модельдеу;
-
Түймені басқан кезде таңба бойынша мәтінді шығаратын LibGDX кітапханасына негізделген Android қолданбасы;
-
HTTP сұрауы арқылы клиенттерді қосу және JSON қайтару арқылы көлікті ортақ пайдалануды REST имитациялау;
-
бос ұяшық арқылы бағытталмаған графикті сұрыптау есебі;
-
файлдағы координаттарды пайдаланып тең қабырғалы үшбұрыштарды іздеу;
-
Stream API көмегімен дайын codeты рефакторинг;
-
Үштік өрнектерді қолдайтын UI калькуляторы;
-
нәтижелерді файлға жазу арқылы ағындар жарысы.
-
Тапсырманы орындауға ғана емес, сонымен қатар codeтың OOP принциптеріне сәйкестігіне көз жеткізуге тырысыңыз.
-
Кодыңызды тиімділік үшін тексеріңіз - мен бір кездері қабылданбадым, себебі, басқа нәрселермен қатар, BufferedWriter орнына PrintStream қолдандым.
-
Орындау уақытын 50% маржамен жоспарлаңыз - белгіленген мерзімнің таңертеңгі сағат сегізінде git push жасағаннан гөрі ертерек бастап, аяқтаған дұрыс.
GO TO FULL VERSION