LINUX.ORG.RU

Насколько хорошо вы знаете свой основной язык программирования, с которым сейчас работаете?

 , самооценка,


1

1

Представим себе, что ваш работодатель напрочь разорился, и вам срочно надо искать новую работу.

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

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

>>> Результаты

★★★★★

Проверено: hobbit ()
Ответ на: комментарий от firkax

Ты знаешь пхп на 100%? :) Очень сомневаюсь.

amm ★★
()

А как на счёт входят ли знания математики? Например чтобы написать 3D игру нужно знать математические формулы, чтобы нарисовать 3D фигуру, применить перспективу, масштабирование и т.д. и т.п. А как на счёт XML, JSON, DB? Даже просто спрайты освоить и то нужно время. Захотел я сохранить TreeView и мне уже нужен формат позволяющий это сделать.

В идеале если написать справочник по всем функциям на русском языке, то любой джун станет специалистом на 100%. Открыл пример и он уже видит конструкцию кода для осуществления своей хотелки. Ещё в своём время по AutoIt3 участвовал в улучшении справки, переписывал примеры, отписывал множество недостатков на оф.форуме, десятками за один пост. Даже сейчас на PureBasic энтузиазма по меньше, но активно участвую в улучшении, предлагая свои примеры по мере изучения темы

AZJIO
()

Если вы скажете знаете ли вы синтаксис своего языка, я отвечу да, то есть вы наугад спросите есть ли такое то ключевое слово, я уверенно скажу да есть или нет (ну кроме кучи 3D функций, их в сумме 3 тыс.). Но это не значит что я могу манипулировать любыми функциями. Также есть просто нюансы, которые приходят с опытом. Например хочу проверить чётность числа, как математик я понимаю что надо разделить число на 2 и проверить остаток, 16 % 2 возвращает остаток от деления. Но потом выяснилось что надо проверить битовый флаг 1, то есть n & 1.

AZJIO
()
Ответ на: комментарий от AZJIO

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

amm ★★
()
Ответ на: комментарий от amm

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

AZJIO
()
Ответ на: комментарий от AZJIO

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

amm ★★
()

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

s_mark
()
Ответ на: комментарий от urxvt

благо Java достаточно простая и небольшая

Вздрогнул.

Стандартная библиотека же огромная

А, ну если ты эти сущности разделяешь, тогда верю. Не знаю как в Java, но в плюсах описание STL – это часть стандарта языка.

hobbit ★★★★★
()
Последнее исправление: hobbit (всего исправлений: 1)
Ответ на: комментарий от amm

Вопрос тут в том: «знание языка» это знание синтаксиса или знание, как на этом языке решать рабочие задачи. Можно ли назвать 1С программистом того, кто синтаксис 1С выучил, но может на нём разве факториал с сортировкой написать, потому как даже базовых понятий счетоводства не знает? Ну, явно же нет.

ugoday ★★★★★
()
Ответ на: комментарий от hobbit

Вздрогнул.

Почему? Небольшой же. Даже Питон в 10 раз больше и сложней.

А, ну если ты эти сущности разделяешь, тогда верю. Не знаю как в Java, но в плюсах описание STL – это часть стандарта языка.

У нас аж три спеки :)

Java is a recently-developed, concurrent, class-based, object-oriented programming and runtime environment, comprised of:
* A programming language
* An API specification
* A virtual machine specification

urxvt ★★★★★
()
Ответ на: комментарий от ugoday

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

amm ★★
()

Язык то я знаю на 100%, а вот библиотеки да бог на 20%

Zoonoid
()
Ответ на: комментарий от amm

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

ugoday ★★★★★
()
Ответ на: комментарий от ugoday

Это понятно, без знания инструментария программу и не напишешь. Но «счетоводство» в инструментарий не входит, даже в 1С.

amm ★★
()
Ответ на: комментарий от amm

А можно ли нанять «1С-программиста» без знания счетоводства и ожидать от него пользы в ближайшей перспективе? Я как-то три дня потратил на чтение документации к simple build tool (потому как оно ни хрена не simple!!!!). И знание синтаксиса скалы мне тут вообще не помогло понять что тут собирается, как и почему. А более опытный товарищ тут бы сделал всё за 5 минут.

