Здравствуйте!
При смене профессии(давайте уточним – при кардинальной смене профессии) каждого человека обуревают разного вида страхи. В случае программирования эти страхи чаще всего связаны с:
1) Мне нужно знать математику, а я гуманитарий.
2) Программирование это гиперсложно.
Я уже много раз писал об этих двух страхах в разных статьях блога, а тут просто коротко повторюсь: 1) Математика вам почти не будет нужна, если вы выберете веб-программирование. 2) Программирование сложно, если вы ленивы и неусидчивы. "Математичность" и "гуманитарность" давайте раз и навсегда оставим в покое, чаще всего это просто отговорка. Вы можете, если вы усидчивы и будучи любителем точных наук, читать сложную литературу, в том числе философскую(и что-то мне подсказывает, что ваш "технарский" склад ума в этом вам еще и поможет), а будучи любителем сложной литературы, вам будет интересно погрузиться в глубины точных наук. Давайте определимся, что наш мир не состоит из одних лишь точных наук и из одних лишь философских книг и художественных романов. Уж если в мире, таком сложном организме, они мирно уживаются, то вы-то точно подружите их в себе. По крайне мере я очень в это верю. Хуже, если вы ленивый потребитель еды и сна, вот тут, конечно, вам будет сложно не только в гуманитарных и точных науках, но и вообще в жизни.
Давайте еще немного про "сложность" программирования. Когда я учился на юридическом факультете, один из преподавателей на первом курсе, сказал нам одну умную мысль: вы не должны знать все законы и кодексы наизусть, вы должны понимать, где их найти при необходимости. Так же и в программировании: вы не должны заучивать всё наизусть, так это не работает и зазубривание вам ничем не поможет. У вас должна быть база и практика написания кода(да, решение задачек, да, свои небольшие проекты), но вы не должны быть гением программирования, когда придете на свою первую работу, вы будете делать из себя гения в процессе. Только практика работы сделает из вас хорошего программиста. Надеюсь, не нужно уточнять, что обучение бросать нельзя, обучение бросать нельзя даже тогда, когда вы уже работаете, да у вас и не получится это сделать, иначе вы быстро поймете, что перестаете что-то понимать и не можете делать задачи. С каждой новой задачей вам будет страшно, но страх этот будет постепенно исчезать в процессе выполнения задачи. Страшно будет всегда, поэтому к этому нужно привыкнуть и принимать это как очередной вызов. Если при выполнении новой задачи вам не стало страшно, то она не принесет вам удовольствия при выполнении и быстро будет сделана, с одной стороны это круто(это значит, что вы что-то уже умеете, с другой же стороны,со временем вы будете желать сложных задач больше, чем простых). Резюмируем: увеличивающееся количество разноплановых простых задач говорит не о рутинности процесса, а об улучшении ваших навыков. Небольшое дополнение: тут важно не обманываться, что если вы легко выполняете задачи, то вы уже супер крутой профессионал, нет это не так: предела развитию нет. Можно привести такую аналогию: когда вы учитесь кататься на лонгборде, вы сначала боитесь упасть, но только когда вы станете суперуверенными – вы упадете. Повторю еще раз: обучаться нужно всегда, это нужно для развития.
Теперь к теме статьи(боюсь как бы вступление не оказалось длинее чем основная чать =))). Итак, что же самое сложное в программировании, если вы новичок? К сожалению, к программированию причина не имеет никакого отношения. Самое сложное в программировании – найти первую работу программистом. Если в обучении программированию исключительно всё зависит от вас. То в поиске работы около 70% приходится на удачу. Если, конечно, вы выпускник какого-нибудь уважаемого университета, например, "бауманки", ИТМО или МФТИ, то вас возьмут куда быстрее, чем если вы занимались самообучением и удача будет на вашей стороне. Но если вы выпускник этих учебных заведений, то вы вряд ли читаете каналы по программированию на Дзене.
В нашем случае мы можем только составить хорошее резюме(оно в любом случае будет плохим, делали ли вы его сами или делали на заказ за деньги, потому что человеческий фактор и "синдром вахтера") и отправлять это резюме по всем фронтам и на почты компаний, и на площадки по поиску работы, и всем контактам в LinkedIn, и по всем своим знакомым.
Когда же вы найдете первую работу программистом: держитесь за нее всеми руками и ногами, соглашайтесь на любые задания(чем их будет больше, тем лучше). Как минимум первые год-полтора, нужно выкладываться на 200%, дальше тоже нужно будет работать упорно, но через год-полтора вы будете избавлены от необходимости искать работу – работа будет находить вас сама. И тут всё уже зависит от вашего желания менять работу, либо оставаться на текущей. И дело даже не в размере заработной платы, а опять же в развитии(работодатель, если он не идиот и если вы не работаете в компании, которой пофиг на работников, будет следить за повышением вашей заработной платы). Если вы понимаете, что хотите идти дальше в развитии, а старое место не может вам этого дать – решайтесь и меняйте работу, но прежде надо убедиться выжали ли вы из этой работы максимум. А еще подумайте: возможно вы что-то можете дать этой работе и сделать ее еще лучше? Но это мы уже заглядываем в далекое будущее.
Вывод: практикуйтесь, пишите код, идите туда, где страшно, преодолевайте себя и в конце концов вы найдете работу своей мечты.
На этом всё: всего вам хорошего и доброго.