Почему они не учат этому в школе? [закрыто]

Тест для подключения к Интернету путем проверки Google:

new Ping().Send("www.google.com.mx").Status == IPStatus.Success
119
задан 2 revs, 2 users 100% 9 December 2011 в 18:34
поделиться

31 ответ

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

, Например, несмотря на недавние продвижения в материаловедении, инженеры-строители знали в течение приблизительно 2 000 лет, как создать дугу, которая не упадет, и это - что-то, что может преподаваться и изучаться в университете с относительно небольшим противоречием. Хотя я полностью согласен с Вами о методах, что разработчики программного обеспечения должны учиться, это соглашение основано на личном опыте и неофициальном обосновании. Чтобы быть социально принятой "лучшей практикой", нам нужны количественные данные, которые могут быть очень дорогими для сбора: какому количеству помогает управление версиями? Как это помогает? Поблочное тестирование? Мы можем рассуждать об эффективности различных методов, но на самом деле доказывая, что эффективность окончательно была бы очень дорогой. Мы должны были бы выполнить полный, реалистический проект программного обеспечения с начала до конца, многочисленные времена, с группами программистов, которые имеют эквивалентные экспертные знания, с помощью различных методов. По крайней мере нам было бы нужно много данных о существующих проектах, которые те проекты будут не желать выпустить.

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

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

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

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

187
ответ дан 2 revs 9 December 2011 в 18:34
поделиться
  • 1
    Я думаю, что это - правильный ответ. InteractiveConsole позволит Вам определять переменные в своем локальном пространстве имен путем передачи словаря тех переменных. я = InteractiveConsole (locals=locals ()) – freakTheMighty 8 June 2011 в 16:24

Все три вещи, которые Вы упоминаете (поблочное тестирование, управление версиями, гибкая разработка) преподаются до некоторой степени в Вычислительной Научной программе Университета Гронингена. Является ли это хорошей вещью, я уеду как нерешенный вопрос; но это не верно, что никакие университеты не преподают Вам "практический материал".

1
ответ дан Thomas 9 December 2011 в 18:34
поделиться
  • 1
    Это работает в IE6. (но Вы не должны поддерживать ничего, что Вы не в состоянии протестировать), – Lee Kowalkowski 3 November 2011 в 19:53

Они базируются от моих ограниченных событий в программе CS, прежде чем я переключил крупные фирмы и мой опыт как интерн в крупной компании-разработчике программного обеспечения. Поблочное тестирование не преподается, потому что большинство программ, которые необходимо создать arn't достаточно большой для необходимости в автоматизированном тестировании, гарантированный определенный набор исходных данных так, может протестировать все вручную. Обучение Вас, как автоматизировать тестирование, может также межбояться с классификацией Вашего проекта, так как большинство проектов градуируется со сценариями, которые запускают автоматизированные тесты с быстрым взглядом на код, чтобы удостовериться, что у Вас нет интервала foo1; интервал foo2; и Вы используете надлежащее добавление отступа.

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

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

1
ответ дан Jared 9 December 2011 в 18:34
поделиться

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

Это только из-за людей как Titus, что мы получаем любых академиков, которые истинно grok программирующий - Read его комментарии, что тема здесь

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

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

1
ответ дан Jerub 9 December 2011 в 18:34
поделиться
  • 1
    Есть ли любые приемы, которые могут связать с элементом это doesn' t имеют идентификатор? – Rich 27 January 2014 в 23:44

Я думаю, что это зависит от того, какая программа Информатики, которая Вы там, является теми, которые нацеливаются к стороне Исследования и Науки и существуют что механизм к стороне Реализации. Я особенно уменьшился против определенных школ, которые только имели преподавателей, которые остались в академическом мире. Если у Вас нет преподавателей, которые "не использовали" то, что они преподают, все в их голове, буквально.

Разъем: Имея взятие БАКАЛАВРА НАУК по Науке Аккомпанемента и MS в Мягком Инженере в Университете Депол, мне главным образом преподавали преподаватели/преподаватели, которые преподавали неполный рабочий день, который меня устроил, потому что я скорее сделаю, чтобы они вошли с историей с предыдущего дня и связали ее с классом. Также, так как этот главным образом школа пассажира из пригорода/неполного рабочего дня, у большинства студентов есть задания в использовании, что они изучают.

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

Во время моего поблочного тестирования обучения всегда присутствовал. Даже при том, что они начинают Вас на Java, они заставили нас использовать МУРАВЬЯ и JUnit для всего проекта. Который был хорошим запуском на конфигурации сборки и поблочным тестированием.

И Экстремальное Программирование был включен приблизительно в 3 или 4 из уроков, которые я посещал. Я помню, что они все начали с этими 12 различными аспектами от программирования пары до поблочного тестирования (см. выше). И теперь кажется, что фокус идет Гибкий.

, Таким образом, быстрый ответ - да существуют школы там, которые имеют более прагматический подход затем другие.

1
ответ дан Glennular 9 December 2011 в 18:34
поделиться
  • 1
    BTW... выходит щелчком правой кнопкой, сохраняют, поскольку HTML не стало теперь;). Не стесняйтесь тестировать его. – Paweł Jarosz 7 September 2012 в 04:18

Главная причина состоит в том что многие (большинство?) университеты считает, что имеют другую цель, чем профессионально-техническое училище. По сути, они хотят учить студентов , как учиться , и основные принципы дисциплины. Кроме того, алгоритмы и структуры данных будут относиться к любому языку программирования и не зависят от определенных инструментов (который может или не может все еще использоваться церемонией вручения дипломов).

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

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

1
ответ дан 2 revs 9 December 2011 в 18:34
поделиться
  • 1
    Это к основному, я добавил некоторый код выше для показа то, что я хочу. – Mathias 4 May 2010 в 02:29

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

1
ответ дан Bullines 9 December 2011 в 18:34
поделиться
  • 1
    Я соглашаюсь. Вы могли добавить что-то об этом к Вашему ответу? Q явно вызывает " я не author" но лучший ответ (Ваш) doesn' t обращаются, что сделать, если нет ни один " name" ни " id" атрибуты. – Rich 28 January 2014 в 23:45

Для ответа, почему этими вещами не являются первые преподававшие вещи: Студенческие программы обычно обучают Вас становиться студентом Masters. Только, после того как Вы начинаете выбирать свои собственные курсы (который обычно происходит в более поздних годах), может Вы принимать решение узнать о вещах, используемых за пределами академии. Поэтому они фокусируются на алгоритмах, структурах данных, даря Вам нерешенные проблемы, и т.д.

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

2
ответ дан Swati 9 December 2011 в 18:34
поделиться
  • 1
    Кроме того, как только я понял Ваши примеры, стало ясно, что реальная трудность являлась результатом базового плохого дизайна моего кода. После лучше отделяющиеся проблемы с классом адаптера для работы ftp путь, который Вы разметили, был ясен. Еще раз спасибо! – rdlowrey 1 December 2011 в 06:46

о, Боже не получайте меня, запустился

, у меня когда-то был декан cs в уважаемом университете, говорят мне, что объектно-ориентированное программирование было просто 'популярным товаром', таким образом, они не предложили классов, мимоходом полагает как C++

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

11
ответ дан Steven A. Lowe 9 December 2011 в 18:34
поделиться
  • 1
    Спасибо - это конкретно, что я искал. Я в основном хотел знать, как протестировать тот мой код, делает правильную вещь, когда операция ftp перестала работать или успешно выполняется, не, который операция ftp приводит к сбою или следует самостоятельно. – rdlowrey 30 November 2011 в 09:23

Это зависит от университета. Я получил высшее образование в 2003 от австралийского unviersity. В то время мы изучили UML, Поблочное тестирование, XP (и другие Гибкие Методологии), наряду со всем формальным материалом как Z, Алгоритмы и Структуры данных, Операционные системы, и т.д.

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

Насколько управление версиями затронуто, мы использовали его (CVS) в наших проектах программирования с 2-го года вперед.