ugoday ★★★★★
()
Ответ на: комментарий от CrX

Блюпринты в UE это тот же С++, но синтаксис знать не нужно, так что они как раз тянут на 0.000001%

Satou ★★★★★
()
Ответ на: комментарий от ugoday

Ты обязываешь 1С-программиста знать бизнес часть, а для скалы приводишь пример технической части. Если 1С-программист не знает как собрать свою программу, то это значит, что он не достаточно знает 1С. А за знаниями по «счетоводству» он и к аналитику может сходить.

amm ★★
()
Ответ на: комментарий от amm

Так уж вышло, что на скале не пишут складской учёт (нормальные люди), а на 1С — монадические транформеры (нормальные люди тож). Поэтому список ожидаемых навыков тоже разный. Но в любом случае есть некие ожидания «если ты программист на _, значит ты умеешь _».

ugoday ★★★★★
()

Вот если смог сделать Лисп на самом Лиспе - это сколько процентов?

necromant ★★★
()
Ответ на: комментарий от amm

Ты обязываешь 1С-программиста знать бизнес часть

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

bugfixer ★★★★★
()
Ответ на: комментарий от bugfixer

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

amm ★★
()

Не знаю, насколько хорошо, так как:

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

Хернул 50% =-) хотя вряд ли.

hatred ★★★★
()
Ответ на: комментарий от amm

Ты обязываешь 1С-программиста знать бизнес часть

А по другому не напишешь. Ты на языке 1С пишешь логику. Как ты её напишешь не зная логики?

AZJIO
()
Ответ на: комментарий от vbr

vbr

Именно язык (Java) знаю на условных 80%. Думаю, что даже на 90%, но буду скромен. Когда-то сдавал сертификацию, это потребовало очень глубокого изучения всех нюансов, но с тех пор уже много времени прошло, да и версии новые вышли.

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

baaba ★★★
()
Ответ на: комментарий от baaba

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

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

В целом лучшие LLM очень круты. У них могут быть какие-то мелкие погрешности, но если брать, например, олимпиадные задачи, то LLM сильно превосходят меня. И всё, что я знаю, в конечном счёте LLM или знает, или может нагуглить. Но это именно последние модели на платных подписках (chatgpt, claude использую).

vbr ★★★★★
()
Ответ на: комментарий от amm

а что значит знать язык программирования

Именно. Основной посыл был в том что на одном синтаксисе далеко не уедешь, и такое «знание языка» само по себе довольно бесполезно.

bugfixer ★★★★★
()

Go

40%

Ибо собрал очень много интересных материалов по языку с открытых источников и вообще ничего потом не прочёл.

Что, однако, не мешает уже который год работать на нём.

kaldeon ★★
()
Ответ на: комментарий от vbr

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

Я очень мало имел дело с кодом, до появления LLM. Но сейчас стал активно использовать для генерации кода, в подручном хозяйстве.

Вы используете для повышения продуктивности труда в кодинге? Или, в вашем случае, это не даёт преимуществ (например агент в вашем IDE с платным эндпоинтом типа Клода)?

baaba ★★★
()

А 100% это как? Знание наизусть стандарта С++?

dynamic_cast
()

Раньше было лучше, но сейчас процентов 80 (пишу на жабе последние 6 лет). Последние полгода практически весь код за меня пишет Claude, остается только направлять, корректировать и ревьювить этот рой агентов. Задач, которые он не может реализовать (при очень точных и гранулярных формулировках, при настроенных базовых промтах), почти не осталось.

unfo ★★★★★
()
Ответ на: комментарий от unfo

И да, теперь мотивация сместилась, грубо говоря, от «изучать новые языки, фичи, техногологии» к «как лучше писать скиллы для Claude, как делать прогнозируемую долговременную работу автономных агентов, как организовывать персистентную память вместе с оптимизацией контекста»

unfo ★★★★★
()
Ответ на: комментарий от baaba

Вы используете для повышения продуктивности труда в кодинге?

На 99% процентов моё использование LLM это просто чат в браузере. Я ему или задаю какие-то вопросы, по сути используя его, как замену гуглу. Или, например, копипастю фрагмент кода для review.

Или, в вашем случае, это не даёт преимуществ (например агент в вашем IDE с платным эндпоинтом типа Клода)?

