Комментарии 839
Не удивительно, что вас ничему не научили, ведь учат «программированию» люди, которые и IDE то в глаза не видели. Ну правда, за всю свою учебу я встречал… трех преподов (один в школе), которым реально интересно то, чем они занимаются и они «умеют в ИТ».
ИТ — это либо самообразование, либо специализированные курсы от ИТ-гигантов, например.
Мне не так давно приходило приглашение, кажется от Mail.ru, вести некие курсы по веб-программированию. Как я понял, они подбирают кандидатов просто «по гуглу» (т.к. особых достижений на гитхабе, например, у меня нет). Т.е. они приглашают хоть сколько-то реальных «практиков». Если на следующем этапе их как-то отсеивают (я отказался, поэтому не знаю что там), то вполне себе неплохие преподаватели.
Друой вопрос, а будут ли они чему-то учить своих студентов. Ведь оно им самим во вред.
Название озвучите? Чисто интереса ради
Это не столь важно ибо эта статья применима к любому СПО в провинции. В одном таком отучился и я совсем недавно (закончил в 2016). В 2х других учились мой одноклассник и хороший знакомый и ситуация там была абсолютно аналогична приведенной в статье (в том учебном заведении что окончил я чуть лучше, но отличия не принципиальны).
Но мне допустим ситуация стала ясна к концу 2 курса и я вовремя пошел по пути курсов/самообучения. Сейчас работаю Andoid разработчиком, к слову теме мобильных платформ была посвящена 1 лекция на 3 курсе кажется.
Из плюсов СПО в России я могу отметить только обилие свободного времени для самообучения, а навыки самообучения на мой взгляд очень и очень полезны для любого IT специалиста. А вот курсы хороши только для старта и в отсутствие самообучения бесполезны имхо.
Но вообще да, эта «проблема» есть, была и похоже будет. Но это глобальное, касается массового обучения везде.
Конечно, мне попадались и пятидесятилетние тетки, которые могли только в Word и Excel. Но если тебе действительно интересно, многие преподы готовы уделить тебе время, дать доп.задания и скинуть материал для их выполнения.
Естественно, я не говорю что в универе вас научат самым модным фишкам в ИТ-индустрии, но основы для самостоятельного изучения дадут, если сами того захотите.
У меня 90% одногруппников сидели и весь институт ждали пока их чему-нибудь научат (правда в их ожиданиях это было так: им показывают — они повторяют). Показали им как на Си объявить структуру данных, которая описывает спортсменов, например, и записать спортсменов в массив. Затем их просят сделать то же самое, но с актерами, и тут начинается: «Да как же так?! Нам же только про спортсменов объясняли, а про актеров нет».
В моём колледже, такие ученики получают оценки отлично. Учитель показывает выполнение задания, они конспектируют в тетрадь, а на практике без своей тетради ничего не могут. Мы, с моим другом, поступаем противоположно. Мы не записываем «Как объявить переменные в Visual Basic» в тетрадь. А сразу переходим к практике и выполняем ее, но из-за того что у нас нет конспектов, нам ставят оценку 2. Справедливо?
И кстати стоит ли говорить, что в большинстве своем одногруппники мои были дотерами, каэсерами и прочими геймерами.
Это тут совсем не причём. Хоть я и не игрок уже давненько, но могу смело сказать, что этот ярлык вешать не стоит. У меня одногруппник переиграл за нас всех, но он лучше всех разбирается в программировании и спокойно может сделать простенькую игру на мобильном приложение.
Естественно, я не говорю что в универе вас научат самым модным фишкам в ИТ-индустрии, но основы для самостоятельного изучения дадут, если сами того захотите.
Согласен, возможно в университете будут дополнительные факультативы и прочее, у меня совсем другая ситуация, если преподаватель видит, что студент способный, он максимум пригласит его поучаствовать в конкурсе.
В моём колледже, такие ученики получают оценки отлично. Учитель показывает выполнение задания, они конспектируют в тетрадь, а на практике без своей тетради ничего не могут. Мы, с моим другом, поступаем противоположно. Мы не записываем «Как объявить переменные в Visual Basic» в тетрадь. А сразу переходим к практике и выполняем ее, но из-за того что у нас нет конспектов, нам ставят оценку 2. Справедливо?
Меня примерно по тому же отчисляли :). Но институт я в итоге закончил.
Это тут совсем не причём. Хоть я и не игрок уже давненько, но могу смело сказать, что этот ярлык вешать не стоит. У меня одногруппник переиграл за нас всех, но он лучше всех разбирается в программировании и спокойно может сделать простенькую игру на мобильном приложение.
Я не про то, что геймерство — зло. Я про то, что со мной учились люди, которые в свободное время играли, приходили в институт и только и дело что говорили об играх, и ждали когда же кончатся пары, чтобы поиграть. Обычная школота, которая, была бы возможность, пошла бы в 12 и 13 класс…
Школьный аттестат могли спросить при поступлении в институт, но вкладыш самого института? Разве что цвет самого диплома, и все.
стоит ли говорить, что в большинстве своем одногруппники мои были дотерами, каэсерами и прочими геймерами
Но но!
За такое тут могут и по айпи вычислить
Нам показывали FoxPro ооочень стародревней версии. Мало того, что я его в реальной жизни никогда не встречал (я веб-программист), так и 99% того, что рассказывали — лютый фарш несовместимых слов.
Препод который вел у нас базы, вела же и C++.
Так вот была лаба типа «ввод нескольких числе через консоль и поиск максимального с какой-то там обработкой». В общем, обычная лаба начального уровня.
Сидим за компами, но сдаем на бумаге А4 (внезапно).
Я сделал «по своему» — работает и ладно, какая разница какая реализация. К тому же моя была явно «круче». Но нет, препод решила, что все неверно, а идти к компу и запускать прогу отказалась. Оценку снизила.
Больше я решил не заморачивать с учебой. Только на степендию оценки выводил и все.
Я сделал «по своему» — работает и ладно, какая разница какая реализация. К тому же моя была явно «круче». Но нет, препод решила, что все неверно, а идти к компу и запускать прогу отказалась. Оценку снизила.
А что можно сделать «круче» в простом алгоритме? Может всё-таки ваше решение работало неправильно?) Хотя конечно «программирование» на листиках в любом случае показывает уровень учебного заведения.
Все работало :) Там есть тестовые входные/выходные данные. Кхм. Тоже на листочке.
Понимаете, мы в той аудитории ддосили компы однокурсников с помощью само-размножающегося bat с пингом по IP до состояния полной нерабочести :) Забивался с одно компа почти всегда. А если несколько человек…
В ИТ-колледже, напомню.
Просто не по канону лаба и все — гуляй. А мне нет смысла тащиться за планом обучения, у меня свои планы ))
А вообще по институтским воспоминаниям чем больше препод жалуется на то какие все студенты бездари, тем хуже он сам как специалист и препод. Попадались индивидуумы которые на рассказы какие мы идиоты тратили больше времени чем собственно на свой предмет, правда, по неправильным предметам типа экономики на инженерной специальности
А зачем вы это все слушали?
А мы и не слушали, тупо прогуливали эту пару, благо препод настолько был уверен что мы идиоты что на зачете все успевали написать работу и за себя, и за отсутствующего товарища. А по поводу пойти в деканат/на кафедру — был у нас такой случай с параллельной группой, они сходили. По итогам препод остался тем же и сильно обиделся, ребята только проблем от этого огребли
По профильным дисциплинам все было гораздо лучше и, как я потом понял увидев билеты к госам, даже лучше чем должно было быть по программе ибо в ней в 2008 году все еще отсутствовала цифровая техника как класс (реально, конечно, про нее рассказывали). Не могу сказать что все было вообще супер, но я это понял только постфактум, а студенту сравнивать особо не с чем было. В любом случае то что тогда давали иногда таки пригождается, а я ведь даже не на программиста учился коим сейчас работаю
Ну скажем так, можно искать максимальное число в цикле, а можно использовать Math.max(); (JavaScript, не работаю сейчас с С++). Я выбрал второе.
Так если задание было реализовать без использования готовых функций, то вы его не решили)
Чтобы отличить на короткой программе 3 от 5 при использовании IDE -надо смотреть время. А большое время бывает не только тогда, когда человек слабо знает язык. А ещё и тогда, когда у него низкий темп нервной деятельности.
При оценке «на листочке» можно напрямую ловить ошибки в синтаксисе и семантике. И оценки ставятся не за скорость, а за качественное знание языка.
P.S. Если хоть раз поработаете с набивкой программы на перфоленте — оцените, почему нужно учить писать на бумаге. Явно удобнее представить весь код в голове, чем переклеивать перфоленту после прогона. Хотя больше 60 строк — приходилось и читать перфоленту и клеить.
Нет конечно знать «на зубок» свой язык, прям до каждой буковки — круто, но зачем?
Язык нужно знать, и чтобы делать меньше ошибок, и чтобы увидеть уже допущенные ошибки. Известная история, как точка вместо запятой в программе привела к сбою миссии на Марс. Увы, компилятор видит не все ошибки.
И в то же время, сейчас у меня есть интернет и IDE 99.9% времени. Зачем мне держать в голове весь этот набор информации? Я лучше буду держать в голове структуру проекта, а остальное за меня сделает автоматика.
Помню, пришлось без интернета и нормальной IDE что-то набирать — это был ад перебора названий функций и методов по буквам :)
Скачай документацию, крайне полезная штука :)
А что толку в чистом поле на испытаниях с умения писать код на листочке? Или вы сразу в машинных кодах пишите? :-)
В чистом поле на испытаниях у тебя либо есть с собой ноутбук — тогда на нем есть и IDE, либо его с собой нет — тогда ты как программист бесполезен в принципе.
Этот 0.1% когда ты работаешь но IDE недоступна — это скорее какие-нибудь совещания-митинги.
Ну давайте на привычном вам примере поясню? Ибо реально специфика. Вы как на андроиде проблемы решать будете? С ноута новую прошивку заливать или XTERM прямо на нем запустите? Какой способ быстрее? gcc на и на самом андроиде есть.
Полный путь с IDE на windows и кросс-компиляцией на linux — нормален в гостинице. В чистом поле для скорости удобней иначе.
В чистом поле на испытаниях у тебя либо есть с собой ноутбук — тогда на нем есть и IDE
Будете удивлены. Наш embedчик — linux old-school. Он вообще IDE не использует. Зачем оно? Компилируется у него и так с первого раза, работает — в 80% тоже с первого раза. Зато модульность и читаемость на высоте.
Ну давайте на привычном вам примере поясню? Ибо реально специфика. Вы как на андроиде проблемы решать будете? С ноута новую прошивку заливать или XTERM прямо на нем запустите? Какой способ быстрее? gcc на и на самом андроиде есть.
По умолчанию на андроиде никакого XTERM нету, его надо отдельно ставить. То есть это в той же мере подстеленная соломка что и ноут с IDE
Будете удивлены. Наш embedчик — linux old-school. Он вообще IDE не использует.
Его право, но зачем отбирать удобные инструменты у других?
Вторая цель — оценка знаний языка. Написать без ошибок с использованием IDE слишком просто. Так что оценку приходится вести по времени. А оценка по времени — это больше оценка по темпу нервной деятельности, чем по знаниям. Написание же на бумажке позволяет оценить знание синтаксиса.
Надеюсь вы согласитесь, что автопилот — отличное подспорье на дальней дороге. Но учить летать (или водить) надо без него. Чтобы летчик смог посадить самолет при отказе автопилота. А водитель — припарковаться при сломаннном парктронике.
А от 100-200 строк — конечно, удобнее c IDE. Речь-то ша о примерах в 20-50 строк.
То есть вы все-таки ищите кодера, а не разработчика? Иначе я не могу объяснить приоритет знаний языка перед всеми остальными качествами.
Знания языка, как и умение написать корова без буквы а, как и умение считать до 100 — это базовые навыки.
Разработчик на С++, не помнящий нужно ли писать точку с запятой перед else, не нужен не только нам — он никому не нужен.
P.S. Оценка знаний имелась ввиду во время обучения. Как-то не было у нас кандидатов в сотрудники, которые надо было тестировать на таком детском уровне.
А ваши сотрудники не знают синтаксис языка на котором пишут????
я писал на HTML, JS,PHP. Более того, исправлял чужие баги. В итоге проект — работает. Но на листочке — не напишу, ибо синтаксис — не помню. Нужен ли кому-нибудь такой веб-разработчик? Или такой веб-кодер?
Нужен.
А ваши сотрудники не знают синтаксис языка на котором пишут????
Лично я синтаксис языка знаю, но не умею на глаз выискивать среди (кучи ( вложенных (скобочек((()))))) парные. И порядка параметров всех функций стандартной библиотеки наизусть не помню.
А еще я с универа не держал в руках авторучку, руки от нее отвыкли.
Остальное — вещи, которые действительно удобнее делать в IDE. Но писать программы в 20-50 строчек можно и без них.
P.S. Письменный почерк тоже атрофировался, обычно соглашаются, что я заполняю печатными буквами.
Знания языка, как и умение написать корова без буквы а, как и умение считать до 100 — это базовые навыки. Разработчик на С++, не помнящий нужно ли писать точку с запятой перед else, не нужен не только нам — он никому не нужен. [...] А ваши сотрудники не знают синтаксис языка на котором пишут????
Вас же не смущает, что вы не обладаете одним из упомянутых вами же базовых навыков?
А в своих языках — да, вполне могу написать код на бумажке. Компилятор у меня обычно только очепятки находит.
А вы что, не помните, где ставится точка с запятой?
Так я не явлюсь веб-разработчиком
Вы даже не поняли, о каком навыке идет речь.
А вы что, не помните, где ставится точка с запятой?
Не далее чем вчера у меня код не скомпилировался из-за потерянной точки с запятой — разбивал строчку на две, забыл поставить.
А если по сути вопроса — нет, я не помню наизусть все детали синтаксиса всех языков, на которых я пишу (даже основного, чего уж врать). Что хуже, даже те детали, которые я помню, я не всегда правильно применяю (невнимательность такая невнимательность). Ну и уж тем более я не помню наизусть сигнатуры (или хотя бы названия) всех используемых мной зависимостей, как классов, так и методов.
Надеюсь вы согласитесь, что автопилот — отличное подспорье на дальней дороге. Но учить летать (или водить) надо без него.
Вот когда IDE будут подсказывать, как составлять алгоритм и архитектуру, тогда учить будут без нее. Вернее без конкретно этой функции. А пока IDE это как кондиционер или лампочка на уровне бензина. Вы же не думаете, что учить водить надо без лампочки?
А выравнивать вручную зачем, какой в этом смысл? Может вы и таб запрещаете нажимать? А что, он же 4 пробела сразу вставляет.
Я вам больше скажу. Пока я не начал писать в IDE с автоформатированием, меня не напрягало писать вообще без отступов и пробелов. В BorlandC буквы широкие, 80 символов на весь экран, и так все понятно. А после Visual Studio понял, что с ними удобнее.
Чтобы выбрать шаблон для автогенерации, надо понимать, что они делают. Это для программиста гораздо важнее. Если у вас там курсы скоростной печати, тогда да, автогенерация ни к чему, только не надо называть это программированием.
if (a <5);
a = 5;
Скомпилируется? Синтаксис верный?
но не все из них соответствуют требованиям
Помогло здесь автору кода знание синтаксиса? Нет, это синтаксически правильная программа. Помешала или помогла ему здесь IDE? Ни то ни другое.
Случайно эта ошибка синтаксиса привела к синтаксически правильной программе. Вот только не той, которую задумал автор.
Нет, он решил что точка с запятой ставится в конце строки :-)
Для справки: if (a <5) a = 5;
— это один оператор.
if [[ -f '/etc/passwd' ]]; then
echo "Файл с определением пользователей существует"
fi
Нет, составной оператор это {...}
в Си-подобных, begin...end
в Паскале и т.п.
Мне кажется, что смысл и без буквоедства понятен.
Если по условию требуется выполнить несколько операторов, их необходимо заключить в операторные скобки begin...end;, образуя единый составной оператор:
и
Иногда блок называют составным оператором.
Не виду смысла дальше спорить о терминах. Вам привычней новая терминология, мне — весьма древняя.
По ГОСТ 28397-89 (ИСО 2382-15-85) вообще нету «составных операторов», а есть лишь «составные предложения». Зато «составные предложения» отличаются от «программных блоков».
Так что самое корректное — ориентироваться на ГОСТ. То есть в паскале — только составное предложение, а в С++ — «составное предложение» и «программный блок».
Именно что «единый», то есть вместе с if.
Нет. Единый составной — это блок кода от первой скобки до последней. Он трактуется как ОДИН оператор, поэтому и «единый».
«Cоставные предложения» отличаются от «составных операторов» исключительно переводом, на английском эти термины звучат одинаково :-)
А вот вариант, когда эта точка с запятой нужна.
А вот вариант который не использует точку с запятой, так как в BASh она представляется как конец команды как и EOL.
if [ -f '/etc/passwd' ]
then
echo "Файл с определением пользователей существует"
fi
Этот вариант на мой взгляд более читаем чем ваш.
И нет нужды использовать [[ что-то ]], вместо [ что-то ].
[[ — внутренний синтаксис bash
Для конкретно этого примера, нет нужды использовать внутреннюю команду BASh
Да и ещё. [
и test
не являются алиасами или симлинками друг друга это две разные программы.
[anton@ANTONBOCH1244 ~]$ ls -l /usr/bin/\[
-rwxr-xr-x 1 root root 51280 сен 3 20:21 '/usr/bin/['
[anton@ANTONBOCH1244 ~]$ ls -l /usr/bin/test
-rwxr-xr-x 1 root root 47184 сен 3 20:21 /usr/bin/test
[anton@ANTONBOCH1244 ~]$ elfls /usr/bin/\[
/usr/bin/[& (Intel x86-64)
Program header table entries: 9 (40 - 238)
0 P r-x 40 1F8 00000040 5 N "GNU"
1 I "/lib64/ld-linux-x86-64.so.2" 6 U r-- A12C 2EC 0000A12C
2 B r-s 0 B334 00000000 7 . rw- 0 0 00000000
3 B rw- BBD0 4B0 0020BBD0 +1A0 8 R r-- BBD0 430 0020BBD0
4 D rw- BC38 1C0 0020BC38
Section header table entries: 27 (C190 - C850)
0 (null) 14 B r-x 861C 9 .fini
1 I "/lib64/ld-linux-x86-64.so.2" 15 B r-- 8640 1AEC .rodata
2 N "GNU" 16 U r-- A12C 2EC .eh_frame_hdr
3 N "GNU" 17 U r-- A418 F1C .eh_frame
4 H r-- 298 60 .gnu.hash [5] 18 ? rw- BBD0 8 .init_array
5 S r-- 2F8 660 .dynsym [6] 19 ? rw- BBD8 8 .fini_array
6 $ r-- 958 2ED .dynstr 20 B rw- BBE0 58 .data.rel.ro
7 V r-- C46 88 .gnu.version [5] 21 D rw- BC38 1C0 .dynamic [6]
8 V r-- CD0 60 .gnu.version_r [6] 22 O rw- BDF8 200 .got
9 R r-- D30 798 .rela.dyn:0 [5] 23 B rw- C000 80 .data
10 B r-x 14C8 17 .init 24 0 rw- C080 1A0 .bss
11 P r-x 14E0 10 .plt 25 C "GCC: (GNU) 7.1.1 20170630"
12 B r-x 14F0 8 .plt.got 26 $ --- C09A F6 .shstrtab [S]
13 B r-x 1500 7119 .text
[anton@ANTONBOCH1244 ~]$ elfls /usr/bin/test
/usr/bin/test& (Intel x86-64)
Program header table entries: 9 (40 - 238)
0 P r-x 40 1F8 00000040 5 N "GNU"
1 I "/lib64/ld-linux-x86-64.so.2" 6 U r-- 981C 2C4 0000981C
2 B r-s 0 A854 00000000 7 . rw- 0 0 00000000
3 B rw- ABD0 4B0 0020ABD0 +1A0 8 R r-- ABD0 430 0020ABD0
4 D rw- AC38 1C0 0020AC38
Section header table entries: 27 (B190 - B850)
0 (null) 14 B r-x 806C 9 .fini
1 I "/lib64/ld-linux-x86-64.so.2" 15 B r-- 8080 179C .rodata
2 N "GNU" 16 U r-- 981C 2C4 .eh_frame_hdr
3 N "GNU" 17 U r-- 9AE0 D74 .eh_frame
4 H r-- 298 60 .gnu.hash [5] 18 ? rw- ABD0 8 .init_array
5 S r-- 2F8 660 .dynsym [6] 19 ? rw- ABD8 8 .fini_array
6 $ r-- 958 2ED .dynstr 20 B rw- ABE0 58 .data.rel.ro
7 V r-- C46 88 .gnu.version [5] 21 D rw- AC38 1C0 .dynamic [6]
8 V r-- CD0 60 .gnu.version_r [6] 22 O rw- ADF8 200 .got
9 R r-- D30 780 .rela.dyn:0 [5] 23 B rw- B000 80 .data
10 B r-x 14B0 17 .init 24 0 rw- B080 1A0 .bss
11 P r-x 14D0 10 .plt 25 C "GCC: (GNU) 7.1.1 20170630"
12 B r-x 14E0 8 .plt.got 26 $ --- B09A F6 .shstrtab [S]
13 B r-x 14F0 6B79 .text
[anton@ANTONBOCH1244 ~]$ diff /usr/bin/\[ /usr/bin/test
Двоичные файлы /usr/bin/[ и /usr/bin/test различаются
test has an alternate form that uses opening and closing square brackets instead a leading ‘test’
. Если у вас есть время — посмотрите по сорцам. Похоже, что это два исполняемых файла, сделанные из одних сорцов.Кстати, сделайте /usr/bin/[ --help. В первой же строчки вам скажут, что это test и запускается как «test ВЫРАЖЕНИЕ».
А теперь взглянем на man test. Аналогично в документации разработчика: test has an alternate form that uses opening and closing square brackets instead a leading ‘test’.
Не спорю.
Если у вас есть время — посмотрите по сорцам. Похоже, что это два исполняемых файла, сделанные из одних сорцов.
Через r2 посмотрел, да, частичное совпадение.
Есть отсутствие секции обработки help в /usr/bin/test
, но как такового заимствования сорсов я не вижу, кроме совпадения основных процедур исполнения.
Кстати, сделайте /usr/bin/[ --help. В первой же строчки вам скажут, что это test и запускается как «test ВЫРАЖЕНИЕ».
Это мне ни о чем не говорит.
Более того. Я знаю синтаксис для таких конструкций, но все равно иногда ставлю точку с запятой в конце. Почему? Да просто на автомате. Потому что ставится она гораздо чаще чем не ставится. То есть знание синтаксиса ни при чем. В некоторых стилях кода вообще запрещены такие конструкции, как раз из-за того, что ошибиться может любой.
все равно иногда ставлю точку с запятой в конце.
Точка в конце if??? На Си? O____O
Почему-то все время кажется, что так читаемей.
Я про точку с запятой после if (...)
, поставленную по ошибке на автомате.
Существенно более смешной пример — это
if (condition)
doSomething();
else
doSomethingElse();
doSomethingMore();
От этого спасает правило — всегда ставить фигурные скобки в условиях и циклах. Даже если там одна строка.
Это правило приносит слишком много мусора в guard conditions и early returns.
С опытом, к сожалению, знания не приходят. Приходит только навык. Как самый яркий пример — 5-6 человек в режиме разработки на 63К памяти без защиты (M6000). Каждый новый человек приводил к нестабильности системы в течение двух недель. За две недели приходил навык — и опять работаем без перезагрузок. А вот знания, что приводит к сбоям, так и не пришли.
Могу и по С++ аналогичный пример привести.
И да, я считаю, что инженер должен очень приблизительно, с ошибкой в 2-3 раза понимать результаты расчетов без программ и справочников. То самое, туполевское «сломается здесь» — это идеал.
Вы не забывайте, что CAD, IDE и так далее придуманы для ускорения работы на больших проектах. Они не отменяют ручные навыки. Более того, на небольших проектах иногда быстрее вручную.
А вам нравится продавщица, которая считая 2 кг по 80 за килограмм на калькуляторе получила 140? Как-то в уме, по таблице умножения, оно у меня вышло и быстрее и правильней.
Кто как живет. Перфоленты хотя бы можно было клеить. А вот когда на SoC нету даже vi, то программы на bash приходится набирать при помощи команды echo. Причем все это под дождем и в чистом поле. Или на борту погранкатера во время качки.
Не надо утрировать)
И да, я считаю, что инженер должен очень приблизительно, с ошибкой в 2-3 раза понимать результаты расчетов без программ и справочников. То самое, туполевское «сломается здесь» — это идеал.
И тем не менее он не должен для этого отказываться от благ цивилизации при обучении.
Я тоже могу оценить, как будет работать тот или иной алгоритм в голове без его запуска, но это пришло с опытом программирования в IDE, а не на бумажке. Бумажку я, кстати, тоже использую, но не для того, чтобы писать код, а чтобы рисовать схемы или писать формулы, когда алгоритм не помещается в рабочую память.
А вам нравится продавщица, которая считая 2 кг по 80 за килограмм на калькуляторе получила 140? Как-то в уме, по таблице умножения, оно у меня вышло и быстрее и правильней.
Вероятно она не умеет пользоваться калькулятором, а может так и было задумано :) Но вот этой претензии вообще не понимаю. Вы против того, чтобы продавцы использовали калькуляторы даже на простых операциях? Почему? Это же наоборот хорошо, что уставшая продавщица не ошибётся в простейшем расчёте, зачем считать вручную с вероятностью ошибки, когда есть возможность доверить машине, которая ошибку не сделает.
И тем не менее он не должен для этого отказываться от благ цивилизации при обучении.
При обучении чему? При обучении языку — лучше отказаться. IDE сильно удобнее от тысячи строк, просто удобнее — от сотни-двух. А на этапе изучения языковых конструкций и программ на 20-50 строчек — IDE вреден.
Сделайте эксперимент на себе. Изучите один язык, с самого начала работая с IDE и проверяя синтаксис компилятором. И другой язык — с написанием на бумажке. Когда решите, что изучите — сравните, синтаксис какого языка вы запомнили лучше.
Мой опыт показывает, что в IDE я могу писать даже на тех языках, которых просто не знаю. Более того, у меня даже нету желания их изучить — зачем, если в IDE я на них и так пишу. Более того — и баги других исправляю. Разумеется, это не основные для меня языки. Но начинал бы с изучения на бумажке — выучил бы.
Вы против того, чтобы продавцы использовали калькуляторы даже на простых операциях? Почему?
Помните Настоящие программисты не используют паскаль?
в бакалейном магазине настоящий программист настаивает на собственноручной проверке банок на лазерном аппарате, т.к. он не верит, что операторы могут правильно отперфорировать данные с первого раза.
Опыт показывает, что ошибиться при вводе данных в калькулятор — намного легче, чем ошибиться при подсчетах в уме. Цепь голова-рука-глаз-голова — намного более баговая, чем подсчеты в голове. И намного более медленная.
Это же наоборот хорошо, что уставшая продавщица не ошибётся в простейшем расчёте
У вас женская логика. Вы же видите, что как раз с калькулятором и ошибаются.
— Смотри, вон плывет кит.
— Простите, мадам, это крокодил, — поправляет её служитель.
— Нет, это кит, — упорствует женщина.
В это время животное вышло на берег.
— Ну что скажете? — победоносно воскликнул служитель. — Ведь киты никогда не выходят на берег.
— Чепуха! — вы же сами видите, что иногда выходят!
У вас женская логика. Вы же видите, что как раз с калькулятором и ошибаются.
Ага и при подсчёте в уме ошибаются, вопрос в том, в каком случае чаще. Имхо, при подсчёте в уме, но чтобы утверждать с полной уверенностью нужно провести исследование и поставить эксперименты на N продавщицах, половина из которых будет считать в уме, а вторая половина на калькуляторе.
При подсчетах на калькуляторе мы имеем этапы:
- Прочесть стоимость товара
- Услышать количество
- Ввести стоимость
- Ввести количество
- Выполнить умножение
- Прочесть результат
- Выдать его покупателю
При расчетах в уме вместо этапов 3-6 будет один этап — «умножить в уме». Отсюда — и меньшее число ошибок.
Более того, ошибки калькулятора могут быть в десятки раз, например — пропущенный ноль при вводе или чтении результата. А вот ошибки умножения в уме, как правило, выдают правдоподобный результат.
Боле того, ошибки калькулятора идут как в пользу продавца, так и покупателя. А вот ошибки подсчета в уме — почему-то все в пользу продавца, что намекает на их искусственность. :=)
Ну а верный вариант — сканер штрихкодов.
При расчетах в уме вместо этапов 3-6 будет один этап — «умножить в уме».В большинстве случаев в магазине все же приходится умножать друг на друга двух- и трехзначные числа (ну плюс перенос запятой). И что-то мне подсказывает, что для подавляющего большинства людей «умножить 48 на 54 в уме» — это ну вообще ни разу не один этап.
Более того, ошибки калькулятора могут быть в десятки раз, например — пропущенный ноль при вводе или чтении результата. А вот ошибки умножения в уме, как правило, выдают правдоподобный результат.И поэтому калькулятор лучше — большинство ошибок будет сразу заметно.
Но и тут я бы не считал на калькуляторе, а поставил электронные весы. Ибо на чтении веса глазами и вводе его в калькулятор — ошибки более чем, возможны.
А в уме — видим, что тысяча с хвостиком. И этим проверяем расчет.
Потому что в моем мире таких круглых цен очень мало. А вес до целого килограмма не округляет вообще никто — максимум до 50 граммов.
Весы, разумеется, будут лучше калькулятора.
Мораль-то в том, что человек, решивший, что раз есть калькулятор — можно не учить таблицу умножения — регулярно попадает впросак.
Точно так же попадет впросак человек, который решил, что не нужно учить синтаксис языка программирования, раз IDE все подскажет.
Увы, не все ошибки в синтаксисе видны IDE.
Повторюсь, самая известная из них — это DO I = 1.3 вместо DO I = 1,3 в фортране. Стоило потерянного на подлете к Марсу аппарата.
На Си — ещё веселее.
if (a >5);
a=5;
Видите лишнюю точку с запятой? А IDE о ней вам скажет?
А теперь подумайте, сколько дней уйдет на поиск этого бага?
Так что калькулятор — хорош для сложных рассчетов. IDE — упрощает написание сложных программ. НО! Таблицу умножения учить надо. И синтаксис языка знать надо. А для этого — начинаем обучение без калькулятора и без IDE.
Мораль-то в том, что человек, решивший, что раз есть калькулятор — можно не учить таблицу умножения — регулярно попадает впросак.
Я не говорил, что не нужно учить таблицу умножения.
Точно так же попадет впросак человек, который решил, что не нужно учить синтаксис языка программирования, раз IDE все подскажет.
Я не говорил, что не нужно учить синтаксис языка программирования.
На Си — ещё веселее.
if (a >5);
a=5;
Видите лишнюю точку с запятой? А IDE о ней вам скажет?
Да, вижу, хоть и не программировал в блокноте и на листике. И да, в моей IDE она будет заметна, т.к. я нажму ctrl + S и код превратится в
if (a > 5)
;
a = 5;
Даже более того, если я напишу
if (a > 5);
и нажму enter, IDE не сделает дополнительный отступ и не будет его делать при нажатии TAB, что даст понять, что что-то тут не так.
А теперь подумайте, сколько дней уйдет на поиск этого бага?
У меня 0, у того, кто программирует на листике или в блокноте, возможно больше.
Как легче выучить таблицу умножения? Все время проверяя себя по калькулятору или без него?
P.S. У меня IDE без автоформатирования. Способ обнаружения забавный, но ручное форматирование чуть лучше указывает на семантику.
Видите лишнюю точку с запятой? А IDE о ней вам скажет?
Да, моя IDE скажет.

При расчетах в уме вместо этапов 3-6 будет один этап — «умножить в уме».
При умножении на калькуляторе вместо этапов 3-6 будет один этап — «умножить на калькуляторе». Демагогия она такая.
Вас не смущает что при умножении в уме действие "Выполнить умножение" состоит из циклов, вспоминания каждой пары цифр из таблицы умножения (то есть ввода), удержания в памяти всех промежуточных результатов с учетом сдвигов и переносов, и последующего их сложения? Число действий гораздо больше. Отсюда — и большее число ошибок.
Попробуйте умножить в уме вес 3.19 на стоимость 62.70, а потом подумайте, хотите ли вы во столько раз дольше стоять в очереди.
А вы проверьте. Посмотрите, сколько вы получаете ошибок компилятора из-за нетвердого знания синтаксиса. И подсчитайте, сколько времени вы на этом теряете.
Wat? Вы, вроде, топили за то, что IDE не нужны. IDE они как раз это время и экономят. А так же экономят время набивания рутинного текста.
А что IDE время экономит — это верно. Вопрос в том, экономит ли оно его настолько много, чтобы программист без твердого знания языка сравнялся с тем, кто язык знает?
Если у вас действительно такие проблемы — значит неправильно поставлены процессы. Начиная от ТЗ и бизнес-требований и до тестирования и ввода в эксплуатацию. В критических местах командой эхо строчки понабивали — а потом удивляемся "а чего это у нас аварии".
- Демонстрация. У нас 3 блока: база, ровер и ноут. Между базой и ровером — радиоканал или GSM-модемы, от ровера к ноуту — провода. В принципе демонстрация — это 2-3 часа. Приехали, развернули оборудование. продемонстрировали, и улетели домой. Но тут приходит вводная: заказчик хочет нестандартно, с использованием его оборудования, например — сети WiFi. Или радиомодемов. Или стационарный комп рядом с базой вместо ноута рядом с ровером. Что надо делать с точки зрения «правильных» бизнес-процессов? Отказываться? Через голову менеджеров заказчика выходить на админов заказчика для уточнения подробностей? Мы делаем просто — затачиваем напильником на месте.
- Стыковка. Есть оборудование, которое слишком тяжелое, чтобы его тащит к нам в офис. Ну скажем датчик раскрытия ворот нижнего бьефа шлюза. Стоит оно на шлюзе. не на том шлюзе, что сетевой, а на том шлюзе, что на Волго-Балте. Описание протокола есть, но как всегда — не очень точное. Как дополнительная прелесть — сеть там примерно 100 килобит на 6 шлюзов (двухкратный запас от нужд телематики шлюза). Что там по феншую в такой ситуации надо делать? Как выстроить бизнес-процесс?
Я без издевок — реально интересно, как там по феншую положено это все решать.
По феншую надо не забывать брать с собой на такие объекты настроенный ноут с нужными идями и периферией.
P.S. Претензии товарища были в том, что процессы неверные. :-)
Зависит от сложности задачи, есть некоторый порог после которого надо переставать заниматься патчами наживую и открывать IDE.
Кроме того, надо не забывать, что любой скрипт, написанный через консоль, в итоге надо будет все равно включить в проект и задокументировать.
Критерий такой — если может ещё потребоваться, то лучше сохранить. Если заведомо не может, то зачем?
Для разовой демонстрации — конечно же в проекте не нужны (хотя где-нибудь сохранить их стоит, на случай повторной демонстрации в том же месте). А вот то, что допиливалось при стыковке со шлюзом — лучше бы сохранить.
Я и расписал. Вот «не работает и все тут». Правда она так и не рассказала почему именно.
Если по методике надо научить считать максимум в массиве, то использование готовой функции — это неправильно. Для чайника это может означать непонимание работы с циклами.
Мне как-то везло — я быстро получал репутацию, позволяющую делать не по методике. Но это ещё и от преподавателя зависит.
У методики есть свои плюсы, она дает некоторый уровень троечникам. Собственно для того её и придумывали.
Это значит, что нарушил методику. Самый известный пример — умножение во втором классе. Для взрослых, что 2*3, что 3*2 — одинаково. Но по методике второклассник должен понимать отличие между множимым (измеряемая величина) и количеством (счетная). По 2 килограмма трем людям — это 2+2+2, то 2*3. А 3*2 — это по 3 килограмма двум людям (3+3), то есть иная задача.
Это что-то новое, у нас во втором классе такого не было (95й год). Почему вдруг количество должно быть справа от измеряемой величины? Если я меняю местами множители, очевидно что я меняю местами и единицы их измерения.
А вот вам дикий батхёрт 2013 года на эту тему.
Почему вдруг количество должно быть справа от измеряемой величины?
При замене сложения на умножение то, что мы складывали — записываем как множимое (слева), а число сложений — как множитель (справа). Размерность результата при этом — как при сложении, совпадает с размерностью множимого (слагаемого).
Не путайте себя и второклассника. Когда быстрее сложить, чем умножить (2ой класс и начало 3его) — важно не потерять связь между сложением и умножением. Это ещё не совсем умножение, это такая запись для быстрого сложение одинаковых чисел. Потеряется связь — значит ребенок не сможет проверить умножение сложением.
я не методист и не репетитор, так что доказать, что этот метод правильный, не смогу. Но по личному опыту — занимаешься с ребенком, видишь в учебнике странный выверт. Пытаешься объяснить напрямую — не понимает. Ещё раз объясняешь — не понимает. Потом объясняешь ровно так как в учебнике — в ответ «о, это же просто!». После нескольких таких случаев решил, что рано мне с методистами спорить. Из финты для 60-80 процентов детей полезны. Правда в программисты как раз идут люди из остальных 20 процентов. :-)
— Пап, ну меня учительница спросила «Сколько будет 3 умножить на 2?», я ответил 6.
— Правильно.
— Да. А потом она спросила «А сколько будет 2 умножить на 3?»
— Так это же коммутативная операция.
— Вот я так и ответил.
ed2100.blogspot.ru/2013/04/9-x-2-2-x-9.html
— Кто автор Паскаля?
— Эм… Паскаль?
При этом с практический частью у меня все отлично было. До сих пор не знаю кто автор Паскаля, впрочем, нафиг оно мне не нужно.
Почему эта часть была включена в язык и почему стала не нужна, догадаетесь?
Собственно обычно выбор идет между внешней функцией со многими параметрами и вложенной — с одним параметром.
function TControlScrollBar.ControlSize(ControlSB, AssumeSB: Boolean): Integer;
var
BorderAdjust: Integer;
function ScrollBarVisible(Code: Word): Boolean;
var
Style: Longint;
begin
Style := WS_HSCROLL;
if Code = SB_VERT then Style := WS_VSCROLL;
Result := GetWindowLong(FControl.Handle, GWL_STYLE) and Style <> 0;
end;
function Adjustment(Code, Metric: Word): Integer;
begin
Result := 0;
if not ControlSB then
if AssumeSB and not ScrollBarVisible(Code) then
Result := -(GetSystemMetrics(Metric) - BorderAdjust)
else if not AssumeSB and ScrollBarVisible(Code) then
Result := GetSystemMetrics(Metric) - BorderAdjust;
end;
begin
BorderAdjust := Integer(GetWindowLong(FControl.Handle, GWL_STYLE) and
(WS_BORDER or WS_THICKFRAME) <> 0);
if Kind = sbVertical then
Result := FControl.ClientHeight + Adjustment(SB_HORZ, SM_CXHSCROLL) else
Result := FControl.ClientWidth + Adjustment(SB_VERT, SM_CYVSCROLL);
end;
В интернете вы ничего не нашли, потому что эти вещи ушли из паскаля лет за 10 до интернета. См. чуть выше — я привел цитату, что это было. А вот почему оно было вставлено в язык и почему пропало — это доп. вопрос к билету.
пропало, я думаю, потому что вложенные функции в вакууме никому не нужны. Для того, чтобы это было полезно, функции должны быть объектом первого класса. Кроме того, эти лямбды должны быть изоморфны функциям с соответствующими аргументами.
Вопрос, который вы упомянули — это пример вопроса, ответ на который ничего не значит.
Допустим, зная автора языка я могу попробовать угадать ответ — при создании языка закладывались идеи структурного программирования.
Но означают ли эти слова хоть что-нибудь? Если рассмотреть множество всех языков, может ли ответ на этот вопрос как-то отделить Паскаль от остальных?
Нет, не может. Структурное программирование точно так же является основой Алгола, Бейсика и Си. И еще языков РАЯ и Ада. И развитая статическая типизация — тоже не отличительная особенность Паскаля.
«Алгоритмы + структуры данных = программы» не читали.Ну и что?
Я вот, например, не читал. И никто из моих знакомых. Зато мы читали Кормена и Кнута, и с точки зрения алгоритмов и структур данных они куда сложнее.
Самое ценное у Вирта — мысль, что алгоритм нельзя рассматривать изолированно от структуры данных. И можно упростить алгоритм, увеличив сложность данных.
Собственно вопрос — как называется структура данных, обеспечивающая поиск без написания кода и в каких языках такая структура была реализована?
структура данных, обеспечивающая поиск без написания кодаБез написания кода — это как? Битсет подойдет или нет, ведь там для поиска элемента в множестве нужно написать bs.test(i)?
Если вы имеете в виду, что реализация поиска обычно проста и производительна, то таких очень много.
Тогда подойдет хеш-таблица (если вы имеете в виду поиск точного значения), деревья поиска (декартово, RB, AVL, 2-3, Тарьяна — то, что вспомнилось сходу, наивное, если асимптотика не важна) (если вы имеете в виду поиск значения, ближайшего к заданному снизу/сверху), кучи (двоичная, биномиальная, фибоначчи — то, что вспомнилось сходу) (если вы имеете в виду поиск минимума/максимума), бор (если вы имеете в виду поиск префикса одной из строк из множества), суффиксный автомат (если вы имеете в виду поиск подстроки одной из строк из множества), да куча всего. И, раз уж вы ставите под сомнения мои знания, отмечу, что без проблем напишу любую из названных здесь структур данных.
Вы ожидали такой ответ или просто недостаточно точно сформулировали вопрос?
Нам показывали FoxPro ооочень стародревней версии. Мало того, что я его в реальной жизни никогда не встречал (я веб-программист)
Добро пожаловать в компанию делающую софт для крупнейших судоходств, аптечных сетей, самой большой в мире страховой компании, госкомпаний и прочих представителей кровавого Ынтерпрайза.
Каждый свой чих по окончании дня ты должен заносить в пожирающего людей FoxPro-монстра.
Монстру 50 лет, он обл, огромен, стозёвен и лаяй.
Монстр живёт на сервере Windows 2003 за 39 VPNами, скорость соответствует.
Зато все прожекты на Ангулярчике и скрам во все поля…
«Покажите мне сферы использования» — популярная фраза и у нас. Только вот выш.мат. на практике в 99% случаев не нужен настолько, насколько его преподают, а понять сферы использования без понимания нельзя. Чаще я такое встречал от студентов, которые этим оправдывали свое нежелание учиться. Были казусы, когда человек на 3 курсе не мог объяснить как выглядит светодиод или жаловался, что вот мол, учат на всяком старье 70х годов, какие-то дроссели заставляют учить, резисторы большие на лабораторках, когда во всем мире и в айфонах в частности уже цифровая электроника используется!!! И это после целого курса, где и про светодиоды рассказано достаточно и про дроссели уже в пятый раз с момента первого прохождения ТОЭ.
Только для этого надо переступить через гордыню.
например наблюдал по специальности 2201
да… отличаются… например в колледже по базам данных проходили foxpro, а в институте access…
И не поверите, всё пригодилось и всё было интересно! Даже на курс по химии было интересно ходить. И Excel — это очень годный инструмент, не понимаю почему его все студенты так не любят.
Конечно многое зависит от института и программы обучения. Но думаю стоит биться за хороший институт и образование, пускай может и в другом городе — это стоит того.
Конечно, то многое из того, что вы перечислили — пригождается большинству людей, связывающих себя с ИТ. Что-нибудь из этого вы видели в статье? Об этом и речь (плюс сами преподаватели).
всё было интересно!
Зависит от вас (вы всё равно потом изучите тему сами и глубже, потому что вам это интересно) и преподавателя (нужно умеючи подать информацию по теме, заинтересовать).
И Excel — это очень годный инструмент, не понимаю почему его все студенты так не любят
Потому что преподаватель, как правило, сам этого не понимает. Что тогда спрашивать со студентов?
Я преподавал специальности 2204 в колледже.
- преподаватели — женщины от 20 до 60 лет, преподающие «информатику»: офисы, табличные процессоры и электронную почту
- преподавание некоторых предметов вообще для галочки: если это офис, то МС, если операционные системы — то МС, если это программирование — Delphi 7 со стандартными примерами БД
- техническая база — 4 кабинета с ПК. Но ни стендов изучения принципов работы ВТ, ни стендов изучения устройства ПК, ни практических занятий по ремонту
- попытался преподать им основы web — запретили. Объяснили тем, что не входит в программу.
Сам я окончил 2201. Женщина лет 60 преподавала нам… микропроцессоры. Все предметы взаимосвязаны и продолжают друг друга. Нет конкретных «языков» и «БД», а «офисов» вообще нет. Преподавали всё общее, основы, механизмы, принципы, чтобы можно было применить на любом примере.
Ну, и в колледже, студентов за неуспеваемость отчитывали, помогали пересдавать, как в школе. В университете: две двойки за сессию — едешь отдыхать на «курорт» на речку Терек (учился в 97-02 годах).
Учился в университете в 07-12 годах. Студентов вытягивали любой ценой, на последних курсах кто-то из преподавателей и вовсе признался мне что "двойки" попросту запрещено ставить. Но если другую оценку студенту поставить не получилось, или студент не успел выйти на сессию — есть две пересдачи после сессии и еще одна в начале следующего семестра.
Контрактникам было еще проще: неограниченное количество пересдач пока платишь.
Не смотря на это все, группы с каждой сессией таяли — студенты активно переводились на другие специальности, к пятому курсу нас стало где-то раз в пять меньше.
У вас был няшный вуз (=
Щас! Может, для тех кому нужно было откосить от армии, он и няшный — но учиться в нем было нечему. Из всех предметов было всего четыре где чему-то интересному учили, причем всего один из них был профильным и не устаревшим (Сети ЭВМ). А баттлы "кафедра-какой-то-матери vs деканат" и у нас были, это была одна из причин почему давали так много переэкзаменовок...
Если начинать сразу с практики, начитавшись трэша в бложиках, в коде появляются функции где вместо одного запроса и пресловутой сортировки списка начинают рекурсивно дергать базу для каждого узла, увеличивая на порядки запросы к базе.
Да хотя бы элементарную сортировку связанного списка. Или рекурсивный обход дерева. Этой базы ты не получишь без системного образования/самообразования.
Ха. Вы считаете стенфордский курс алгоритмов/структур данных системным самообразованием?
При том, что эту базу можно получить без системного образования. А что касается самообразования — тут, собственно и вопрос, где системное, а где бессистемное.
Извините, вас зациклило:
Этой базы ты не получишь без системного образования/самообразования.
[...]
Системное не может быть без базового.
Имел ввиду что путь от 0 до 10 где 10 хороший кодер, в ВУЗе начинается именно с 0, а при самообразовании а-ля «спросил-закодил» где-то с 3-4 ступени пропуская базовые 0-2. Потому что тупо не знаешь об их существовании или задаешь не те вопросы.
Ну и да, самообразование может быть и с 0.
Имел ввиду что путь от 0 до 10 где 10 хороший кодер, в ВУЗе начинается именно с 0, а при самообразовании а-ля «спросил-закодил» где-то с 3-4 ступени пропуская базовые 0-2.
Это как-то мешает достигнуть 10?
А главное, перечисленные вами "элементарная сортировка связанного списка [...] рекурсивный обход дерева" — они где на этой шкале?
Например научился кодить на 5-7, пришло время курить оптимизацию, и тут ты на 7 ступени начинаешь постигать базу, переосмысливать подходы к решению задач.
Знай вы такой расклад заранее, согласились бы что начинать с базы (в ВУЗе или нет неважно) оно все же оптимальнее?
Сортировки и обходы примерно 1-2 ступень, 1-3 семестр.
Знай вы такой расклад заранее, согласились бы что начинать с базы (в ВУЗе или нет неважно) оно все же оптимальнее?
А почему оптимальнее? Вообще, переосмысление базового подхода, когда у тебя уже есть опыт практического применения инструментов — это очень поучительно.
(со мной такое, кстати, было больше одного раза: в частности, сначала в училище объяснили, что в школе теоретическую базу дают неправильно, а потом в академии вообще целиком поменяли теоретический подход)
Однозначно поступать за коркой в основном для того, чтобы потом устроиться по ТК.
А в чем проблема устроиться "по ТК" без корочки?
При наличии вышки всё проще, причём не требуется профильная вышка. Можно показать корочки химика и устроиться программистом.
А подтверждать по ТК, что я программист — не нужно?
Нет, конечно.
Но корку стоит получить и она никак не помешает, а только поможет.
Это зависит от того, сколько усилий нужно на то, чтобы ее получить, и нельзя ли эти усилия потратить как-то с большей пользой.
Поможет? Только при устройстве на госпредприятия, что мы, конечно, делать не будем.
Стоит ли потеряных 4 лет? Нет.
На собеседованиях с будущими сотрудниками — аналогично. Спрашиваю, что делали, узнаю как бы они поступили в такой-то ситуации, потом тестовое задание. Оно оплачивается, если будет сделано.
А насчет «поможет»… Программирование — это ремесло, ему учатся на рабочем месте. Стоит ли терять 5 лет ради бумажки — это большой вопрос. Один из выходов — учиться по смежной профессии: физике, экономике. Как сказал один знакомый «основной результат моей кандидатской (по физике) — я просчитал за неделю машинного времени то, что по стандартной программе считается за полгода». Потом он уехал в США программистом.
Если вы намекаете, что "корочка" — условие для конкретного места работы "именно здесь", так таким же условием может быть половая принадлежность или цвет волос. Будете перекрашиваться?
Корочка — объективное и закрепленное трудовым законодательством требование.
Цитату из трудового законодательства можно? Или вы про иммиграцию?
Цвет волос таковым не является.
Цвет волос — тоже объективное требование (как и половая принадлежность).
Статья 65 ТК РФ. Документы, предъявляемые при заключении трудового договора
При заключении трудового договора лицо, поступающее на работу, предъявляет работодателю:
…
…
документ об образовании, о квалификации или наличии специальных знаний — при поступлении на работу, требующую специальных знаний или специальной подготовки;
Цвет волос / половая принадлежность может являться объективным требованием, если вы актер, но мы ведь об IT говорим.
Эм, осталось доказать, что для конкретной работы здесь и на этом месте требуются такие "специальные знания или специальная подготовка".
Если работодатель голословно утверждает, что для работы у него нужен диплом о высшем образовании таких-то ВУЗов, то (за неимением веских причин) лучше у него не работать, потому что мало ли какая еще ему глупость в голову придет.
ООО «Юность» может и забить, а где-то это прописано на уровне нормативов и/или забивание чревато проблемами (а вы стоите этих проблем?). Заметьте, в комменте я говорил, что отсутствие ВО не обязательно будет проблемой, но может ею стать при определенных условиях. Под этими условиями я не подразумевал хотелки царьков кабинетного разлива.
lair
Не поверите, но если поискать, на эту тему также есть нормативная база. Ну и не будете же вы на собеседовании предлагать работодателю доказать необходимость диплома.
К тому же есть достаточно много организаций, где это требование обосновано. Чаще всего они работают в высокотехнологичных отраслях или отраслях так или иначе связанных с государством. О них я и говорил. Не всем интересно всю жизнь клепать сайты или создавать очередной «детектор аномалий» для телефона.
И не поймите неправильно мою предвзятость. Я не утверждаю, что диплом гарантирует получение специфических знаний, но я считаю, что без ВО у человека гораздо меньше шансов качественно получить многие знания. Банально можно даже не знать, что вот об «этом» есть целая прикладная наука или пропустить что-то существенное потому что в книжках об «этом» написать забыли или написали так, что обучаемый не понял. По этой причине я считаю требование корочки гораздо более обоснованным, нежели ваше предвзятое отношение к такому требованию. И более чем уверен, что наличие корочки положительно коррелирует с эффективностью работника в IT сфере. Наверняка даже есть научные исследования на эту тему.
Не поверите, но если поискать, на эту тему также есть нормативная база.
Поверю. Просто хочу ее увидеть.
Ну и не будете же вы на собеседовании предлагать работодателю доказать необходимость диплома.
Нет, не буду. Я просто считаю, что у такого работодателя лично мне делать нечего: мне и так хватает людей, которые судят о моей квалификации по моему образованию, а не по результатам моей работы.
Если настоящим Кодексом, другими федеральными законами, иными нормативными правовыми актами Российской Федерации установлены требования к квалификации, необходимой работнику для выполнения определенной трудовой функции, профессиональные стандарты в части указанных требований обязательны для применения работодателями.
Затем изучаем (к теме поста) Приказ Министерства труда и социальной защиты РФ от 18 ноября 2013 г. N 679н
«Об утверждении профессионального стандарта „Программист“
Я немножко не понимаю юридический язык. Написано "если настоящим Кодексом, другими федеральными законами, иными нормативными правовыми актами Российской Федерации установлены требования к квалификации". Профстандарт является такими требованиями? Или требования отдельно, профстандарт отдельно?
Вот другая формулировка (из письма Минтруда): "согласно статье 195.3 ТК РФ требования к квалификации работников, содержащиеся в профессиональных стандартах, обязательны для работодателя в случаях, если они установлены ТК РФ, другими федеральными законами, иными нормативными правовыми актами Российской Федерации. В других случаях эти требования носят рекомендательный характер."
Собственно, в том же письме дальше:
"Означает ли данная норма, что содержащиеся в профессиональных стандартах требования являются обязательными для применения?
Согласно статье 195.3 ТК РФ профессиональные стандарты обязательны для применения работодателями в части содержащихся в них требований к квалификации, необходимой работнику для выполнения определенной трудовой функции, предусмотренных ТК РФ, другими федеральными законами, иными нормативными правовыми актами Российской Федерации. Таким образом, только в части требований, установленных в ТК РФ, других федеральных законах, иных нормативных правовых актах Российской Федерации, требования профессионального стандарта являются обязательными."
Так что вроде бы нет, профстандарт для программиста не является обязательным. Или?..
ООО «Юность» может и забитьБыл свидетелем того, как на это забило МинОбороны. На мой взгляд, это говорит о том, что забить может почти что кто угодно.
Не всем интересно всю жизнь клепать сайты или создавать очередной «детектор аномалий» для телефона.Я вот, например, регулярно использую в работе довольно сложные алгоритмы и структуры данных (гораздо сложнее тех, что нам преподавали), не говоря уже о дифурах и матстате (и производных от них дисциплинах).
Тем не менее, я считаю, что ВУЗ мне не дал почти никаких знаний. Возможно, мне не повезло и кому-то повезет больше, но все же.
А в чем проблема с ТК? Что-то тот же военник у меня спросили только один раз, диплом вроде вообще ни разу, хотя на неплохих проектах работаю. Бизнесу как-то спецы важнее, чем бумажки.
Ну и конечно же не могу не упомянуть своих друзей, которые пошли в этот же ВУЗ в магистратуру тоже на ITшное направление (уточнять не буду). Кто-то из них учится, чтобы не идти в армию, другие ради общежития. Но все прекрасно знают, что знаний там нет, ибо когда в магистратуре по этому направлению проходят физику целый семестр, ну не знаю…
Лучше посоветую немножко запариться на тему грамотности.Лучше чем что? Чем улучшить навыки программирования?
Мой менее грамотный «контр-совет» состоит в том, чтобы просто заниматься интересными вещами и не боятся делать ошибки на своём пути. Почитайте статьи типа этой. Таких статей много. Их Вы легко найдёте в гугле.
Ну а человек попросил указать на более серьёзные ошибки.
Вы лучше укажите на более серьёзные ошибки и дайте совет, как их исправить
Я ответил, что, по-моему, это бессмысленно, и посоветовал, как исправить проблему в корне.
Ваша же статья более чем бессмысленна (как и многие материалы из тп, в общем). Единственный совет, как научиться программировать — самообразовываться. Практика, практика и ещё раз практика. Пиши код, и будет тебе счастье. Ну а дальше сам поймёшь, куда двигаться.
И этот совет здесь точно прозвучал не раз, так что я не вижу смысла повторяться.
Я ответил, что, по-моему, это бессмысленно, и посоветовал, как исправить проблему в корне.
Это как если бы вам на код-ревью сделали замечание, что у вас в коде ошибка, а на вопрос "где" отправили читать спецификацию JavaScript. Хочешь дать совет, сначала ответь на вопрос, потом советуй. Это правило хорошего тона.
Поэтому очень странно, что вы начинаете с меня требовать список ошибок. Я ничего не должен ни вам, ни ТС.
Почему я не желаю тратить время и силы на составление списка ошибок? Потому что они элементарнейшие, их гипермного, и про них написано в любом учебнике. Если мне покажут код с элементарными ошибками, про которые написано в любом учебнике, — я отправлю этого человека читать учебник. На таком уровне это эффективнее всего.
Точечно исправлять есть смысл, когда ошибок мало.
Если мне покажут код с элементарными ошибками
Нет, если вам скажут, что у вас в коде элементарные ошибки, но не покажут ни одной из них?
Мы отнюдь не на код-ревью, а в интернете. У меня здесь нет обязанности кому-либо отвечать
Не думал, что буду защищать неграмотность, но как ни странно, в интернете ни у кого нет обязанности правильно писать. Вы никому ничего не должны, но тогда и не надо было отвечать на вопрос, заданный не вам, советуя вместо ответа детскую образовательную книжку. А если уж решили ответить, то могли бы указать пару ошибок, которые вам кажутся "более серьезными". Это не обязанность, а просто вежливость по отношению к собеседнику.
Keyten — да без проблем, ваше кредо стало понятно. Но тогда нечего возмущаться о том, что «глаза-кровь»/«марш учить русский» — топикстартеру за это не платят (да-да, в эту говно-игру можно играть и в контр-пику).
и я даже с этого ничего не получаю.
Обсуждали то исходно в посте дилемму о самообразовании и пути в программисты. А никак не то, «как много ошибок в русском тексте».
Но тогда нечего возмущаться о том, что «глаза-кровь»/«марш учить русский»
Вы зачем-то экстраполируете свой какой-то другой опыт на меня :)
Где вот это «марш учить русский» было? Покажете?
Глаза кровь, да, я высказал своё личное мнение по поводу этого компонента поста. Это плохо, да?
И дал ТС совет, что он может сделать, если хочет повысить качество своих постов и комментариев. Может, это плохо?
Обсуждали то исходно в посте дилемму о самообразовании и пути в программисты
А с каких пор на хабре в комментариях запрещён оффтоп, касающийся поста?
Где вот это «марш учить русский» было? Покажете?
мы обсуждаем слегка оффтопик, а именно — грамотность автора!
Лучше посоветую немножко запариться на тему грамотности. Почитайте книжки, например. Например, вот эту.
А с каких пор на хабре в комментариях запрещён оффтоп, касающийся поста?
Он (ваш оффтоп) поста никак не касался. По этой прчине вообще не в тему. Вы придрались к тому, как этот пост выглядит/оформлен. Топикстартер просил реальных советов по области программирования — вы ему про «учи русский, ошибок тьма, читать не могу… ааа… кровь… глаза… истерика… (как-то так это со стороны и выглядит)».
Нет, если вам скажут, что у вас в коде элементарные ошибки, но не покажут ни одной из них?
Тогда я бы всерьёз озаботился этой проблемой. Попросил бы совета, как научиться совершать меньше ошибок. Может, спросил бы тематическую литературу. И мне бы, вероятно, посоветовали.
Так и я посоветовал ТС, как совершать меньше ошибок, и даже предложил отличную книжку. Совсем не детскую, кстати.
в интернете ни у кого нет обязанности правильно писать
Я и не утверждал, что она у кого-то есть. Я лишь дал ТС совет, что делать, если он хочет исправить эту (весьма ощутимую, как мне кажется) проблему. Что с этим дальше делать, решать, разумеется, ему.
Почему вы так набросились-то на меня все за совет? :)
например. Например,
Вам тоже могу посоветовать больше читать.
Ибо, как гласит известный медицинский принцип, лечить надо болезнь, а не симптомы.
Ошибки в тексте — это не болезнь. Это как раз симптом. Симптом несобранности, неаккуратности. Можно даже сказать, что это симптом отсутствия педантичности. Хотя сама по себе педантичность не всегда является положительной чертой, но для программиста она, скорее, обязательна.
Сам я не работаю программистом. Но некоторый опыт в этой области всё же есть.
Самый мой большой проект был на языке СУБД Clarion и насчитывал около 60000 строк кода, не считая ассемблерных вставок и вспомогательных утилит, как то оптимизатора оверлейных структур программы при условии возможных взаиморекурсивных вызовов модулей.
И, что самое интересное, несмотря на многие недочеты и спонтанно проявляющиеся ошибки, эта программа используется на родном предприятии уже более 20 лет. И переход на приобретенную современную программу на основе 1С идет с большим трудом уже почти 2 года. Потому что в этой новой программе ошибок и недоделок еще гораздо больше.
Так вот… В алгоритмах утилиты оптимизации оверлейной структуры мной использовались положения интервальной арифметики. А разве ее изучают на курсах программирования? Да и студенты многих математических факультетов про такую не слышали.
Это я к тому речь веду, что любые курсы программирования, даже самые лучшие, способны дать только азы. Большей частью — совершенно бесполезные. А основную работу по изучению приходится вести над собой самому.
Сам я вряд ли могу посоветовать что-то конкретное. Потому что, повторю, я не программист, хоть и программирую по мелочам.
Могу только дать основной вектор самообразования:
Выясните, какие из языков программирования высокого уровня наиболее востребованы в области, в которой хоте ли бы работать.
Выясните, какие из них пригодны для изучения «с нуля», а какие опираются на языки, которые Вам немного знакомы.
Выясните, какие из языков хорошо документированы, имеют учебники, написанные простым и понятным языком, развитые интернет-сообщества.
А дальше всё сами. Своими собственными руками.
И да пребудут в Вами усидчивость, аккуратность и скрупулезность.
Контрпример: у меня есть брат, он работает на одном из последних заводов (если не последнем), производящим интегральные схемы; грамотности у него нет совсем — может и жы/шы написать, и знаки препинания по вдохновению расставлять. Но он начал работать с низких позиций и вот еще 6 лет как руководитель производственной группы. И руководство людьми, и проектами, и сам поднимал вычислительные кластеры, сдх, линии производства, купленные у немцев, настраивал и запускал. В его серверной порядок и красота редкие.
Но вот напишет где-нибудь жы/шы и, видимо, прослывет среди сторонников вышеизложенного мнения больным несобранностью и неаккуратностью. Печально.
Если обращаться к частным случаям, то могу контраргументировать:
1. Мой племянник (детинушка тридцати лет, двух метров роста и с кулачками размером с мою голову) закончил РРТИ по специальности «Программирование чего-то там». О своей работе особо не распространяется, но заработок весьма достойный, стабильный. Что-то связано с обеспечением инфобезопасности в банковской сфере.
Взяли бы на эту работу человека с улицы без ВО?
2. Был у нас программист. Пришел к нам сразу после диплома. Год проработал, год назад ушел. Не смогли удержать — ни зарплаты предложить подходящей, ни перспективы роста. Так он программировал — как Лиепа танцевал: легко и стремительно. TP, C++, C#, JS, PHP, T-SQL и много чего еще.
Первое наше «боевое» знакомство было таким. Он пришел и сидит. А мне понадобилось извлечь несколько тысяч BLOB'ов из таблиц MS SQL. Ну я ему задачу и задал. Он только спросил какую-нибудь IDE. Дал ему TP-7. Думал, ему дня два понадобится… Через полтора часа все было сделано в лучшем виде. Только у десятка файлов пришлось расширения сменить ручками.
И считаю, что в данном случае именно ВО позволило ему так легко ориентироваться во всех этих ЯП. А попробуйте получить ВО, если жы/шы пишЫте.
3. Были еще и практиканты, которые после колледжа собирались идти в ВУЗ. Весьма грамотные ребята. Уже успевали поработать в нескольких проектах — сольных и коллективных. Но понимали, что только высшее образование в сильном ВУЗе может дать глубокие и систематизированные знания.
4. С другой стороны было полно и таких, которые, закончив колледж, не знают толком ни управляющих структур ни одного ЯП, ни функций форматированного вывода… А амбиций и гонора — помойным ведром не вычерпаешь. Таких провожали без сожаления и не просили возвращаться.
ВО без грамотности брат также получил, к счастью, word давно научился исправлять и правописание, и пунктуацию.
В застойные времена было принято писать сочинение даже при поступлении в технический ВУЗ. И сделав 2-3 незначительные грамматические ошибки, можно было распрощаться с надеждой на поступление.
Так что, понятие ВО и элементарной грамотности для меня являются практическими синонимами.
Потом стало проще… Поэтому наш директор изобрел свой собственный метод борьбы с безграмотностью. Если в документе были орфографические ошибки, он его черкал, мял и бросал в личико подателю. Не уверен в педагогичности такого метода, но действенность была на лицо :)
Вы действительно считаете, что TP, C++, C#, JS, PHP, T-SQL и много чего еще он получил там же, где и диплом? Очень сомневаюсь. Скорее получение диплома весьма напрягало и мешало ему получать дополнительные навыки.
С чего это "мешало"?!
Если Вы лично ненавидите образование, это не значит, что "нужно закрыть все ВУЗы, потому что они мешают".
А не надо сомневаться :) Во всяком случае, когда он мне объяснял основы C# (это мне лапотному так… для антересу токмо), то постоянно ссылался на своих преподавателей и на то, как его учили и ему самому объясняли.
Конечно, не думаю, что все свои знания он получил только и исключительно в ВУЗе. Но там он получил главное — систематическую основу. А еще у него были толковые преподаватели, плюс близкое окружение единомышленников. А это, согласитесь, при обучении тоже немаловажно.
Но повторю свою более раннюю мысль: Любые, даже самые продвинутые курсы способны только заложить фундамент. И чем лучше обучение, тем фундамент прочнее и ровнее. Но без постоянной самостоятельной работы эти знания так и останутся фундаментом. Т.е. ниже уровня плинтуса.
Так что, одно без другого быть не должно. Граммотная школа и профессиональное саморазвитие.
Это в любой интеллектуальной профессии так. Например, врач без образования — шарлатан, а врач без практики — потенциальный преступник.
Кроме того, не знаю, как сейчас и как в России, но в 2006-м в соседней стране вступительные экзамены в любой ВУЗ включали экзамен по государственному языку. На мой факультет был неиллюзорный шанс пролететь мимо, допустив в диктанте пару ошибок.
Это я к чему: конечно, грамотность в профессии программиста вторична, но повлиять на обучение и карьеру она все-таки может.
Что касается ВУЗа, по-моему пойти туда стоит. Ради знакомств и базы. Автор как минимум получит обзор фундаментальных тем и будет знать, что гуглить при необходимости. К тому же, скорее всего ему попадется несколько хороших преподавателей, от которых все-таки будет заментая польза. Только институт выбирать надо тот, который лучше, а не тот, который ближе.
Скорее всё-таки это не причина. Советская система образования, остатки которой мы наблюдаем, делалась по принципу "сейчас государство тебя научит а потом возьмёт к себе на работу (и не откажешься, а то накажем)", соответственно образование было генератором кадров для государственных вакансий. По крайней мере в сфере умственного труда было так. Теперь эта схема мало где работает, и непонятно кому это всё надо в итоге. А вот компании, которым нужны ИТ-специалисты (именно для себя, а не просто обучение), по идее могут наладить и эффективное обучение. Но им это не особо надо (на начальных этапах), т.к. все и так самообучаться привыкли.
И тогда стимул будет и идти в преподавание, и поддерживать актуальный уровень знаний.
Главное — что плохих преподавателей студенты не посещают. Т.е. старые пердуны вылетают из этой системы сразу.
А преподаватели, не будучи штатными, преподают не полный рабочий день, а один раз в неделю. Это ему как хобби, как разнообразие в жизни — но оно полезное для семьи: не забирает деньги, а немного приносит.
даже после окончания университета, без самостоятельного обучения не стать IT-специалистом
Это давно пора понять всем. А универ ради корочки очень даже ок, особенно заочка. Мало ли как жизнь сложится, а диплом — это соломка.
Оно тебе надо, пробиваться через недоверие и учиться холодным звонкам по эйчарам с попыткой уговорить тебя послушать?
Без указанной вышки Хренова туча контор даже не откроет твоё резюме.
По-хорошему, и не надо там работать. А в реальности, кстати, эти же конторы сами шлют тебе приглашения на собеседование, хотя в описании вакансии явно указано "высшее техническое".
Вышка внезапно значит то, что человек достаточно целеустремлен и стрессоустойчив, чтобы довести до конца проект длиною в 5-6 лет. Будь я работодателем, я бы спрашивал про вышку. Не важно по какой она специальности и какие оценки, главное, что человек смог.
Есть два человека: Вася и Петя. Вася отсидел, как и полагается, 4 года в ВУЗе, исправно учил материал перед сессией за ночь и за следующую ночь его забывал, математика была на первом и втором курсе сдана методом написания шпаргалок и к окончанию ВУЗа полностью забыта, как впрочем и большинство остальных предметов. Программировал Вася только на лабах, да и программированием это не назовёшь, брал код однокурсников, менял немного интерфейс и сдавал преподу, которому впрочем было насрать, лишь бы работало. Знания у Васи очень поверхностные, опыта программирования нет, но зато есть корочка. Петя же не пошёл в ВУЗ, а учился сам, сам прошёл основы computer science, осилив труды Таненбаума и других авторов, сам изучил основы математики, на уровне уверенный лин ал и ан гем и немного матана(для геймдева) и много других полезных для будущей профессии вещей. Также Петя постоянно писал код, начиная с решения примеров из учебников и заканчивая своими проектами. За это время Петя успел немного поработать на фрилансе, но понял, что это ему не подходит и решил устроиться в офис. И вот приходят к вам два кандидата: Вася и Петя. Кого возьмёте на работу? Кто по вашему мнению более целеустремлённый?
Необразованная молодёжь