я действительно соглашаюсь сильно с тем, что Glyph сказал, также. CS является таким незрелым полем, действительно только вокруг за прошлые 50 лет, что мы не знаем то, что мы должны изучать и что является только передающим популярным товаром. Дайте ему 150 годы, затем вещи могли бы успокаиваться больше. Количество неудавшихся реальных проектов делает это очевидным, что это - незрелая промышленность. Вообразите, перестали ли 80% строительных проектов работать!

6
ответ дан Rob Gray 9 December 2011 в 18:34
поделиться

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

Это - все о выборе правильной школы, по моему скромному мнению. Если Вы пойдете лучшие 10, то Вы изучите все это быстро.

До Образования CS в целом, мы в основном просим, чтобы преподаватели преподавали так (языки каждой разновидности, структур данных, эффективности во время выполнения, как вещи на самом деле работают на разрядном уровне). Я хотел бы поднять вопрос, Почему дети не берут его на себя для получения дополнительной информации о Разработке программного обеспечения?

2
ответ дан Alex Gartrell 9 December 2011 в 18:34
поделиться
  • 1
    Извините за такую длительную задержку ответа. Я согласовываю с Вами в факте это если 64 bit' s не нужный, don' t используют его. Однако, если I' m запускающий Windows 7 Python на 64 бита и на 64 бита, как я могу создать 32-разрядную версию? That' s реальный вопрос здесь. – Adam Lewis 26 April 2012 в 14:44

Я изучил все те, которые в Университете. Возможно, это зависит от курсов, которые Вы выбираете? Мои курсы были очень разнообразны (Разработка программного обеспечения, Дизайн UI, электронная коммерция, AI, Функциональное программирование, и т.д.). Разработка программного обеспечения имела воздействие шаблонам разработки и поблочному тестированию (один крупный проект, который включил различные вещи). Дизайн UI... мы были тремя группами человека, работающими над проектом. Мы ничего не могли сделать без управления версиями, таким образом, мы получили это. И гибкая разработка была чем-то, о чем наши преподаватели непрерывно говорили нам, но они оставили ее до каждой группы для использования ее.

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

2
ответ дан Swati 9 December 2011 в 18:34
поделиться

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

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

3
ответ дан Deeksy 9 December 2011 в 18:34
поделиться
  • 1
    Ожидайте, Вы подразумеваете, что мне нужны к банке мои модульные тесты, гарантирующие, чтобы дважды заключенные в кавычки строки развернули переменные в них? Вы боги!:) – rdlowrey 30 November 2011 в 08:57

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

2
ответ дан Nathan Strong 9 December 2011 в 18:34
поделиться
  • 1
    @AdamLewis, Установка, 32-разрядный Python также, и имеет Ваш сценарий сборки, генерируют оба исполняемых файла. – Ben 26 April 2012 в 18:27

Я преподавал эти вещи, когда я был Дополнением в Орегонском технологическом институте. Им преподают, просто редко.

12
ответ дан Scott Hanselman 9 December 2011 в 18:34
поделиться

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

Управление версиями однако - что-то, что в эти дни непростительно. Это - что-то, что все должны понять, что это - инструмент, который почти так же полезен как компилятор, и CVS был вокруг приблизительно для 20 + годы. Понятия, по крайней мере, должны быть поняты под любым программистом, покидающим университет. К счастью, если Вы делаете какую-либо коллективную работу в университете, можно повезти приземлиться с кем-то, кто уже знает об управлении версиями и убеждает группу использовать его. Я знаю, что я рад, что человек был в моей группе.

Поблочное тестирование также в значительной степени как непростительное. Единственная вещь, которую я сказал бы, состоит в том, что книга все еще отсутствует на разработке через тестирование, и идущий для 100%-го покрытия кода всегда может иногда быть больше проблемы, чем это стоит. Но поблочное тестирование чрезвычайно ценно и должно быть покрыто ходом разработки программного обеспечения. Я предположил бы, что часть этого материала делает, это - путь в некоторые университеты, но просто еще не достигло всех их.

