Чему не учат в универе
Постоянно слышу, что в универах плохо учат программированию. Якобы слишком много теории, которая никогда не пригодится, а вот практики маловато. Якобы зачем нам Си, если все уже давно на Питонах да на Рубях сидят. Зачем нам SQL, если реляционные базы — это уже не модно.
Лично я так не считаю. Ну серьезно, если нам эту теорию насильно не впихнуть (хотя бы базу), мы ведь ее никогда и не изучим.
А вот о чем и правда в универах забывают, так это о том, что программирование уже давно не про алгоритмы. В большинстве задач уже существует готовое (или похожее) решение. Поэтому вместо строительства собственных велосипедов желательно найти какую-нибудь библиотеку, прикрутить ее, разобраться и поправить под себя. Тут важно гуглить и читать документацию. Вот и начинаются проблемы. Оказывается, студентов не просто этому не учат, а даже не говорят, насколько это важно. Наоборот, считается, что скопировать из интернета решение — это что-то плохое.
И это действительно плохо, когда необходимо разобраться в простейших алгоритмах. Ну это 1-2 курс, ладно. Казалось бы, на старших курсах можно уже давать большие и сложные проекты, которые нереально осилить в одиночку... но нет! Индивидуальная работа ценится превыше всего, даже диплом обычно каждый делает сам себе. А зря! Ведь работа в команде — наиважнейший навык, без которого не обойтись на любой работе.
Я считаю, что очень важно:
- Писать понятный код самому и уметь читать чужой код (даже если он нифига не понятный).
- Доходчиво излагать свою точку зрения, уметь адекватно общаться, грамотно пользоваться русским (или английским) языком. А также слушать, уметь поставить себя на место другого человека.
- Уметь пользоваться системами контроля версий.
- Соблюдать стандарты и общепринятый стиль.
- Быть способным оценить время, необходимое на некоторую задачу, соблюдать дедлайны (ну хотя бы примерно).
- Писать понятную и полную документацию.
- И другие, простите за выражение, гуманитарные навыки.
Так что я бы ввел побольше часов русского и английского языков (тока сразу не расстреливайте), на психологии преподавал бы что-то типа делового общения, а на старших курсах заставлял бы студентов делать большие проекты совместно.
А теория пусть остается. Ведь задача универа не только впихнуть знания, а еще и научить мыслить логически и аналитически. Как ни странно, но всякие доказательства теорем этот навык неплохо так прокачивают.