Хочется влиться в IT
В общем ситуация такая, закончил свою шарагу (Куда поступил по глупости) и понял, что работать по профессии желания нет совсем. Хотелось бы "Войти" в сферу IT, но пошуршав интернет самостоятельно, обнаружил что курсов слишком много и на русском, и на английском, практически за все просят деньги (Причем немалые), однако неясно, что из этого развод,а что нет.Отзывы читать так же пытался, но опять же непонятно какие из них купленные. Хотел бы попросить ссылок на ресурсы / курсы (платные, бесплатные, главное что б рабочие) которые помогут разобраться в этой сфере человеку, который видел работу программистов только в фильмах.
Еще на тему
И начинай практику уже щас. Ставь unity/android studio/visual studio/что душе вообще угодно, и кодь хоть калькулятор
Норм starterkit в эти ваши жопоебные фронтенды - htmlacademy+learnjavascript+просто бахнуть чтонибудь по примерам и react-а, а потом пытаться это продать на собесах.
Из школьных, основные требования - хорошее знание математики и информатики. Ну и дауном в целом желательно не быть.
Самой математики в программировании не так много, 80% всех позиций в программировании сейчас не требуют математики высокого уровня.
В целом варианта два - либо сразу пытаться набрать минимум на написание кода и работы программистом (но тут нужно куча времени, куча усилий и удачи + лапу сосать придётся постоянно). Либо второй вариант - развиваться постепенно из "входных ворот в ИТ", постепенно накапливая не только знания программировании, но смежных специальностей, которые не менее важны. При этом получать деньги и управлять своей траекторией развития.
Входные ворота: 1-2 линия саппорта (консультировать пользователей за проблемы с ПО/железом), администрирование (настраивать винду, ПО, работать с базами данных), тестирование, бизнес-аналитика, закупки -> менеджмент проектов.
Бывают полезные курсы, но без понимания пути развития и практики, они будут на 70% бесполезными.
Платные курсы часто бывают хуже бесплатных.
Курсы переквалификации на программиста (на примере курсов в НИУ ИТМО, которые я прошёл. Думаю в Питерсом политехе ситуация такая-же), базы особо не дают - только верхнеуровневое понимание. На работу после них не устроишься.
Но я видел много отличных программистов после колледжа, которым даже вышка не нужна была - у них всё было хорошо.
Я бы устроился в саппорт/администрирование/тестирование, начал готовиться к поступлению в колледж, изучать сперва свою область, а потом, постепенно, переползать в программирование.
Ещё одно, проще всего программирование учится на задачах, а не на курсах. Ставишь задачу себе сделать что-то и практикуешь подходы к его решению. Просто если ты хочешь иметь не только результат, но и надёжный, быстрый и понятный результат, то тут надо подтягивать теорию.
И ещё важно не разбредаться по языкам - выбрать один и долбить только его.
Это уже задрачивание какое-то. Если начинать с C или C++, то потом все языки выглядят почти одинаковыми. Главное усвоить концепцию указателей и потом уже пофиг на чем писать. Ну и проще будет свичнутся на другую технологию, если текущий выбор не нравится или платят мало
Есть общие принципы программирования.
Есть ещё куча вещей в программировании, которые никак не завязаны на языке.
Но если ты хочешь максимально быстро найти работу и получить знания, то ты развиваешься из практики работы с конкретным языком.
Иначе тебе открывается долгая дорога ВУЗ"овского образования, где ты сперва учишь n лет как писать на любом языке, а потом вальяжно выбираешь языки и начинаешь на них писать через пару месяцев.
Если все языки выглядят одинаковыми это говорит только о том что ни один из них не знаешь на хорошем уровне.
С си++ стоит начать, потому что после питона или джавы не очень просто понять как управлять памятью. Самый банальный пример - что такое замыкание? В C++ оно реализуется как functional object(да я знаю про С++11, но это тоже синтаксический сахар) и где придется руками захватывать переменные и самому следить за временем жизни всей этой херни и ты сразу понимаешь что такое obj-c blocks или замыкания в swift и как они релизованы и если немного подумать, то зачем нужен @escaping и где в замыканиях надо ставить [weak self].
Да даже в java тоже надо следить за утечками. Тот же анонимный класс, который всегда захватывает инстанс, где он был создан и может привести к утечкам Activity.
Я не считаю, что надо изучать всякие дебри плюсов, но вот понимание помогает как в собесах, потому что я не отвечаю заученными фразами из документации, а могу объяснить что это за херня и как оно реализовано хотя бы примерно
Алгоритмами нужно заниматься отдельно без привязки к языкам
А давай не будем вычёркивать примеры, которые не вписываются в твоё мнение.
C++, Obj-C и Swift очень похожи между собой, философия и подход близкие.
Java и Kotlin тоже близкие родственники.
В JS уже другой подход. А Haskell, Go, Elixir и прочие ещё сильнее отличаются от С/Java.
Алгоритмы и общие принципы как SOLID, DRY применимы везде, но как они будут применяться сильно зависит от языка.
Если в С нужно самому следить за памятью и вот этим всем то в других языках этой проблемы может не быть в принципе, зато куча другой специфики.
Без опыта работы 99% работодателей в тебе не заинтересованы - опыт приобритается фрилансом либо через подготовительные курсы самих компаний. На курсы в компанию попасть тоже не просто - необходимо уже знать необходимый минимум.
Без знаний SQL в тестирование и разработку лучше даже не пытаться.
Начни с изучения методологий и цикла разработки, чтобы иметь общее понятие о том, как работает сфера, куда ты хочешь влиться.
В IT нужно хорошо уметь в логику, без нее уже достаточно "влившихся" долбоебов, которые пошли ради хорошей зп, а теперь ноют, где же она.
Ну и всякие гикбрейнс и курсы яндекса - не рекомендую, после их плтаного прохождения просто так работа не появится. После них на работу попадают в основном те, кто и без этого смог бы устроиться, потому что много читал и учился самостоятельно.
как раз это и хотел посоветовать
в своё время хотел влиться и охуел с того что на курсах по ява-погромированию с меня хотели половину моей текущей зарплаты, а так, как яву я пытался выучить и без этого и не зашло ниразу, определился и стал тестировщиком, сейчас доволен и зарплатой и местом работы
но при первом трудоустройстве сыграли роль два преимущества:
- хороший английский
- 10ти летний опыт системного администрирования
Почему тебе после шараги не поступить в ВУЗ на айтишный факультет? Даже если ты долбоеб, который не может сдать ЕГЭ, поступай платно, хоть заплатишь на что-то полезное. Ну и учти, что за 6 месяцев ты ничему не научишся, придется потратить пару лет, чтобы дорасти до джуна. И еще там преподы смотрят на адекватов и хантят их к себе в контору. Ну и диплом пригодится, если соберешся заводить трактор
PS Если пойдешь в вуз, задрачивай лабы. Делай больше чем требуется. Нужно сделать сделать поиск подстроки - заебашь какую-нибудь формочку с текстом и сделай поиск в бэкграунде, чтобы приложуха не подвисала. И смотри немного глубже чем, свойство text у этой формочки. Смотри, что внутри и как оно работает. Очень сильно пригодится.
И рекомендую потратить силы и осилить линух, лучше какую-нибудь генту - научится и писать скрипы и поймешь как работает компьютер
Онлайн курсы для новичков в основном херня. Даже youtube будет информативнее. Физические курсы (с живым общением) - ну такое... Хотя я знаю пару человек, которые свою карьеру начали с таких курсов.
В универе программировать учат первый курс. Потом идут прикладные дисциплины и изучение каких-то узких направлений.
Можно пойти в тестировщика, но это чернорабочий. Пока варишься в тусовке - сам что-то учи, смотри с чем тут работают. Через какое-то время можешь подойти к какому-то лиду и спросить: "пс, вам джун не нужен?".
Спрашивать тоже не особо хороший способ, на все твои вопросы были даны ответы много раз.
Первое чему стоит научиться это гуглить, второе это английский.
Можно поискать "Awesome JS(ruby/python/etc)", такие подборки всего и вся по языку, про инструменты и парочка рекомендаций по литературе тоже есть.
Много сайтов с упражнениями разной степени сложности для разных ЯП, например codewars.
Гугли, читай, пробуй.
Во-первых, как какие-то пидоры выше уже отметили, есть QA/QC, т.е. Quality Assurance/Control, на русском — тестирование и контроль качества. Любой продукт требует человеческого контроля, потому что конечные потребители продукта — именно люди, и только человек способен оценить, что продукт выглядит и работает именно так, как должен. Требуется мозг (хотя бы спинной), умение кратко и грамотно выражать свои мысли, и неукротимое желание заставить ленивого потного жиробаса-разработчика сделать именно так, как правильно, а не так, как ему проще.
Во-вторых, есть такая профессия как технический писатель, человек, отвечающий за написание разнообразной внутренней и внешней документации. Тут требуется не только стройное мышление, но и грамотный письменный русский, а часто ещё и английский, язык(и). А если у тебя есть понимание, почему английскую версию документации невозможно за минуту получить из русской при помощи гугл-транслейта, то ты, считай, уже умнее всего отдела маркетинга (правда, только в случае, если компании таки не повезло с отделом маркетинга).
Из прочих общих требований: нельзя быть тупым, такие в IT просто не задерживаются, нужно легко и быстро учиться чему-то новому, важно не столько обладать конкретными знаниями, сколько знать, где они лежат и/или как их добыть, например просеяв большое количество нерелевантной информации в поисках зерна истины. Ну и разумеется желание впахивать, как проклятый, потому что это, возможно, будет твоим единственным преимуществом на фоне иных многочисленных желающих "влиться в IT", но я надеюсь, что ты это и сам понимаешь, пидор.
http://joyreactor.cc/post/4666673
2 поста с книгами, видео, ссылками разной itшной тематики. Качай если что заинтересовало