1. Нужно знать математику и сложные алгоритмы
95% задач разработки никак не связаны со знанием математики.
Вы решаете конкретные бизнес-задачи. А там самое важное - умение мыслить логически. И это не какая-то сложная логика, а базовая причинно-следственная связь:
- Если пользователь нажмет на кнопку, то...,
- Если пользователь введет неверный пароль, то…
- Если длина пароля меньше 6, то….
Вот такие задачи решает подавляющая часть разработчиков.
Да, безусловно, есть часть прикладных задач, которые требуют знания сложных алгоритмов. Но это сфера отдельная, и там трудятся человеки, для которых математика “мать родная”....да и “отец тоже”.
Лично я туда не лезу и вам не советую.
Но если вы второй Перельман или умеете посчитать логарифм от 943534, то можете на этом моменте послать меня, и я даже не обижусь.
Уясните простую истину:
Базовые математический аппарат реализован уже кем-то до вас (годов с 80-х), а вы лишь используете библиотеки, которые предоставляют вам “магию” из коробки.
Про библиотеки, SDK, API и прочее поговорим позже.
2. Нужно знать английский язык
“Лондон из зэ кепитал оф грэйт британ” - вот такого знания языка вам более, чем достаточно. Никто не спорит, что знать английский хорошо и полезно, но это не является стоп-фактором для программиста.
Все очень просто:
Когда вы пишите код, то да, там английский буковки. Если быть точным, то это латиница, но суть от этого не меняется. Однако никто не пишет код, переводя его на английский/с английского. Любой адекватный программист работает с языком семантически. Что это значит? А давайте покажу:
var user = new User()
var polzovatel = new User()
Можно и так и так обозвать переменную, содержащую информацию о пользователе.
И оба варианта правильные, и оба будут корректно работать. Поэтому знать как правильно на английском будет звучать “пользователь” не обязательно, а следовательно, и знать английский не требуется.
Еще один аргумент:
БОльшая часть документации по языкам программирования, библиотекам, другими словами, почти все, что вы используете в программировании, доступно на русском и не требует никаких знаний иностранного языка.
3. Нужно отучится в ВУЗе на программиста
Это вообще отдельная песня. До сих пор многими продвигается идея, что для разработки нужно получить фундаментальные знания в ВУЗе, пройти супер-курсы и т.д.
Но реальность такова, что эти учебные заведения (особенно ВУЗы) не поспевают за технологиями, и продолжают учить по программам 10-летней давности. И это в лучшем случае.
Я серьезно, в моем университете преподавали программирование на “Паскале”. И это в условиях рынка, где доля паскаля минимальна. Ну т.е. учат тому, что уже почти мертво. Про качество самого образования молчу.
Всегда считал, что нет ничего лучше самообразования и практики.
Учитесь сами - в интернете есть все, что вам нужно. Бесплатно.
4. Нужно много времени, чтобы изучить программирование
Это утверждение само по себе истинно. Но все зависит от глубины знаний и желания в эту глубину нырнуть.
Для того чтобы начать разрабатывать, много времени не требуется.
Как всегда, работает правило “Паретто” - 20% знаний языка/платформы, и вы уже можете разрабатывать 80% функционала вашей программы.
А дальше постепенно увеличивать свои навыки и совершенствоваться. Тут, конечно же, требуется уже много времени.
Но позвольте, а где не так? Хороший водитель становится хорошим быстро? Становится водителем быстро, а хорошим через практику и время.
Потратьте немного времени, попробуйте - и если это ваше, то уже вкладывайтесь основательно.
5. Я молодой/старый для этого
Не припомню, чтобы умения/знания/целеустремленность были связаны с возрастом.
В мире полно примеров, когда молодые 15-летние ребята уделывали в пух “опытных” дядек. То же самое работает и в обратную сторону - много примеров, когда “старички” делали то, на что неспособные другие.
Это могло бы быть важно, например, в спорте. Но не в программировании.
В программировании тебе нужен компьютер, руки, интернет и “квадратная задница”.
Если все это есть - ты можешь начать.
А если не хватает только квадратной задницы - не переживай, она такой станет в процессе :)