JavaRush /Java блогу /Random-KY /Эски гуманист IT тармагына кантип барган
PieIsLie
Деңгээл
Санкт-Петербург

Эски гуманист IT тармагына кантип барган

Группада жарыяланган
Фейерверк! Негизи бул постко так эмне жазам, такыр жазамбы деп көпкө ойлондум. Ошентип, акыркы эки жылдын ар кайсы мезгилдеринде мен Java иштеп чыгуучу позициясын алуу мүмкүнчүлүгүмдү ар кандай жолдор менен бааладым: “эртеби-кечпи – сөзсүз” дегенден “IT тармагында мен үчүн эч нерсе жаркыраbyte”. Эски гуманист IT тармагына кантип барган - 1Бирок JavaRush менен катталганыма туура эки жылдай болуп калды. Бир-эки ай мурун биринчи сунушумду алдым, бир аздан кийин экинчи сунушумду алдым, анан жаңы жумушка кирдим. Курстун жүрүшүндө мага ийгorк окуялары абдан жардам берди, ошондуктан мен өзүмдүн макаламды жарыялоону чечтим. Курс '18-жылы өткөндүктөн, кээ бир маалыматтар азыркы эмес болушу мүмкүн. Мен дароо эле көп текст болот деп айтам, анткени ... Мен окутуу жана жумуш издөө (талаптар, жооптор, техникалык шарттар, интервью, ж.б.) жөнүндө айтып берүүгө аракет кылам. Мен жеке өзүмө жардам берген жана башкаларга да жардам бере турган бир нече жалпы кеңештерди жазам. Өзүм жөнүндө кыскача: 32 жаштамын, менеджмент жана сатуу боюнча 10 жылдык тажрыйба, гуманитардык бorм жана такыр техникалык бorми жок. Бир нече жыл мурун мен C++, андан кийин Python тилдерине кирүүгө аракет кылдым – башым ооругандан башка эч нерсе жок. Ошондуктан, мени таланттуу иштеп чыгуучу деп айтуу кыйын: тескерисинче.

1-СТАП. Тренинг

Мен JavaRushка аң-сезимдүү келдим: адекваттуу айлык прейскурант, материалдын так түзүлүшү, көп тажрыйба жана өзүмдүн жамаатымдын болушу. Биринчи пункттун баары түшүнүктүү, бирок түзүмү жок тилди үйрөнүү абдан кыйын жана мындай тренинг адамды Java Coreдо олуттуу боштуктарды калтырат. Интервьюлардын тажрыйбасы жана техникалык мүнөздөмөлөр көрсөткөндөй , "өзөк" жөнүндө суроолорду бардык нерсе үчүн колдонсо болот: генериктердин биттик жылышынан жана кастингинен IO жана сериялаштырууга чейин. Практика сөзсүз түрдө болушу керек; Мен өзүм жазсам, жарымын гана түшүнүп, эстеп калам. Ооба, коомчулук: сиз маселени чечтиңиз - комментарийлерде мактаныңыз; Эгерде сиз чече элек болсоңуз, анда суроолорду берсеңиз болот, бирок сизге эч ким даяр чечимди бербейт. Курсту аяктагандан кийин дагы, мен акысыз темалар боюнча ыңгайлаштырылган макалаларга кайтып келдим, ал жерде баштоо үчүн көптөгөн жакшы нерселер бар (айрыкча, кадам-кадам мисалдарды колдонуу менен алHowтар ​​менен биринчи тажрыйба + интервью үчүн суроолор). Жалпысынан алганда, бул долбоорго мен алган база үчүн ыраазымын, бирок мен JavaRushка гана ишенбейм - ошол эле Шилдт эң жакшысы изилденип жаткан темада "кайталанып" кетет жана көп учурда айрым ойлорду ачып берет. Кээде теориядан озуп кеткен жана Google'га мажбурлаган тапшырмалар жөнүндө сын-пикирлерде көп нерсе айтылган. Мен үчүн бул минуска караганда көбүрөөк плюс - бул азыр мен окуп жүргөн кездегидей болуп жаткандыгы чындык эмес. Мага окшоп, Java программасын “нөлдөн баштап” киргендерге дароо кеңеш : кандайдыр бир этапта сиз зеригип же кыйын болуп калышыңыз мүмкүн:
  1. Нөлдөн баштап баарына кыйын, Кудай сактасын, курстун аягына 5% гана адам жетет. Сиздин милдет - алардын бири болуу.

  2. Бир-эки айдан кийин тапшырмалар татаалдашып, кызыктуу болуп калганда кызыгып калдым. Чыдамкай болот.

  3. Негизгиси - жумалык прогресс. Эки жумалык эс алгандан кийин, кайра кайтып келүү кыйын жана ар бир адам бир нече ай катары менен күн сайын жаза алbyte. Өзүңүзгө бир жумага саат чегин бериңиз - мисалы, 15. Сиз ар бир иш күнү 1,5 саат, эки дем алыш күндөрү дагы 3-4 саат code жазсаңыз болот, же бир нече кечки эс ала аласыз, бирок "дем алыш күнүнүн чеги" жогорулатуу. Ошентип, график ийкемдүү, бирок үзгүлтүксүз болот. Албетте, анда ишти тапшырмалар жана долбоорлор менен өлчөө мүмкүн болот, бирок синтаксис жана ядро ​​деңгээлинде сааттар аткарылат.
Жалпысынан алганда, мен каникулга да, кыска тыныгууга да мүмкүнчүлүгүм болгонуна карабастан, курсту бүтүрүү үчүн 5 айга жакын убакыт талап кылынды (интернатурага кирүүгө чейин) ; дагы, беш күндүк жумада иштөө үчүн дем алыш күндөрү жана иш күндөрү кечки саат 22ден 00гө чейин бош калды. Ошентип, эркин график же катаал машыгуу режими менен сиз алда канча эрте туруштук бере аласыз. Анан мен стажировкадан өтүүнү пландап, бирок акыры ишке ашкан жок.

2-СТАП. Өзүн өзү тарбиялоо

Ошентип, мен стажировкадан өткөн жокмун: топко кабыл алуу аяктаганга чейин техникалык талаптар боюнча бир-эки күн гана калдым жана талаптарды түшүнүүгө үлгүрбөй калдым - өтө көп бейтааныш сөздөр болду. Анткени Мен дагы үч ай күткүм келген жок, мен өзүмдү улантууну чечтим. Бактыга жараша, бардык популярдуу алHowтар ​​үчүн колдонмолор жана видео окуу куралдары бар. Кийинки бир нече айдын ичинде мен Spring MVC, Spring Boot + Data, Spring Security, Hibernate, jUnit, Maven, Git, RDBMS менен алектенип, SQLди өздөштүрүп, баарын бир бүтүнгө чогултууга аракет кылдым. Алты айдан кийин менде азыр кароого коркунучтуу долбоорлор бар болчу, бирок мен "чоңдор" алHowтарын жана потенциалдуу иш берүүчүнүн талабы боюнча көрсөтүлө турган GitHub колдонуу боюнча практикалык тажрыйбага ээ болдум. Кеңеш :
  1. .gitignore жөнүндө канчалык эрте билсеңиз, ошончолук жакшы. ;)

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

  3. Веб-долбоорлор үчүн сиз Интернеттен акысыз фронтондук шаблондорду ала аласыз - алар менен иштөө жагымдуураак, алар Gitтеги READMEде скриншоттор катары жакшыраак көрүнөт. Ошол эле учурда, сиз HTML жана CSSти эстей аласыз - балким, сиз стилдерди жана макетти оңдоону каалайсыз.

Өзүңүз үчүн ушундай өнүгүү планын түзүүнүн эң оңой жолу - Junior\Middle Java Developer үчүн HH бош орундарынан өтүп, кайсы технологиялар жана алHowтар ​​көп көрсөтүлөрүн көрүү. Аларды жазыңыз, алар үчүн техникалык шарттарды түзүңүз, ишке ашыруунун мөөнөттөрүн белгилеңиз. Бирок, балким, мен жергorктүү стажировкадан баштасам, үй долбоорлоруна бир нече ай коротпойм.

Мага эмне жетишпей жатты (кийин интервью берип жатканда күйүп кеттим)

  1. Алгоритмдер. Ката кетирбөө үчүн мен дароо эле орус тorндеги “Грокинг алгоритмдери” деген кыска китепти сунуштайм. Алгоритмдердин татаалдыгы эмнеде, ал эмнеден турат, эмне үчүн тез сорттоо жетишсиз, графика теориясына киришүү - баары бар жана эң түшүнүктүү тилде.

  2. Коллекциялар "капот астында". Бул JavaRush ичинде болгонун эсимде жок, бирок HashMap.get() кантип иштээрин же эмне үчүн HashSet элементтердин тартибин сактоого кепилдик жок экенин билүү пайдалуу. Дагы, кайсы коллекциялар жип коопсуз жана эмне үчүн.

  3. SQL. Сизге жок дегенде JOIN'ге чейин керек - алар эмне, алар кандай иштешет, эки үстөлгө SELECT жазууну тез арада кагазга жазуу мүмкүнчүлүгү. Мен www.sql-ex.ru сайтын сунуштайм: ал сизди бир же эки күндүн ичинде каалаган деңгээлге жеткирет.

  4. Spring Core: кандай annotationлар бар, контекст деген эмне, буурчак кантип түзүлөт, кайсы Bean Scope жип коопсуз жана өз ара инъекцияны кантип чечүү керек - бардык интервью суроолору. Баракты кантип кайтаруу керек, JSON кантип кайтаруу керек, ж.б. Мен азыр “Профессионалдар үчүн 5-жазды” орусча окуп жатам, бирок жалпысынан алар “Жазыгы аракетте” дегенди сунушташат.

3-СТАП. Жумуш издөө

Чынында, үй долбоорлорун аяктагандан кийин, биринчи эки айдын ичинде мен ар кандай Junior \ Trainee вакансияларына (HH, LinkedIn, жалдоо агенттиктери аркылуу) 30га жакын жоопторду жөнөттүм, натыйжалары нөлгө жакын. Мен тажрыйбасы жок вакансияларга гана көңүл буруп, мага тааныш стекти чынчылдык менен көрсөтүп, коштомо каттарга менин жогорку окуу жөндөмүмдү жаздым. Жыйынтыгында эки чалуу болду (алардын бири менин англисчеге чейинки дароо аяктады), дагы эки компания техникалык мүнөздөмөлөрдү жөнөттү, бир гана "жолугушуу" болду, анан мен ал жерде алгоритм боюнча маселелерди кагаз бетине жалгыз чечтим, андан кийин HR жөн гана кагаздарды алып кетип, "биз сизге чалабыз". Мен бир нече стажировкадан өтүүгө аракет кылдым (акы төлөнбөгөн жана шарттуу түрдө төлөнүүчү): мен техникалык спецификацияны аткардым, бирок акыркы социалдык камсыздоодон өткөн жокмун; бирок азыр мен айта алам, тренерлер T-Systems, CFT, Андерсен жана EPAM тарабынан кабыл алынат (алардын сын-пикирлери аралаш, өзүңүз чечиңиз). Мага келсек, эгер сизде бир нече ай кирешесиз отуруп, өлбөй калуу мүмкүнчүлүгү болсо, бул тармакка чыгуунун жакшы жолу =) Бул окуядан кийин мен бир аз депрессияга түшүп, окуяны издөө менен тыныгууга койдум. дээрлик алты ай бою - мен мурунку профилде иштөөнү уланттым, кээ бир арыздарды жөн гана көңүл ачуу үчүн жаздым, бирок аларды Gitке да жарыялаган жокмун. Мен бир таанышыма жолукканга чейин, мен ага вакансиялардагы кемчorктерди кокусунан айтып бердим: ал учурда ал орто иштеп чыгуучу болуп иштеп жаткан, бирок ал да ошондой эле - өз алдынча окуудан баштаган. Бир таанышым мага бир нече кеңеш берди , ал өзү колдонгон жана келечекте жумуш издөөмө чоң жардам берди. Аларды ээрчийсиңби же жокпу, өзүңө байланыштуу, анткени... алар, кандайдыр бир жол менен, толугу менен чынчыл эмес. Ошентип, кийинки цитаталар:
  • Кандай болбосун, өзүңүздүн резюмеңизде 6+ айлык коммерциялык тажрыйба менен камсыз кылыңыз: стажировка, дипломдук долбоорлор, фрилансердик иш, алыстан иштөө - кандай болбосун. Бул HR тарабынан резюмелерди алгачкы текшерүү баскычында чоң жардам берет;

  • резюмеңизден Кенже жана күтүлгөн эмгек акы деген сөздү алып салуу; жөн гана Java Developer катары калтырып, акчаны ар бир компания менен жекече талкуулаңыз;

  • Сиздин күтүүлөрүңүздү атаардан мурун, HR сунуш кылынган эмгек акынын "айрысын" атаганга аракет кылыңыз. Эгер компания 80-120 миңди сунуштаса жана сиз 40 миң же андан көп сумманы издеп жатсаңыз, кээ бир селекторлор сизге жек көрүү менен мамиле кылышат;

  • 1-3 жылдык коммерциялык тажрыйбаны талап кылса дагы, сиздин стекиңизге ылайыктуу бардык вакансияларга кайрылыңыз.

Мен бул сунуштардын баарын аткаргандан кийин, издөө абалы бир топ жакшырды. Биринчиден, 12ге жакын жаңы жооптордун жарымы дароо эле жолугушууда, Skype же TK менен аяктады (бул мурунку айларда көңүл бурулбай калгандан абдан айырмаланып турган). Экинчиден, HR адамдары мага жаза башташты, мен аларга жооп берген жокмун - тез мессенджерлерде, почтада, LinkedInде. Үчүнчүдөн, коммерциялык тажрыйбага талаптар чындыгында өтө катуу эмес болуп чыкты - көптөгөн компаниялар 1-3 жылдык корпоративдик практиканын белгиленген чегине кирбеген талапкер менен баарлашууга даяр болушкан. Жыйынтыгында - бир сунуш кенже, бир сыноо мөөнөтү менен орто үчүн. Жалпысынан издөө иштери эки айга созулду. Кеңеш :
  1. Резюмеңизге сиз иштеген тилдердин, технологиялардын жана фреймворктордун бүтүндөй стегин кошуңуз.

  2. LinkedIn'де катталыңыз - ал жерде ар кандай компаниялардын HR адамдары абдан көп. Өзүңүздүн профorңизди кылдаттык менен толтуруңуз - чындыгында бул да сиздин резюмеңиз. Байланыш тармагыңызды өнүктүрүү үчүн профorңизге тиешелүү LIONдорду кошуңуз; алар бардык колдонуучулардын суроо-талаптарын кабыл алышат.

  3. Акысыз Java тесттеринде өзүңүздү сынап көрүңүз - алар көбүнчө Junior интервьюсуна чейин кагаз жүзүндө берилет. Алдын ала даярдануу жакшы.

Интервьюлар жөнүндө бир нече сөз
  1. Алар ар дайым коллекциялар жөнүндө сурашат: кайсылары бар, алар кандайча айырмаланат, аларды качан колдонуу эң жакшы.

  2. Дайыма абстракттуу класстарда жана интерфейстерде - аларда методдор, талаалар болушу мүмкүнбү, кайсынысы, мураска алынышы мүмкүн ж.б.у.с.

  3. Дээрлик ар дайым multithreading боюнча - жумушуңузда колдонгон нерселер, ачкыч сөздөр, ыкмалар, сиз util.concurrent менен таанышсызбы.

  4. Көбүнчө эс менен иштөөдө - үймөк, стек жана бул саптар бирдей болобу, жана бул an objectтер, эмне үчүн.

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

  6. Кээде үлгүлөрдүн негизинде - кайсынысын билесиз, кайсынысын колдоносуз, синглтонду же фабриканы жазыңыз.

  7. Кээде SQLде - JOINдин түрлөрү, транзакция деген эмне, аны JDBCде кантип жүргүзүү керек, кыска суроо жазыңыз.

Чынында, бардыгы компаниядан көз каранды : кимдир бирөө Java Core жөнүндө бир дагы суроо бербейт, бирок алHowтар ​​жана SQL жөнүндө сүйлөшүүгө 40 мүнөт коротот; Кээ бир адамдар популярдуу алHowтарды такыр колдонушпайт жана алгоритмдер, түрлөр, коллекциялар жана эс тутум жөнүндө гана сурашат. Жолугушуулардын жарымына жакыны тесттер менен башталды – кээде орус тorнде, кээде англис тorнде (20-30 мүнөткө 20-30 суроо); Адатта суроолор "бул жерде code, ал иштейби же жокпу, эгер жок болсо, анда кайсы сапта" же "бул жерде бир нече an objectтер, N операциядан кийин бирдей болобу". Техникалык мүнөздөмөлөр жөнүндө бир нече сөз : Байланыш баштаган компаниялардын 70% жолугушууга чейин же андан кийин мага техникалык мүнөздөмөлөрдү жөнөтүштү. Адатта, аяктоо бир нече күндөн бир жумага чейин берилет, бирок көбүнчө мөөнөттөр бир аз жылдырылышы мүмкүн. Бардык нерсе техникалык мүнөздөмө катары колдонулушу мүмкүн. Бул жерде мен жасаган мисалдар:
  • Жаңы жазууларды түзөтүү жана кошуу менен Salesforce профorнин бизнес байланыштары барагы;

  • консолдук башкаруусу бар Spring State Machine аркылуу көп кабаттуу имаратта лифттин симуляциясы;

  • LibGDX китепканасына негизделген Android тиркемеси, баскыч басылганда тамгалар боюнча текст чыгаруу;

  • HTTP өтүнүчү аркылуу кардарларды кошуу жана JSON кайтаруу менен REST унаа бөлүшүүнү имитациялоо;

  • багыты жок графикти эркин клетка аркылуу сорттоо маселеси;

  • файлдан координаттарды колдонуу менен тең жактуу үч бурчтуктарды издөө;

  • Stream API аркылуу даяр codeдун рефакторинги;

  • Үчтүк туюнтмаларды колдоо менен UI калькулятору;

  • натыйжаларды файлга жазуу менен жиптердин жарышы.

Кээде эсептөө ыкмаларын бирдик тесттери, ал эми суроо ыкмаларын интеграциялык тесттер менен камтуу суралат. Кеңеш :
  1. Тапшырманы аткарууга гана эмес, codeдун OOP принциптерине дал келүүсүнө да аракет кылыңыз.

  2. Кодуңуздун эффективдүүлүгүн текшериңиз - мен бир жолу четке кагылдым, анткени башка нерселер менен катар BufferedWriterдин ордуна PrintStreamди колдондум.

  3. Аткаруу убактысын 50% маржа менен пландаштырыңыз - мөөнөт аяктаганда эртең менен саат сегизде git push жасагандан көрө, эрте баштап, бүтүргөн жакшы.

Ооба, мен каалаган нерсенин баарын жаздым деп ойлойм. Эң негизгиси суу таштарды жеп кетет. Сиз Java менен көп, көп жаза албайсыз, андан кийин узак, узак убакыт бою жумуш издеп, аягында эч нерсе таба албайсыз. Эгер 30 жаштагы гуманитардык адис аны тартып алса, сиз андан да жакшыраак кыла аласыз. Эң негизгиси, биринчи чалуулардан, техникалык тапшырмалардан жана интервьюлардан коркпоңуз: ар бир ийгorксиз убакыттан кийин мен өзүм үчүн бир нерсе үйрөнүп, аны өркүндөтүүгө кепилдик берем - канчалык узак болсо, ошончолук ишенимдүү сезесиз. Эгер бир жерде башаламан болуп кетсе же каталар болсо - алдын ала кечирим сурайм, жазыңыз, оңдойм. Менин тажрыйбам жок дегенде бирөөгө жардам берет деп үмүттөнөм =)
Комментарийлер
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION