Разум Pikabu, приди на помощь, дай совет. Хочу стать программистом.

Итак, пост создается исключительно с целью получить совет знающих людей.

Мне 28, живу в Москве, есть работа. Офисный планктон. Неплохо зарабатываю, но душа просит изменений. Образование в сфере менеджмента, т.е. по сути очередной бесполезный продукт современного образования, в то же время не обделенный разумом и умеющий обеспечить себя и жену.

В последнее время часто задумываюсь о смене сферы деятельности, хочу стать программистом и теоретически пару часов в день могу уделять самообразованию в этой сфере. Для минусящих поясняю: семью кормить нужно, поэтому основную, текущую работу я бросить не могу никак.

Дилемма состоит в том, что даже не представляю, сколько времени у меня уйдет на то, чтобы вникнуть в сферу, где я на данный момент полный 0. Стоит ли менять что-то, либо развиваться в том деле, которым сейчас занимаюсь.

Pikabu, приди на помощь, помоги советом. Сколько времени может уйти на изучение необходимого материала, стоит ли оно того? Хотелось бы забуриться в написание приложений под android, либо ios. Что стоит выбирать? Не поздно ли что-то менять? Буду благодарен всем, кто уделит минуту и выскажет своё мнение, ибо исходя из результатов поста буду принимать важное жизненное решение. Надоело заниматься херней, хоть она и приносит доход. Спасибо всем заранее!


P.S. Склад ума аналитический, в своё время выигрывал олимпиады по математике. Давно было, но было.

Разум Pikabu, приди на помощь, дай совет. Хочу стать программистом. Программист, Решение, Помощь, Совет, Нужен совет
Вы смотрите срез комментариев. Показать все
4
Автор поста оценил этот комментарий

Самое важное - мотивация. Если она есть, проблем не будет.


Второе по важности - не сдаваться. Есть кривая перехода количества знаний в качество. Так вот, для программиста она крайне пологая (долгий период накопления знаний). Для того же тестировщика (который QA) она значительно короче, возможно Вам стоит обратить внимание на это направление?


Третье - английский язык. В идеале, все теоретические материалы стоит изучать на английском (уменьшается риск непонимания), но без достаточно уверенных знаний очень скоро упретесь в тупик (исключение - 1С, но это даже обсуждать не хочу). Как вариант - много переизданий популярных книг на русском есть, поэтому изучение английского можно вести параллельно с програмированием. В сложных случаях - Гугль или Яндекс в помощь.


Четвертое - цель. Важно понимать, к чему стремишься. Если хочется окунуться по-минимуму - то лучше в QA, там специфика работы требует меньшего погружения. Если рассчитываете на долгострочные перспективы - тогда фундаменталки (С++, Java).


Пятое - будьте готовы много читать. Нет, не так... ЧИТАТЬ!!!! Материала много, даже по специфическим вопросам. Начиная с книг, затем форумы и программеркие сайты (StackOverflow станет Вашей домашней страничкой на долгие годы), затем - чужой код (не умея читать чужой код просто глупо учиться - для начала достаточно понимать, что чужая программа делает)


Шестое - среда разработки (IDE). Достаточно знать, какие есть популярные, какие они языки и технологии поддерживают, для обучения - выбрать какую-либо одну и совершенствоваться в ней (советую NetBeans, по ней много документации русскоязычной, да и опенсорсная). В идеале, тру-хардкор - это блокнот в Винде и wim в Линуксе, но это уже жестоко для начинающего (не советую, но ради фана как-нибудь попробуйте обязательно)


Седьмое - операционная система. Винда - это хорошо) Но Линукс тоже нужно изучить. В идеале - МакОсь (если есть доступ к яблочной технике)


Кратко о языках (мое скромное мнение)


Компилируемые языки (С, С++) - наиболее быстрые в плане выполнения, но требуют предварительного перевода в машинный код (собственно, компиляции).В идеале - компиляция на машине, где предполагается рабоать программе. Для справки - UNIX системы (к которым относится Линукс и его дистрибутивы) написаны на почти голом С.  Сложны в освоении, высокий порог вхождения (я бы сказал - наивысший), легко "выстрелить себе в ногу и не только..."

Код имеет сильную платформозависимость, т.е. под разное "железо" код придется править (как минимум - перекомпилировать, как максимум - переписать)


Интерпретируемые языки (Java и ее мириады детей) - по скорости уступает С и С++ (с оговорками), не требует предварительной компиляции (опять же, с оговорками). Основной плюс и сила Java - практически полная платформонезависимость (Android тоже написан на Джаве, да). Сложно в изучении из-за изначально Объектно_Ориентированного кода (пока не поймешь концепцию и правила ООП, дальше будет гораздо легче). Опять-таки, очень много документации (русскоязычной хватает).


В кратце, воть)


Будут вопросы - с удовольствием постараюсь ответить.


п.с. сам программист со стажем 2+ года, основные языки - С/С++, Java, Lua, ОС - Ubuntu 16

раскрыть ветку (3)
1
Автор поста оценил этот комментарий

Спасибо большое, даже не ожидал такого развернутого ответа. Обязательно обращусь, как вопросы начнут появляться!


P.S. С английским всё неплохо, не fluent, но фильмы смотрю спокойно.

раскрыть ветку (2)
1
Автор поста оценил этот комментарий
Незачто)

О возрасте - мне сейчас 31, 7 лет женат уже, детей пока нету.


Начал активно пинговать программирование с 27 лет, в 29 - нашел свою первую работу как джун С++

На реальном проекте знания впитываешь быстро и как губка. Когда есть реальная задача и дедлайн по ее решению - очень мотивирует.

Ну и главное (не считая ЗП) - это реальное удовольствие от решенной задачи (в виде работающей программы). Это кайф)

раскрыть ветку (1)
1
Автор поста оценил этот комментарий

Вот такие комменты реально мотивируют ) А то просишь совета вроде как, а кто-то неистово минусит. За что - хз :) Спасибо, реально благодарен тебе за ответ.


У нас с женой тоже пока детей нема, но активно решаем вопрос )

Вы смотрите срез комментариев. Чтобы написать комментарий, перейдите к общему списку