8
ответ дан William 9 December 2011 в 18:34
поделиться
  • 1
    А-ч, да, извините... I' ll должны зафиксировать это. Но я don' t думают you' ре, действительно видя проблему. Да, TwitterService мог объявить localCache значение, но оно не могло сделать его кратким обзором, ни даже сделать, оно защитило (т.е. могло быть частным), таким образом TwitterClient должен будет иметь его собственную ссылку на него, как делает TwitterService. Тьфу... мы могли продолжить и на здесь, но нижняя строка то, что стандарт " Java Injection" понятие оставляет меня желающий большим, большим способом, и самоввод универсален и прост. – Derek Wyatt 11 August 2011 в 03:22

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

5
ответ дан Martin Beckett 9 December 2011 в 18:34
поделиться

Поскольку наши учителя:

  1. Никогда пробуемое поблочное тестирование,
  2. не знают, как использовать управление версиями, и
  3. даже не услышали о "гибкой разработке".

Студенты должны взять дело в свои руки. Мы сделали это и собрались очень хорошо, не так ли?

42
ответ дан mislav 9 December 2011 в 18:34
поделиться
  • 1
    абсолютно ничто - это просто происходит, что согласно стандарту нет никакого " тот же источник policy" для <script> - элементы и что это - способ обойти этот " limitation" (мотивированный безопасностью) XmlHttpRequest. Та же техника использовалась задолго до того, как Ajax произошел - иначе Вы wouldn' t быть в состоянии загрузиться для jQuery от различного хоста как Google на Вашей странице... – Yahia 20 August 2011 в 01:05

Почему не, действительно? Мой опыт, получающий мою степень CS, был в значительной степени тем же. Причина состоит в том, что люди, которые преподают программирование, не программируют, насколько я могу сказать. Это не требуется, чтобы учить, что материал для аккредитации, учителя не знакомы с ним, и студенты никогда не разрабатывают проекты никакого значения как часть их курсовой работы. Нет никакой мотивации для фактического обучения программирования, в противоположность обучающей теории CS или синтаксису Java.

6
ответ дан Allen 9 December 2011 в 18:34
поделиться
  • 1
    Да, that' s верный, но в Вашем примере, Вы только избегаете еще одного полевого присвоения через пирог, чем абстрактными полями. Я думаю, что Вы означали писать ' TwitterService не имеет никакого доступа к val localCache'. если так, с помощью абстрактных полей снова, также объявил бы TwitterService ' val localCache: TwitterLocalCache' которому также было бы нужно присвоение во время инстанцирования. Это мог быть тот же экземпляр как экземпляр TwitterClient или другой в зависимости от того, чего Вы требуете, конечно. – Noel Kennedy 11 August 2011 в 03:14

Самый простой ответ - то, что Вы изучаете информатику и вещи, которые Вы перечислили, действительно не связаны с академическим полем информатики. Разработка программного обеспечения могла бы быть чем-то, что Вы делаете с информатикой, что-то, что полагается на блоки того, что Вы изучили..., но Информатика и разработка программного обеспечения не являются тем же самым.

Классы, которые преподавали Вам управление версиями, или как записать тесты годного изделия..., которые будут учить Вас торговля , а именно, (хорошая) разработка программного обеспечения.

10
ответ дан matt b 9 December 2011 в 18:34
поделиться
  • 1
    I' m не уверенный, как that' s действительно проблема, хотя, если Вы просто перемещаете реализацию краткого обзора к чертам there' s никакие проблемы с цепочкой зависимости. – Chris DaMour 17 December 2013 в 10:50

Leonardo da Vinci записал,

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

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

42
ответ дан Alan 9 December 2011 в 18:34
поделиться
  • 1
    А-ч, позвольте мне быть немного более ясным с тем, что я подразумеваю под ' safe'. браузеры don' t позволяют Вам выполнить междоменный XmlHttpRequests потому что браузер doesn' t рассматривают его как ' safe'. но можно сделать междоменные запросы JSONP, которые позволяют Вам получать междоменный JSON. Что является ' unsafe' о JSON (в целях XSRFs, я предполагаю), который безопасен о JSONP? – snappieT 19 August 2011 в 22:50

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

Университеты склонны склоняться больше на 'научном' конце (алгоритмы, datastrctures, компиляторы, и т.д.), потому что те вещи намного более 'бесконечны', чем текущие промышленные лучшие практики, которые имеют тенденцию развиваться и изменяться из года в год. Управление версиями, например, претерпело удивительные изменения за прошлые 5 или 10 лет, но большой-O является все еще большим-O, и хеширование, B-деревья, и рекурсия все еще так же полезна, как они были 40 лет назад. Их идея состоит в том, чтобы обычно давать Вам достаточно основ, что можно затем взять инструменты как мерзавец и понять то, что это означает, когда Вам говорят, что базовый datastructure является нециклическим ориентированным графом хешей SHA-1, и что разработчики упорно работали для оптимизации количества syscalls так, чтобы это был io-bound.

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

40
ответ дан pjz 9 December 2011 в 18:34
поделиться

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

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

1
ответ дан Dave 9 December 2011 в 18:34
поделиться
  • 1
    I' d нравится связываться с разделом на странице который isn' t под моим управлением и который не имеет ни одного " id" s, ни " name" s. Посмотрите, например, различные разделы в codinghorror.com/blog/2012/07/new-programming-jargon.html я can' t думают, как заставить это работать... – Rich 28 January 2014 в 02:10

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

Гибкую разработку может быть довольно трудно преподавать в академической установке, я думал бы. В то время как я действительно узнавал о методе Водопада в теории, я не добирался для наблюдения его в поле, пока я не получил высшее образование и переместился в реальный мир, который может очень отличаться от академии, например, на 3-м году я делаю все нечетные ошибочные случаи и почти передаю присвоение, где я никогда не трогал сердце того, что присвоение пыталось преподавать мне Семафорам.

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

1
ответ дан JB King 9 December 2011 в 18:34
поделиться
  • 1
    Спасибо за сообщение мне! Я нашел новый снимок экрана, надо надеяться, он может также донести смысл сообщения. – Petr Viktorin 27 March 2012 в 11:11

Я не думаю, что гибкое программирование является популярным товаром, но в то же время мне было бы трудно думать о способе, которым учитель мог дать Вам проекты позволить Вам изучать это.. Если они не дали Вам, проектируют сборку a, проект B подробно останавливаются на a. Проблема время и объем. В 4-месячном курсе это было бы твердо.

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

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

1
ответ дан baash05 9 December 2011 в 18:34
поделиться
  • 1
    Связь снимка экрана разорвана. Также рассмотрите встраивание изображения непосредственно в Вашем тексте ответа вместо соединения. – Macke 26 March 2012 в 18:24

Все это может легко быть покрыто (мелко) в едином классе на методах разработки программного обеспечения. Это не часть большинства программ CS, потому что это не то, о чем CS, хотя я действительно думаю, что некоторое покрытие того материала полезно. Моя школа имела такой класс; это не покрывало управление версией, но это действительно покрыло UML, сбор требований, методологии разработки (различный гибкий и водопад), поблочное тестирование, интеграционное тестирование, и т.д., и потребовало, чтобы мы работали в командах 4-5 для разработки проекта (довольно простой грабеж Подсказки в Java). Если Вы чувствовали потребность в дальнейших классах Разработки программного обеспечения, они были доступны как элективы.

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

Университет предназначен для обучения понятий и теорий, потому что это - вещи, которые трудно взять самостоятельно. Управление версиями является инструментом, и довольно легкий взять. Используйте его немного, прочитайте некоторые учебные руководства в сети, и Вы все установлены. При необходимости в лекциях и присвоениях домашней работы, чтобы выяснить, как проверить что-то из SVN, Вы собираетесь испытать много затруднений с вещами, которые на самом деле ЯВЛЯЮТСЯ трудными.

Помнят, что существует много способов изучить материал в колледже за пределами классов; используйте в своих интересах это. Вы платите много, чтобы посетить классы и использовать средства, так доите его для всего, что это стоит, и перейдите к LUG и встречам ACM, участвуйте в проектных группах (всегда существует некоторый MEs, создающий робот, кому нужен программист), или получите задание, администрирующее сервер отдела Гуманитарных наук. Trashpick компьютер от загружающегося прикрепления здания Разработки Материалов, загрузите ISO Linux своим быстрым интернет-соединением общежития и игрой вокруг.

