Как НЕ учить языки?

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

В связи с этими мыслями вопрос: как учить язык(чтобы найти работу) и одновременно не учить язык(чтобы не привязываться к синтаксису)?

Мне нравится Java и Python, по обоим прочитал по паре книжек, написал пару простых приложений, периодически стараюсь найти на гитхабе какой нибудь проект и что то изменить/добавить.
Недавно увлекся Haskell и нашел сборник задач, сижу решаю потихоньку. Но ведь со знанием Haskell каким нибудь Java-junior не возьмут, там всякие JSF, JSP, JDBC, etc. надо практиковать.
И еще вопрос: есть ли толк в решении подобных задач на совершенно другом языке?
  • Вопрос задан
  • 3470 просмотров
Решения вопроса 3
onqu
@onqu
weasy
Все просто, чуть более чем очень. Нужно понимать, как можно решить задачу (в вашем случае это программирование) и знать, как пользоваться инструментом (в вашем случае это язык) для ее решения. Решений и инструментов может быть больше одного. Также решения могут зависеть и от инструментов, то есть зная, как решить с одним инструментом у вас не будет знаний, как решить с другим, более того, третий инструмент может решать задачу совершенно другим способом, а четвертый - бессилен.

Декомпозировали.

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

Ave!
Ответ написан
saboteur_kiev
@saboteur_kiev Куратор тега Python
software engineer
Вы немного путаете смысл ответа.
Никто давным давно не "учит" языки программирования, потому что выучить большинство языков можно за несколько дней, поэтому что там учить.. Базовый синтаксис языка нужно просто знать, и базовое понимание во всех языках схоже, кардинальных отличий не так много.
Но писать на базе, то есть на чистом языке программирования - это прошлый век.

Все пользуются библиотеками, фреймворками, движками. Вот изучить их - это годы.
Ответ написан
leventov
@leventov
Совет "не учи языки, учи программирование" странный. Фундаментальные знания важны (а может и не особо), но без призмы опыта оно в любом случае не работает.

Поэтому УЧИ язык и решай-решай-решай задачи, 10000 часов. Можно менять язык.

Не бывает крутых инженеров/тимлидов, которые бы не съели в свое время собаку на каком-нибудь языке, или даже нескольких.
Ответ написан
Пригласить эксперта
Ответы на вопрос 4
@dmitryKovalskiy
программист средней руки
У программиста по идее должно быть 2 навыка. 1) Построение алгоритма решения задачи( тут язык не нужен) , 2) Знание платформы, на которой предстоит работать( тут язык в общем-то тоже не ключевую роль играет). Вам надо понять разницу между Языком и Платформой(Framework). Язык - это набор синтаксических инструкций, его выучить нужна неделя. А вот Платформа уже неиссякаемый источник открытий. Вот вы написали JDBC - это технология общения с базой данных. Если вы понимаете как программа должна общаться с БД - поиск нужных классов и инструкций для написания рабочего кода займет пару часов.
Ответ написан
Комментировать
@potan
Функциональный программист
Знающему Haskell и умеющиму на нем программировать не составит труда выучить питон и джаву на юниорском уровне. При этом писать на них он будет качественней, чем те, кто начинал знакомство с программированием именно с них.
Основная проблема будет освоить библиотеки (и фреймвоки). Здесь действительно лучше помогает обучение именно на том языке, на котором придется работать. Язык и инфраструктура очень сильно влияют на импользование и подходы к изучению библиотек (я не могу понять, как джавапрограммисты живут без REPLа, но они от его отсутствия похоже не очень страдают).
Ответ написан
@Lev_Shestov
Читать не только о языках программирования, но и книги, посвященные общим вопросам программирования, например, "Совершенный код" Макконнелла. В конечном счете, программирование не сводится к написанию кода, смысл программирования в решении задачи, а инструмент вторичен. Если вы можете написать программу на псевдокоде, значит, вы значительно ближе к ее созданию, чем в том случае, когда вы знаете много-много языков, но не представляете с какого края начать работать.

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

Смысл вот в чем: в вакансии важно понимать круг задач, который будет перед вами стоять, а язык выбирать нужно исходя из того, что больше по душе. Если, конечно, поставленные задачи дадут вам такой выбор.
Ответ написан
Комментировать
customtema
@customtema
arint.ru
Да, если у вас есть время - толк будет.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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