JavaRush /Java блогы /Random-KK /Қарт гуманист IT-ға қалай барды
PieIsLie
Деңгей
Санкт-Петербург

Қарт гуманист IT-ға қалай барды

Топта жарияланған
Отшашу! Негізі бұл постқа нақты не жазамын, мүлде жазамын ба деп ұзақ ойландым. Соңғы екі жылдың әртүрлі кезеңдерінде мен Java әзірлеушісі лауазымын алу мүмкіндігімді әртүрлі тәсілдермен бағаладым: «ерте ме, кеш пе - сөзсіз» дегеннен бастап «IT саласында мен үшін ештеңе жарқырайды». Қарт гуманист IT-ға қалай барды - 1Дегенмен, JavaRush-те тіркелгеніме тура екі жылдай уақыт өтті. Бір-екі ай бұрын бірінші ұсынысымды алдым, сәл кейінірек екінші ұсынысымды алдым, содан кейін жаңа жұмысқа кірістім. Курс барысында жетістік тарихы маған көп көмектесті, сондықтан мен өзімді жариялауды жөн көрдім. Курс 18 жылы өткендіктен, кейбір ақпарат өзекті болмауы мүмкін. Мен бірден айтайын, мәтін көп болады, өйткені... Мен сізге оқыту және жұмыс іздеу (талаптар, жауаптар, техникалық сипаттамалар, сұхбаттар және т.б.) туралы айтып беруге тырысамын. Мен жеке өзіме көмектескен және басқаларға көмектесуі мүмкін бірнеше жалпы кеңестер жазамын. Өзім туралы қысқаша: 32 жастамын, менеджмент және сату саласындағы 10 жыл тәжірибесі, гуманитарлық білім және мүлдем техникалық білімі жоқ. Бірнеше жыл бұрын мен C++ тіліне, содан кейін Python тіліне кіруге тырыстым - менің басым ауырудан басқа ештеңе болмады. Сондықтан мені дарынды әзірлеуші ​​деп айту қиын: керісінше.

1-КЕЗЕҢ. Тренинг

Мен JavaRush-ке саналы түрде келдім: барабар айлық прейскурант, материалдың нақты құрылымы, көп тәжірибе және өз қауымдастығының болуы. Бірінші тармақтың бәрі түсінікті, бірақ құрылымы жоқ тілді үйрену өте қиын және мұндай оқыту адамды Java Core бағдарламасында елеулі кемшіліктер қалдырады. Сұхбаттар мен техникалық сипаттамалар тәжірибесі көрсеткендей , «ядро» туралы сұрақтарды барлығына қолдануға болады: генериктерді биттік ауыстыру мен құюдан бастап IO және сериялауға дейін. Тәжірибе міндетті болып табылады; Мен әлі күнге дейін өзім жазған болсам, оның жартысын ғана түсініп, есімде сақтай аламын. Ал, қауымдастық: сіз мәселені шештіңіз - бұл туралы түсініктемелерде мақтаныңыз; Егер сіз шешпеген болсаңыз, сұрақтар қоюға болады, бірақ сізге ешкім дайын шешім бермейді. Мен курсты бітіргеннен кейін де тегін тақырыптар бойынша арнайы мақалаларға қайта оралдым, онда бастау үшін көптеген жақсы нәрселер бар (әсіресе қадамдық мысалдарды қолдана отырып, фреймворктармен алғашқы тәжірибе + сұхбатқа арналған сұрақтар). Жалпы алғанда, мен осы жобаға алған база үшін ризамын, бірақ мен JavaRush-ке ғана сенбеймін - сол Шилдт ең жақсы зерттелетін тақырып бойынша «қабатталады» және жиі кейбір тармақтарды ашады. Кейде теориядан асып түсетін және сізді Google-ге мәжбүрлейтін тапсырмалар туралы шолуларда көп нәрсе айтылған. Мен үшін бұл минусқа қарағанда плюс - және қазір жағдай мен оқыған кездегідей екені шындық емес. Мен сияқты Java тілін «нөлден» енгізетіндерге дереу кеңес : кейбір кезеңде сіз жалықтырып алуыңыз немесе қиын болуыңыз мүмкін:
  1. Барлығына нөлден бастаған қиын, Құдай сақтасын, адамдардың 5% ғана курстың соңына жетеді. Сіздің міндетіңіз солардың бірі болу.

  2. Бір-екі айдан кейін тапсырмалар қиындап, қызық бола бастағанда қызыға бастадым. Сабыр бол.

  3. Ең бастысы - апта сайынғы прогресс. Екі апталық демалыстан кейін қайтып оралу қиын, және әркім бірнеше ай қатарынан күн сайын жаза алмайды. Аптасына өзіңізге сағат шегін беріңіз - мысалы, 15. Әр жұмыс күні 1,5 сағат, ал екі демалыста тағы 3-4 сағат codeтауға болады немесе бірнеше кешке демалуға болады, бірақ «демалыс күндерінің шегі» арттыру. Осылайша, кесте икемді, бірақ тұрақты болады. Әрине, жұмысты тапсырмалар мен жобалар бойынша өлшеуге болады, бірақ синтаксис пен ядро ​​деңгейінде сағаттар орындалады.
