еще один язык

nerezus

Вселенский отказник
dimagolov Т.е. вы хотите сказать, что полное отсутствие опыта в определенной области не влияет на качество продукта? Слабо верится )
 

Sherman

Mephi
2dimagolov
Я за профессионализм. В нашем мире(среди множества программ на самых разных языка программирования) так много говнокода(примерно 95% видимо), потому что кол-во профессионалов сильно меньше, чем людей, получающих деньги за то, что они называют программированием. И оно никак не зависит от технологий(ок, ну совсем чуть-чуть :)). Подход, "каждый гасконец с детства академик" или "изучил с++ за 21 день" как правило поднимают на знамена те, кто является основным саплаером говнокода. И что еще более интересно, даже знание общих концепций не избавляет от изучения нового, просто сокращает время и делает более комфортным этот процесс.

Я привел пример с java и web.

Дык вот вопрос. Имеет ли смысл такое "изучение" языка или технологии?
С моей точки зрения не имеет, потому что это просто трата времени. Максимум, на что хватит знаний, это цитировать ман, да спорить на форуме. Чтобы сделать реальный проект надо больше знаний(спеки, либы, best practice, environment и так далее и это помимо всего остального, что должен знать любой программист).

Разумеется, я говорю о коде, за который деньги платят. "Утилиту для себя" я могу написать на чем угодно, но все это код не production уровня.

Возвращаясь к теме, которую поднял ТС, еще раз призываю, изучайте подходы, идиомы, библиотеки, а не синтаксис языков(это последнее и самое легкое дело).
 

dimagolov

Новичок
nerezus, про какой опыт идет речь? или знание одного языка и опыта программирования на нем означает "полное отсутствие опыта" когда нужно программировать на другом? а знание двух? а трех? а десяти?
и потом, про какой опыт идет речь? знать все нюансы даже одного ЯП и одной библиотеки невозможно, постоянно нужно обращаться к документации, исходным кодам, чтобы уточнить важный в ДАННЫЙ момент нюанс. потому что память так устроена, невозможно помнить все детали. даже свой код через год читаешь как первый раз, а уж что говорить о чужом. поэтому опыт это то, что во-первых приобретается, а во-вторых имеет мультипликативный эффект. то есть если ты уже знаешь пять ЯП, то шестой тебе будет выучить легче, чем пятый.

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

vovanium

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

fixxxer

К.О.
Партнер клуба
Языки программирования тут вобщем то не имеют значение, имеют значение парадигмы которые в них реализуются.

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

А тонкости по большому счету пофигу, я вот не помню например порядок аргументов и точные имена дофига какого количества функций пхп и помнить не собираюсь; когда приходится иногда писать код на чистом пхп без фреймворка, вообще могу долго ман курить вспоминая как там руками работать с мысклем например=)

В ман заглянуть недолго, нафиг этот весь мусор помнить если посмотреть - это нажатие двух клавиш? Это уровень кодера. Хороший девелопер же видит все приложение как и сверху целиком как некий каркас архитектуры, так и все детали вплоть до того как откуда и куда байтики бегают. Нафиг надо помнить, как именно называется какой-то метод - гораздо лучше помнить, что для того-то есть такая-то либа, которая умеет то-то и то-то и применима в таких то случаях с такими то ограничениями. А это опыт, а не чтение мана.
 

dimagolov

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

nerezus

Вселенский отказник
или знание одного языка и опыта программирования на нем означает "полное отсутствие опыта" когда нужно программировать на другом?
В большинстве случаев - да, если только языки - не "братья".
1) Писали на прологе? Питоне? Джаве? Перле? Асме? Неужели много общего?
2) А откуда вы будете знать, что применяете правильные методики?
3) Что знаете, где лежат грабли?
4) Вы можете быть уверены, что не пишете жуткий говнокод(например использование структурного подхода на прологе)?
 

Духовность™

Продвинутый новичок
я вот часто в резюме соискателей вижу, что люди знают по 10-15 языков программирования! как думаете, это фейки?
 

nerezus

Вселенский отказник
triumvirat если подумать, то сомнений просто не останется. Советую )
 

Sherman

Mephi
Но есть исключения и я знаю несколько таких. Но, в любом случае, надобно пуд соли съесть, чтобы писать. А то вот попадешь на интервьюера, который, например, увидит у тебя знание с++, задаст пару вопросов чуть поглубже Страуструпа и будешь потом писать на форуме: "а чо он меня спрашивал про Х когда я пришел устраиваться на Y" ;-)
 

whirlwind

TDD infected, paranoid
Ну вы блин сравнили C++ и Java. Напомню, что рассматривать язык в отрыве от задачи - обсуждать сферического коня в вакууме. Красивую 3D графику на Java рисовать ничуть не легче, чем на C++. И на сях и на яве это просто задолбаешься делать из-за кучи деталей. Потому что это - платформозависимые вещи. А вот явовский мультитрединг с гениально-простой синхронизацией даст +100 при разработке кросплатформенных бизнес-приложений (в том числе веб) по сравнению с любым низкоуровневым языком, который дает платформозависимый код.

Вообще, мне импонирует Java: легко, бесплатно, качествено, документировано, строго, платформонезависимо, JNI, etc.
 

Sherman

Mephi
2HraKK
Сегодня, это в лучшем случае junior. Чтобы устроиться на работу плюсистом надо быть на уровне человека, который уже знает exceptional c++, Саттера ну и шаблоны. С++ - это не с с классами.
 

HraKK

Мудак
Команда форума
ммм, ну наверно, я не знаю точно. Просто даже в Страуструпе есть кое какие такие мелочи и детали реализации, что думаю мало кто ответит.
 

Sherman

Mephi
2HraKK

Ну вот навскидку, afair, Страуструп почти ничего не пишет о том, как можно безопасно работать с ресурсами(RAII), про smart pointers, про шаблоны(1 глава про синтаксис, нету про TMP), почти ничего нет про exception safety, про идиому pimpl.

updated:

Нет, про exception safety есть(приложение), но у Саттера эта тема полнее раскрыта.
 

HraKK

Мудак
Команда форума
Дык, никто не говорит что прочитал 1 книгу и все - ты гуру. Я про то что Страуструп новичку будет не понятен, эта книга для тех кто уже знает С++.
 

Sherman

Mephi
2HraKK
Мы говорим про средний уровень. Гуру, это наверное, большой опыт, цитирование стандарта, потроха компиляторов, Александреску на ночь :)
 
Сверху