Я сам самоучка, потому что в мое время в глубинке компьютеров почти не было, а образование в этой сфере получить было практически невозможно. У меня не было возможности учится на программиста, поэтому вынужден был все изучать по книгам и на своих ошибках.
Можно ли научится самостоятельно хорошо программировать? Да, можно. Желательно всё же высшее образование и с хорошим математическим уклоном, но даже и без него можно. А нужно?
Представляете себе, вы приходите к врачу, а там врач самоучка. Он учился по книгам, а теперь решил практиковаться без поддержки наставника и будет совершать первые ошибки на вашем здоровье. Лично я не хотел бы такого врача.
Даже врач сможет научиться лечить и делать операцию по книге, но лучше всё же тот врач, которому помогали реальные люди и специалисты.
У меня хоть и не было высшего образования, но я ездил на курсы от Microsoft в МГТУ и Баумана. Книги - это прекрасно и нужно, но реальный опыт людей не заменить. Поэтому я всегда рекомендую читать книги разных авторов, чтобы увидеть опыт разных людей. Но если ты еще в школе и планируешь выбрать программирование своей профессией, пойди в институт, возьми официальные курсы, получи общение с реальными людьми.
Я не знаю, в каком состоянии сейчас образование в России или какой ты страны, но образование по профилю никогда не будет лишним, а будет только огромным плюсом.
Не нужно смотреть, что большинство программистов моего поколения сами не имели такого образования. Тогда времена были другими и у меня в институте доступ к компьютерам был только у студентов-экономистов, а на программистов вообще не учили. В городе кажется было только в дух институтах по одному факультету ИТ специальностей.
Понравилось? Кликни Лайк, чтобы я знал, какой контент более интересен читателям. Заметку пока еще никто не лайкал и ты можешь быть первым
Научиться многому можно на работе под руководством опытного начальника. Меня правильно использовать возможности 1С Предприятия научил именно начальник. Книги много знаний дают. В Delphi помогали твои книги, Михаил, за что спасибо. Закончил мат-мех УрГУ, математика тоже помогает в программировании. Я не использую в программировании высшую математику, но развить голову математика помогает. В крупных ИТ компаниях высшая математика, я думаю, используется. Лучшее образование для программиста (имхо) - математические факультеты, мех-мат МГУ, мат-мех УрФУ (только учиться там сложно).
Привет Михаил,есть множество ресурсов по программированию которые проводят регулярные соревнования на правильность написания кода и умение решать задачи.Самые крупные есть в Америке и в России,кому интересно могут найти адреса в интернете.В российском ресурсе плюс к всем есть огромная мотивация,как к учебе так и к поступлению в ведущие вузы России, потому что на этих площадках обитают как и студенты,так и школьники и вообще много крутых программистов с всего мира.На Российском сайте программисты делятся на два дивизиона - это профессионалы и любители соответственно. Да и на сайте есть рейтинг вузов и организации мира,чьи представители,а это могут быть преподаватели и студенты участвуют в соревнованиях.Вообще посмотреть на рейтинг вузов мира,чьи студенты выигрывали ведущие соревнования по спортивному программирования,можно сразу понять какое образование в России.
о, у меня такие часы висят!
Михаил, может вы мне подскажите, не могу выбрать
Создаю сайты на CMS WordPress, то есть знаю WordPress API, и возникла такая делема, углубляться в CMS WordPress(изучать как плагине создавать) или учить ООП в PHP и какой-то фрейморк, может вы подскажите ?
На мой взгляд, надо не \"учиться на программиста\" (лоховское выражение, если честно), а программисту нужно учиться.
Имхо, в программировании, как и в музыке, в живописи, в шахматах - первичен талант все-таки, и любовь к этому делу. Но без образования далеко не уедешь, потому, что помимо языков нужна база (алгоритмы там, всякое-такое), а еще нужно владеть технологиями.
Обратите внимание, исполнители с музыкальным образованием - и барды самоучки, у которых все песни 3 аккорда - есть разница?
->Представляете себе, вы приходите к врачу, а там врач самоучка. Он учился по книгам, а теперь решил практиковаться без поддержки наставника и будет совершать первые ошибки на вашем здоровье. Лично я не хотел бы такого врача.
Профессия программиста сравнительно очень молодая. Раньше врачи тоже по книгам, а иногда вообще на интуитивном уровне лечили, медицина в более-менее современном виде появилась то лет 100-150 назад, а раньше кровопусканием аппендицит лечили. Даже стерилизовать инструменты начали кажись после первой мировой.
Образование оно конечно хорошо, но если тебе боженька мозг дал, а инструкцию забыл приложить, то учись не учись, а бездарем был бездарем и останешься.
За рубежом такие предметы как дискретная математика, численные методы, методы оптимизации, алгоритмы и др. относятся к compyter since. У нас же в стране нет этого разделения, поэтому называют просто математикой. Вообще математика нужна, для алгоритмов графики, структур данных и др. Программист это прежде всего инженер, поэтому математическая база должна быть, как фундамент. Да и кто знает какие задачи придется решать. Потом обязательно изучать архитектуры и проектирование. А технологии или язык освоить можно довольно быстро самому и вырасти до мидла спокойно за пару лет.
Да и в том же ИТМО (пятикратный чемпион мира по программированию), учился в нем в магистратуре. Ведущая кафедра Парфенова, как раз на факультете прикладной математики и информатики.
Я считаю, что научиться программировать по книгам, курсам и прочему невозоможно. Только написание продакшн кода в команде с более опытными коллегами даст необходимые знания и укажет вектор развития (при учете, что ты радеешь за дело и хочешь поставлять максимально качественный софт с красивым, читаемым кодом).
Главное мотивация. Если тебя мотивируют то можно написать любую программу. Нет мотиваций не программы.
Конечно, лучше всего получить нормальное высшее образование. Отождествлять здесь работу врача (или пилота) и программиста нельзя - цена "ошибок трудных" совершенно различна.
Еще возникает 3 вопроса и тут же очевидные ответы к ним:
1) КТО, ЧЕМУ и КАК научит тебя в Российском вузе, в том числе и врача? Во-первых, программа не специальная, а скорее общеобразовательная, методики - примитивные, роль студента пассивна. А во-вторых, с точки зрения такой концепции качества нет. Преподают все, кому не лень, есть и вообще люди с улицы (и с деньгами). Содержание лекций подстраивается под прихоти и знания (или иллюзии) преподавателя (некоторые вот басни хорошо умеют рассказывать), практика хуже некуда. Оценки, работы, дипломы продаются. Весь этот ужас я видел собственными глазами.
2) И кому в России сегодня нужны грамотные специалисты и вообще умные люди? Посмотрите хоть на содержание нашей "экономики", хоть - телевидения.
3) Много ли денег заработает программистская компания в стране, где достаточно знать слова "торрент" и "лекарство", чтобы скачать и установить любую практически программу, а население нищее?
По-моему, лучше всего выучиться по программе одного из лучших вузов по книгам и у репетиторов.
Затем пройти учебную практику и сдать все необходимые экзамены. А после этого уже в процессе работы становиться профессионалом. Как-то так.
PS: И извините за столь длинный комментарий.
Образование всегда нужно, тем более профильное. Главное не ошибиться с этим самым профилем.
Программирование - это чисто инструментальные дисциплины. Как конструктору необходима начертательная геометрия, так и многим инженерам необходимо знание программирования. Поэтому алгоритмы, машинные языки проходят на младших курсах (в техникумах-колледжах), а прикладное п-е на старших.
Собственно в советской школе было описанное выше разделение. Поэтому, когда я учился в 90-е "программисткими" было несколько специальностей. "Прикладная математика". Реально 5 лет математики, приложенных к медицине, экономике, газодинамике,... "Вычислительные машины, комплексы и сети" - собственно подготовка разработчиков ЭВМ. Тоже чисто прикладная спец. В зависимости от профиля ВУЗа инженеры с данной специальностью должны уметь развернуть ЭВМ на космическом корабле,на самолете, сталелитейном производстве ...
Погружаться в мат. абстракцию очень глубоко склонности не было и нет. Брат и выпускники подтвердили, что программирование конечно есть, но там реальная математика все годы учебы. Учить математику можно всю жизнь и в итоге не "приложив" ее негде.
Вычислительный машины. А что там учить - открыл книгу по архитекторе ЭВМ и Ассемблеру П. Нортона и все ясно.
Я учился на самом низком, приборостроительном уровне. И теперь не жалею! Лет 15 назад думал, что вместо всевозможной электроники, обработки сигналов, метрологии нас бы лучше грузили системной математикой ЭВМ. А жизнь повернула так, что физики стало больше в работе, чем программирования и фундамент ВУЗа очень помогает!
Сейчас есть подготовка по направлению программная инженерия. Видел примеры курсовиков у племянника на старшем курсе (ИУ МВТУ) - очень актуальные задачи. Но опять же, на старшем курсе, а до этого реальный матан и бауманский сопромат ))
Вот так получилось развернуто.
->А во-вторых, с точки зрения такой концепции качества нет.
Здесь после запятой должно быть слово "даже". Извиняюсь за этот ляп и за повторный коммент. Всегда тщательно редактирую все, но для меня, к сожалению, все равно выходят такие ошибки.
К сожалению, в нашей стране преподавание ведется по схеме: оттарабанил 8 часов и можно домой. Лекторы особенно не заморачиваются над тем, что читают ( в прямом смысле зачитывают), главное-домой поскорее.
К тому же, еще мой физик в школе говорил: можно подвести коня к водопою, но невозможно заставить его напиться
Так что пишите Михаил и дальше книжки по программированию, а мы с удовольствием их почитаем, глядишь подкину лекторше, может чего нового зачитывать начнет, а не материал советского периода.
Леонид, если в нашей стране воруют программное обеспечение, то это вовсе не значит, что программисты будут сидеть без денег и без работы. Есть множество задач, для которых нет готовых программ или имеющиеся программы имеют избыточную функциональность и дорого стоят. Зарабатывать можно разработкой программ на заказ - для конкретного заказчика и его потребностей, а также поддержанием, сопровождением системы - настройкой серверов, операционных систем, самого программного обеспечения, решением проблем с производительностью, раздачей учётных данных, созданием всяческих отчётов, исправлением ошибок, мелкими доработками. На FreeSoftware программисты именно так и зарабатывают.
По теме статьи выскажу своё мнение. Программистов сейчас великое множество в самых разных областях, с разным уровнем мастерства и разной долей программирования в основной деятельности. Бывают экономисты со знанием макросов Excel или даже со знанием Visual Basic, встроенный в этот Excel. Нужно ли получать этому экономисту специальное образование в области программирования? Вряд ли. Бывают веб-программисты, которые делают сайты на заказ - по сути их работа сводится к подбору CMS, шаблонов, их доработке, наполнении сайта материалами, развёртывании на хостинге. Нужно ли этому веб-программисту специальное образование в области программирования? Почти уверен, что тоже нет. Ну и есть разработчики драйверов, операционных систем, компиляторов, видеокодеков, микропроцессоров, разработчики систем управления самолётами, атомными электростанциями, нефтеперерабатывающими заводами - вот тут образование в области программирования обязательно нужно. Общее правило такое - чем более ответственная и сложная область специализации, тем более серьёзная подготовка нужна, тем более внимательно нужно контролировать результаты. Для этого нужно и образование, и курсы переподготовки и регулярная переаттестация, и использование передовых методик верификации кода, и наставничество. Рекомендовать всем специалистам по уборке помещений получить образование в области санитарии я бы не стал. Чтобы помыть полы и унитазы моющим средством, не нужно учиться на санитарного врача.
Хотите найти еще что-то интересное почитать? Можно попробовать отфильтровать заметки на блоге по категориям.