Этот вопрос заставил меня подумать, что лучше задать вопрос.
Что вы узнали в школе, что вас не волновало в то время, но оказалось полезным или вам пришлось переучиваться на рабочем месте, потому что у вас было это в школе, но вы не сохранили информацию и вам она была нужна? (Я имею в виду для программных работ.)
Я думаю, что это может помочь студентам определить, на что им действительно следует обращать внимание, пока они находятся в школе.
Ответы:
Большинство разработчиков, которых я видел только что из школы, не имели большого опыта в разработке ОО . Они слышали об этом, но больше всего это просто «ставить вещи на уроки».
В школе вы получаете множество примеров об автомобилях и людях, которые можно разместить в ОО-структуре. Это учит вас полиморфизму, перегрузкам и тому подобному. Скорее "базовые" вещи. Хорошо знать эти вещи и то, как они работают, но у меня никогда не было примера реального использования этого. Я думаю, что важно показать студентам некоторые реальные сценарии, в которых используется какой-то дизайн.
Еще одна вещь, которую я упустил в колледже, - это использование (или неправильное использование) пригодных для использования шаблонов проектирования . Я думаю, что в наши дни наиболее важные модели должны быть введены где-то в конце первого года или в начале второго года. Студенты должны ознакомиться с ними.
Написание чистого кода - это то, чему не учат (недостаточно) в школе. Мы могли бы сделать настоящий беспорядок в коде и все равно получить A +. «Если приложение работает, это хорошо.» был девиз. Студенты должны научиться писать чистый и высококачественный код и получать за это вознаграждение, это также означает рефакторинг и использование шаблонов или передовых методов, которые они изучили.
Конечно, нетерпеливые студенты изучали все это самостоятельно, но другие, которые не были так нетерпеливы, не делали этого. Это может быть связано с отсутствием мотивации, или они просто не знали, где и как искать. Платя много денег за школу, я думаю, что они действительно должны научить вас этому полу-продвинутому материалу.
Кроме того, приличное (профессиональное) письмо является недостатком навыков для большинства людей. Жаль, потому что это очень важно в реальном мире. Самое важное - это умение ясно говорить на своем родном языке. Если вы не можете написать четко на своем основном языке, трудно общаться в компании.
Я не знаю, можете ли вы научить кого-то писать в этом возрасте, они уже должны быть знакомы с этим навыком. Можно повторить то, чему учат в старших классах. Может быть, научить студентов, как писать комментарии и техническую документацию. Мне все еще трудно писать технические документы, поскольку никто, кажется, никогда не знает, как это сделать, или каков формат по умолчанию.
источник
Девушки. Вы можете подумать, что я шучу, но это не так.
Не сходи с ума или еще что-нибудь, тебе все равно нужно учиться академическим вещам. Но вам также нужно потратить некоторое время на изучение людей, от окружающих вас людей.
Это включает в себя половину человечества, у которой совершенно другие интересы и взгляды, чем у вас и ваших друзей, но с которыми вы все равно захотите ладить.
источник
Я чувствую, что должен был добавить на 42% больше энергии в статистику.
источник
Письмо было бы одним из самых больших для меня. Я не думаю, что это ограничивается только разработчиками.
источник
Функциональное программирование. В то время это казалось рой скобок, которые не могли сделать ничего полезного. Теперь, когда лямбда-выражения находят широкое применение, мне пришлось переучить свой мозг, чтобы мыслить таким образом. В колледже я просто хотел получить LISP и Scheme как можно дальше в зеркало заднего вида и никогда не оглядываться назад. Если бы я знал, насколько полезными могут быть некоторые аспекты функционального программирования, я бы уделил больше внимания.
источник
Регулярные выражения. Я отчетливо помню, как бросал их в колледже. Они были незаменимы для работы.
источник
Мой любимый ответ (статистика) взят, поэтому я дам свой второй любимый ответ. Система обозначений Big-O и знание эффективности различных ключевых алгоритмов. Для меня это менее "секретное оружие", чем статистика, но оно все еще очень ценно.
источник
Хотелось бы, чтобы я слушал то, что сказал мне мой учитель, когда мне было 14 лет. К сожалению, я не могу сказать вам, что это было, потому что я не слушал.
источник
Должен быть курс по теории конечных языков и автоматов.
Думал, что это слишком теоретически, пока моя работа не потребовала от меня создания компилятора для конкретного домена с нуля.
источник
Я бы сказал, C, а также UNIX. Несмотря на то, что я изучал UNIX вскоре после колледжа, я чувствую, что выиграл бы от более раннего ознакомления с UNIX и C.
источник
источник
Техническое письмо. Я трачу много времени на написание требований, общение с клиентами и коллегами. Это область, в которой у меня был 1 кредитный час в колледже. Единственный другой класс, который действительно помог в моей карьере, был еще один класс с 1 кредитным часом. Это было в программировании на Си. Остальное, хотя и интересно и, вероятно, помогло моим общим аналитическим навыкам, на самом деле не было прямой пользой для моей карьеры.
Конечно, я пошел в школу 20 лет назад, и С считался передовым в электротехническом факультете. Люди из CS делали кое-что с Lisp и C ++, но, вероятно, все еще не так много ОО, как я надеюсь, что происходит с сегодняшними выпускниками.
источник
Проектная документация
Я всегда предполагал, что кто-то другой будет создавать эти вещи или что они будут просто документами. Они совсем не простые, и моя команда достаточно мала, чтобы я делал свои собственные документы по дизайну.
источник
Второй иностранный язык. Русский в моем случае. Множество книг, ресурсов и многого другого на этом конкретном языке в моем окружении.
источник
Со стороны CS вещей:
Из категории «все»:
источник
Векторная математика и исчисление. Я имел их, но мои профессора были ужасны и фактически не преподавали предметы. Но как человек, который сильно увлекается графическим программированием ... лучше бы помогли основы векторной математики.
источник
Очевидно, история и литература. Проблема часто, школа не делает их интересными.
источник
электроника
У меня не было много программного обеспечения связанных вещей в школе . Ах - информатика, но я отменил это. :) Но это было легко узнать позже. В то время как электроника, я часто не понимаю. Микроконтроллеры, ШИМ, GPIO - WTF? Я хотел бы понять вещи.
источник
Распределенные сети / вычисления . Программирование не является проблемой, но предварительными условиями в современной архитектуре являются глубокие знания распределенных концепций.
Подробный курс был предложен в качестве факультативного, но пришлось выбирать между этим и ИИ: так что, на самом деле, это не сожаление.
источник
Шаблоны проектирования. То, как они были представлены, на самом деле не говорит вам, насколько они полезны, с тех пор я прочитал пару книг о них и считаю, что они невероятно полезны.
источник
Unix, Shellscripting, C. У него была возможность хорошо выучить его в школе, но он должен был сделать это позже на работе.
источник
Не информатика вещи:
Лично я хотел бы, чтобы у меня был родной язык, как у большинства нормальных людей здесь. Под этим я подразумеваю, что большинство людей родились на одном основном языке и, возможно, выбрали другой или два позже. В этой ситуации дополнительные языки обычно не влияют на родной язык, потому что у вас уже есть прочная основа, которая охватывает речь, письмо и аудирование. Я вырос, говоря, писал и слушал на трех разных языках одновременно. Несмотря на то, что я всегда хорошо учился в языковых классах, как в школе, так и в колледже, мне хотелось бы иметь свободное владение ОДНЫМ языком. В результате я должен немного подумать, прежде чем сформулировать ответ. Некоторые люди замечают это и приходят к выводу, что я слишком застенчив (что в некоторой степени не так).
источник
Экономика. Это может быть скучно (и немного жестоко), но в любом случае это единственное, что действительно необходимо в этом обществе. После этого статистика.
источник
Я думаю, что три класса, которые дали мне наибольшее понимание того, как компьютеры работают при выполнении программного обеспечения (что это понимание позволяет для более оптимального программирования), были:
Компиляторы операционных систем на ассемблере
Возможно, очень легко подумать, что эти классы не так полезны, если вы не занимаетесь карьерой, сфокусированной на какой-либо из этих вещей, но даже если вы веб-разработчик и не используете какой-либо из них непосредственно, что лежит в основе все равно было бы чрезвычайно полезно эффективно кодировать.
источник
Есть около дюжины уроков, которые я бы хотел в колледже, но не сделал. В основном не CS. Фотография, General Chem, больше пишу!
источник
Забавно, что количество людей, говорящих по гуманитарным наукам: я был специалистом в области когнитивных наук (Philosophy / CompSci / Anatomy) ... Закончил переход на Philosophy / CompSci с тяжелым образованием на английском языке (я мог получить степень бакалавра, но не потрудившись взять 101-й, который я пропустил).
Мне потребовалась бы неделя историй, чтобы рассказать вам обо всем дерьме, которое я получил от своих сверстников из CS за посещение этих уроков гуманитарных наук. Неважно, что полдюжины классов по логике сделали для моего программирования больше, чем любое количество исчислений. Независимо от того, что все мои лучшие курсы по искусственному интеллекту были философскими. Неважно, что на моих уроках английского были обалденные девушки. Нет-нет, я был какой-то несерьезной фигурой за эти курсы.
Примите мужество, хотя. По крайней мере, вам не нужно объяснять свое образование каждый раз, когда кто-то смотрит на ваше резюме.
источник
Квадратные уравнения и тригонометрия.
Очень важно при написании программного обеспечения для традиционных инженерных дисциплин.
источник
Я не уделял много внимания компиляторам, как следовало бы.
источник
CS / Math: больше логики, алгебры, теории категорий. Более фундаментальные и менее прикладные вещи: понимание прикладных вещей, когда вы хорошо знаете основы, намного проще, чем наоборот, и более плодотворно.
(У меня была A в статистике, но это заняло много времени, чтобы связать ее с реальными потребностями в программировании, я много забыл.)
«Гуманитарные науки»: естественный язык, письменность, формулировка, понимание и понимание. Это не выглядит важным, пока вы не присоединитесь к команде из более чем двухсот хакеров, то есть в так называемой «реальной жизни».
источник
Компьютерная графика (3D-рендеринг в OpenGL / DirectX)
Я, честно говоря, очень интересовался этим, но был настолько занят, что не мог выделить то время, которое мне бы понравилось. Это стало рутиной, а не хобби. Я думаю, что мне, возможно, придется взять книгу об этом, чтобы заинтересовать меня снова.
источник