Университет обучает D ++ в стиле C ++, как с этим бороться [закрыто]

19

Я программировал много лет, но хотел получить диплом, чтобы стать более трудоустроенным. Однажды, уже окончив университет, я выбрал не 5-летнюю специальность по информатике, а более короткую, более ориентированную на практическую реализацию программу разработки программного обеспечения .

Я ожидал, что это могло бы сосредоточиться больше на конкретных навыках, чем на теории, но все же была идея, что университетам и преподавателям нравятся вещи, которые должны быть правильными, формальными, академическими. Это все еще наука, верно? Неправильно - я был удивлен тем, насколько неряшливы были многие IT-курсы.

Во вводном курсе по C ++ мы тестировались на такие фразы, как «почему глобальные ошибки плохие» и «почему хорошие константы», после того, как были написаны 1-2 программы. Случайные анекдоты без надлежащего контекста. Раздаточные материалы содержали system(pause/cls), getchа заголовки вроде conio.hи iodos.h. Одна из задач состояла в том, чтобы напечатать «символы ASCII» с 32 по 255 со скриншотом, показывающим такую ​​таблицу, напечатанную с использованием кодовой страницы Windows-1252, но без упоминания кодировки вообще.

Вопрос : когда университет / профессор, кажется, использует устаревшие и / или устаревшие инструменты и методы, а содержание, которое преподается, является некорректным, как вы относитесь к нему конструктивно и с уважением, если вообще?

В некоторых ответах указывается, что вы должны выходить за рамки программирования, поскольку это просто инструмент для изучения таких тем, как структуры данных и алгоритмы. Я согласен с этой идеей, но в этом случае не было такого плана за плохим стилем. Большинство курсов просто обучают другому «инструменту» без какой-либо теоретической базы или какой-либо «большой картины». Часто казалось, что их быстро соединяют ради того, чтобы предложить такой курс.


Я застрял с этим и, наконец, закончил. Качество оставалось довольно низким (за некоторыми исключениями), и несколько других студентов жаловались на это. Как и ожидалось, я узнал намного больше из личных проектов и рабочих мест с частичной занятостью, чем из школы, однако процесс окончания школы и ярлык «студент-программист» кажутся таинственно полезными сами по себе!

Toerndev
источник
2
Основываясь на моем собственном опыте, вы научитесь лучше, быстрее и дешевле, изучая программирование самостоятельно и получая помощь от форумов. Нередко университетская учебная программа устарела. В России Паскаль все еще преподают в некоторых университетах (хотя мне нравится язык, и я не вижу в этом ничего плохого).
WKS
@WKS: Я думаю, что Паскаль - очень хороший обучающий язык для изучения принципов (процедурного программирования), которые совсем не устарели. Университетские курсы не должны тратить время на изучение конкретного языка программирования, а скорее на преподавание парадигм (процедурных, объектно-ориентированных, функциональных, логических и т. Д.).
Джорджио
Да, конечно @Giorgio, язык программирования, выбранный в качестве учебного пособия, не имеет значения, однако следует ожидать, что представленные методы программирования являются обоснованными и современными.
Гламперт
Большинство университетов обучают магистрантов с целью позволить им успешно получить степень магистра. Большинство магистерских программ обучают магистрантов с целью позволить им успешно получить докторскую степень. Большинство программ PhD направлены на то, чтобы помочь вам стать успешным исследователем.
Роб П.
@glampert: Процедурное программирование не изменилось после появления Паскаля. Более того, Pascal был разработан как учебный язык, поэтому он не имеет много хаков, которые могут быть полезны на практике, но сильно отвлекают при изучении новых вещей. Так что Паскаль актуален в том, что касается обучения императивному программированию. Конечно, можно научить другим парадигмам, таким как объектно-ориентированная, функциональная, логика: тогда вам придется искать другие языки, например, Python, Java, Haskell, Scheme, Prolog, ...
Джорджио

Ответы:

34

Математика и программирование - это совершенно разные вещи. Математика - это наука, программирование - это техника. В академическом мире программирование - это то, что вы должны знать, чтобы иметь дело с реальными вещами, которые на самом деле интересны и важны - с алгоритмами.

Кому интересно, если компилятор древний и вы используете systemвызовы? Кого волнует, если у вас Linux, а не Windows? Ну, профессора нет, это точно. И они не должны, на самом деле. Не надейтесь стать профессиональным программистом на курсах в академическом учреждении. Это не то, что вы идете туда.

Это правда, что компилятор, который он ожидает от вас, является древним, а предположение об ОС анахронично и проблематично. Вы можете поднять это, и, возможно, это будет иметь дело. Но не потому, что курс несовместим с отраслью, а потому, что он вызывает непосредственные трудности для студентов. Найдите этот старый компилятор и запустите его на вашем MacBook ...

В целом, академические исследования не должны быть потрачены впустую на изучение C ++ и Android, вы должны изучать реальные знания информатики там. У тебя не будет другого шанса для этого. Android? Скачайте Eclipse с ADT и начните работать над ним дома, как я. Мне не нужна школа для этого.

Я думаю, что не стоит ожидать развития техники от университетов. Особенно в исследовательских университетах. Можно сказать, что место, которое предлагает только бакалавров, должно быть более ориентированным на отрасль, а исследовательские университеты - нужны исследователи. Профессора ищут перспективных аспирантов и кандидатов наук, а не отличных программистов. Поэтому я думаю, что вы должны установить свой уровень ожиданий соответственно.

littleadv
источник
3
У меня есть одна проблема с вашим ответом: «В общем, академические исследования не должны быть потрачены впустую на изучение C ++ и Android, вы должны изучать реальные знания информатики там». - Не зная хотя бы основы одного языка программирования, материал CS не имеет смысла, и его слишком легко применить неправильным образом.
Изката
4
@Martin и izkata - программирование под DOS на C ++ с использованием компилятора прошлого века не означает, что вы не знаете программирование. Это просто означает, что вы используете устаревшие инструменты - но если вам нужно реализовать деревья RB - кого это волнует? Это устарело для индустрии, но программы работают и делают то, что должны делать - этого достаточно.
littleadv
3
@littleadv - ОП пишет: «Судя по тому, что я прочитал, это кажется древним» что говорит мне о том, что он должен был искать в другом месте, кроме соответствующих раздаточных материалов, чтобы выяснить, что это устарело и непереносимо. Конечно, многие, если не все компиляторы имеют дополнительные нестандартные библиотеки, но если вас обучают тем, кто не говорит, что они нестандартны, я думаю, что это плохо - и это считается как новым, так и старым, и даже C ++ 11 вещей, так как на данный момент C ++ 03 является самым последним широко и полностью поддерживаемым стандартом.
Steve314
3
@littleadv - Ну, может, тогда нам придется согласиться не соглашаться. Хотя я бы подумал, что ученый-компьютерщик должен быть педантом в деталях, и те несколько секунд, которые требуются, чтобы указать, что что-то нестандартное, согласуются с этим и ни в коем случае не являются большими трудностями. Как бы вы себя чувствовали, если бы профессор CS использовал свои собственные специальные записи, смешанные с математикой, и не указал на это? Это, в конце концов, еще один аспект той же проблемы - могут ли другие компьютерные ученые понять вас. Код читают как люди, так и компиляторы.
Steve314
4
@littleadv - я никогда не утверждал, что OP сказали, что conio.h является стандартным - я предположил, что ему, возможно, не сказали, что он нестандартный, и даже тогда сказал: «Если они прояснят, какие непереносимые уловки, это, вероятно, OK.". То, как меня учили даже элементарным наукам, заключается в том, что вы используете стандартные термины или, если вы должны использовать нестандартные термины, вы определяете, что они означают. На моих школьных уроках естествознания даже использование сантиметров противоречило правилам - это не единицы СИ. Мне кажется, что использование нестандартных библиотек ничем не отличается. Значение кода в информатике должно быть однозначным.
Steve314
19

Информатика - это программирование, а физика - столярное дело.

Если вы хотите стать плотником, изучение физики не поможет этому. Он научит вас многим интересным вещам, которые вы, возможно, сможете применить к своей работе, но не научит, как стать хорошим плотником. Для этого вам придется освоить ремесло столярного дела.

Точно так же, если вы хотите стать хорошим программистом, вам придется научиться ремеслу программирования . К сожалению, не существует учреждения, которое бы выдавало какие-либо сертификаты. Так что, по сути, это то, что вам придется делать самостоятельно, с любой помощью, которую вы сможете найти. Для вас это означает повторение и размышление. Напишите много кода, а затем вернитесь, чтобы посмотреть на него. Также найдите время, чтобы прочитать чужой код. Рассмотрите возможность участия в проектах с открытым исходным кодом.

Университеты не очень заботятся о программировании и тем более о деталях, которые изменятся в течение следующих нескольких лет. Что вы видите в своей школе, так это то, что они выбрали некоторую среду программирования (плохую, но это не так важно) и теперь показывают ее вам, чтобы у них была справочная система, в которой они могут научить вас различным методам программирования. Можно утверждать, что система отсчета плохая и что даже язык - странный выбор. С их точки зрения это, вероятно, не имеет значения, потому что оно выбрано совершенно произвольно.

back2dos
источник
2
Как насчет физики для техники? Программисты должны понимать принципы CS, чтобы применять их при разработке программ, в соответствии с которыми инженер должен понимать физику при проектировании зданий, самолетов и химических процессов.
Джей Элстон
3
@JayElston: Физика - это инженерия, компьютерная наука - разработка программного обеспечения, которая включает в себя анализ, проектирование, планирование, реализацию, контроль качества и т. Д. Само программирование - это больше искусство получения материала для выполнения того, что вы хотите, в то время как разработка начинается с выяснения того, что вы на самом деле хотите сделать.
back2dos
Мне по-прежнему нравится одна из цитат моих профессоров: «Инженерия - это искусство применения науки для решения проблем».
Крис О
1
@ Крис: Возможно, наука - это искусство создавать новые проблемы.
JasonTrue
@JasonTrue: Ну, можно утверждать, что наука - это искусство создавать лучшие проблемы;)
back2dos
9

Нет ничего плохого в изучении стиля DOS. Я уверен, что многие из старожилов здесь начинали с DOS, или даже с более ранними операционными системами, написанием линейных программ, и настроились очень хорошо. Компьютерный мир меняется так быстро, что я не буду зацикливаться на таких особенностях, как, например, какая библиотека использовалась для чего.

На самом деле, я подозреваю, что причина, по которой у нас есть мир, полный программистов, которые могут рассказать вам, что такое внедрение зависимостей , но изо всех сил пытающихся ответить на FizzBuzz , заключается в том, что многие программисты не проводят много времени на этом самом базовом уровне.

Похоже, что это введение в программирование, поэтому, по сути, не беспокойтесь об этом. Изучите основы, и у вас все получится. Если вы заинтересованы в других платформах, изучите их самостоятельно. Это отличная вещь о программировании.

GrandmasterB
источник
5

Как вы можете справиться с этим? Скачайте электронные книги по программированию или потоковое видео, попробуйте примеры самостоятельно. Не зависит от ваших профессоров. Программирование высоко изучено самостоятельно.

ЛЕМУЭЛЬ АДАНЕ
источник
1
Программирование похоже на игру на пианино. Вам нужен мастер, чтобы научить вас, как делать вещи, и много практики, чтобы делать их хорошо. Я полагаю, что всемирно известных пианистов autodidact очень мало.
7
Какая странная аналогия, конечно, есть много высококвалифицированных программистов-автодидактов.
ocodo
@Slomojo Правда, и я встретил несколько из них. Они странная порода, отлично знают то, что знают. Трудность заключается в широте проблем, с которыми они сталкиваются. Иногда проблема имеет гораздо более короткий путь к решению, когда вы знаете какой-то уголок компьютерной науки, и, тем не менее, эти талантливые люди, как правило, продолжают прибегать к ней единственным известным им способом, который в конечном итоге выглядит как грубая сила. Например, проблема, которую было «трудно решить» для самоучки, была решена DFA за два дня с тестированием (в TCL / TK для загрузки!). Две недели спустя, они все еще не поняли это, с объяснениями.
Эдвин Бак
4

Во многих университетах есть профессора программирования. Я учился в одной из лучших аспирантур в моей стране и научился приседать в программировании. Я думаю, что большинство юниоров таковы, потому что действительно хорошие программисты выбирают более высокооплачиваемую работу (а не преподавание). Вам следует заняться небольшим проектом и попытаться написать его самостоятельно. Вы можете получить советы от многих форумов, таких как этот. Это может быть лучшим способом обучения в долгосрочной перспективе.

Ян С
источник
Хороший совет, конечно, я полностью согласен. Это просто диплом ... :)
Toerndev
@gaidal: Да! это то, что я получил в аспирантуре - название бренда: P (хотя я надеялся на гораздо большее, когда присоединился)
Jan S
2
Университет - это не обучение программированию, а изучение концепций языков программирования и, в целом, компьютерных наук. Когда я должен был сделать свой проект для операционных систем в университете, мне сказали: он будет на C, книга в библиотеке, иди за книгой и изучай ее. Программирование - это практика, и задача университета не в том, чтобы научить вас этому.
Джорджио
1
О более высокооплачиваемой работе это правда. Мой друг, который преподает в университете, однажды пожаловался: «Мы учим их программированию, и тогда они зарабатывают больше, чем мы, должно быть наоборот!»
Джорджио
3

Я думаю, что университет должен преподавать абстрактные понятия языков программирования, алгоритмов и т. Д. И не должен быть тем местом, где вы изучаете программирование: программирование - это очень практическое занятие, и вы можете изучать его только на практике.

Во время учебы я изучил основы программирования на Pascal, затем у меня был один проект на C (мы должны были изучать язык самостоятельно), а затем у меня был курс по понятиям языка программирования (процедурный, объектно-ориентированный, функциональный, логический). , Фольклором было то, что в MSDOS у вас есть conio.h или далеко указатели, которых нет в системе UNIX. Это было то, что мы, студенты, обсуждали за пивом, это не было тем, что вы обсуждали на уроках, потому что это было не так важно. Преподавание в университете фокусируется на абстрактных, общих знаниях и избегает углубления в детали: примеры и детали представлены только для иллюстрации общих вещей.

Пример, который вы привели в отношении ASCII против Unicode и библиотеки MSDOS conio.h, означает, что в каждой среде программирования есть свой особый способ выполнения и организации чего-либо. Если вы программируете на C ++ в Visual Studio, вам придется использовать другие библиотеки, некоторые из которых не найдены, например, в Linux. Поэтому, если бы курс проходил в Windows 7 / Visual Studio, некоторые люди могли бы жаловаться, что было бы лучше сделать это в Linux / GCC. Но, IMO, это не главное.

Итак, я думаю, вы должны постараться не отвлекаться на детали и сосредоточиться на общих понятиях, которые рассматриваются в курсе. Например, что в большинстве языков программирования вам потребуется некоторая библиотека для реализации консольного ввода-вывода и что, учитывая среду программирования, вам придется решать свою проблему с помощью имеющихся у вас инструментов. Может быть, это звучит для вас совершенно очевидно, и у вас создается впечатление, что вы на самом деле не изучаете что-то, потому что у вас уже есть некоторые предварительные знания (это может случиться), но у меня не сложилось впечатление, что вы посещаете плохой курс.

Джорджио
источник
Спасибо, я буду иметь в виду, что вы не думаете, что достаточно сказать, что это плохой курс. С другой стороны, я не имел в виду, что это должно быть в Linux, просто он мог бы попытаться проинформировать студентов о различиях и о наличии стандарта.
Toerndev
Я согласен с вами, что было бы неплохо сообщить о других системах. Это также зависит от опыта учителя: им может быть неудобно говорить об окружающей среде, с которой они не знакомы. Например, я дома с Windows и Linux, но я бы избегал MacOS, потому что, даже если это может быть очень крутая ОС, я никогда не использовал ее. Возможно, вы могли бы попытаться спросить, могут ли они дать краткое сравнение между различными средами C ++: всего несколько примеров, чтобы понять, что может отличаться, а что остается неизменным. Например, вы можете поиграть с sizeof на MSDOS и Linux.
Джорджио
2

Университеты дают основания. Как только он станет сильным, вы сможете строить небоскребы на его основе. Я изучал основы, C и C ++ во время учебы в колледже. Позже, когда я делал проект в Visual C ++, я полагал, что это совершенно другой мир. Позже я понял разницу между фреймворком и языками.

Выберите правильный университет, где они дают целенаправленное развитие вашей области вычислительной техники. Который может помочь вам позже в вашей карьере.

Сарат
источник
2

Полные распечатки на system("");самом деле - чертовски хорошая вещь! Я шокирован, что люди ничего не знают об этих функциях в настоящее время.

system("pause")и вы избавляетесь от всех ошибок функций getX. system("cls"), и вы только что сохранили одну страницу кода. system("mkdir foo")и вы только что сохранили 2 страницы размещения буферов, разделения пути, _makepath_ss, 256 путей, тонны выходов ошибок и так далее.

Более того, код настолько прост, что обезьяна это поймет.

 if(!system("mkdir foo"))
     //booo and exit`

Школа полиморфных извращений - это то, что должно быть запрещено законом.

PS: Более того, при всем моем уважении, я с трудом признаю, что людей учат С ++ с исключениями и виртуализируют все как ХОРОШУЮ вещь, потому что в нем больше ловушек и мин, чем вы можете себе представить, и даже Бьярн Страуструп проповедует исключения как что-то супер легкое и безопасное, в то время как на самом деле это ядерная мина.

Смотрите анализ о Misra-C ++ и JSF-C ++. И http://blogs.msdn.com/b/oldnewthing/archive/2005/01/14/352949.aspx . Мне лень найти все оставшиеся статьи сегодня.

При всем этом я являюсь разработчиком на С ++, и мне очень нравится множество функций и языка в целом.

кодировщик
источник
1
Не уверен, что согласился бы с тем, что неявное поощрение неопытных разработчиков прыгать прямо в систему без реального представления о проблемах - хорошая идея ...
deworde
@deworde: Это то же самое, что вы пишете в консоли, я не думаю, что вы можете сделать вещи менее подверженными ошибкам и безопасным.
кодер
Да, но когда вы пишете это в консоли, вы знаете (например), где вы находитесь, с кем вы работаете, с какой машиной вы работаете, и, самое главное, ПОЧЕМУ ВЫ ЭТО ДЕЛАЕТЕ. Программа не обязательно знает об этих вещах, и кто-то, кто запускает исполняемый файл, не узнает, что он должен проверить их перед запуском.
Дьюорд
@deworde: Не совсем так, команда EraseFile будет по-прежнему наследовать разрешения процесса, поэтому одинаково легко испортить любую из этих команд.
Кодер
1

Мое предложение может звучать там, но выслушать меня ... Переключить специальности.

По моему опыту в академической сфере, специальность «Компьютерные науки» была очень низкоуровневой, чтобы понять, что заставляет компьютеры работать. Вы начали с базового учебника по C ++, чтобы убедиться, что знаете, что такое программа, а также основы памяти и вычислений, лежащих в основе этой программы, а затем вы изучили сборку, концепции ОС, электротехнику, цифровой дизайн и т. Д. И т. Д. эту степень и ищите для работы с NVidia или AMD, или Lockheed; где-то, где они производят новое оборудование, которому нужен кто-то, кто может понять это оборудование на достаточно низком уровне, чтобы писать драйверы и управлять программным обеспечением.

Похоже, что вы хотите, это курс обучения, который в моем университете назывался Управление информационными системами. Это курс, которым я следовал; Он научил программированию на Java, VB.NET, C #, а также немного PHP и других веб-сценариев. Это также требовало исчисления (но не в такой степени, как CS), бухгалтерского учета, финансов, статистики, бизнес-коммуникаций, OO A & D, проектирования баз данных и системного анализа. Я получил BBA вместо BS, и у меня были основные инструменты, чтобы начать работать в качестве разработчика программного обеспечения для Windows или Web.

То, к чему вас готовит специальность «Информатика», во многом зависит от того, какой университет его предлагает. Похоже, вы на раннем пути, чтобы получить очень анахроничный, низкоуровневый взгляд на компьютеры, которые не похожи на то, что вы ищете из своего образования. Я призываю вас осмотреться в университете и найти учебный курс, в котором больше внимания уделяется типу компьютерной работы, которую вы захотите освоить после школы.

Неважно, что ваш курс обучения начнется с самого базового написания программы на уровне консоли. Язык не имеет значения; то, чему вас учат, - это базовое процедурное программирование; как думать достаточно маленькими шагами, чтобы компьютер мог следовать за вами от шага к шагу (потому что компьютер ничего не воспринимает как должное и не может выполнить большинство человеческих прыжков в логике). Оттуда вы перейдете к объектно-ориентированному программированию (вместо одной длинной функции, которая делает все, гораздо удобнее поддерживать несколько меньших «объектов» кода, которые представляют состояние и логику объектов реального мира), затем программирование, управляемое событиями («Не звоните нам, мы вам позвоним»; ваша программа в основном запускается, говорит ОС настроить исходный графический интерфейс пользователя,

Keiths
источник
Спасибо, да, я рассмотрю это. Если я чувствую, что все идет не в том направлении, я могу измениться позже, базовые курсы должны быть совместимы между вселенными.
Toerndev
Осторожнее с этим предположением; Я сменил специализацию с CS на MIS, и ни одна математика, которую я уже принял, не была переведена, потому что в бизнес-школе был совершенно отдельный математический трек. Английский язык, науки, гуманитарные науки, да что переведено.
KeithS
1

Курсы информатики не научат вас программированию. Это прогулка в парке по сравнению с некоторыми из программ, которые я делал на моем курсе CS.

По моему опыту, основная проблема заключается в том, что практически нигде не научит вас программированию на эквивалентном уровне, поэтому у вас нет выбора.

DeadMG
источник
0

Я думаю, что может быть некоторая путаница в том, что и почему вы изучаете.

Похоже, что вы изучаете вводную программу информатики. Он предназначен для людей с минимальным опытом, которые изучают основы работы компьютеров на низком уровне.

Также кажется, что вы полусерьезный или профессиональный программист. Вы программируете в течение 10 лет и владеете 3 языками. Похоже, вы знаете, что делаете, по крайней мере, достаточно, чтобы работать в команде. Вы чувствуете себя неуместно в этом курсе? У других студентов такой же уровень опыта или навыков, как у вас?

Что вы собираетесь выбраться из этого курса?

Вы только после этого «клочка бумаги»? Если это так, не переставайте пытаться устроиться на работу во время учебы. Подайте заявку на работу, скажите им, что вы компетентный программист, и вы учитесь, потому что вам нужен лист бумаги, чтобы получить работу. Если вас нанимают, подумайте о том, чтобы уволиться - если у вас есть профессиональная работа, вам больше не нужен этот листок бумаги. Принять более низкую, чем обычно, заработную плату, потому что лучше учиться (на работе), чем платить за учебу учебу в школе - и вы тоже учитесь быстрее. Через год или два вы будете в основном в курсе, а затем вы можете попросить о достойном повышении заработной платы, или вы можете найти себе другую работу, потому что у вас будет опыт.

Или вы пытаетесь чему-то научиться?Тогда перестань судить своего профессора. Как незабываемый учитель старшей школы, который обычно говорил: «Сядь и заткнись». Почти гарантировано, что у профессора неизмеримо больше опыта и знаний, чем у вас, и вы могли бы многому научиться у него. Если он идет слишком медленно для вас, постарайтесь получить кредит на эти вводные курсы, основываясь на вашем предыдущем обучении и опыте.

Но вы в правильном направлении? Вы также могли бы многому научиться у профессора литературы или профессора истории ... не особенно актуально. Возможно, вы не хотите «информатику», а вместо этого хотите получить более практические навыки «реального мира». Попробуйте «программную инженерию». Посмотрите на другие учреждения для более целенаправленного курса.

Точно так же, как когда вы начинаете новую работу, урок или курс обучения могут быть очень трудными для обзора извне. Вы, кажется, находитесь в курсе, который не дает вам то, что вы ожидаете. Пересмотрите ваши варианты.

Кирк Бродхерст
источник
Спасибо, я подумал об этом и думаю, что вы очень правы в отношении этих двух вариантов. Первое более верно для меня, и я буду искать работу в ожидании, чтобы узнать, станут ли курсы более интересными. Это является на самом деле программное обеспечение , инженерное образование, что я выбрал более информатику , так как я хочу , чтобы получить до скорости быстрее и учиться через работу. Возможно, это объясняет, почему я ожидал немного больше «навыков реального мира». :)
Toerndev
Несколько замечаний из прошлого моего университета: я изучал курс, в котором у нас было «программирование 101» в расписании, эта часть была мне досадно скучна. Но другие курсы были интересны (физика, механика, ...), поэтому, даже если лекция скучна, это может не относиться ко всей программе и к другим частям, возможно, стоит пережить боль. Но я бросил. Тем временем я узнал, что иногда эта статья была бы полезна, даже если она не означает, что я буду лучше работать (у меня хорошая работа, хорошая зарплата, ... так что это неплохо ;-))
Йоханнес
0

Я думал, что многие ответы на этот вопрос были разочаровывающими. Они вернулись к усталому старому спору о CS против программирования и т. Д. Это может быть так, но мне кажется, что курс, на котором работает OP, тоже не учит.

Я был в ситуации, когда я уже работал программистом и учился сам, прежде чем учиться на полставки в колледже. Я осторожно ходил по магазинам, но обычно считал, что учебная программа - пустая трата времени. Также они не позволили бы мне пропустить курсы, несмотря на то, что у меня уже есть профессиональный опыт в этой области.

По моему опыту, значительная часть профессоров довольно ленивы и используют устаревшие учебные программы. Честно говоря, звучит так, как будто ты тратишь время впустую. Я даже сомневаюсь, поможет ли получение диплома найти работу.

Я сомневаюсь, что вы можете многое сделать для изменения курса. Вы можете дополнить его учебой самостоятельно. Или просто забудьте все это, и изучите CS самостоятельно, а также сделайте несколько отраслевых сертификатов.

Я должен добавить, что понятия не имею о ценности диплома на рынке труда вашей страны. Если диплом сам по себе является ценным, несмотря на его содержание, вам, возможно, придется смириться с учебной программой, которая в некоторой степени отсутствует.

Antonio2011a
источник
Не видел этого раньше. Я рад, что кто-то сказал точно, что я чувствовал по поводу некоторых ответов (ваш первый абзац)! Да, преподавание бесполезно, я больше не посещаю занятия, а просто включаю программы, которые мне нужно написать. Я делаю это по-своему (что обычно довольно плохо, переходя с CL на C ++), сталкиваюсь со многими вещами, не входящими в учебную программу, и спрашиваю совета у друзей программиста, а не у профессора. Таким образом, это действительно забавно. Все еще надеюсь, что смогу найти работу до окончания учебы.
Toerndev
0

Они должны обслуживать студентов. Большинство студентов не могут программировать. Таким образом, они не вынуждены идти туда технически.

У них тоже есть свои специализированные области исследований, но они этому не учат. В любом случае, многие исследователи не являются хорошими учителями, так что вы можете считать себя счастливчиком, если они преподают то, что вы уже знаете!

Во всяком случае, вы, кажется, не знаете, что такое информатика. Дело не в том, что практично для промышленности.

barlop
источник
-6

Я хотел бы попросить (а затем настаивать), чтобы вернуть ваши назначения в стандарте C ++. Это вполне разумно, так как вы не можете выполнить задания в противном случае.

Что касается плохого стиля; с самого начала неизбежно будет что-то из этого. Чтобы правильно использовать стандартную библиотеку io, требуется немало продвинутых функций c ++, в частности шаблоны и итераторы. Я понимаю, почему лектор заставляет вас использовать очень простые функции io для начала. Я не побоялся бы спросить об этом, хотя, это показывает энтузиазм и немного света в ваших глазах. Ваш лектор должен быть в состоянии включить ваш вопрос в будущую лекцию, где вы (надеюсь) исправите свои ранние упражнения.

Я бы оставил все как есть. Хотя c ++ может быть независимым от платформы языком, часто это не так. Изучение некоторых системных функций Windows не является плохой вещью, особенно если вы научитесь делать это по стандарту. В какой-то момент вы столкнетесь conio.hпри взгляде на код других людей - и хорошо знать, что он делает.

Том
источник
10
нет, вам даны инструменты для выполнения работы, и ваша работа - использовать эти инструменты. Если у вас есть работа, где у вас есть только 15-летний XT с CP / M, требующий, чтобы они приняли ваш 64-битный код Windows 7, тоже не сработал, лучше всего привыкнуть к этому как можно раньше.
jwenting
2
@Ramhound Университет должен сделать возможным прохождение курса без необходимости покупать дорогостоящее оборудование (например, операционную систему Windows). Это наносит ущерб.
Том
3
@ Tom, если бы я преподавал Photoshop, я бы ожидал, что вы купите Photoshop (что очень дорого), и я бы ожидал, что вы купите дорогие учебники, я не вижу, в чем это отличие. И я держу пари, что в кампусе есть много компьютеров, которые он мог бы использовать для этой задачи, не покупая Windows (что, честно говоря, любой, кто изучает CS, наверняка должен иметь и то и другое, никогда не знаешь, где вы окажетесь, люди, программирующие в стеке Microsoft продуктов не склонны использовать Linux.)
HLGEM
3
@Ramhound Даже если профессор прямо не сказал, почему он использует упрощенные процедуры ввода-вывода на основе DOS, мы, вероятно, можем сделать правильное предположение. Как упоминал Том, подпрограммы ввода-вывода C ++ относительно сложны, поэтому скрытие подробностей не является необоснованным на вводном курсе. Решение использовать библиотеку, основанную на Windows, вместо библиотеки на * nix почти наверняка сводится к предположению, что большинство студентов используют Windows, а не * nix, и что больше пользователей Windows будут испытывать трудности с началом работы с * nix, чем наоборот.
Дэн Нили
5
@gaidal - правила существуют по причине. Если вы где-то начнете работать и решите, что вместо проприетарной библиотеки вы будете использовать стандарт, потому что «у стандартов есть причина» - вы действительно быстро станете безработным. Используйте этот курс как упражнение по соблюдению стандартов кодирования. Ты не будешь любить их всегда.
littleadv