@IT-2020

"Тест на способность стать программистом" версия Джоэля Спольски. Что думаете?

Добрый день. Наткнулся в сети на такое обсуждение датированное 2011 годом.
https://softwareengineering.stackexchange.com/ques...
Где на вопрос как обучить нулевого человека программированию на .Net один ответ (человека названного в заголовке) звучит так
"Сперва даешь читать
Code, by Charles Petzold.
The C Programming Language, K&R
The Structure and Interpretation of Computer Programs, Abelson and Sussman.
Освоит? Хорошо. Нет - не трать на него время - не способен.
А сразу учить тот же C# ASP.net - это ошибка".

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

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

И если стоит - то по книге про C (про последнюю пока рано наверное думать) - по ней стоит сейчас учится? Насколько дружелюбна к новичкам или хотя бы не устарела.
Под устарела понимаю - не устарел ли код. Не манера написания его, а чисто чтобы те примеры которые в книге работали в современной версии языка (если наивный вопрос, простите новичка).
  • Вопрос задан
  • 845 просмотров
Решения вопроса 3
sergey-gornostaev
@sergey-gornostaev
Седой и строгий
Подход утрированный, но посыл правильный.
Ответ написан
lxsmkv
@lxsmkv
Test automation engineer
То чем многие в советах новичкам пренебрегают, и на чем я от всей души настаиваю - по ходу дела ознакомиться с историей каждого из широко распространенных языков программирования. В каких условиях и для чего он был создан, какую проблему он был призван решить. Какие языки, и парадигмы на него повлияли. Читая, смотря видео об этом и ходя по ссылкам вы сильно укрепите базу, это будет не зря потраченое время.

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

Cи - надо сказать, не самый удобный для повседневных задач язык программирования. Просто он один из "старых". Он создавался когда IT ландшафт выглядел совсем иначе. Никакими вебами 2.0 тогда и в помине не пахло. Был распространен Юникс. И Java я бы тоже не советовал для обучения, там много неочевидных вещей для неподготовленного ума. Т.е для решения прикладных задач он хорош, но для обучения - нет.

Можете сразу начать изучать JavaScript, который собственно является основным языом программирования применяемым в веб-приложениях. Вас ведь как я понял ведь "веб" привлекает? Чем удобно изучать JS - браузер предоставляет вам готовую платформу для создания графической оболочки приложения. Стыковка действий в графической оболочке на HTML/CSS и функций в скрипте реализована очень интуитивно. Могу порекомендовать "Самоучитель JavaScript" Марины Дмитриевой - книжка старая, но очень правильная. С задачами и решениями которых в современных "учебниках" не найдешь.

Однако LOGO (как упоминалось выше) я тоже могу порекомендовать для изучения азов. Вот одна из его современных инкарнаций - https://ccl.northwestern.edu/netlogo/. Там даже веб-редактор есть. Куча примеров из коробки. Сразу есть контекст применения - агентное моделирование.
Чем хорош LOGO - его синтаксис на мой взгляд хорошо демонстрирует и прививает процедурный подход.
Например, последовательность команд или говоря иначе процедура отмечается блоком
to <что-сделать> 
... 
end
В блоке поочередно указываются все процедуры которые необходимо вызвать для выполнения <что-сделать>.

А вообще, заходишь сюда https://repl.it/languages/ и сюда https://www.tutorialspoint.com/tutorialslibrary.htm
выбираешь любой язык из туториала и пробуешь. Сравниваешь.
Ответ написан
SeanCooper
@SeanCooper
IT и все с этим связанное.
На самом деле я одновременно и согласен, и нет.
Во-первых, да, очень хреново, когда "вайтишники" учат яваскрипт на курсах стань уберпрогером за 2 месяца и бегут во фронтенд, апая свое чсв до небес, но:
Если ты вайтишник с никаким бэкграундом и не хочешь развиваться, то ты всю жизнь будешь вайтишником с никаким бэкграундом.
Вот что будет, если вы начнете с Сплюсов? Во-первых, да, куда лучше будете понимать, что вы делаете и зачем, код будет чище просто потому что иначе сложнее хеллоуворлд у вас ничего не запустится. Так что с этой стороны такой подход правильный, имхо. С другой стороны, если вы начнете с Сплюсов, то первые месяцы будете втыкать в консоль, в вас будут тыкать эррорами и вы будете учить-учить-учить. Всякий ли вывезет?
С другой стороны, вы можете начать, например, с питона или веба. Они проще, вам не нужно заморачиваться с особенностями языка, вы просто придумываете в голове алгоритм и пишете его на максимально понятном языке, почти на уровне псевдокода. Да, такой подход менее производительный в плане железа. Да, такой подход рождает часто корявый код. Но такой подход часто рождает стремление развиваться и по-настоящему крутых прогеров.

Подытожим:

Можно научиться плавать с пенопластом в руке у берега, а можно - бросившись в центр реки. И тут кто-то не сможет возиться с пенопластом, а научится с пары прыжков в реку, а кто-то, прыгнув - получит фобию на всю свою жизнь и будет потом месяцами оправляться после нее в бассейне с инструктором. И тот, и другой метод имеют право на жизнь. Да и каждому тут свое.
Ответ написан
Пригласить эксперта
Ответы на вопрос 6
@McBernar
Начинать с СИКП — ну такое.
Сначала нужно привить интерес к разработке. Или понять, что он уже есть в человеке.
И если человеку действительно станет интересно этим заниматься — он сам найдет и прочитает все, до чего сможет дотянуться.
Ответ написан
@NewDevLab
Читай, впитывай, запоминай, пробуй.
Через некоторое время сам поймешь, что еще надо.
одновременно же можно, в прикладной задачи появилась неясность - обратился к истокам.
Ответ написан
anton_reut
@anton_reut
Начинающий веб-разработчик
Стоит попробовать в любом случае. Пример - я, по образованию специалист по PR, по профессии маркетолог, и всё это не мешает мне успешно заниматься программированием и сайтостроением.
Ответ написан
@ar2rsoft
PHP-developer
Я бы максимально быстро начал с практики и если штырит от того что код заработал, что он что-то сделал, и от понимания сколько всего можно сделать - то тут врядли какой-то тест вас остановит)
Ответ написан
@asd111
На мой взгляд чтобы быть хорошим программистом достаточно знать алгоритмы и структуры данных применимо к своему языку программирования и знать плюсы и минусы своего языка программирования. И хорошо бы знать альтернативы своему языку и знать насколько они лучше-хуже. И еще важно уметь пользоваться инструментами профилировки и т.п.
Ответ написан
opium
@opium
Просто люблю качественно работать
Вместо того чтобы прочитать любую книгу по программированию и научиться программировать, вы стартере какую то хрень
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы