У нас был приглашенный лектор в нашей школе, он касался тех, кто заканчивает учебу и не достиг того уровня квалификации, которого он ожидает, т.е. знание одного большого скомпилированного языка, такого как Java, C ++ или C #, одного языка сценариев, такого как Python или Ruby, одного веб-фреймворка. Какие еще навыки, по вашему мнению, должны иметь решающее значение для выпускника?
9
Ответы:
Безусловно, я бы сказал, стремление учиться. Колледж на самом деле не предназначен, чтобы дать вам навыки, необходимые для того, чтобы стать программистом. Он предназначен , чтобы научить вас навыки, необходимые для узнать эти навыки.
источник
Новым выпускникам нужно больше, чем просто желание учиться, им нужна одержимость обучением, понимание того, как учиться, и прочная основа в реалиях программного обеспечения. Мне вообще все равно, какие языки ты знаешь, но каждый младший должен:
Понять историю . Информатика - хорошо изученная область, со многими решенными проблемами. Знание этого факта открывает дверь к изучению того, что предстало перед вами. Даже знание о том, что у меня богатая история, извлекает уроки из более чем многих выпускников. Сюда входят такие вещи, как нотация Big-O, история алгоритмов, принципы Пророков (Кнут, K & R, Hofstdater и т. Д.), А также общепринятые практики и шаблоны.
Знай, что это можно решить . Я всегда удивляюсь, когда разработчик озадачен проблемой. Частью обучения обучению является простой принцип, что проблемы всегда легко разрешимы. Когда вы это знаете, это заставляет задуматься о том, чтобы найти здравый ответ.
Понять разложение . Мало того, что проблемы могут быть решены, но путь к этому так же прост, как разделяй и властвуй. Сократите проблему до более простых компонентов, и ваш ответ всегда будет представлен.
Знать, как измерить . Помимо возможности разбивать проблемы, новые разработчики должны знать, как собирать факты об этих проблемах. Сколько? На сколько огромен? Как быстро? Сколько? Простые факты - это шаг к пониманию и объективному мышлению. Делать предположения без фактов - простой способ потеряться в проблемном пространстве.
Будьте объективны . Все проблемы могут быть разложены, измерены и поняты просто. Проблемы, которые не могут быть поняты, просто требуют дополнительной декомпозиции, измерения и понимания. Бесполезно злиться или разочаровываться, и бесполезно спорить о теориях или обвинять их. Любое иррациональное поведение или убеждение, связанное с процессом решения проблем, является ядом, затрудняя поиск решений.
Предпочитаю шаблоны и принципы . Вы столкнетесь с десятками правильных способов работы, языками, моделями программирования, компьютерными архитектурами и даже инженерными методами. Не существует единственно правильного пути, но есть основополагающие концепции, которые вы можете применять снова и снова. Научитесь видеть эти шаблоны, так как они будут направлять ваше обучение и мышление на каждом этапе пути.
источник
источник
Как работодатель, я буду нанимать людей только в качестве программистов, которые:
По моему опыту, менее 5% выпускников компьютерных наук, претендующих на программирование, действительно имеют эти навыки на базовом уровне. Это минимальные навыки, которые необходимы для того, чтобы быть коммерчески полезными, и, что важно, не каждый способен освоить эти навыки.
Другие приятные вещи:
Это облегчает их интеграцию с существующей командой разработчиков, но это предметы, которые обычно можно преподавать на рабочем месте.
источник
Когда-то у меня была команда, которую я «унаследовал», в основном с недавно законченным персоналом, и у меня был опыт, что те, кто занимался настоящим программированием «рядом» с этой учебой (чтобы заработать немного денег), были самыми способными членами команды. Следовательно, ключом является опыт, и на каком языке мало что значит.
Однако, если вы посмотрите, что ищут рекрутеры (на всех распространенных сайтах рекрутеров, таких как jobserver.com и т. Д.), Интересно заметить, что есть много вопросов, касающихся C ++, C #, Java, но есть и другие, которые искали и также есть такие «экзотические» вещи, как КОБОЛ.
источник
Учебный процесс в этой профессии никогда не заканчивается. Нужно постоянно учиться и совершенствоваться, иначе он «улетает» из игры очень быстро.
источник
Другие ответы хороши, но я бы сказал, что упущенным навыком в университете, кажется, является реальная разработка программного обеспечения .
Основные классы для обучения ООП и языку, подобному Java, великолепны, но на 3-м и 4-м курсах студенты (по крайней мере, в моем местном университете) пишут компиляторы и операционные системы вместо того, чтобы учиться определять и создавать хорошую архитектуру, как анализировать требования и создавать из этого список технических спецификаций и, возможно, самое главное, в чем разница между хорошим кодом, который работает, и плохим кодом, который работает.
Как будто наши университеты почти хотят выпускать кодеров вместо разработчиков программного обеспечения . Я бы никогда не нанял кого-нибудь, кто не проявил бы какой-нибудь навык / талант в области машиностроения.
источник