Как научиться программировать?

Работаю сисадмином, но стало надоедать и посматриваю в сторону разработки — особенно интересно направление iOS, Objective C, C++, то есть разработка для мака, в связи со скорым выходом Мак апп стора.

Понимаю что рано сразу начинать с таких дебрей, что посоветуете почитать или посмотреть новичку? Может быть пойти на вторую вышку? (первое — юридическое).
  • Вопрос задан
  • 22030 просмотров
Пригласить эксперта
Ответы на вопрос 12
ilya_compman
@ilya_compman
Вышка тут точно не поможет
Ответ написан
Atrax
@Atrax
Мой старый учитель говорил: «Все эти ваши новые языки и технологии — красивые детские игрушки с лампочками. Математику учите, математику!». Нам было по 14 лет, нас больше интересовала графика, визуальное моделирование в пределах ньютоновской физики и логика на уровне «увернуться от снаряда в ту сторону, где меньше кучность огня». Мы даже пробовали написать шахматы — нарисовали красивую доску с фигурами и бросили, когда поняли, что надо еще как-то рассчитывать сами ходы. А после университета я понял, что все программирование — прошлое, настоящее и будущее — это именно математика, зная которую на все новинки индустрии можно смотреть не «ухты, надо освоить», а «ну, вот теперь они реализовали и это, посмотрим-посмотрим».

Есть разница? :)

Мало кто из web-программистов сможет САМ написать «quick sort» и объяснить, чем он быстрее полного перебора. Или хотя бы усовершенствовать «пузырек» до двустороннего. Только тот, кто кроме технологий изучал основы. Это пример, конечно же. Если более приближенно к реальности — каждый второй сайт в сети социальная сеть, а вот попроси кого-то рассказать о нахождении самых коротких путей в графе — и все… а ведь это все математика, которая программистам «не нужна».
Ответ написан
@dborovikov
Советую как можно скорее приступить к «бою». В режиме обучения можно до конца жизни просидеть. Просто смиритесь, что вначале вы будете писать плохой код, зато потом все лучше и лучше. А теорию потом подтянете, когда будете в «теме».
Ответ написан
Комментировать
Gorthauer87
@Gorthauer87
Программист
Алгоритмы блин, учите алгоритмы вначале! Дискретная математика строго обязательно! Основы учить только в процедурном стиле без заглядывания в ООП.
Ответ написан
Комментировать
MTonly
@MTonly
Веб-разработчик с 2002 года
Известно как — писать программы.
Ответ написан
Комментировать
izmalk
@izmalk
Вторая вышка практически бесполезна. Если есть сила воли чтобы сидеть и работать ради себя, то самообразование — ваш выбор. Сейчас столько ресурсов и книг в интернете, что любой язык выучить можно не выходя из дома.
Имхо стоит выбрать для себя направление (уже выбрали — Obj C, C++), купить/скачать пару книг (некоторые не любят читать с монитора) и начиная с задачек в книжках продолжить чем-то интересным для себя — задаться каким-нибудь функционалом и реализовывать с оглядкой на доступные аналоги.
Ответ написан
Комментировать
@mottogohome
В целом всё верно говорят — садиться и писать программы, формальное образование — это совсем не то, о чем нужно сейчас думать.
Самообразование — писать, читать, читать и писать. Как только знания перевалят за порог прохождения интервью в соответствующую компанию — делать разработку своей основной профессией. Если голова на месте, то это даст самый быстрый профессиональный (что не равно «карьерный») рост. Пусть джуниором, но именно в разработку и очень желательно по выбранному языку/технологии.
Если писать параллельно с основным местом работы, то эффект будет совсем не тем, сил заниматься чем-то посторонним будет всё меньше, потом начнет пропадать желание и так по убывающей.
Пару слов что читать — чтобы опять таки желание не пропало и быстро влиться в процесс — читать литературу по тому языку/технологии, которой занимаетесь. Макконела и Кнута оставьте на потом — это не значит, что их не надо читать, очень даже надо, но после внедрения в свой мозг базовых навыков по разработке, опять таки на конкретном языке/технологии.
Пишу не с потолка, я весь этот путь проходил и вполне успешно, даже не имея профильного образования.
Ответ написан
NanoDragon
@NanoDragon
Советую при изучении языка, анализировать код других авторов.
Ответ написан
Комментировать
Doktor_Gradus
@Doktor_Gradus
Начать писать программы. Раз были сисадмином, возможно заинтересует perl.

Странно, вот в универе мы много всего проходили по алгоритмам. И сортировки, и стеки, и много чего. В качестве курсовой я писал программу по алгоритму Ершова (это про раскраску произвольного графа 4-мя красками). Но значительная часть всего этого сейчас лежит больше мёртвым грузом в мозгу. Тогда же, во время учёбы изучал HTML — просто купил учебник по HTML 4.0 и стал делать странички. Затем захотелось динамики, нашёл книжку по PHP, стал делать простенькие сайтики на заказ. Это были первые доходы. Причём бывало так, что не всегда я знал, как решать задачу. Садился и гуглил-гуглил-гуглил. Затем появился Flash и он заворожил своими возможностями. Купил книжку по Actionscript и сел изучать. Но на флеше я практически очень мало чего делал — не умею рисовать. Потом Python. Изучал аналогично. Нашёл хорошую литературу и делал программки.

В общем, мой путь сформировался таким образом:
1. Ставится цель изучить язык или технологию.
2. Ищется литература (по форумам смотрю, что люди рекомендуют для новичков), скачиваю или покупаю книгу, изучаю, пишу примеры.
3. Когда становится ясно, что я могу сделать из этой технологии/языка, придумываю какое-то приложение, которое я мог бы реализовать на ней.
4. Ну и пытаюсь его реализовать.
Ответ написан
@kmike
Вот хорошая книжка для того, чтобы изучать программирование совсем-совсем с 0: learnpythonthehardway.org/static/LearnPythonTheHardWay.pdf

на английском, правда.
Ответ написан
Комментировать
@Kane
На мой взгляд, это лучшее руководство: www.wikihow.com/Become-a-Programmer
Ответ написан
Комментировать
@BlackPie
а я сейчас как раз получаю высшее образование, и понимаю что это просто жизненная необходимость
естественно всё зависит от вуза
мой университет стимулирует работать 24/7, просыпаясь в выходные по будильнику чтобы побольше успеть
в университете всегда есть у кого спросить совета
дискретная математика, теория автоматов, теория алгоритмов… когда готовишься к сессии и конспектов не хватает, ищешь в интернете это, и не так то просто ведь найти!
а если вы собрались заняться самообразованием сами, как вы это изучите?
а сколько в университете семинаров, спецкурсов, лекций от приглашенных лекторов?
что тоже сложно — подобрать себе задание по програмированнию, в вузе же это решается за вас!

поэтому я считаю что если хочется серьезно заниматься разработкой, то вышка обязательно нужна, вместе с магистратурой
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы