Я думаю, что быстрый и грязный ответ - то, что
В объектно-ориентированном программировании использование переменных экземпляра, где локальные переменные были бы более подходящими, особенно в многопоточных средах (например, сервлетах).
В более общем смысле, использование более широкой области действия, чем необходимо.
Что это многообещающий карьерный путь, и все они должны туда пойти. Затем потребуются годы, чтобы очистить систему кодов приматов.
Это автоматическое тестирование - пустая трата времени.
По моему опыту, большинство новых программистов переоценивают интеллект компилятора. Это может принимать форму ожидания умножения массивов c, как векторов или матриц, вплоть до сообщения компьютеру того, что они хотят, на английском языке. («диагонализуйте матрицу A;»). Я также видел, как люди ожидали, что компилятор будет полностью осведомлен обо всем коде с самого начала, и поэтому они небрежно относятся к тому, в каком порядке идут вещи.
Умные программисты знают, что:
Переоценка важности (и временной доли) фактического написания кода с последующим небольшим тестированием / отладкой, при недооценке или просто забвении написания модульных тестов и других важных действий, таких как требования, написание спецификации, дизайн, системные испытания и приемка заказчиком.
Устойчивость к изменению кода из-за некоторого внутреннего ощущения , что он будет работать медленнее, например, изменение вложенных if на подход, управляемый таблицами.
Как инструктор по совместительству я заметил, что они обычно думают, что программирование ОЧЕНЬ ОЧЕНЬ ТРУДНО!
Другое заблуждение состоит в том, что когда они получают ошибку компиляции или исключение, фактическая ошибка находится точно в строке, указанной конструктором.
К сожалению, источник часто находится где-то раньше (например, , отсутствует фигурная скобка) или при каком-либо более раннем изменении состояния, но есть тенденция придерживаться строки, указанной компилятором / средой выполнения.
В последних проектах мы прекратили программировать отдельный DAL.
Вместо этого мы используем объектно-реляционный сопоставитель (в нашем случае Entity Framework). Затем мы позволяем программе бизнес-уровня напрямую взаимодействовать с ORM.
В некоторых случаях это сэкономило нам более 90% усилий по разработке.
понимание того, как вся взаимосвязь между php и html кажется многим большим препятствиемЧестно говоря, я не могу вспомнить свои собственные (и Привет,
Этот псевдокод - это то, как все должно выглядеть. Слишком много начинающих программистов пытаются писать код, как если бы они написали предложение, и что ж ... это просто так не работает.
У моей жены есть степень бакалавра английского языка, она недавно пытается вернуться на CS степень. Я лично вижу это, когда она пытается написать свой код как:
If Myint = 1
Then
cout ...
Else
In my experience with newbie-friends, i think that the common misconception is that validating data and making your code fail-proof is just a waste of time. Really, EVERYONE in my CA class don't validate the INPUT data!
Just my 2 cents.
Что все остальные - гении, потому что они могут быстро это закодировать, а вы не можете. Посидев с ними немного, вы увидите, что они решают проблемы так же, как и вы, и на самом деле это вопрос опыта, который, в свою очередь, дает интуицию - о, они используют поисковые системы, как и вы.
Во-первых, они могут игнорировать проверку ошибок, или что проверка ошибок может рассматриваться как запоздалая мысль, или что перехват исключения означает, что вы можете игнорировать тот факт, что это произошло. Это дает вам код, который делает что-то вроде:
try {
date = format.parse(dateString);
} catch (ParseException e) {
log.debug("exception: ", e);
}
String message = "The date was " + date.toString();
Второе заблуждение состоит в том, что программирование станет простым. Это не так. Проблемы будут расти в соответствии с вашими способностями.
I think one that hasn't been mentioned yet is that some students assume they will always have valid data/input. In reality, valid data is only one condition and they forget about all the forms of invalid data/input.
Будучи когда-то новичком, я бы сказал, что самым большим заблуждением со стороны новичков является то, что
if (thisBool = true)
blah blah blah...
- действительный код.
Концептуальное представление о том, как передаются ссылки в таких языках, как Java и C #.
That languages like Java, Python, etc "don't have" pointers as opposed to C.
(beware I quoted the negative)
Жесткость синтаксиса языка предназначена для их раздражения или «для галочки».
Лишь намного позже (курс на автоматах / формальных языках и позже при компиляции) они осознают, что причина того, что им действительно нужно ставить точку с запятой или закрывать скобку, заключается в том, что в противном случае компилятор не сможет проанализировать их программу. однозначно.
Вероятно, это происходит из-за текучести естественного языка, в который это поколение студентов, вероятно, даже больше склонно верить благодаря текстовым сообщениям.
Тестирование не важно / не нужно.
Юнит-тесты - пустая трата времени
Некоторые стили кода (соглашения об именах и т. Д.) Не важны
Что функция из 500+ строк приемлема при условии, что она хорошо прокомментирована. Я видел, как опытные разработчики делали это и отказывались разбивать ее на обслуживаемые части, потому что функция «выполняла только то, что должна была, и каждая операция была прокомментирована»
.Или, чтобы добавить еще одно оскорбление к травме, новичок начинает улучшать производительность фрагмента кода, делая его в 5 раз лучше и очень гордясь собой ... Пока кто-то ему не напомнит что он улучшил производительность лишь небольшой части всего процесса с чистым результатом в одну секунду для процесса, который занимает два часа.
(На самом деле у меня был коллега, который сделал что-то глупое. Процесс должен был импортировать полмиллиона записей, и он очень гордился тем, что ускорил его запуск, просто пропустив некоторую инициализацию. В результате первая запись в журнале появлялась в течение секунды, а не через 10 секунд. К сожалению, весь процесс замедлился с От 30 минут до 6 часов ...)
Что вы можете игнорировать типы переменных в динамическом языке.
Очень часто программисты PHP делают такие вещи, как:
$a = false;
if ($a == "false") ...
или:
$b = "0";
if ($b) ...
Чтобы быть разработчиком программного обеспечения, нужно знать языки программирования и API.