Жалпы алғанда, мен демалысты да, қысқа үзілістерді де көтере алатыныма қарамастан, курсты аяқтауға (тәжірибеден өтуге дейін) 5 айға жуық уақыт кетті ; Тағы да, бес күндік жұмыс аптасында тек демалыс күндері және жұмыс күнінің кештері сағат 22-ден 00-ге дейін бос қалды. Осылайша, бос кесте немесе қатаң жаттығулар режимімен сіз әлдеқайда ертерек күресе аласыз. Содан кейін мен тағылымдамадан өтуді жоспарладым, бірақ ол нәтиже бермеді.

2-КЕЗЕҢ. Өзін-өзі тәрбиелеу

Сонымен, мен тағылымдамадан өте алмадым: топқа қабылдау аяқталғанша техникалық талаптарға бірнеше күн қалдым және талаптарды анықтауға уақыт болмады - тым көп таныс емес сөздер болды. Өйткені Мен тағы үш ай күткім келмеді, мен өзімді жалғастыруды шештім. Бақытымызға орай, барлық танымал фреймворктар үшін нұсқаулықтар мен бейне оқулықтар бар. Келесі бірнеше айда мен Spring MVC, Spring Boot + Data, Spring Security, Hibernate, jUnit, Maven, Git, RDBMS мәселелерімен айналыстым, SQL тілін меңгердім және барлығын бір бүтінге біріктіруге тырыстым. Алты айдан кейін менде қазір қарауға қорқынышты жобалар болды, бірақ мен әлеуетті жұмыс берушінің сұрауы бойынша көрсетілетін «ересек» фреймворктарды және GitHub-ты пайдалануда практикалық тәжірибе алдым. кеңес :
  1. .gitignore туралы неғұрлым тезірек білсеңіз, соғұрлым жақсы. ;)

  2. Көптеген нұсқаулықтар бірден бірнеше фреймворктерді қамтиды; мұны пайдаланыңыз және өзіңізді қосыңыз. Біз Maven + Spring Boot + Data көмегімен интернет-дүкен жаздық - авторизацияны, бірлік сынақтарын және журналды қосу.

  3. Веб-жобалар үшін сіз Интернеттен тегін интерфейс үлгілерін ала аласыз - олармен жұмыс істеу ыңғайлы, олар Git-тегі README ішіндегі скриншоттар ретінде жақсырақ көрінеді. Сонымен қатар, сіз HTML және CSS-ті есте сақтай аласыз - стильдер мен орналасуды түзеткіңіз келуі мүмкін.

Өзіңіз үшін осындай даму жоспарын жасаудың ең оңай жолы - HH for Junior\Middle Java Developer бос жұмыс орындарына өту және қай технологиялар мен құрылымдардың жиі көрсетілгенін көру. Оларды жазып алыңыз, олар үшін техникалық сипаттамалар жасаңыз, орындау мерзімдерін өзіңіз белгілеңіз. Дегенмен, егер мен жергілікті тәжірибеден бастасам, үй жобаларына бірнеше ай жұмсаудың қажеті болмас еді.