4
ответ дан Adam Jaskiewicz 9 December 2011 в 18:34
поделиться
  • 1
    Да другое поле для тестирования. Но don' t делают. Если you' ре заинтересовало поддерживать PHP, Вы можете тесты записи на PHP в восходящем проекте, видеть: qa.php.net – hakre 30 November 2011 в 09:01

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

так же для поблочного тестирования - почему выбирают поблочное тестирование? Конечно, тестирование удобства пользования, тестирование системы, тест приемлемости для пользователя и заводское приемочное испытание более важны? Ну, они - то, если Вы не считаете свое задание завершенным, после того как код поставляется отделу обслуживания :)

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

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

, Вышеупомянутое является всеми "мягкими навыками", которые Вы не делаете потребность для написания хорошего кода.

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

3
ответ дан gbjbaanb 9 December 2011 в 18:34
поделиться
  • 1
    Да, that' s общее представление. Вы don' t нужны две дополнительных черты все же. Вы можете просто: val, теплее = новый Теплее {val датчик = новый PotSensor; val, релейный = новый Нагреватель}. Это инстанцирование является ' зависимость injection' точка. – Noel Kennedy 11 August 2011 в 02:34

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

2
ответ дан 24 November 2019 в 01:52
поделиться

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

Колледж предоставляет Вам панель инструментов, полную инструментов. Это - отвертка, которая является серпообразным ключом. Вы МОГЛИ БЫ добраться для использования каждого инструмента однажды в колледже. Это - когда Вы входите, реальный мир - когда Вы действительно узнаете то, что Вы имеете. Вы разбираетесь в полезных от остальных, которые Вы хотите уехать дома на инструментальных средствах, на всякий случай, и те Вы сохраняете в своем кармане каждый день.

Tqm, ISO, Cmm, Гибкий, и т.д. Это все популярные товары, они прибудут, и они пойдут, ни один из успешных не больше, чем просто здравый смысл. Все успешные инженеры и компании используют некоторую разновидность здравого смысла, именно это сделал их успешными, немногим было нужно название его. Проблема - Вы, не может продать здравый смысл, менеджер не может доказать их значение компании по образованию и покупающий здравый смысл без броского названия. Поставьте имя в нем, которое их начальники считали в некоторой новостной статье или журнале, и менеджер хранит верность их работе, и Вы сохраняете Вашу. Очень немногие компании, которые утверждают, что применили эти методы на самом деле, делают. Большинство выписывает чек консультанту и получает их ежегодный и или пожизненный сертификат некоторому клубу так, чтобы они могли поместить диаграмму на свой веб-сайт или маркировку на поле, их продукт входит. Многие будут утверждать, что это редко... там, замеченное это, это происходит. Это - вся часть бизнеса, необходимо сократить углы иногда, чтобы остаться прибыльными и сохранить двери открытыми и световые сигналы на. Жесткие подписчики всех этих методов все утверждали, что последний был популярным товаром, и этот не, последний действительно был слишком дорогим для следования, этот не. Последний был фальшивкой, Вы просто наняли консультанта, этот реален. Как языки программирования, они также разовьются.

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

Почему люди думают, cmm или гибкий или какие-либо из других является популярным товаром? Почему они думают, что они не? Почему преподаватель преподавал Вам программу тот путь? Избегать gotos или избегать констант или избегать этого и этого? Это, потому что это производит более надежный код? Лучше работающий код? Уменьшает человеческую ошибку? Или это, потому что легче градуировать бумаги/программы, дающие им больше времени для проведения исследований? Это, потому что они не знают, как программировать, и они просто следуют за кем-то, кого elses заказывают на предмете? Они учили Вас, что у Вас не может быть удобного в сопровождении, надежного, высокопроизводительного кода? Вы не можете даже "выбрать, какие-либо два", удобные в сопровождении, вмешивается и в надежную и высокую производительность? Иногда Вы жертвуете надежностью за производительность. Иногда Вы не заботитесь о надежности или производительности, Вы просто хотите добраться от версии 117.34.2 еще одной бухгалтерской программы к версии 118.0.0. Ваша бизнес-модель от продажи обновлений версии и технической поддержки и до разработчиков программного обеспечения, которых любой старый робот сделает, который может написать тот же код таким же образом. Замените сожженный новым из колледжа один и продолжайте продавать обновления.

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

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

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

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

Когда Вы выходите из колледжа и в реальный мир, слушаете и работаете с и спорите со "старыми таймерами". У них есть десятилетия к векам объединенного опыта, прерывания, они попали в это, Вы могли бы избежать и или протестировать самостоятельно (возможно, Вы понимаете, что не должны касаться горячего горшка, чтобы узнать, что он запишет Вас). Большинство будет видеть по крайней мере один, или два из этих популярных товаров приходят и уходят, и в особенности как плохо они были записаны, и что они сделали для восстановления с него. Они знают много различных способов протестировать вещи и названия стилей тестирования, которые пришли и ушли также. Какие работы, что не делает. Где риск и как постараться не напрасно тратить время на касательной. Как Вы становитесь зрелым, и Вы становитесь старым таймером, передаете его вперед. Плата за то, что Вы изучили путем попытки преподавать тех, которые следуют за Вами. Не забудьте преподавать их, КАК ловить рыбу, только дайте им рыбу. И иногда необходимо позволить им перестать работать, прежде чем они будут следовать, мешать им то, чтобы быть записанным слишком ужасно.

Что я действительно хотел сказать, вот прямо сейчас, мы находимся в редкой ситуации, где мы можем засвидетельствовать эволюцию параллельной вселенной (и возможно влиять на нее). Да информатика является молодой наукой, сравненной для высказывания физики. Но в то же время это развилось много раз. В зависимости от того, где Вы работаете и кто Вы работаете с Вами, могут наблюдать инженеров аппаратного обеспечения. Языки программирования в аппаратном мире являются, конечно, не новыми, но это не развилось так же быстро как мир программного обеспечения. Программное обеспечение имело преимущество нескольких десятилетий. Аппаратные средства всегда думали о разработчиках программного обеспечения как о гражданах второго класса. Наше задание легко, их работа трудна. (Обратите внимание, что я - на самом деле оба аппаратный и программный инженер). То, что интересно, - то, что прямо сейчас они все еще имеют дело с тем, что мы рассмотрели бы элементарными или инфантильными проблемами. Почему я должен был бы использовать управление версиями, я - единственный, работающий над этой микросхемой. Ваш опыт с gcc или другими дешевыми компиляторами или свободным наклоном IDE возможно соответствует дорогим инструментам, которые я использую, если бы компания думала, что Вы были достаточно достойны использовать его или даже знать, как использовать его, то они купили бы Вас копия. И длинный список других оправданий. У меня было удовольствие изучения и vhdl и verilog и становление продуктивным в обоих в течение недели от того, что было почти вызовом от такого инженера аппаратного обеспечения (несмотря на мой диплом, говоря инженера-электрика, моя должность является разработчиком программного обеспечения). Я хотел выучить эти языки, когда инструменты были доступны мне, я остался в офисе в ночь и самостоятельно учился. От той точки на том инженере в особенности понял, что то, что я говорил, было верно, языки являются просто синтаксисом, основы программирования являются тем же, инструменты, все делают то же самое. Его яблоки и яблоки не яблоки и апельсины.

В целом, хотя все еще трудно отправить сообщение, что одни из этих двух параллельных отраслей промышленности имеют намного больше опыта на языках, программируя привычки, управление исходным кодом, тестирование, инструменты, среды программирования, и т.д., чем другой. Проблема, которую я пытаюсь решить, берет аппаратные проекты, поскольку они разрабатываются, создают доступные функциональные средства моделирования, которые мы можем связать с моделированием (виртуальная машина) процессора так, чтобы мы могли начать тестировать аппаратные средства и разрабатывать тест и поставляемое программное обеспечение задолго до того, как мы переходим к кремнию. Нет нет ничего "нового" об этом, но у нас нет механизма, чтобы заставить последний код, изменения дорожки в коде видеть, где мы должны сфокусировать наше время. Никакой механизм для отслеживания документации, определяющей пользователя (программирование), не взаимодействует через интерфейс к аппаратным средствам. Одна золотая копия находится в чьем-то входном почтовом ящике в двоичной форме и только изменяется, когда, хорошо это не делает необходимо считать verilog для обнаружения то, что продолжается. Ожидайте, что verilog то, какого возраста? Та ошибка я провел всю неделю на Вас, выяснила три недели назад и зафиксировала? Также - мы просто летим к некоторому пятну отпуска и стороне в течение шести месяцев, ожидая аппаратных людей, чтобы закончить их задачу и бросить его по стене нам, или сделать мы пользуемся этой возможностью, чтобы попытаться быть терпеливыми и оптимистичными, и учить их, что они там - разумные методы, которые не являются, что навязчивый, которые позволяют их обоим, делают их задание, скопируйте их работу, а также совместно используйте их материал для экспертной оценки...

Помните, что инженеры аппаратного обеспечения действительно оставляли колледж с полем новейших инструментов точно так же, как Вы сделали. Вы выучили 17 различных языков программирования, из которых можно только использовать один, остальная часть языков, Вы в Вашей карьере будете изобретены после отъезда колледжа. Когда они покинули колледж, они могут сказать Вам, что они знают об исчислении и теории относительности, сколько электронов находится в каждом из элементов и вычисляет заряд вокруг Гауссовой поверхности. Но объем их карьеры один, нуль, и, или и не (эй, у нас есть общие, все, что действительно необходимо знать о компьютерах, один, нуль, и, или и не аппаратные средства или разработчик программного обеспечения). Предоставленный фундаментальные законы физики, исчисления, электроны не собираются изменяться с такой скоростью, как языки программирования делают. Но основные принципы программирования являются тем же через все языки и продолжат быть в будущее. Вы покидали колледж, зная или об отъезде взглядов, что Java отличается и лучше, чем C++ потому что это и что и другой?

Как Разное университеты задание должно остаться прибыльным. Они должны нанять правильных академиков, чтобы принести и правильным студентам и правильным долларам исследования и правильным видам исследования для создания университета прибыльным. Они должны предложить правильные классы, чтобы принести правильным студентам и произвести правильных выпускников так, чтобы, поскольку десятилетия передали работодателей и около университета и надо надеяться далеко распознали, что этот университет производит продуктивных и прибыльных сотрудников. (да и иногда необходимо притянуть правильных спортсменов в правильном спорте для получения правильного количества телевизионного времени и правильного объема узнаваемости имени и спортивного дохода). Некоторые университеты будут преподавать C++ и Java, некоторые никогда не будут. Некоторые изобретут CMM, и некоторые будут преподавать Гибкий, некоторые не сделают ни одного. Если университет имеет какое-либо значение вообще существует что-то там, чтобы Вы учились. Они не будут учить Вас, что все там должно учиться, но у них будет что-то полезным. Узнайте, что что-то, в то время как Вы там, собирает разумное количество различных форм инструментов на Вашей панели инструментов. Покиньте университет и получите задание. Если Ваша панель инструментов сосет, возможно, находят другой университет и никогда не упоминают первое. Если это - хорошо использование панели инструментов те инструменты, и создайте некоторые новые в свободное время. Если это - довольно хорошая панель инструментов, скажите хорошие вещи о том университете и хороших академиков, Вы изучили это и что от и расплачиваются со школой для того, что они дали Вам. Даже при том, что Вы не получили каждый возможный инструмент в универсальном каталоге университетских инструментов, Вы уйдете с определенным подмножеством. Даже если Вы не получаете высшее образование...

12
ответ дан 24 November 2019 в 01:52
поделиться

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

2
ответ дан 24 November 2019 в 01:52
поделиться
Другие вопросы по тегам:

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