Мы получили очередное сообщение от сотрудника с просьбой дать свободный микрофон. На этот раз речь пойдёт о программировании (и немного администрировании) как о дополнительном профессиональном образовании. Об опыте, проверенном на собственной шкуре и методах получения сакральных айтишных знаний, расскажет наша сотрудница, которая учится каждый год — не иначе, как завещал великий Ленин.
Привет, Хабр! Я работаю в РегионСофт уже 4 года, и за это время успела не только пережить два мажорных релиза нашей CRM-системы, но и трижды поучиться. Сегодня расскажу о подводных камнях корпоративных университетов, вузов, курсов и попробую классифицировать возможные пути обучения и переобучения будущего айтишника. Текст больше ориентирован на тех, кто хочет сменить профессию, но и студентам, уверена, будет полезно.
Вузы, вы больны
Нашему вузовскому курсу повезло — мы были вторым годом новой специализации «Финансовый менеджмент и финансовая математика», и вуз был вынужден решать кадровую проблему довольно необычным для российского образования путем. Да, часть финансовых дисциплин нам читали всё те же старые профессора, которые начинали свой карьерный путь с политэкономии и особо с него не сворачивали. Но во всём, что касалось рынка ценных бумаг, технического анализа, биржевого дела, специализированной математики они были полные профаны. Поэтому трое преподавателей внезапно отличались от классической школы — это были практикующий программист, профессиональный трейдер и тренер, обучавший первых игроков нынешней Московской биржи (тогда ещё ММВБ). Что их отличало:
- Увязка теории и практики на всех этапах — у нас не было чистых лекций или семинаров, вся информация поступала к нам с реальными примерами, без дистиллированных задач.
- Кроме базовой информации, они разбирали нетипичные истории из практики — сразу было понятно, что в будущем всё будет немного не так, как в учебниках (совсем не так).
- Они не ошибались. В том смысле, что не было таких историй, когда после длинных формул и решений стиралась половина доски. Всё оттого, что они решали с нами практические примеры, за которые привыкли получать деньги и в которых отвечали за чужие инвестиции.
- Они показали, как применяется высшая математика в деле — и у нас уже не возникало мысли «ну и где мне этот тервер понадобится». К слову сказать, никто из нас не пошёл в биржевое дело, но на то были разные причины.
Когда я стала преподавать после пятого курса, то переняла их опыт, но, увы, на мою долю выпало вести статистику и институтские бабушки с кафедры быстро зарубили мои новомодные планы. Впрочем, через год я навсегда ушла из сферы образования в бизнес, потащив за собой лишь учёбу в аспирантуре. О чём не жалела ни секунды.
Что плохо в современном вузовском образовании?
- Устаревшая материально-техническая база и устаревшие учебные планы — согласитесь, странно изучать Windows Server 2003 или Pascal в 2017 году.
- Преподаватели-теоретики, некоторые из которых просто прошли курсы повышения квалификации и, например из математика превратились в преподавателя по алгоритмам и структурам данных.
- Отсутствие практики — согласитесь, формальный месяц, за который студенты дважды посещают базу практики, совершенно не то, что нужно разработчикам или инженерам. В то время как вуз может запросто давать первичный и довольно глубокий опыт, припахивая студентов к внутренним проектам или грантам.
Однако это не значит, что нужно вдохновиться примером известных айтишников и проигнорировать вуз. Первое базовое высшее образование должно быть, тем более, что сейчас во многих вузах открываются новые программы, направления и специальности.
Почему это важно:
- вуз учит грамотно формулировать и высказывать свои мысли
- вуз даёт бесценный навык — умение пользоваться литературой и источниками, а не просто гуглить
- вуз имеет огромную научную базу и хорошую библиотеку — и просидеть день в читальном зале отнюдь не ретроградство
- вуз развивает мышление и навыки обобщения
- вуз даёт основы, на базе которых можно продолжать развитие и обучение
- и как ни крути, вуз — это диплом гос. образца, который, вопреки многим суждениям, продолжают ждать работодатели. Ну а если в карьерном плане есть что-то типа Росатома, Газпрома и т.д., то диплом просто необходим. Не говоря уж о науке.
К слову, крупные компании в сотрудничестве с вузами открывают множество программ, проводят хакатоны, митапы и конференции для студентов. Бесплатно, но не бескорыстно — они выискивают лучших ещё со студенческой скамьи.
Корпоративный институт как не идеальная, но лучшая форма обучения
А бизнес — это другие реалии, потребности работодателя и другие схемы обучения. Провожая меня за пределы вуза, мой первый начальник, проректор по науке, сказал: «Каждый год ты должна тратить одну зарплату на обучение — курсы ли, образование, книги, — не важно. Сам процесс обучения упорядочивает мышление». Первый год работы в бизнесе я начисто забыла об этих словах — вся жизнь и без того была похожа на обучение (а точнее, гибрид армейской дедовщины с дрессурой манула). В конце второго года осенило, что работать в ИТ (коммерческая служба) и не понимать внутренностей ИТ чревато ошибками и идиотскими ситуациями, поэтому было решено — учусь.
Рассматривалось три варианта:
- магистратура мехмата — была отвергнута из-за того, что в учебном плане было до кучи ненужного, а времени ушло бы три года. Ну и дорого, конечно;
- дополнительное образование в университете — было отвергнуто из-за устаревшей программы (как вам офисное программирование VBA или Access как изучаемая СУБД?) и изученного списка преподавателей-теоретиков;
- обучение в корпоративном институте крупнейшей компании-разработчика в городе. Учебный план был актуальный, стек интересный, длина — год (по факту почти полтора), преподаватели — исключительно практики. Бонусом было 100 часов английского — на тот момент не знала его вообще, моим первым иностранным был французский. Курс назывался «Разработка программного обеспечения».
Обучение в корпоративном институте в корне отличалось от вузовского, но, как показало время, не было идеальным. Тут стоит остановиться и подробнее разобраться.
Первое и главное: корпоративный университет (даже если это базовая кафедра вуза, свой факультет и т.д.) — это всегда интерес компании. Фактически она готовит кадры для себя, и нужно быть готовым к тому, что на вас перенесут часть корпоративных стандартов. И если для студентов и молодых специалистов это шанс получить и практику, и работу, то взрослым специалистам такая «профильность» может мешать. Например, у нас С, С++ и Java превалировали над всеми предметами, а тот же Python прошёл почти мимо — мы на нём успели написать телепрограмму, турнирную таблицу матчей и календарь с рассылкой напоминалок на e-mail. Опять же, с точки зрения операционных систем нам дали только UNIX — правда, очень круто. Но об этом чуть ниже.
Итак, минусы:
- корпоративный интерес и корпоративный стек
- профильные задачи на практике
Плюсы:
- почти гарантированная возможность получить работу (всех, кто выжил, пригласили на собеседование, двое сменили работу)
- попадание на первый фронт тех, кого рассматривают на вакансии в дальнейшем — на почту периодически приходят письма с вакансиями по профилю обучения.
Группы сформированы неоднородно — видимо, руководство корпоративного университета рассчитывает на сознательность слушателей. В общем, у нас было 16 человек — 5 девушек, 11 парней, все разные: от нулевого уровня типа меня до высокого уровня профессиональных программистов (был С-шник и реально мощный тимлид 1С-овец). Закончили и защитились семеро, девушек — две. При этом перед поступлением проводится тестирование и собеседование для определения уровня английского языка и распределения по группам. А вот собеседование на уровень знания технологий — нет.
В итоге те, кто уже имели опыт разработки, уверенно вникали и опережали тех, кто не мог с первого раза переварить мысли типа «указатель на указатель», «сборщик мусора», «наследуются свойства и методы класса BaseClass». Проблема была в том, что нас сразу погрузили в язык программирования — шутка ли, но структуры данных и алгоритмы случились несколькими неделями позже.
А теперь про UNIX. И лекции, и практику вели сильнейшие парни, которые могли ответить на любой вопрос, как бы криво он ни был сформулирован. На практических занятиях на отстающих не забивали, а всей группой дотягивали того, кто запутался. Например, писали регулярки для девочки-дизайнера, разбирая с ней каждый элемент или сорок минут искали, почему у меня не компилился С-шный код в gcc (оказалось, в хедере была пропущена точка с запятой — классика). В итоге UNIX знали и сдали все, кто до него дожил, а я спустя полгода на раз-два прошла собеседование на позицию инженера по тестированию VoIP c кучей вопросов по командам bash.
Итак, минусы:
- преподаватели иногда игнорируют отстающих слушателей
- не всегда курс выстроен логично
- слабые быстро адаптируются и начинают списывать и копировать у сильных, становясь ещё слабее.
Плюсы:
- разбираются самые нелепые и одновременно сложные вопросы
- сильные, объясняя слабым, получают дополнительное развитие
- появляется стимул рыться в литературе (правда, не у всех).
А теперь о самом главном — о преподавании языков программирования и сопутствующей ИТ-инфраструктуры. Задачи отдалены от практики. Мы моделировали полёт бомбы на С, на нём же считали многочлены, программировали решето Эратосфена и работали с рядами Фибоначчи. На С++ мы писали и развивали карточку студента вплоть до применения деревьев. В этих задачах были упущены такие вопросы как безопасность, сетевая работа, проектирование и т.д. Разработка на практике выглядит, конечно же, совершенно иначе. И возможно, курс был бы ещё интереснее, если бы из наших выживших остатков группы сколотили настоящий отдел — senior, джуниоры, тестировщики, менеджер проектов. Тогда может и больше народу дошло бы до конца.
Не объяснялась структура разработки — если бы мы, новички, знали, что в реальной жизни программист пишет не всю программу, а работает над своей частью проекта, мы бы чисто психологически воспринимали задачи проще.
Для части слушателей задачи оказались непосильными с точки зрения понимания самих задач — чтобы запрограммировать решето Эратосфена или факториал, нужно понимать, что это такое. Та же история с бомбой — одно дело задачу решали мы с соседом по обучению, оба победители физических олимпиад, другое — девушка, которую направили учиться от компании и которая даже примерно не помнила, что такое ускорение свободного падения. Всё-таки в таких случаях важнее именно понимание структуры кода и алгоритмов, чем учёт скорости истребителя, ветра и сопротивления воздуха.
Баги всегда рядом — стоит приступить к коду
Преподаватели демонстрируют код, пишут его в реальном времени на лекции, всем всё понятно, а самим написать — никак. Очень хорошей находкой было давать фрагменты кода, чтобы мы разбирались и отвечали, что он делает. Замечательная наша преподавательница по С/С++ называла это «думай, как компилятор». И это всем нравилось, было живо и местами задорно, хотя и не всегда получалось.
А вот что было по-настоящему неприятно — так это требование писать код на экзаменах и зачётах (да, они были!)…на листочке бумаги. Это вызывало ступор, трепет и блокировало мозги. То есть ты привык, что есть компилятор, что он твой помощник, что есть среда разработки, подсветка кода и тут — бац и ты уже пишешь на бумажке вот это:
#include <iostream>
int main()
{
int i, fact=1, n;
cin>>n;
for (i=1; i<=n; i++)
{
fact=fact*i;
}
cout << fact;
return 0;
}
Это в лучшем случае. С наследованием в С++ было гораздо веселее. Однако про листочек и код есть и вторая точка зрения — на собеседованиях нередко просят написать код или команду ручкой на бумаге, и специалист должен быть к этому готов. А вот правильно ли просить решить задачу с помощью языка программирования вне ПК — это уже тема отдельного обсуждения.
Кстати, про ООП — видимо, чтобы его объяснить, его нужно понимать просто без заминок. Честно говоря, нам на пальцах его так и не объяснили, самым приемлемым было определение «всё есть объект» (аналогично в UNIX мы слышали про «всё есть файл»). Сложные вещи и правда трудно объяснять, поэтому преподавателям стоит заранее формулировать краткие и ёмкие пояснения, чтобы слушатели запоминали эту «выжимку», а потом уже наращивали понимание предмета. Короче, с ООП у большинства не сложилось.
ООП виделось именно так
Некоторые преподаватели были, что называется, «over qualified». Это умные и опытные тимлиды, для которых всё прозрачно и очевидно, поэтому они дают глубокий и качественный материал без основ — то есть фактически ничего, поскольку слушатели не включились в базу. Однако именно они транслировали практические ценности, рассказывали о продвинутых возможностях IDE (у нас были Visual Studio и Eclipse), открывали для тех, кто не знает, Хабр, книги Шилдта и Страуструпа. Кстати, что характерно, за почти полтора года обучения ни один преподаватель не произнёс слов «github» и «opensource». И это во многом было фатально — настолько, что даже наши решения и проекты ни у кого из нас почти не сохранились.
Под конец курса случилась особая форма извращения, которая называлась «Управление проектами». Мы радовались, думая, что перед дипломом (да, был настоящий проект с защитой на английском языке) нас разгрузили. Но вместо этого на нас обрушилась вся мощь UML-диаграмм. Выше тройки не получил никто, одна из девушек дошла почти до конца, но не сдала экзамены именно из-за этого предмета. Но с другой стороны, именно с этим малоприятным занятием пришло понимание целостности и связности программного проекта. Так что всё не зря.
Минусов и плюсов не будет — будет список того, что хотелось бы получать именно на таких узко специализированных курсах.
- Обязательно должны быть введены понятия репозитория, структуры проекта, разделения задач программистов на проекте (junior, middle, senior).
- Важно показывать роль книг, специализированных сайтов и опенсорса в обучении — только трое из нас купили учебники, только у одного был живой прокачанный аккаунт на Хабре и Тостере. И конечно, нужно обязательно рассказать о существовании курсов MIT, CS50 на русском, доступных записей лекций технических вузов. Примочки типа codecademy тоже не станут лишними в практике программирования — преподаватель просто обязан знать свой арсенал и транслировать его слушателям.
- На лекциях у каждого слушателя должен быть включён ПК — это золотое, даже платиновое правило. Одно дело смотреть на магию на проекторе, другое — повторять это перед собой и ковыряться в коде. Да, это займёт больше времени, но оно и эффективнее. Сейчас я опять же по доброй воле учусь в том же месте на потоке «Администрирования Windows Server» (RegionSoft CRM — продукт по большей части виндовый, и нужно хорошо знать инфраструктурное окружение проекта) и это очень круто — когда каждое действие, каждую команду мы отрабатываем на виртуалке, причём нередко в нескольких вариантах — например, настраиваем систему через GUI, средствами командной строки и через скрипты/командлеты Power Shell). Во-первых, подключаются все типы человеческой памяти, во-вторых, происходит дополнительное обсуждение косяков и успехов друг друга.
Кстати, отвлекусь и выскажусь по поводу онлайн-курсов. Как-то сдуру прошла довольно длинный бесплатный курс одной очень
Как войти в айти
Способ первый — полное самообразование
При кажущейся абсурдности абсолютно возможный способ. Главное — правильное мышление, усидчивость и огромное желание. Самообразование не должно быть хаотичным, стоит выбрать стек и начать заниматься в комфортном режиме: например, начать с часу или двух в день.
Единого алгоритма обучения не существует, но цепочка действий может быть такой:
- Определиться, зачем вам нужно программирование или администрирование — для развития мозгов, своего проекта, смены работы, эмиграции, для того, чтобы выйти на новый уровень в текущей деятельности. Исходя из этого нужно задать сроки и интервалы обучения.
- Выбрать, с чего начать. Здесь все средства хороши, но как ни парадоксально, удачнее всего начинать с приложений вроде codecademy или книги «Python для чайников». Это не испортит вам стиль (его ещё нет), но доступным языком погрузит в основы и даст попробовать код «на пальцах».
- Расширить круг читаемой литературы, начать работать в IDE.
- Перестать бояться 127 ошибок в компиляторе, стать более внимательным к синтаксису.
- Начать работать со своим или опенсорсным проектом. До этого этапа мало кто доходит. Но если дошли, будьте уверены — всё сложится.
Большое преимущество этого способа — ваша собственная мотивация, ваши собственные установки. Пока вы не работаете с кодом за деньги, это всего лишь ваше хобби — занимайтесь им в удовольствие. Даже если вы не смените работу и не станете программистом, вы совершенно иначе начнёте смотреть на разработку и на бизнес-процессы, изменится логика. Минус один — риск бросить всё на середине или в самом начале из-за недостатка мотивации, времени и интереса.
Способ первый модифицированный — самообразование + наставник в компании или стажировка
Отличается от первого способа тем, что кто-то в компании заинтересован в вашем развитии и готов выделить ресурсы или даже своё время на обучение секретам мастерства. Преимущество этого метода — в качестве, практической направленности и скорости обучения. А ещё люди склонны быстрее осваивать что-то новое, если это их работа и за неё платят деньги. Всё-таки правильная мотивация — великая вещь.
Отдельно стоит сказать о стажировках и обучении сразу в начале работы в компании. Это всегда удачный опыт и хороший способ адаптации персонала с одной стороны и источник знаний — с другой. Работу с такими компаниями всегда нужно использовать по полной — даже если вы не собираетесь долго задерживаться (мнение автора здесь не совпадает с позицией компании).
Способ второй — высшее образование (второе или дополнительное)
Да, можно взять и поступить в магистратуру или отпахать ещё несколько лет на вечернем специалитете. Это интересный процесс, освоение фундаментальных знаний и ноль практики. Она вся сводится к курсовым работам и отдельным контрольным с небольшими задачами. Плюсы — диплом государственного образца (пригодится, если вы собрались делать карьеру в гос. корпорациях или крупных компаниях) доступ к вузовской библиотеке, относительная дешевизна обучения и разнесённость во времени. Минусы — устаревший учебный план, формальность подхода, лишние предметы. Кстати, с преподавателями везёт по принципу 50/50, программы дополнительного образования и магистратуры стали в последнее время приглашать молодых преподавателей-практиков.
Способ третий — корпоративный университет
Хитрый способ, поскольку можно закончить обучение и заодно поменять работу. Вообще, откровенно говоря, наряду со стажировками — это один из способов обойти сотни резюме, стекающих в крупную компанию, и занять своё место. Но для этого нужно показать либо свои умения, навыки и опыт, либо стремление и способность обучаться. Плюсы — практически применимые знания, актуальная программа, удобное время занятий, режим диалога с преподавателем. Минусы — отсутствие диплома (только сертификат), разнородные группы, иногда не самый логичный учебный план, высокая цена и высокая нагрузка по времени.
О самом главном — без чего не обойтись
В любом случае, нет волшебной лекции или супер-чипа, который сделает вас специалистом. И знания в голову вам никто не вобьёт. Кроме самого обучения, есть вещи, без которых вы никогда не станете программистом.
- Без непрерывной работы с кодом. Вы должны его писать, разбирать, искать пути оптимизации, просить критики в экспертных сообществах и уметь прислушиваться к ней (хотя вам скажут и про «вон из профессии», и про «руки из ж…», и про «говнокод». Это совершенно нормальный путь.
- Без знания основ: позиционных систем счисления, устройства ПК, знания алгоритмов, работы с переменными, булевой алгебры, типизации и т.д. Большинство тех, кто хочет присоединиться к разработчикам, почему-то считают эти знания чем-то ненужным и погружаются сразу в готовые фрагменты кода, переделывая их и стряпая свой проект. Это неправильно — рано или поздно в проекте вы встретитесь именно с этими проблемами.
- Без книг. Ни один гугл, Тостер, Stack overflow и ламповый форум SQL-щиков не заменит книг в плане глубины и основ. Конечно, в идеале это должны быть оригиналы книг зарубежных авторов, благо что сегодня на Amazon потрясающий ассортимент — от классического С до нейросетей и NLP (который natural language processing). Но и переводные издания радуют всё больше. Не бойтесь портить книгу — читайте её с карандашом, ручкой и чем угодно. И да, если в книге приведён код, то недостаточно его разглядывать — лучше воспроизвести его на ПК, скомпилировать, разобрать и вникнуть. От простого чтения кода пользы в разы меньше.
- Без вопросов себе, преподавателю, гуглу, сообществу, наставнику. Идеальна схема выглядит так: слушаете лекцию, пишете базовые вещи, тут же отмечаете, что стоит изучить поглубже или узнать самому. На следующий день разбираете пометки, опять конспектируете самое важное. Затем практикуетесь в написании кода или, например, администрировании.
- Без изучения сопутствующего окружения и ИТ-инфраструктуры. Да, можно написать небольшой сайт и даже разместить на нём, например, красивую галерею работ, но потолок придёт быстро, если вы не озаботились изучением вопросов нагрузки, безопасности данных, форм на сайте и т.д. Поэтому стоит изучать нужную технологию комплексно, захватывая остальные.
Это самая точная картинка об изучении программирования
- Без рефакторинга. При всём старании вы никогда не создадите совершенный код с первого раза. И с десятого не сотворите, это даже у опытных разработчиков не всегда быстро выходит. Но работая с кодом, продумывая варианты оптимизации, вы становитесь профессионалом, который способен не просто накодить, а сделать ПО работающим и качественным. Не бойтесь код-ревью.
- Без проектирования. Если вы садитесь писать код, но не знаете, что вы пишете и как это должно работать, то вы просто тренируетесь в запоминании синтаксиса языка. Попробуйте нарисовать схему будущего приложения, установите, какие компоненты каким образом будут взаимодействовать, пропишите особенности и фичи. Так вам легче будет собрать проект и заставить его в конце концов работать.
- Без знания устройства вашей IDE (среды разработки). Все современные среды напичканы кучей возможностей типа автоматической генерации кода, подсветки, элементов управления и т.д. Обязательно разбирайтесь с возможностями, читайте документацию, обращайте внимание на то, как вводится код, как собирается проект, как работает компилятор и отладчик.
- Без понимания того, что такое библиотеки и как они работают. Во время обучения преподаватели иногда нас троллили — например, однажды мы долго прописывали функции арифметических операций и факториала, а потом нам показали
math.h
. Для целей обучения — полезный, весёлый и поучительный урок. Для целей работы — трата сил, времени и размножение костылей. Многое придумано до нас — достаточно взять, подключить и научиться использовать.
- А ещё без тестирования, DevOps, документирования и т.д. Но это продвинутый уровень — как правило, этим занимаются уже на работе.
- Без английского языка. Но это вы и без меня знаете. На английском доступны материалы, которые способны дать мощный толчок развитию профессионала. Их перевод зачастую выглядит тускло.
Но вообще самое трудное даже не начать. Самое трудное — продолжить, если не получается, не отшвырнуть в отчаянии. Как минимум, обучение вам обязательно пригодится — иногда в такой момент, когда вы даже не предполагаете. Так что не останавливайтесь ни на минуту.
Комментарии (140)
saag
26.09.2017 11:48+4Basic-Pascal-C был стандартным путем в программирование, может уже что-то изменилось?
ChePeter
26.09.2017 14:51+2Был еще другой путь
Алгол, фортран, Пл1 и ассемблер 360/370.
Очень популярный в те далекие времена путь.
После ассемблера 360/370 любой другой язык можно и не учить, достаточно справочника
YemSalat
26.09.2017 22:46+2Basic -> Delphi -> PHP -> JS -> Others
Мой путь (88 года рождения)Arris
27.09.2017 02:16Basic (БК1001) -> Pascal -> Forth (*) -> Assembler x86 -> Delphi -> перерыв ~5 лет -> LAMP
(*) на самом деле на этом этапе в школе нам вдалбливали Fortran-77 (редакция 1980-го года), причем подавали его как суперсовременный язык программирования, на котором пишут все-все-все физики и математики, и без которого нам в ВУЗе делать будет нечего. Ну, история нас рассудила, непригоддиллса!
Femistoklov
27.09.2017 04:24А у нас был Basic(школа) — Pascal(первые курсы) — C#(кафедра). С и С++ как-то проскочили.
mkone112
26.09.2017 11:55+8Не понял, что не так с Pascal'м в 2017? Нормальный яп для изучения азов.
DaneSoul
26.09.2017 12:28+4Что мешает учить азы на том же Python?
При этом в отличии от Pascal его реально используют в современно разработке, то есть это знания которые реально пригодятся, а не обучение ради обучения.
Какая мотивация будет у думающего студента учить «мертвый» язык?vlreshet
26.09.2017 13:11+5ИМХО, паскаль нормальная тема на первый месяц обучения. Чтобы понять саму суть программировая, как оно вообще выглядит. В паскале чётко видно переменные (потому что они объявлены в одном месте), чётко видно блоки (begin-end), и самое главное — строгая типизация. Что же у нас в питоне — выносящая мозг структура блоков (люди поначалу в операторах пугаются, а тут пробелы вдруг тоже играют роль), нет строгой типизации, переменные где удобно, и ещё некоторые другие прелести. Вот когда студент уже способен написать какую-то мелочь вроде считалки квадратного уравнения на паскале — тогда можно нормальные языки показывать.
c4boomb
26.09.2017 13:54Но зачем человеку привыкать к вашему паскалю, если он может сразу изучать то, что даст ему хлеб.
midday
26.09.2017 15:14+7С паскаля или Си можно изучать любой другой ЯП самостоятельно. А с python-а ты никогда не слезешь. Привыкнешь говнокодить, никогда не узнаешь как оно устроено внутри и многое другое.
kolayuk
26.09.2017 16:48Отлично перешел с Python на C++ в свое время. Потом на С++/Qt и после устройства на работу еще Java пришлось выучить
kolayuk
26.09.2017 16:52UPD: Именно в Python изучил основные принципы (ООП, функциональное программирование). Да, это был говнокод в некотором понятии (паттерны проектирования, SOLID я изучил позже). Но для старта и изучения основ Python очень хорош, советую всем кто начинает программировать.
midday
26.09.2017 17:10+4В том то и прикол, что ООП и функциональное программирование — не основы, совершенно.
DaneSoul
26.09.2017 20:07В том и прелесть Python, что он не навязывает одну парадигму — на нем можно:
* Начать изучать программирование на простейших примерах, даже без функций вообще
* Потом изучить процедурный подход
* Потом изучить основы ООП
* Потом изучить основы функционального подхода
И все это в рамках ОДНОГО языка, то есть можно показывать решение одних и тех же задач разными подходами.
А в качестве плюса — огромная библиотека позволяющая решать реальные задачи в разных сферах, то есть сразу показывать не абстрактные непонятные задачи, а вполне реальные, типа того же парсинга сайта или работы с графикой, или даже простой 2-Д геймдев (На Курсере есть замечательный курс где как-раз изучают основы, делая простые игры).
Кроме того, на этом же языке можно изучать работу в современных IDE, методы тестирования кода, и многое другое, так как все это под него есть, так как он активно используется в коммерческой разработке.
И еще, что очень важно — огромное сообщество, создавшее огромное количество справочного материала — на практически любой вопрос новичка на СтэкОверфлоу уже есть готовый ответ.midday
26.09.2017 22:11+2Так в этом то и смысл, что он дает всё. Для начала это совсем не подходит, слишком много соблазнов, бежишь вперед батьки в пекло, а в итоге получается говнокодер.
Source
26.09.2017 15:19+5Можно с C# начать, тогда можно не месяц, а хоть целый год ему посвятить. Языки с динамической типизацией, имхо, нельзя новичкам давать.
Axelus
26.09.2017 16:33+4Забыли про старый добрый Basic. Есть еще живые свидетели сего чуда? Откликнитесь, Ау-у...
vlreshet
26.09.2017 17:00+2Откликиваюсь, изучал его в начале двухтысячных, интернета не было, знакомых не было, в компьютерном клубе гугл выдал книгу по бейсику после запроса «программирование для начинающих». Вот так и завертелось.
Axelus
26.09.2017 17:17+4Ура! Я не один такой :) Но в 2000-х был Гугл! Это уже цивилизация. Когда я писал на Basic'е — у меня был ПК "Сура" пензенского производства. И Гугла еще не существовало. Отличный был интерпретатор. На нем я и начал заниматься программированием.
Source
27.09.2017 00:36А у нас в школе в начале 2000-х не было интернета, а был как раз Бейсик-Агат. В 11-м классе правда поставили новые компы и перешли на QBasic.
Но по сути, я начал программировать c Object Pascal уже в универе.
Pasa007
26.09.2017 21:20+1Есть. В том числе вот этого:
ru.wikipedia.org/wiki/ZX_Spectrumtundrawolf_kiba
27.09.2017 15:28Прикольно было, когда каждому ключевому слову соответствовала клавиша.
yara_73
27.09.2017 02:00Начинал с QBasic и Turbo Pascal. Раньше не понимал, думал зачем, если есть новее языки. Как же я был глуп и наивен.
shurix83
27.09.2017 03:59Где-то полтора-два года назад писал хак для одного известного антивируса на VisualBasic (если кратко — обходилось ограничение пиратского ключа: чтобы бана не было, обновления качались с сервера производителя антивируса на локальный комп, а уже сам антивирус обновлялся из скачанного в локальную папку). Хотя какой там визуал — мне лениво было делать хоть какой-то интерфейс, поэтому там, где нужна было оповещение или показать прогресс, просто вызывались cmd-команды.
Собственно, почему был выбран VisualBasic? Потому что запускался на любой машине з Windows, и я посчитал, что каждый valenok © сможет разобраться в моём быдлокоде (благо я на комментарии не скупился) и дописать всё необходимое себе. В результате в первую неделю люди без моего участия дописали и скачивание через proxy, и ещё чёрт знает что.
Так что Бэйсик ёще может дать чаду в умелых руках ;-)
Keyten
26.09.2017 19:26Я учил в свои 11-12 лет JavaScript, и сейчас мне порой кажется, что JS идеален для изучения с нуля.
Но с другой стороны, я отлично осознаю, что это скорее всего проявление синдрома утёнка, и аналогично вижу проявление синдрома утёнка в предложении изучать Паскаль сейчас.
Без обид.
MAXHO
26.09.2017 13:23+6Как мне лет пять по секрету сказал преподаватель (не рядовой) института ИТМО, Паскаль дают студентам для того, чтобы они раньше времени не забивали на учёбу и не уходили во фриланс. Это для ИТМО, по его словам, серьезная проблема — когда студенты не заканчивают обучение, а соскакивают недоучками в бизнес.
altai2013
27.09.2017 13:00+3Плохо, когда бороться начинают с последствиями, а не с причинами. Если студенты добровольно пришли учиться в ВУЗ, вложили кучу сил в экзамены, прошли конкурс на поступление, а потом с 1-2 курса уходят во фриланс, значит что-то сильно не так в системе высшего образования. И вместо того, чтобы заинтересовать студентов учёбой, сделать её более интересной и полезной, профессура ещё больше выхолащивает её и максимально отдаляет от реальной жизни. Студентам нужно давать профессиональные знания, а не демагогию, ерунду, сказки, мифы и легенды под соусом «xxx уже тем хороша, что ум развивает». Пока эта общепринятая аксиома про развитие ума вместо практических знаний не будет предана анафеме, вузовской образование продолжит деградировать и терять репутацию как у работодателей, так и у студентов.
zugo
26.09.2017 13:25+8Pascal/Object Pascal гораздо более продуманный язык, чем питон, и, кроме того, приучает к статической типизации и необходимости компилировать. Я бы сказал, начиная с паскаля, больше шансов получить в итоге программиста, а не веб-макаку.
Harrisson
26.09.2017 16:36+1Мне больше интересно, почему С не используют, один из старейших языков наряду с паскалем и при этом один из самых популярных языков. Работа с памятью, структурами данных, битовые операции, которые дают саму суть программирования. При этом есть куда расти, на С++, Java переход будет безболезненным.
Free_Mic_RS Автор
26.09.2017 16:41+1У нас курс как раз с С и начали. На С++ перешли более-менее легко (но только поначалу), а вот увязку с Java не прочувствовали и нас не особо старались в этой увязке убедить.
zugo
26.09.2017 18:57+3Потому что С — тоже язык довольно непродуманный и «грязный», чуть менее, чем полностью состоящий из неопределенных поведений и возможностей выстрелить себе в ногу. Хуже того, он еще и слаботипизированный. Его ведь разрабатывали сразу как язык системного программирования, «портируемый ассемблер», т.е. определенно не для начинающих.
Invisibler
26.09.2017 20:24после моей первой строчки на с++ преподаватель завис, поэтому паскаль по меньшей мере проще проверять.
alan008
26.09.2017 22:29+2которые дают саму суть программирования
Да не в этом суть современного программирования, уж извините… Вся эта низкоуровневость 90% разработчиков низачем не нужна, важнее уметь декомпозировать проблему, построить внятный логичный алгоритм для решения задачи, написать красивый (простой и понятный другим людям) код, а не с указателями извращаться
Arris
27.09.2017 02:28Синтаксис не тот. Несладкий он, неинтутивно понятный.
Паскаль очень прост и интуитивно понятен
for i:=1 to 15 do begin if /* господи, как же пишется if на паскале?, забыл уже всё... */ end
versus
for (i=0;i<15;i++) { if (!!вырвиглазная конструкция с указателем на указатель на указатель) {} }
Тут надо на самом деле понимать, кого обучают программированию.
Если это гик, которому это всё интересно и нужно — он скорее всего уже сам знает больше того, что ему предложат на курсе. Он пойдет и договорится с преподом… если препод адекватный — ему повезло, они договорятся.
Другое дело, если это человек, которому программирование в общем-то нужно как собаке пятая нога, как инструмент, который поможет ему решать какие-то свои задачи, которые могут быть очень далеки от глубин кроличьей норы. Такого человека все эти безумные скобочки, весь тот гиковский синтаксический сахарок только запутает и напугает.
P.S. Ах да, самое главное при изучении паскаля — вырвать из учебника страницу с упоминанием goto. Вырвать и сжечь!!!Source
27.09.2017 23:58+1if / господи, как же пишется if на паскале?, забыл уже всё… /
if (i mod 2 = 0) then ...
TheKnight
26.09.2017 13:27Потому что это учебный язык. Хотя стоило бы использовать современные продолжения Pascal — Modula-2 или Oberon.
Я, как человек покусанный SICP'ом, предпочел бы Scheme.
Eugen_p
26.09.2017 19:04Питон хороший язык, возможно даже слишком. Согласитесь после него на том же С писать довольно неприятно
Free_Mic_RS Автор
26.09.2017 13:45В посте не про азы, а больше даже про дополнительное образование, у которого, как известно, куча утилитарных функций типа найти работу или прокачаться на текущей. У меня, например, Pascal был в школе. И Basic был. 1999-2002 годы. Отложился ноль, точнее только двоичная система и алгоритмы блок-схемами, которые рисовали мелом на доске. Конечно, это отчасти азы, но тогда информатика нам так отбила желание этим заниматься, что из 100 человек 11 класса ни один не пошёл учиться на программиста.
tundrawolf_kiba
27.09.2017 15:36Ну я вот встречал людей, которые учились долго паскалю, а потом переходили на Джаву или Си-Шарп. У них отсутствовало понимание, зачем вообще нужно ООП и присутствовала стремление все что возможно запихнуть в класс main. Мне кажется сейчас лучше начинать обучать с ООП языков со строгой типизацией, а потом уже представлять другие варианты.
Gryphon88
28.09.2017 00:26Я такой был. А потом мне понадобилось ускорить и адаптировать свой код трёхлетней давности… Разжигает пламенную любовь к связи поведения с данными и модульности кода. А write-only код может быть процедурным, монолитным и с однобуквенными переменными.
JekaMas
26.09.2017 12:34Обычная история, но мне все же кажется, что именно самообразование сейчас и делает программиста.
После ВУЗа последовательно взял несколько курсов и только они поставили мозги и руки на нужное место. В основном это были открытые курсы от Стенфорда: по базам данных, алгоритмам, криптографии, конечным и бесконечным автоматам, сетям, компиляторам, машинному обучению.
Roosso
26.09.2017 12:37Странно что Бейсик никто не вспомнил, или Асм.
Вообще путь в программирование, зависит от образа мышления и желания.DaneSoul
26.09.2017 12:50Вообще, путь в программирование зависит прежде всего от того, что понимать под программированием, какой из его специализаций человек хочет заниматься.
И путь в веб-программисты совсем другой, чем путь в программисты микроконтроллеров.
Free_Mic_RS Автор
26.09.2017 13:55Ассемблер нам давали в рамках алгоритмов, было 6 или 9 часов. Поставили эмулятор, поигрались с азами, сделали крошечную домашку, потом посмотрели изнутри проект на Ассемблере и на этом всё. Но это было полезно в плане понимания принципов работы кода.
Axelus
26.09.2017 16:41+6Basic — это классическая вещь. Кто-то скажет "фу", а на самом деле очень простой способ научиться алгоритмическому мышлению. Конечно, к ООП он никакого отношения не имеет, но зато на нем сможет писать даже 8-ми летний школьник во втором классе. Ну хорошо, может в третьем )
А по ассемблеру — мало кто понимает, что это фактически набор процессорных команд. На ассемблере могут писать лишь гуру, понимающие весь стек системных технологий. По сути, любой язык программирования в результате компиляции приводится к ассемблерному коду, поскольку только его понимает ПК.
kester
27.09.2017 16:48По сути, любой язык программирования в результате компиляции приводится к ассемблерному коду, поскольку только его понимает ПК.
ПК понимает машинный, а не ассемблерный код. Также, «любой язык программирования» (в т.ч. и асм) «приводится» к машинному коду.
Пусть язык ассемблера и близок к машинному коду, но всё же он созданый для людей.
domix32
26.09.2017 17:56Глобальность области видимости бэйсика может научить плохому. Да и пресловутый
GOTO
может сыграть дурную шутку
Idot
26.09.2017 18:22Странно что Бейсик никто не вспомнил
Потому что для учебных целей он недостаточно строгий, по сравнению с Паскалем.
Кроме того, обычно не планируется изучать в дальнейшем Фортран (перед изучением Фортрана, полезно потренироваться на Бейсике, и тогда Фортран будет учить очень легко).
CoreTeamTech
26.09.2017 14:51Проблема образования в том, что формальные подходы к нему безнадежно устарели. А древние и действенные по сей день (экспериментирование), никто не использует, и тем более, не подкрепляет современным научным знанием. Я вел факультатив программирования, мой метод был прост до безобразия:
ПРОБЛЕМА — ТЕОРИЯ (кратко, с терминами и ссылками на литературу) — ЭКСПЕРИМЕНТ — АРТЕФАКТ (файлы).
Причем, я поощерял создание отдельного эксперимента или артефакта даже для проверки небольших гипотез. Так нарабатывали навык быстрой настройки окружения и проекта. Это избавляет будущего программиста от прокрастинации «начала». Когда есть идея, что-то сделать, но в процессе создания проекта в IDE, подготовки прочего окружения запал теряется. Потом разработчик, зная сколько займет времени на все это, возможно, так и не приступит к непосредственно программированию.
Этот же подход рекомендовал к изучению новых технологий. Для начала поймите проблему, почитайте какие есть подходы к решению данной проблемы, придумайте эксперимент и реализуйте его.
Про языки скажу так, может на каких-то действительно немного проще обучаться, но у меня студенты сразу на C++ писали — выжили.
evvlasov
26.09.2017 15:04-6ВУЗ вообще бесполезен, во всех отношениях. Лучше писать код, участвовать в опенсорс и общаться в сообществах.
galeev_roman
26.09.2017 15:53+5В статье указаны плюсы высшего образования, могу привести ещё один — при желании поработать и пожить в других странах отсутствие диплома может стать серьёзным препятствием для получения долгосрочной визы.
evvlasov
26.09.2017 16:50-2Когда я иммигрировал, можно было вместо диплома предоставить опыт в нужной области и референсы от клиентов, начальства и коллег, не ниже должностью. И это виза на перманент резидент, с рабочей должно быть проще. Возможно, в вашей стране всё сложнее?
galeev_roman
26.09.2017 17:38+5При иммиграции в европу по Blue card (вид на жительство и разрешение на работу для высококвалифицированных специалистов) диплом о высшем образовании является обязательным условием. Если же иммигрировать по рабочей визе, то действительно, можно предоставить подтверджение опыта работы. Заявок на иммиграцию по рабочей визе, очевидно, больше, так как меньше требований, что увеличивает время ожидания решения по этой заявке. Ну и с Blue card немного (а иногда и много, в зависимости от страны) можно получить долгосрочное проживание для семьи.
Free_Mic_RS Автор
26.09.2017 16:07+7Вуз абсолютно полезен в большинстве случаев. И кроме перечисленных в статье преимуществ и точного комментария galeev_roman, есть ещё несколько плюсов. Формальный: российские работодатели ещё не скоро отойдут от обязательного требования диплома при приёме на работу. Объективные:
— вуз — это престиж, принадлежность к людям с высшим образованием, и одни деньги тут ничего не решают
— вуз — это будущие контакты и связи
— вуз — это единственно возможный выход в научную среду
— вуз — это БАЗА, полная база комплексных знаний: от теории алгоритмов и матана до основ права и умения читать нормативно-правовые акты
— вуз — это шанс получить доступ к работодателям, не хватая звёзд с неба, по-прежнему в институты приходят запросы на вакансии
— вуз — шанс попасть в какую-нибудь программу-стажировку и т.д.
Да и время это прикольное, эмоции крутые, студенческая жизнь как приятное дополнение.evvlasov
26.09.2017 17:00-1Я вижу, много людей пытается рационализировать годы, впустую потраченные на 'прикольное время и крутые эмоции'. Поверьте, мне тоже нравилось бухать по общагам и лазить студентам под юбки. Но мы же говорим о пользе Вуза, верно? На 'точный комментарий' я уже ответил выше. Вам я могу сказать, что я в этом году взял курс в университете, это было потерей времени. С Курсерой или EdX вообще никакого сравнения.
Free_Mic_RS Автор
26.09.2017 17:33+1Погодите, вы из всех аргументов рациональным увидели только это
нравилось бухать по общагам и лазить студентам под юбки
? :-)AbstractGaze
27.09.2017 06:59+1Думаю что evvlasov как и я не увидел по большому счету не единого реального пункта который перевесил бы потраченное время. С натяжкой можно приписать пункт о возможном входе в научную среду, потому что лишь возможном, и потому что это все же узкая специализация и не факт что в выбранном вузе вы ее получите — гарантий то никаких нет, а время которое вы в таком случае именно потеряете — фиксировано.
У меня ощущение что всегда, когда пытаются сравнить нужность вуза, то сравнивают с пустотой, а не с альтернативой. Как будто если человек не в вузе то он заперт в камере одиночке без какой либо связи с внешним миром.evvlasov
27.09.2017 08:07+1Про вход в академию это единственный пункт, по которому я полностью согласен. Я сам в универе, я бы туда никогда не попал без диплома. Я имел в виду только пользу ВУЗов именно для получения знаний и навыков.
ls18
26.09.2017 18:37Полезно или же бесполезно заочное образование в вузе? При условии, что студент волевой и старательно пытается учиться самостоятельно. У кого больше возможностей, у очника или заочника?
Free_Mic_RS Автор
26.09.2017 18:44По своему опыту могу сказать, что заочное образование именно в плане образования мало полезно — на установочных сессиях бегом начитывают материал, сами преподаватели относятся халатно к заочке (есть исключения, когда наоборот заочников дерут и контролируют, но это редкость! Например, МТУСИ хорош). Не говоря уже о том, что заочное техническое образование — ещё страннее, чем остальные. Хотя при должной воле будет и эффект, и диплом.
ls18
27.09.2017 08:38Вы тоже учились заочно? Получаю заочное образование и считаю, что даже если получу диплом, то по факту высшего образования у меня нет. Очники на голову выше меня, заочника.
altai2013
27.09.2017 13:13Если студент действительно волевой (большая редкость), то заочное образование будет ближе, проще и полезнее. Неочевидный фокус в том, что очное образование так же, как и заочное, сводится к самообразованию. Когда в семестре десяток предметов, то на каждый из этих предметов выделяется, по сути, 1-2 недели времени. Наивно думать, что за это время студента чему-то научат на лекциях и практиках. Слишком мало часов, это обучение в стиле «галопом по европам», «C++ за 21 день» и тому подобное. В основном, всё сводится к показухе, очковтирательству и имитации обучения. На заочке, в принципе, всё то же самое, но у студента больше шансов распределить свои усилия по тем предметам, которые ему действительно нужны и интересны. С другой стороны, у очного образования 3 важных плюса: 1) настоящий диплом, который все воспринимают серьёзно и который годится для эмиграции (в отличие от заочного) 2) общение с довольно сильными и (чего греха таить) богатыми студентами, связи с которыми пригодится после института 3) очникам чаще всего выделяют более сильных преподавателей (отчасти это нивелируется их бОльшим формализмом в общении со студентами)
ls18
27.09.2017 15:53Что значит «настоящий диплом»? То есть на заочке диплом не настоящий? И за рубежом такие дипломы даже не рассматриваются?
altai2013
27.09.2017 16:13Да, такое образование просто не считается высшим. Обладатель диплома заочного факультета будет везде писать, что у него среднее образование.
shurph
27.09.2017 17:04Откуда такая информация, что диплом заочного факультета не считается высшим образованием или не годится для эмиграции?
altai2013
27.09.2017 17:41Погуглив пруфы я пришёл к выводу, что ошибался насчёт непризнания заочного. Хотя информация в сети противоречивая и часть источников говорит, что бывают проблемы (например, тут, последний абзац: www.immigrate.ru/kvebek), большинство пишет, что для эвалюации диплома и иммиграционных анкет годится любая форма обучения. И всё же я бы не стал связываться с заочным, планируя эмиграцию. Даже в России заочное обучение чревато проблемами при трудоустройстве: news.rambler.ru/politics/36550620-piloty-zaochniki-ne-smogut-upravlyat-passazhirskim-samoletom/?updated=news
michael_vostrikov
27.09.2017 08:57Все так, только бы еще поменьше времени это все занимало. Скажем, года 3 максимум.
Axelus
26.09.2017 16:48-2Например, в нашей компании нет ни одного сотрудника, не имеющего высшего образования. Просто мы не принимаем таких людей на работу. Интересно, это сильный аргумент в пользу высшего образования?
evvlasov
26.09.2017 16:51+5Это аргумент не в пользу вашей компании.
Axelus
26.09.2017 16:53-2Сильно сомневаюсь. Аргументируйте, плиз!
evvlasov
26.09.2017 17:10-3Мне предлагал работу учёный суперстар, с публикациями в Science, при этом у меня профильное образование только специализация на Курсере. Если ваша фамилия не Брин, то он для меня больший авторитет, извините.
Axelus
26.09.2017 17:30-1Я говорю, основываясь исключительно на собственном опыте. И не претендую ни для кого быть авторитетом типа Брина или кого-либо еще. При этом, прекрасно осознаю, что в мире много успешнейших людей, не имеющих не только высшего, но даже и законченного среднего образования. Однако утверждаю, что высшее образование, независимо от того, соответствует ли полученная специальность выбранной потом стезе, поднимает общий уровень развития человека даже в общих знаниях. Человек смотрит на мир другими глазами — глазами понимающего человека и может быть более эффективным. Возможно это зависит от уровня раздолбайства в студенческие годы, возможно от уровня самого заведения. Но факт есть факт — сужу по себе и своему кругу знакомств.
evvlasov
26.09.2017 17:45+5Всё очень сильно изменилось и меняется каждый день. Когда я учился, интернета не было, например. Ваш и мой круг нерелевантны для оценки эффективности сегодняшнего образования.
Axelus
26.09.2017 18:23Ну, я еще не так стар, чтобы все мои наблюдения канули в лету :)
Кроме того, мой сын сейчас заканчивает 11 класс и перед ним стоит задача выбора ВУЗа, так что эта тема сегодня весьма актуальна для меня и волей-неволей приходится в нее погружаться последние полтора года.
А по поводу полученных знаний в ВУЗе — нужно различать фундаментальные знания (которые даются в ВУЗах) и узкие практические навыки, которые человек получает либо на специализированных курсах, либо в боевой практической обстановке (в реальном бизнесе).
1nsidE
26.09.2017 17:54+4ваша компания не приняла бы на работу, к примеру — Криса Касперски.
Mудрые люди, однако, все с вышкой наверное :)RegionSoft
26.09.2017 18:01+2Мы не приняли бы Криса на работу, и именно из соображений мудрости. Это уникум, гений (кстати, отличник в школе), и ему было бы совершенно некомфортно в корпоративной разработке, где нужно решать определённые задачи и общаться с клиентами. Да и не заставить его это делать было бы. Такой, как он, ценен вне корпорации — например, когда он работает удалённо и двигает всю отрасль, исследует. И да, жаль, что его больше нет, такие люди нужны ИТ.
1nsidE
26.09.2017 18:08+2согласно вашим правилам (не нанимать людей без вышки) вы бы его не взяли бы, будь вы хоть АВ компанией.
Axelus
26.09.2017 18:37+2Я сейчас понимаю, что мой тезис был неверно мною сформулирован. Я должен его скорректировать. Его смысл не в том, что мы не берем людей на работу без высшего образования по принципиальным соображениям. А так получается. На собеседования, понятно, приходят разные люди и есть законный конкурс. При этом проходят дальше и остаются с нами именно люди с высшим образованием, поскольку оказываются сильнее как кандидаты. При этом какое именно у человека образование — это на третьем или четвертом месте в рейтинге важности. На первом всегда значатся навыки, квалификация и стабильность кандидата. Если же придет "Звезда" без образования вообще, у такого кандидата будет приоритетное положение. Но на моей памяти звезд без высшего образования к нам не заглядывало… :)
Arris
27.09.2017 02:36Вы не правы. Поверьте человеку, который не закончил ВУЗ и теперь об этом очень жалеет. Причем диплом то как бумажка — это ерунда (хотя вот в на предпоследнем месте работы мне прямо заявили: «нет диплома — будешь получать на 40% меньше, у нас правила такие»).
Знания нужны, знания.AbstractGaze
27.09.2017 06:38+2А что, без вуза уже и знаний не получить? У меня нет высшего и я не жалею хотя два раза успешно поступал (не потому что считал что нужно, а скорее по советам со стороны «без вуза никуда»).
То, что в вузе преподают по 10 минут в неделю, можно найти сейчас в значительно большей концентрации и актуальности. Возможно вы закончите вуз где были актуальные знания. Да именно были, потому что за 5 лет, они уже не будут актуальными — преподаватель должен так же каждый год обучаться/практиковаться/обновлять знания в той области, которую он преподает, чего практически никогда не бывает — есть программа и ее дают десятка два лет.
В итоге курсы, которые сейчас очень быстро развиваются и становятся все более актуальным средством получения знаний, потому что:
— они имеют актуальную информацию
— сред них есть конкуренция, и не актуальные курсы/ресурсы будут сразу забыты
— есть выбор — если курс не идет потому что слишком сухой без практики, можно найти другой, что не сделаешь в вузе. Ну или сделаешь потеряв пару десятков лет.
И главное — вуз это не место куда приходят за знаниями, туда обычно приходят потому что «надо и так принято». А вот за знаниями приходят позже (и зачастую не в вуз), после практики и понимания что знаний в данной области не хватает и хорошо бы их получить.michael_vostrikov
27.09.2017 09:26Вуз он не столько про знание актуальных инструментов, сколько про знание о том, какие области вообще есть в профессии. Про идеи, а не про реализацию. И он в добровольно-принудительном порядке дает основы в этих областях. Ведь чтобы человек заинтересовался чем-то, надо чтобы он сначала об этом узнал и попробовал.
Плохо то, что это превращается в самоцель. Ты должен сдать предмет, потому что должен сдать, должен знать именно этот материал или инструмент. К этому добавляются преподаватели типа тех, которые считают, что их предмет должны знать все и читать учебник каждый день перед сном, это ведь несложно (случай из личного опыта). Или ситуации, когда успевающего студента могут отчислить из-за физкультуры. И это все тянется несколько лет. На мой взгляд, это неправильно, надо что-то менять.AbstractGaze
27.09.2017 10:37И как? в вузе заинтересовывают и дают попробовать?) Попробовать мне дали в техникуме (и думаю во всех училищах дают), где 2 недели практики на реальном заводе и 2 недели занятия по спец предметам последние два года обучения. Я например проходил практику в отделе главного конструктора, «погашал» изменения в оригиналы чертежей на кальке, посмотрел чем занимаются конструктора, их работу и их проблемы — т.е. реальную работу по своей будущей специальности. А потом начался вуз. В котором сказал, что за 4 года они не создали обещанное направление «вертолетостроение» и мы идем не на ускоренное, а обычное обучение, то есть после диплома по масляной системе двигателя вертолета, я иду писать еженедельные рефераты по истории, лабораторки по химии и прочие «очень нужные» предметы. Еще три года ждать представление о основах и просиживать… я не захотел, и правильно сделал, потому что в реалиях мне пришлось бы вуз поменять раз так 4-5, за первые 8 лет работы.
Сейчас мне например понадобились знания, базовые, которые преподают в вузе, например мат анализ, алгоритмы, тервер — но ради этих знаний я не буду поступать на заочное, потому что есть несколько причин, в частности:
— траты денег на обучение
— траты времени на не нужные предметы
— траты времени и нервов на сдачу не нужных предметов чтобы получить доступ к нужным на следующих курсах
— отсутствие выбора, не все преподаватели умеют преподавать т.е. вуз это зачастую кот в мешке без гарантии получения необходимых знаний.
Поэтому взрослый человек, которому ценно свое время и другие ресурсы, за знаниями вряд ли пойдет в вуз — это не выглядит логичным в текущих реалиях.michael_vostrikov
27.09.2017 14:20И как в вузе заинтересовывают и дают попробовать?
Никак не заинтересовывают. Дают информацию и задания, то есть возможность узнать. А интересоваться дальше или нет вы сами решаете.
От самостоятельного изучения это отличается тем, что самостоятельно человек может просто решить "не хочу, не нравится, непонятно". Вы ведь не изучили тервер заранее, а он вам понадобился.
еженедельные рефераты по истории, лабораторки по химии и прочие «очень нужные» предметы
С этим я согласен, в вузах много лишнего, что можно сократить.
Поэтому взрослый человек, которому ценно свое время и другие ресурсы, за знаниями вряд ли пойдет в вуз
А речь не про взрослого человека с готовой профессией после техникума, а про школьников, у которых профессиональных знаний еще нет.
Сейчас мне например понадобились знания, базовые, которые преподают в вузе, например мат анализ, алгоритмы, тервер
Но вы знаете, что эти области есть и зачем они нужны в вашей профессии. Кроме того, у вас есть знания, которые вы получили в техникуме. Вы же не считаете, что техникум вам ничего не дал? Вот вуз дает все вместе, это плюс. А то что есть ненужные предметы, это минус.
AbstractGaze
27.09.2017 14:47Я больше 10 лет работаю в ИТ, в этой сфере техникум мне не дал ничего. Мне даже армия дала больше — я там слепой набор изучил и узнал зачем нужны бекапы.
Техникум у меня был технический, почитать даже основы по биохимии, биофизики, атомной энергетике, альтернативной энергетики не получится — так как это все разные специальности и даже разные техникумы, да и вузы зачастую тоже.
Сейчас, я же могу искать только вроде как необходимую мне информацию, знакомится с ней и понимать нужна она мне и изучать дальше, или «листать» дальше в поисках. Вузы так не по перебираешь.michael_vostrikov
27.09.2017 16:16Ну так техникум, как я понимаю, был не про ИТ, а про машиностроение. Биохимия и биофизика это специализированные области, с ИТ или машиностроением они особо не связаны и уж тем более не основы. Я же не сказал, что вуз должен давать всё, что может заинтересовать человека, я говорил про основные области, существующие в профессии. В ИТ это например программирование/администрирование/нейросети. Опять же, сами вы можете неправильно оценить нужность информации. Тот же матанализ не каждого заинтересует, а применяется он много где.
AbstractGaze
27.09.2017 16:36В ит очень много областей, и не только в ИТ и зачастую это связано. Например, если я иду после школы и мне нравится генная инженерия, мне поступать куда? на биологический — вероятно я так и сделаю. Только ведь чтобы изучать гены, по хорошему надо уметь программировать, а значить уметь и в матан, и алгоритмы и много чего еще. Так в итоге куда поступать?) В два вуза? В три? Или для начала в один чтобы понять что нужно, и нужно ли оно мне?
Если бы спец предметы шли в начале, и в большом количестве — студент мог бы определится с тем что ему нравится, и возможно на ранем этапе сменил бы профессию на которую хочет учится, но у нас же на оборот — интересное идет в конце, когда уже поздно что то менять, там уже идет принцип — сейчас хоть какую нибудь корочку, а там видно будет.
Но, это уже офтоп. Свою точку зрения «неуча» я вроде достаточно пояснил.
Arris
28.09.2017 11:40Ну получить то можно.
Только те годы, когда ты учишься в ВУЗе — когнитивные способности на пике.
А в те годы, когда ты уже, не имея вышки, задумываешься о получении этих знаний другим путем — когнитивные способности не на высоте.
Проблема в том, что в те годы, когда учишься в ВУЗе — когнитивные способности на пике, а мозги и жизненный опыт в эпсилон-окрестности нуля. И очень часто в одно ухо влетает, а в другое вылетает. И гулянки-вечеринки важнее, чем учёба.Neikist
28.09.2017 12:08+1Вот не знаю, сейчас, в 25 лет, котелок варит гораздо лучше чем с 17 до 23, когда учился в вузе, да и можно сосредоточиться на том что интересно и нужно, а не на истории с маркетингом, только усилия распылялись.
saboteur_kiev
28.09.2017 18:27Скорее у вас появилась осознанная целенаправленность, плюс за время учебы в вузе, мозг чему-то да научился.
Но вот потенциальная пластичность мозга уже похуже.marsermd
29.09.2017 12:19А из чего вы делаете такие умозаключения? Я часто сталкиваюсь с этим убеждением в разных форматах: в 18 лет самая быстрая скорость усваивания/большая пластичность мозга/большой IQ/…
При чем такого понятия как "пластичность" беглый поиск не дал. Зато есть "нейропластичность", и не очевидно что оно коррелирует со способностью обучаться.
FGV
26.09.2017 17:24+1«Вузы, вы больны» и «Корпоративный институт как не идеальная, но лучшая форма обучения»
это как? второе заведение не ВУЗ?Free_Mic_RS Автор
26.09.2017 17:31Корпоративный университет/институт/школа/академия и т.д. — это в 90% не вуз, а внутренняя программа обучения, в 10% — совместный проект с кафедрой вуза.
saw_tooth
26.09.2017 17:52+3согласитесь, странно изучать Windows Server 2003 или Pascal в 2017 году
Странно быть стильно-модно-молодежным Angular разработчиком, и на слова " у тебя течет виртуальная память в приложении", пожать плечами и сказать «а что такое виртуальная память».
Язык не более чем инструмент, а при изучении, чем он проще — тем лучше.
Хочу уточнить, есть простые языки, а есть легкие. К моему мнению, простой язык, это Си: что написал — то получил, не никаких неявных состояний, каких то магических функций и других, с точки зрения прозрачности, вещей. К легким языкам, могу отнести Python. Нет избытка синтаксиса ( я не о скобочках), простая структура, некоторые стили программирования уже в коробке.zugo
27.09.2017 12:30+2простой язык, это Си: что написал — то получил, не никаких неявных состояний, каких то магических функций и других, с точки зрения прозрачности, вещей
Вы точно про С? Вы на нем писали вообще? Способов запутать код или получить undefined behaviour там больше, чем где угодно еще (кроме С++ конечно).saw_tooth
27.09.2017 16:59Да, я о чистом Си. Писал и пишу на текущий момент, пришел к нему из Python и очень рад.
А насчет «undefined behaviour» и различных «стреляний:
Да, на С++ очень просто выстрелить себе в ногу. Даже множеством разных способов. Но для некоторых людей это плюс. Возможность выстрелить себе в ногу предполагает возможность стрелять вообще куда-угодно, как-угодно и сколько-угодно.
Да, результаты могут быть ужасными.
Но и мощь устрашающа.zugo
27.09.2017 21:07+1Я все же склонен считать, что в нынешние времена безопасных языков С и С++ стоит применять очень дозированно, там где уж точно ну никак не обойтись. Иначе можно легко нажить лишних проблем.
HellWalk
26.09.2017 17:52+3Способ первый — полное самообразование
При кажущейся абсурдности абсолютно возможный способ.
Что-то? Абсурдный способ?
По моему глубокому убеждению — это самый лучший способ. Когда ты понимаешь нужность знаний лично для себя, когда понимаешь какую выгоду ты от них получишь — только тогда знания воспринимаются и запоминаются. Все остальное — в одно ухо влетело, из другого вылетело.
Единственное о чем нужно побеспокоиться при самообучении — чтобы был человек, к которому можно было обратиться с советом. Но и если знакомых нет — могут выручить форумы и сервисы ответов-вопросов.
P.S. Сам в жизни менял профессию два раза. И с самообучением просидел ни один год. После самообучения годы проведенные в школе и техникуме вспоминаю как просиживание штанов. Конечно, какие-то полезные знания они дали, но по эффективности знания/время — в глубоком дне.
P.P.S. За программировании на паскале и тому-подобных языках готов бить преподавателям лица. В техникуме, когда нам на программировании давали бейсик (обычный, не visual) — я с детской наивностью хотел на нем написать свою игру. Сколько часов потратил… но на этом убогом инструменте невозможно было создать что-то стоящее. Показал бы мне в тот момент кто-нибудь C# и простоту работы с ним — уже давно был бы программистом. Но нет, «благодаря» д***лам, которые считают, что «первый язык программирования должен быть исключительно в целях обучения» — более десяти лет болтался по жизни то там, то сям, прежде чем вновь вернулся в программирование, и понял, что вот оно — мое.ChePeter
26.09.2017 18:54Есть различия между приобретением и повышением квалификации.
Если заниматься самообразованием, то можно пропустить целый раздел. Типа как «искать под фонарем», а не там где нужно. Образование должно быть фундаментальным.
Есть такие разделы, с виду сухой матан, а присмотришься, нееет, ставит границы достижимого и вычислимого в реальных проектах.
Да и первый язык изучают самый простой и наглядный для того, что бы объяснить сущность алгоритма и саму природу дискретной вычислимости.
А не для того, что на этом языке потом выходили в продакшен
LmTinyToon
26.09.2017 19:12+1Возможно я ошибаюсь, но мне показалось что вы противоречите самому себе. Сначала говорите что самый лучший способ самообразование, а потом вините преподавателей якобы за то, что с самого начала они дали не тот инструмент из-за которого вы не смогли стать вовремя программистом. Немного поясню мысль, я впервые научился программировать (в школе программирования не было, желания учить тоже) на первом курсе мехмата. Мы использовали Turbo Pascal. Изучать программирование на с++ (читай с в контексте универа) начали только на втором курсе. И до сих пор не жалею, что кривая изучения такая. На «примитивном» языке Pascal, очень хорошо изучать основы программирования (структуры данных, алгоритмы). После овладения такой базой (хотя бы минимальной) уже легче изучать какие-то новые темы и видеть что может тебе подойти а что нет. Это я к тому, что может быть преподаватели не так сильно и виноваты. (ну если начинают с азов)
Idot
26.09.2017 22:38+2После самообучения годы проведенные в школе и техникуме вспоминаю как просиживание штанов
А как давно в ВУЗе отменили СРС?
СРС = Самостоятельная Работа Студента, то есть самобучение.
Главное в ВУЗе — это Фундаментальные Знания, которые при самостоятельном изучении есть риск пропустить как "необязательные".
А всякую, конкретную практическую специфику, можно выучить и самостоятельно.
M_AJ
26.09.2017 23:26+3Дискуссия вечная и ожидаемая, вставлю пожалуй и я свои пять копеек. По моим наблюдениям, многие из тех, кто пишет «вузы не нужны» просто имели изначально неверные ожидания относительно вуза. В плане изучения конкретного языка программирования, вуз и правда дает до обидного мало, так что изучать любимый Go, Python, C++ или любой другой язык и правда придется самому, параллельно вузовскому курсу, впрочем, в некоторых вузах бывают факультативы, на которых обучают какому-то конкретному языку/стеку технологий.
С другой стороны, обучение в вузе помогает не попасть в одну очень коварную ловушку — сломав первый молочный зуб в попытке разобраться в графах, численных методах, структурах данных, любой другой теме по вашему вкусу, решить, что все это не нужно, забить, а потом строить велосипед вместо применения хорошо известного алгоритма, или решать задачу в лоб, хотя широко известно красивое решение, или вообще получить ошибочные результаты, неверно задав шаг интегрирования. В вузе все-таки придется разбираться в этих темах, даже если пока кажется, что оно не нужно, и никогда нужно не будет. Хотя если вы точно знаете, что ваше призвание делать сайты, то возможно лучше и правда не отвлекаться на всю остальную computer science, а изучить какой-нибудь популярный фреймворк.
p.s. Еще вуз дает какие-никакие базовые знания в области экономики и права, что снижает вероятность принять за истину различные фриковатые идеи в этих областях.Neikist
26.09.2017 23:39+1Еще вузы не нужны (а точнее нужны единицы из них) по мнению тех кто учился в каких нибудь «заборостроительных» вузах. Проучившись в таком 5 лет понимаешь что «такие» вузы действительно не нужны. К сожалению их очень много, нормальную базу дают мало где, по крайней мере в провинции, а в том возрасте когда выбирают вуз далеко не все знают что им интересно, и что им понадобится в будущем.
tdakkota
27.09.2017 04:00+2Начал писать в 7 на Pascal, увлёкся, теперь мне 14 годиков, пишу на C#/Java/Python/JS, черкаю на C/C++ и интересуюсь Go и R.
Но при этом всем, мне суют Кумир и не дают способа получить что-то большее.
Ох уже эта система образования...
kester
27.09.2017 12:30вся жизнь и без того была похожа на обучение (а точнее, гибрид армейской дедовщины с дрессурой манула)
забавная опечатка
Kyushu
27.09.2017 12:30+1Хорошее, продуманное изложение.
В разделе «без чего нельзя обойтись» в первых пяти пунктах написал бы: без общения со специалистами (преподавателя в расчет не берем).Free_Mic_RS Автор
27.09.2017 12:34Спасибо! Да, без общения с профи нереально тяжело. Практики умеют чудесным образом понятно и однозначно объяснять.
Kyushu
27.09.2017 14:06+1Профессиональный коллективный разум хорош и тем, что умеет давать ясные современные ответы на вопросы, которые практически невозможно извлечь из других источников. Что и зачем надо использовать, а что и почему — нет.
Dimusik
27.09.2017 13:33+1Никогда не забуду, как писал экзамен по Делфи. Надо было написать две задачи по сортировке массива пузырьком и транспонированию матриц ручкой на бумаге. Это было 4.
Потом это дело проверял препод на правильность (глазами, уже 6), после чего нужно было перебить код в IDE и скомпилировать. Если компилировалось с ошибкой, то оценка не изменялась, если без, то можно было даже получить 9.
saboteur_kiev
28.09.2017 00:25+1Отличная статья, ее можно смело вставлять ответом например на тостере, когда спрашивают «какой язык попроще выбрать для обучения», или «какую мегакнижку почитать чтобы сразу писать крутой код».
Спасибо за красивое изложение практически всех моментов для новичков!
asserebryanskiy
28.09.2017 01:35просить критики в экспертных сообществах
А где можно получить фидбек на свой код, если только начинаешь?
Я бы и рад критике, но не представляю, где можно показать, что получилось.nick_volynkin
28.09.2017 07:22+1На русском языке — на ru.stackoverflow.com, с меткой инспекция-кода.
На английском языке — на codereview.stackexchange.com.
В обоих случаях внимательно прочитайте правила. К коду на ревью есть ряд требований.
dirkar
Не надо входить в айти. Тут количество желающих войти превышает все разумные пределы.
Lamaster
Дак ведь и рынок требует специалистов. Другое дело, что рынку нужны миддлы, но миддлами не рождаются.
TimeCoder
А senior'ы не нужны?
Roman_Podymov
Нужны, по цене middl'ов.
TimeCoder
Странное утверждение. Получается, что senior'ам ничего не остается, кроме как работать за копейки (относительно своей реальной цены)?
AllexIn
Много таких видел.
Смотришь на человека и думаешь «ты же супер спец, что ты здесь забыл??». А ничего не забыл. Просто нигде больше не ждут. Или просто состыковаться не могут…
TimeCoder
Ну как это не ждут? Дефицит квалифицированных разработчиков — миф, обман? Вы точно на Земле живете? Я вижу совершенно обратное: чем выше уровень специалиста, тем более он востребован по всем миру. Исключение составляют люди, которые сделаны из сплава лени, интровертности и нерешительности: они да, с радостью оседают на одном месте, и годами там существуют, лишь бы никто не трогал. Таких видел. Человек горит программированием, шарит — а ему ничего не надо. Мог бы переехать в любую страну мира, хотя бы попробовать, или свой стартап открыть — но нет.
DarkGenius
Чтобы переехать в другую страну или открыть стартап — мало «шарить в программировании».
BimBam
Если верить этому сайту, то спрос на сеньйор девелоперов очень даже большой.
scrapers.space/seniorvsjunior
tilvan
не надо бояться конкуренции
RussDragon
Конкуренция – не беда. Беда в коде, который порождается огромным количеством псевдо-программистов. Это такие люди, которые пришли в программирование чисто потому что «модно, востребовано, платят хорошо», а не потому, что им нравится этим заниматься и у них это получается.
AllexIn
Эта беда — миф.
Если вы работаете в команде, где готовы платить и работать — будет отличный код.
Если платить и работать не готовы, хоть кто там будет писать код — получится дрянь.
DarkGenius
А что делать, если постоянно попадаешь в команды, в которых не хотят писать хороший код, а пишут на «отвали», лишь бы зарплату платили?
AllexIn
Валить оттуда?
senglory
А если такая команда находится рядом с домом, а не в 2 часах езды по городу, на который хочется смотреть только в прицел бомбардировщика? Куда тогда валить? И потом, что такого в просто работе за деньги? Почему работа не может быть просто источником кеша для образа жизни?
dimastrow
Чтобы получалось нужно учиться, чтобы понравилось нужно попробовать :) Будь добрее к людям.
Free_Mic_RS Автор
Желающих — да, но тем не менее компании находятся в состоянии перманентного кадрового дефицита. Просто потому что «запилил страничку на php, я программист» сильно отличается от того, каких голов и рук не хватает бизнесу.
nikitasius
Выйти тоже не мало. Знакомый айтишник стал сам варить мороженое и торговать им. Занимается тем, чем любит (после 15 лет работы). Чел капитально вложился, даже курс на 300 (или 400) часов обязательный даже-если-ты-все-умеешь прошел.
Я бы забил на все, и работал с деревом, резьма очень расслабляет и сделал бы небольшую кузницу где бы ковал классные ножи до кучи.
Другая знакомая полностью забила на айти и просто "руководит" своим мужем (который свою фирму недалеко основал 3 или 4 месяца назад), тусуясь с детьми дома, посещая автошколу.
DarkGenius
Что хорошего в последнем примере, который Вы привели?
hd_keeper
Ничего не делает, а деньги получает. Красота же.
fatronix
Ничего, если ей это не нравится. Если нравится — то чего плохого?