Маған жетіспейтін нәрсе (кейін сұхбат кезінде күйіп қалдым)

  1. Алгоритмдер. Қателіктерімді болдырмау үшін мен бірден орыс тіліндегі «Грокинг алгоритмдері» атты шағын кітапты ұсынамын. Алгоритмдердің күрделілігі неде, ол неден тұрады, неліктен жылдам сұрыптау жеткіліксіз, графиктер теориясына кіріспе - бәрі бар және ең түсінікті тілде.

  2. «Төбе астында» топтамалары. Бұл JavaRush-те болғаны есімде жоқ, бірақ HashMap.get() қалай жұмыс істейтінін немесе неге HashSet элемент тәртібін сақтауға кепілдік берілмегенін білу пайдалы. Қай топтамалар қауіпсіз және неге.

  3. SQL. Сізге кем дегенде JOIN-ге дейін қажет - олар не, олар қалай жұмыс істейді, ТАҢДАУды екі кестеде қағазға жылдам жазу мүмкіндігі. Мен www.sql-ex.ru сайтын ұсынамын: ол сізді бір-екі күнде қажетті деңгейге жеткізеді.

  4. 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 жылдық коммерциялық тәжірибе қажет болса да, стекке сәйкес келетін барлық бос орындарға өтініш беріңіз.

Мен барлық осы ұсыныстарды орындағаннан кейін іздеу жағдайы айтарлықтай жақсарды. Біріншіден, шамамен 12 жаңа жауаптың жартысы дерлік кездесуде немесе Skype немесе TK арқылы аяқталды (бұл алдыңғы айларда еленбегеннен мүлдем басқаша болды). Екіншіден, HR қызметкерлері маған хат жаза бастады, мен оларға жауап бермедім - жедел мессенджерлерде, поштада, LinkedIn-де. Үшіншіден, коммерциялық тәжірибеге қойылатын талаптар шынымен де тым қатал емес болып шықты – көптеген компаниялар 1-3 жылдық корпоративтік тәжірибенің белгіленген ауқымына кірмейтін үміткермен сөйлесуге дайын болды. Нәтижесінде – кішіге бір ұсыныс, сынақ мерзімі бар орта буынға бір ұсыныс. Жалпы, іздеу жұмыстары екі айға созылды. кеңес :
  1. Түйіндемеңізге сіз жұмыс істеген тілдердің, технологиялардың және фреймворктардың бүкіл сағын қосыңыз.

  2. LinkedIn сайтында тіркеліңіз - мұнда әртүрлі компаниялардың HR қызметкерлері шынымен де көп. Профильді мұқият толтырыңыз - шын мәнінде, бұл сіздің түйіндемеңіз. Контактілер желісін дамыту үшін профиліңізге қатысты LION қосыңыз; олар барлық пайдаланушылардың сұрауларын қабылдайды.

  3. Өзіңізді тегін Java сынақтарында сынап көріңіз - олар көбінесе Junior сұхбатына дейін қағазда беріледі. Алдын ала дайындалған дұрыс.

Сұхбат туралы бірнеше сөз
  1. Олар әрқашан жинақтар туралы сұрайды: олардың қайсысы бар, олар қалай ерекшеленеді, оларды пайдаланудың ең жақсы уақыты қашан.

  2. Әрқашан абстрактілі сыныптар мен интерфейстерде - олардың әдістері, өрістері болуы мүмкін бе, қайсысы, мұралануы мүмкін және т.б.

  3. Әрқашан дерлік көп ағынды - жұмысыңызда не пайдаландыңыз, кілт сөздер, әдістер, сіз util.concurrent-пен таныссыз ба.

  4. Көбінесе жадымен жұмыс істегенде - үйме, стек және бұл жолдар тең бола ма, және бұл нысандар, неге.

  5. Кейде алгоритмдер туралы - қайсысын білесіз, қандай күрделілік, неліктен, алгоритмді қазір жаза аласыз.

  6. Кейде үлгілерге негізделген - қайсысын білесіз, қайсысын пайдаланасыз, синглтонды немесе зауытты жазыңыз.

  7. Кейде SQL-де - JOIN түрлері, транзакция дегеніміз не, оны JDBC-де қалай жүргізу керек, қысқаша сұраныс жазыңыз.

