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

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

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

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

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

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


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

19 голосов | спросил Toerndev 3 42011vEurope/Moscow11bEurope/MoscowThu, 03 Nov 2011 12:47:41 +0400 2011, 12:47:41

13 ответов


33

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

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

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

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

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

ответил littleadv 3 42011vEurope/Moscow11bEurope/MoscowThu, 03 Nov 2011 13:11:03 +0400 2011, 13:11:03
19

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

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

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

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

ответил back2dos 3 42011vEurope/Moscow11bEurope/MoscowThu, 03 Nov 2011 13:44:37 +0400 2011, 13:44:37
9

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

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

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

ответил GrandmasterB 3 42011vEurope/Moscow11bEurope/MoscowThu, 03 Nov 2011 22:30:26 +0400 2011, 22:30:26
5

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

ответил LEM Adane 3 42011vEurope/Moscow11bEurope/MoscowThu, 03 Nov 2011 14:48:05 +0400 2011, 14:48:05
4

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

ответил Jan S 3 42011vEurope/Moscow11bEurope/MoscowThu, 03 Nov 2011 13:11:31 +0400 2011, 13:11:31
2

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

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

ответил sarat 3 42011vEurope/Moscow11bEurope/MoscowThu, 03 Nov 2011 13:04:27 +0400 2011, 13:04:27
2

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

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

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

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

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

PS: Кроме того, при всем моем уважении, я с трудом принимаю, что люди учат C ++ исключениями и виртуальными во всем, как ХОРОШЕЕ, потому что у него больше боев и наземных мин, чем вы можете себе представить, и даже Bjarne Stroustrup евангелизирует исключения как нечто сверхлегкое и безопасное, в то время как на самом деле они являются ядерными минами.

См. анализ Misra-C ++ и JSF-C ++. И http://blogs.msdn.com/b/oldnewthing /Архив /2005/01/14 /352949.aspx . Я слишком ленив, чтобы найти все оставшиеся статьи сегодня.

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

ответил Coder 3 42011vEurope/Moscow11bEurope/MoscowThu, 03 Nov 2011 23:29:57 +0400 2011, 23:29:57
1

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

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

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

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

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

ответил KeithS 3 42011vEurope/Moscow11bEurope/MoscowThu, 03 Nov 2011 18:05:19 +0400 2011, 18:05:19
1

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

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

ответил DeadMG 4 52011vEurope/Moscow11bEurope/MoscowFri, 04 Nov 2011 00:00:08 +0400 2011, 00:00:08
0

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

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

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

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

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

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

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

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

ответил Kirk Broadhurst 7 12011vEurope/Moscow11bEurope/MoscowMon, 07 Nov 2011 03:38:03 +0400 2011, 03:38:03
0

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

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

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

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

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

ответил Antonio2011a 7 12011vEurope/Moscow11bEurope/MoscowMon, 07 Nov 2011 04:33:56 +0400 2011, 04:33:56
0

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

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

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

ответил barlop 18 52011vEurope/Moscow11bEurope/MoscowFri, 18 Nov 2011 06:35:09 +0400 2011, 06:35:09
-6

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

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

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

ответил Tom 3 42011vEurope/Moscow11bEurope/MoscowThu, 03 Nov 2011 13:13:51 +0400 2011, 13:13:51

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132