Я очень консервативен, поэтому к вайб-кодингу отношусь строго отрицательно. claude code использовать периодически пытаюсь (в его CLI-ипостаси), но пока очень мало. В IDE я раньше использовал copilot, но где-то последний год перестал, раздражают его попытки писать код за меня. Сейчас стараюсь чётко разделять инструменты. Например ИИ делает правки в репозитории, которые я потом в IDE просматриваю, это всё независимые инструменты, ИИ я вообще в виртуалке держу с прокинутым каталогом с проектом. Особого смысла как-то совмещать это с IDE я не вижу.

В целом вижу перспективы для себя в двух направлениях:

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

  2. Организация автономной работы ИИ. Тут очень важно настроить всё так, чтобы ИИ мог полностью организовать себе цикл разработки. Были чёткие требования, были чёткие тесты, которые должны пройти, чтобы ИИ мог делать правки, запускать тесты и тд.

Но всё это портится тем, что мне нравится программировать, а следить за другими - не очень нравится. Поэтому всё это мне не сказать, что очень уж интересно. Да, КПД может и возрастёт, но зарплату больше платить мне не будут.

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

vbr ★★★★★
()
Последнее исправление: vbr (всего исправлений: 1)

Опрос странный, так-как… НУУУУУУ… Задумайтесь: Если я не имею представления о том, насколько мой язык обширный, то как я могу знать на сколько я его знаю??? — Я же не имею охвата всей панорамы и целостности картины. Ну?

  1. При желании, пшп можно заставить работать в сфере обычного ПО, например скрестить его с къютом, и пейсать на ПШП десктопные приложухи.
  2. Я никогда не пытался писать с использованием SQL
  3. Кодю без фреймворков.
  4. Новые фичи языка — бэкпортируются в PEAR для старых версий ПШП (подробности мне неизвестны)
  5. …И ещё несколько тысяч таких нюансов. — Как я могу оценить процент знаний языка, если я не представляю где лежат его пределы?
Set440 ★★
()
Ответ на: комментарий от amm

Логику ты пишешь на любом языке, но со знанием языка это никак не пересекается.

Так логика определяется техническим заданием. Если ты пишешь сортировку массива, ты должен знать, что такое «массив», что такое «упорядочить», что такое «меньше».

В 1С типовая задача выглядит примерно так: «Реализовать в пояснениях 10 к бухгалтерской отчетности, чтобы суммы, у которых счёт кредита 60.01 и вид расхода статьи затрат «Материальные расходы» попадали в строку Материальные затраты и не попадали в Прочие затраты». Для её понимания надо понимать, что такое (в программе) бухгалтерская отчётность, счёт, кредит, и аналитика проводки.

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

monk ★★★★★
()
Ответ на: комментарий от amm

Ты обязываешь 1С-программиста знать бизнес часть, а для скалы приводишь пример технической части. … А за знаниями по «счетоводству» он и к аналитику может сходить.

Должен ли программист на PHP знать HTML и HTTP? Или может за ними ходить к аналитику?

monk ★★★★★
()
Ответ на: комментарий от monk

К бизнес аналитику с этим бесполезно идти, к системному можно сходить, если есть необходимость. В современном пхп такая необходимость возникает очень редко.

amm ★★
()
Ответ на: комментарий от amm

В современном пхп такая необходимость возникает очень редко.

А отлаживать как? Не то сгенерировалось, что ожидалось, что делать? И как вообще определять, что ожидалось? Визуально в браузере?

monk ★★★★★
()
Ответ на: комментарий от vbr

vbr

Какие то из эпохи до LLM системы ревью кода, рефракторинга, Вы используете?

Адаптируете ли чужой код? Используете или чаще пишете с нуля? Или ведёте какие-то проекты, начатые давно?

baaba ★★★
()
Ответ на: комментарий от monk

Мы про бэка или фулстека говорим? Если фулстек то ему это конечно надо знать, если бек, то ему достаточно отдавать данные фронту по спеке. Знает он html или нет, на его знания php это никак не повлияет.

amm ★★
()
Ответ на: комментарий от baaba

Какие то из эпохи до LLM системы ревью кода, рефракторинга, Вы используете?

Не понял вопрос. Ревью кода через github pull request, как правило, если работаю в команде. Но чаще работаю один. Рефакторинг - ну пользуюсь инструментами в Intellij Idea, если речь про это.

Адаптируете ли чужой код? Используете или чаще пишете с нуля?

У меня на этом пунктик, зависимости я очень не люблю и чаще всего стараюсь писать всё сам. Использую либо зависимости, которые настолько общепринятые, что уже воспринимаются, как часть стандартной библиотеки (например Spring Framework в Java), либо зависимости, которые я не смогу качественно реализовать за разумное время (например реализацию ЭЦП для XML или реализацию формирования PDF-файлов). В целом чужой код я очень не люблю и если меня попросят адаптировать какой-то чужой проект, я скорей всего от такой задачи просто откажусь. Это именно про идеи из разряда «давайте возьмём такой-то проект с гитхаба, в котором миллион строк, и немножко допилим под себя». Вместо того, чтобы написать свой модуль из двадцати тысяч строк.

Или ведёте какие-то проекты, начатые давно?

Текущая компания, где я работаю, где-то в 2015 создавалась и весь софт примерно в то время начинал писаться. Я здесь работаю примерно с 2020 года. Часть проектов начиналась тогда, часть позже. Конечно люблю писать свежие проекты, как и все, наверное, но не всегда получается.

vbr ★★★★★
()
Последнее исправление: vbr (всего исправлений: 1)

Требую пункт «дурацкий опрос не знаю насколько». Как я могу знать, какую часть я знаю, если я по определению не могу знать, какую часть не знаю?

dimgel ★★★★★
()
Ответ на: комментарий от dimgel

Воспринимай этот опрос как сравнение своего ощущения знания языка с тем, как это воспринимают остальные.

Лично я, как автор опроса, поставил 20%, и это оказался самый непопулярный вариант. Все другие в большинстве своем считают, что знают язык на 70-80%. Но я в этом очень сильно сомневаюсь. Оказывается, люди в таких вопросах очень сильно льстят себе. Эффект Даннинга-Крюгера во всей красе :) На ЛОРе, только сегодня!

Xintrea ★★★★★
() автор топика
Ответ на: комментарий от Xintrea

Я вообще не проголосовал. Выше отписался, почему.

Set440 ★★
()
Ответ на: комментарий от Xintrea

Лично я, как автор опроса, поставил 20%, и это оказался самый непопулярный вариант. Все другие в большинстве своем считают, что знают язык на 70-80%.

Как измерять? Если как знание иностранных языков, то знание языка на 80% значит, что наткнувшись на случайный кусок текста на этом языке сможешь его понять без словаря в 80% случаев.

Для программирования примерно такое знание языка позволяет работать программистом общего назначения на этом языке. А 20% — это либо учишься, либо очень повезло получить место, где требуется решать задачи узкой специализации (например, чтобы делать печатные формы на языке 1С надо знать примерно 20% от языка, а печатных форм много). Или чтобы на Си++ писать решения физических задач (массивы, циклы, условия, арифметика, cin для ввода чисел, cout для вывода строк и чисел, всё).

monk ★★★★★
()
Ответ на: комментарий от CrX

Ну вполне возможно, ту же джаву или дотнет невозможно знать полностью. Классический пример плюсы, ты никогда не знаешь плюсы в полной мере, ты знаешь только тот диалект который у тебя непосредственно в работе и то не полностью. Потому что Embarcadero/Borland C++, Qt C++, Boost, исошные стандарты, майкрософтовский с++, это буквально разные языки, несовместимые друг с другом, которые по разному работают, и из общего у них только ++ в названии. Ты даже один стандарт плюсов условный С++17 знать не можешь, потому что где-то реализованы фичи, а где-то нет.

sbu_shpigun ★★
()
Ответ на: комментарий от Aceler

Стандарты С++ вообще никак не помогают в знании С++, потому что у половины компиляторов ещё полная поддержка С++17 не сделана полностью, а некоторые из современных компиляторов даже С++11 не могут, С++20 вообще не реализована, а уже высали С++26, в котором удалили фичи из С++20.

sbu_shpigun ★★
()
Закрыто добавление комментариев для недавно зарегистрированных пользователей (со score < 50)