Шын мәнінде, бәрі компанияға байланысты : біреу Java Core туралы бірде-бір сұрақ қоймайды, бірақ 40 minutesты фреймворктар мен SQL туралы сөйлеседі; Кейбір адамдар танымал фреймворктерді мүлде пайдаланбайды және тек алгоритмдер, түрлер, жинақтар және жад туралы сұрайды. Кездесулердің жартысына жуығы тесттерден басталды – кейде орыс тілінде, кейде ағылшын тілінде (20-30 minutesқа 20-30 сұрақ); Әдетте «міне, code, ол іске қосыла ма, жоқ па, егер жоқ болса, қай жолда» немесе «міне, бірнеше нысан, N операциядан кейін олар тең бола ма» деңгейіндегі сұрақтар. Техникалық сипаттамалар туралы бірнеше сөз : Байланысты бастаған компаниялардың 70% жиналысқа дейін немесе кейін маған техникалық сипаттамаларды жіберді. Әдетте, аяқтау екі күннен бір аптаға дейін беріледі, бірақ көбінесе мерзімдерді сәл жылжытуға болады. Кез келген нәрсені техникалық сипаттамалар ретінде пайдалануға болады. Міне, мен жасаған мысалдар:
  • Жаңа жазбаларды өңдеу және қосу арқылы Salesforce профилінің бизнес контактілері беті;

  • консольді басқаруы бар Spring State Machine көмегімен көпқабатты ғимараттағы лифтті модельдеу;

  • Түймені басқан кезде таңба бойынша мәтінді шығаратын LibGDX кітапханасына негізделген Android қолданбасы;

  • HTTP сұрауы арқылы клиенттерді қосу және JSON қайтару арқылы көлікті ортақ пайдалануды REST имитациялау;

  • бос ұяшық арқылы бағытталмаған графикті сұрыптау есебі;

  • файлдағы координаттарды пайдаланып тең қабырғалы үшбұрыштарды іздеу;

  • Stream API көмегімен дайын codeты рефакторинг;

  • Үштік өрнектерді қолдайтын UI калькуляторы;

  • нәтижелерді файлға жазу арқылы ағындар жарысы.

Кейде есептеу әдістерін бірлік сынақтарымен, ал сұрау әдістерін интеграциялық сынақтармен қамтуды сұрайды. кеңес :
  1. Тапсырманы орындауға ғана емес, сонымен қатар codeтың OOP принциптеріне сәйкестігіне көз жеткізуге тырысыңыз.

  2. Кодыңызды тиімділік үшін тексеріңіз - мен бір кездері қабылданбадым, себебі, басқа нәрселермен қатар, BufferedWriter орнына PrintStream қолдандым.

  3. Орындау уақытын 50% маржамен жоспарлаңыз - белгіленген мерзімнің таңертеңгі сағат сегізінде git push жасағаннан гөрі ертерек бастап, аяқтаған дұрыс.

Жарайды, мен қалағанның бәрін жаздым деп ойлаймын. Ең бастысы, су тастарды тоздырады. Сіз Java тілінде көп, көп жаза алмайсыз, содан кейін ұзақ, ұзақ уақыт жұмыс іздеп, соңында ештеңе таба алмайсыз. Егер 30 жастағы гуманитарлық маман оны тартып алса, сіз оны одан да жақсы жасай аласыз. Ең бастысы, алғашқы қоңыраулардан, техникалық тапсырмалардан және сұхбаттардан қорықпаңыз: әрбір сәтсіз уақыттан кейін мен өзім үшін бірдеңе үйренуге және оны жақсартуға кепілдік бердім - неғұрлым ұзақ болса, соғұрлым өзіңізді сенімді сезінесіз. Егер бір жерде ол ретсіз болып шықса немесе қателер болса - алдын ала кешірім сұраймын, жазыңыз, түзетемін. Менің тәжірибем кем дегенде біреуге көмектеседі деп үміттенемін =)
Пікірлер
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION