Для тех, кому интересно знать с чего начать программировать и можно ли стать программистом, не зная математики
Итак, вы решили, что вам нравится программирование, сели за комп, и.. впали в ступор, потому что не знаете, с чего начать.
Первое главное правило: если хотите стать программистом (вообще, любым специалистом), научитесь добывать, фильтровать и усваивать информацию. То есть вашим первым шагом должен быть запрос к дяде Гуглу (Яндексу, Рамблеру и т.п.) должен быть "с чего начать программирование". Поисковик вам выдаст миллионы страниц с ответами. Разумеется, все вы никогда в жизни не прочитаете. Выберите оттуда 10-15 статей и 5-10 форумных тем с большим количеством ответов и прочитайте их - там все разжевано и расписано. Если вам это лень делать, можете включать любимую игрушку и забыть о программировании, потому что вы просто не сможете работать программистом, не умея работать с информацией.
Если же вы прочитали все это, то должны были себе взять на заметку, что для того, чтобы начать программировать, нужно:
- поставить себе цель (для чего вы хотите научиться? вы хотите написать какую-то игрушку или сайт? Или хотите программировать микроконтроллеры? Или вы еще не можете выбрать отрасль программирования, которая вам интересна?). Игрушка (самая распространенная причина у подростков стать программистами) - это вещь достаточно сложная и долгая (вы же хотите не тетрис создать, а супер-пупер онлайн проект, в который играют миллионы) - так что забудьте о ней на время. В ЛЮБОМ случае, чем бы вы ни захотели заняться, вам придется изучать самые азы программирования.
- выбрать язык программирования. Так как мы с вами выяснили, что вам придется изучать самые азы программирования, то язык не столь важен. Можете выбирать любой. Но не зря в школах, колледжах, ВУЗах и других учебных заведениях первыми преподают Паскаль или Си. Паскаль изначально создавался для обучения студентов программирования, а посему он, ИМХО, весьма хорош для начала. Также можно начать с Си - для того, чтобы потом не переучиваться на другой синтаксис, потому что очень много языков программирования Си-подобные. Не надо в панических поисках, какой же язык лучше, плодить еще более бесполезные, к тому же холиварные темы, "один язык vs другой язык". Каждый будет хвалить свой любимый язык или спрашивать, с какой целью вы хотите научиться программированию, потому что разные языки являются лишь инструментом, и заточены под определенные задачи. Но вы-то ответите, что хотите написать игру, и вас поймут неправильно, начнут вам советовать DirectX или еще какую-нибудь штуку, до которой вам учиться и учиться. Запомните: вы хотите изучить АЗЫ ПРОГРАММИРОВАНИЯ!
- после выбора языка вам нужно скачать IDE - среду разработки. Не нужно снова лезть на форумы с вопросом "какая IDE лучше?". Скачайте любую. Потом вы поймете ее недостатки и, возможно, измените свой выбор. Но это потом, когда вы уже начнете понимать, что вы делаете. Почему я советую именно так? Да потому что в подобных поисках "а какая IDE (язык, книга) лучше?" все на этом и останавливается. Потом вы сами поймете что лучше. На своем опыте. Потому что это не тот случай, где нужно учиться на чужом. Одному нравится это, другому - другое. Не факт, что вам это подойдет. И вы разочаруетесь.
- теперь ищем книги по теме. Не нужно качать миллион книг. Скачайте одну. Не "Программирование за 21 день" и не "Программирование для чайников". Остальное катит. Ну, в разумных пределах, конечно. Не нужно сразу брать книги, типа "Нестандартные алгоритмы" или "Углубленное изучение такого-то языка" или "Сокеты на таком-то языке". Нет. Вам нужны книги с названиями "Программирования на таком-то языке" или им подобные. (Не стоит брать Страуструпа, если вы хотите изучить С++. Для человека, который шарит хоть в одном языке, эта книга незаменима. Для новичка - это просто темный лес, поэтому если не хотите мучаться, берите кого-то подружелюбнее).
- итак, книга у вас есть. Не знаю, почему, но сколько мне приходилось читать книг, они все по своей структуре отличаются от структуры преподавания языка в учебных заведениях.
Но я рекомендую именно ее. Не нужно начинать с ООП (объектно-ориентированного программирования). Структура такова:
- объявление, ввод, вывод переменных
- ветвления (if, switch)
- циклы
- массивы
- структуры
- работа с файлами
- ООП (классы)
После всего этого можно начать углубленно учить выбранный вами язык, можно переходить на другой - азы у вас есть. Теперь вы уж точно определяетесь, что конкретно вы хотите от программирования, и учите тот язык, который нужен для реализации вашей идеи. Думаю, после пройденного курса, вы не побежите опять на форум с вопросом "а какой язык изучать дальше". Если вы правильно все сделали, то уже умеете искать информацию.
Для тех, кто плох в математике.
Могут ли они стать программистами? Ответ: можете, если не сопли будете размазывать по форуму, что у вас нет времени (сил, денег) на понимание (изучение, репетитора), а сядете и начнете программировать. Математика нужна только в определенных областях программирования. Но это не значит, что без ее знания вы не сможете работать в этой области. Сможете. Но тот программист, который шарит в математике, сделает задачу в разы быстрее и качественнее, напишет более быстрый алгоритм там, где вы будете сутками, а то и месяцами биться над задачей. Но это касается не только математики. Те из моих знакомых, которые наплевали на обучение в универе, и изучали программирование сами, не решая миллион разных задачек на массивы (с выводом заштрихованных областей, с выводом массива спиралькой, с транспонированием матрицы и т.д.) - сейчас на работе справляются с ними, но в несколько раз медленнее чем те, кто их решал в универе. Им приходится самим выводить некоторые формулы - и выводят. Или искать их в гугле, не зная их правильное название - и находят. Так что я не вижу препятствия в программировании для тех, кто не знает математику.
Для тех, кто хочет поступить в ВУЗ на программиста, не зная математику
У меня на специальности было 15 различных математик. Вот и представьте - как вам будет платить за все эти предметы (а по ним же и зачеты, и экзамены), не накладно? Если нет, тогда вперед. Но учтите, что много курсовых на предметах программирования задаются именно из раздела математики. Например, составить программу, которая будет решать какие-то там уравнения каким-то там методом.
Для тех, кто когда-то что-то учил сколько-то лет назад, а теперь хочет начать заново
Вам пункт 4 в помощь. Осталось только определиться, что вы хотите делать. Этого за вас никто не решит. Поэтому нет смысла задавать вопрос "что лучше Делфи или Ассемблер". Ничто не лучше. Они - разные. Для разных задач. В Википедии есть описание языков программирования с примерами тех задач, которые с помощью них можно решать. Во-первых, попробуйте вспомнить свой "родной" язык на уровне азов. А потом уж выбирайте, к какой отрасли душа лежит.
Для тех, кто хочет начать программировать в 40, 50, 60 и более лет
Хотите - начните. Программисты не балерины, они в 30 на пенсию не уходят. Неважно сколько лет хорошему программисту. Даже если вы хотите переквалифицироваться (в смысле не для себя программировать, а сделать это профессией), да ради бога - начинайте! Конторы присылают тестовое задание. И по нему смотрят, нужен ли им этот программист или нет. Другое дело, что в возрасте усваивать информацию, наверное, будет сложнее. Но не думаю, что это сильно большое препятствие для человека, действительно задавшегося целью. У меня в группе был дяденька, который вообще не шарил в компах, даже не видел их до начала обучения. Но он хотел учиться, и уже через пару месяцев он нам-"компьютерным умникам" уже давал советы, какой конфигурации комп лучше взять для того-то и того-то, в железе стал шарить лучше препода. Так что возраст вообще не показатель.
Для девушек
Принадлежность к женскому полу мне мешала устроиться на работу лет 5-7 назад, когда все напрочь работодатели были уверены, что женщинам не место в программировании. Сейчас эта принадлежность, скорее, помогает. Потому как смотрят пока еще на девушек-программисток как на экзотику и стараются себе заграбастать. Через год-два всем будет абсолютно пофиг: парень или девушка. Лишь бы знания были. Будут ли подкалывать знакомые парни и парни-одногруппники? Будут. Пока вы им нос не утрете. Своими успехами в программировании.
Вроде все, что я хотела сказать. Главное - делать.
автор: ACE Valery