Pull to refresh

Comments 51

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

То есть если есть stackoverflow то грех им не пользоваться, но сначала надо подумать и сформулировать, а также определиться что мы ищем и в какую сторону.

То есть решать по одной схеме «гуглить — не гуглить неправильно». Иногда придется прогуглить 3 разные вещи, и из них слепить решение.
Мне кажется, должно быть чувство «выполненной задачи на хорошо», то есть бежать гуглить проблему со всех сторон — это даже не плохо, просто необходимо брать не первое попавшееся, а изучить вопрос, сформулировать оптимальное решение для конкретно нашего случая, вставить и порефакторить выбросив ненужные части.
Страшно становится тогда, когда ты нашел на stackoverflow схожий вопрос, но на него никто так и не смог ответить…
Или когда, проанализировав простыни логов, замучив до смерти дебаггер и таки найдя решение через 3 дня, возвращаешься на SO победителем, а на этот вопрос уже ответили.
Да, у меня такое же было полгода назад… Первоначальные ощущение — «обидненько».
Но потом понимаешь, что пока 3 дня ковырял — ты реально вырос.
И тогда осознаешь, что эти 3 дня не были пустой тратой времени.
понимаешь, что пока 3 дня ковырял — ты реально вырос.

Обычно, что я понимаю, что я невнимательный идиот.

Зато как приятно, продравшись через дебри, написать ответ на этот вопрос =)

из крайности в крайность сэр!
Мне Гугл даёт очень многое, особенно с того момента, как я сел за swift. Учитывая довольно активное развитие этого языка всегда стоит отслеживать так называемые «best practices».
А, ну и ещё Гугл отлично сбивает спесь: только ты начинаешь думать, что так круто и хитрО решил какую-то задачу, как Гугл подкидывает вариант не хуже, а то и лучше.)))
а зачем вы решаете такие задачи, какие уже решены в гугле? Вроде как решать своими силами нужно то, что в гугле не нашлось.
Многие задачи проще и/или надёжнее решить самому, чем воспользоваться чужим решением.
велосипед?

p.s. я не против них, но общество почему то против.
К сказанному оратором выше мог лишь добавить: а) реально уникальных проектов под мобильные платформы практически нет б) когда я начинал писать диссертацию и, соответственно, программу симуляции для кхм… демонстрации алгоритма, то вносил некую инновационность, через пару лет схожие алгоритмы(местами немного лучше или хуже, не суть) увидел у своих «коллег» из других институтов. Так что даже то, чего не нашлось в гугле сегодня, через пару дней/месяцев вполне может там появиться и в улучшенном виде.
Помню время до широкополостного интернета, когда просто сидишь и пишешь программу. (((
Библиотеки и документация тогда были оффлайновые по умолчанию.
Пока не появится какой-то хитрый баг, и сидишь, ковыряешься в доках и дебаггере. А это для начинающего программиста было 95+% времени. Дальше лучше, конечно, но все равно…
Плохое быстро забывается.

<offtop>
"широкополостной" — это с широкими полостями)
</offtop>

Не совсем в тему программирования, но близко. Преподавал студентам основы сисадминства. На лабах принципиально не существовало методичек. Было задание выданное за неделю, был комп с виртуалкой, был гугл. Все как в жизни) А дальше все делились на думающих и тех, у кого не работали тупые копи-пасты из интернета… Потому, что как гласит старая мудрость «Чтобы правильно задать вопрос, надо знать больше половины ответа». В программировании очень похоже, stackoverflow это великолепно, но больше половины ссылок надо отсеять сразу же, т.к они не совсем о том, что тебе нужно или это решение похожей, но не твоей ситуации. А в твоей оно иногда еще и наоборот вредное. Вот для этого нужно разбираться в предмете! Так и на экзаменах, честно говоря, тоже давал пользоваться всем) Но это мало кому помогало без понимания предмета…
Вот это, кстати, очень правильный подход. У нас так живо отсеялись зубрилки, у которых теория прям, что называется, от зубов отскакивала, но на практике как-то не сложилось. Они могли чуть ли не дословно пересказать конспект по курсу «Теория ОС», но задача правильно разбить винт и установить Винду вводила их в ступор.
Я думал что в оригинале «правильный вопрос уже содержит половину ответа», но ваш вариант тоже хорош
Мы оба оказались неправы)
Это цитата из Роберта Шекли «Вечный вопрос»

«Ничего более конкретного они не добились. Долгие часы они мучили Ответчик, мучили себя, но правда ускользала все дальше и дальше.
— Я скоро сойду с ума, — не выдержал Морран. — Перед нами разгадки всей Вселенной, но они откроются лишь при верном вопросе. А откуда нам взять эти верные вопросы?!

Один на планете — не большой и не малой, а как раз подходящего размера — ждал ответчик. Он не может помочь тем, кто приходит к нему, ибо даже Ответчик не всесилен.
Вселенная? Жизнь? Смерть? Багрянец? Восемнадцать?
Частные Истины, полуистины, крохи великого вопроса.
И бормочет Ответчик вопросы сам себе, верные вопросы, которые никто не может понять.
И как их понять?
Чтобы правильно задать вопрос, нужно знать большую часть ответа.»

Кстати рекомендую прочитать, он очень хорошо дополняет статью и комментарии! Ответчик в рассказе Шекли очень напоминает современный Гугл :)

Да, в оригинале этот рассказ называется несколько иначе. «Robert Sheckley, „Ask A Foolish Question“ и точная фразу звучит как „In order to ask a question you must already know most of the answer“, так что переводы могут отличаться, но смысл остается. Рекомендую прочитать оригинал, он всегда богаче перевода.
Гугл не всегда помогает. Как пример конкретно сейчас я работаю над закрытым продуктом, который не используется нигде за пределами компании, так что довольно часто гуглиь бесполезно — все равно никто ничего не знает про наш стек технологий ;)
UFO just landed and posted this here
Главное — потом в этих постах отметиться.
Такое больше было характерно для CodeProject.
На SO качество ответов и кода значительно выше.
Хотя чужой код никогда не вставлял — побаиваюсь :)
Бояться вставлять чужой код имеет смысл только если не понимаешь что в нём происходит)
Я junior, для меня Google — хлеб насущный. Он помогает мне решить мои задачи, уложится в срок. Я не считаю это плохой практикой, так как когда я сталкиваюсь с подобной проблемой, я знаю как её решить. Единственное, я чувствую себя кодером, который ничего кроме кода не делает. Просто набирает код, чтобы начальник был доволен и я уложился в срок. Мне хочется стать программистом. Тем человеком, который сначала тщательно обдумывает архитектуру, а потом пишет прекрасный код. Как будто его руки были омыты слезами тайландских девственниц. Наверное, мне просто нужно больше практиковаться и набираться опыта, так что, Google, я рассчитываю на тебя :)
Я вот стараюсь найти готовую реализацию моей задумки в гугле/гитхабе/гитлабе/etc. Если найду, посмотрю как мыслил автор и перенесу идею в свой проект. Это, конечно, грубо и не интересно, но чего поделать.
10 лет в IT, 3-5 в программировании — я только вчера узнал про оператор % (остаток от деления) проходя собеседование которое само собой с треском провалил… я Google-oriented программист, и у этого подхода есть огромный минус — отсутствие фундаментальной базы, получаемые навыки/опыт ограничены проблемами с которыми пришлось столкнуться.

Это смотря как гуглить. Лучше разок какой-нибудь специально составленый курс пройти с задачками на то на сё, чем чисто с практическими задачами бороться. Все эти курсы же составляют специально, чтобы охватить базу.
http://exercism.io/

UFO just landed and posted this here
Чаще всего я гуглю тексты ошибок и куски стектрейсов… И никогда — чужой код

А так же сравнительные тесты технологий, фреймворков и т.п. И никогда — чужой код
Уровни профессионализма программиста.

Уровень 1. Ты понимаешь о чем проблема.
Уровень 2. Ты умеешь хоть как-то решить проблему.
Уровень 3. Гугл/Яндекс тебе помогают только как справочники.
Уровень 4. Тебя перестают материть другие программисты в команде.
Уровень 5. Не ты ищешь работу, а работа ищет тебя.

Уровень 6. Ты уже не пишешь на языке программирования — ты пишешь сам язык программирования.
Уровень 7. Твоя программа пишет тебя, потому что боготворит тебя и хочет быть похожей на тебя. Она заменяет тебя ботом.
Лично мне тяжело с пустыми глазами копипастить куски кода. Пока не разберусь в его работе, всегда в голове будет висеть мысль, что «у тебя висит костыль, нужно с ним разобраться», даже если он без проблем решает поставленную задачу; а работать над проектом с такой мыслью не очень комфортно.
Идешь на stackoverflow, а единственный верный ответ, давал ты сам…
Объем информации поглощаемый программистами настолько высок, что без использования гугла можно просто остаться не у дел с устаревшими знаниями. Мало какая книга даст оперативное решение проблемы, да и для другого они предназначены. Но и бездумно копипастить код для решения своей задачи редко получается. Почти все требует доработки и адаптации под задачу.
Несколько лет назад неожиданно для себя обнаружил, что перешел в состояние «у меня по работе возникают в основном такие вопросы к гуглу, ответов на которые нет не только на stackoverflow, а вообще нигде в интернетах». В лучшем случае обнаруживаются посты с неотвеченными аналогичными вопросами. И не могу сказать, что это делает меня более счастливым.

Иногда документация написана столь плохо, что только гуглинг примеров и спасает. А если к этой платформе ещё и только привыкаешь — то тупое копирование неизбежно, ибо не знаешь как вообще можно писать по другому.
А если не очень хорошо знаешь английский, то всё программирование вообще в принципе сводится к гуглингу.
Да и вообще в 21 веке живём вроде. Все виды велосипедов уже давно написали за нас. Плодить новые просто бессмысленно (хотя иногда хочется, чем и занимаюсь на досуге).
Вообще считаю что проблемы гуглинга именно в отсутствии (адекватной) документации. Потому что если дать человеку топор и лес — он сможет построить дом. Но если дать аборигену не заправленную бензопилу — он никогда не распилит ей дерево. Откуда ему вообще знать что нужен бензин? А в инструкции будет: «для того чтобы завести бензопилу — резким движением потяните за кольцо». Тут только гуглинг поможет…
Вот и я в программировании чувствовал себя также. Особенно когда только начинал. Берёшь книгу а там: «откройте простым текстовым редактором, бла-бла-бла int main() бла-бла-бла, а теперь скомпилируйте.» А на деле это сработает только с первым примером из книги (если вообще сработает). Окажется компилятор надо сначало найти, скачать, установить, при компиляции указать нужные ключи. Сам редактор может сохранять фаил не в той кодировке. И вот начинает безумно гуглить по каждому пунктику…
Или например начинаешь по книге изучать объекты. Изучаешь массивы. А как создать массив обьектов? Меня например это ввело очень в большой ступор когда я изучал java. (славу богу сейчас я на python-е сижу)
И что самое страшное как раз именно гуглинг и не помогает. А всё потому что каждая следующая подсказка — создаёт с 10-ток новых вопросов.
Во общем негодую я.
А если к этой платформе ещё и только привыкаешь — то тупое копирование неизбежно, ибо не знаешь как вообще можно писать по другому.

Вот я не понимаю как это — тупо копировать, не пытаясь понять код, который копируешь. Да, приходилось иногда заглядывать и в код коллег, и в SO за помощью, но разве чисто самому не становится интересно, как оно работает? А если оно работает неправильно?
А как оно работает? а где посмотреть? А что делать если не знаешь даже где посмотреть?
Вы вот фреймворками пользуетесь? А лезете по коду глубже чтобы узнать как оно там работает? А если там просто тупые биндинги к готовым библиотекам? А в учебниках об этом пишут? Как узнать в принципе что код работает не правильно? Как узнаёте вы? Вы не пробуете для начало просто запустить чужой код — чтобы проверить а запускается ли он вообще?

> «не пытаясь понять код»
Вот скажите вы когда видите
cout << «Hello world!!!\n»;
Вам интересно как работает этот код? А если он работает не правильно? А откуда вам знать что именно это правильно?
А может быть надо:
cout << «Hello, world!» << endl;
или ещё хуже:
puts («Hello, World!»);
или так:
printf («Hello, World!\n»);
Попробуйте поймите. Как дойдёте до уровня ассемблерного кода — решите правильно ли оно работает. Я конечно утрирую. Но когда дело касается вывода строки на экран — все соглашаются, о том что, проще использовать готовый встроенный годами отлаженный функционал, чем писать свой. Я с такой же точки зрения смотрю на чужой код. Если написано «так» — значит кто-то продумал почему именно так а не иначе.

Когда дело касается незнакомой платформы — один фиг начинаешь с того что берёшь какой нибудь кусок чужого кода и пробуешь посмотреть как он себя ведёт. И никогда заранее не знаешь правильно это или нет. А теперь перечитайте моё сообщение выше: я писал о недостатках документации. Не о решении глобальных экономических проблем страны, а о том что программирование в принципе начинается с того что ты берёшь какой нибудь код и пробуешь его. Естественно при данном действии так называемое «понимание кода» отсутствует.

> разве чисто самому не становится интересно, как оно работает?
Если мы опять же будем говорить об решении глобальных экономических проблем — то мне действительно будет интересно как работает рабочий код. Но даже там мне будет интересно не «понять код», а «узнать алгоритм» код которого и осуществляется в каком либо рабочем примере.
если я не могу посчитать на листочке то что я хочу видеть от программы, то и саму программу я не смогу даже сформулировать. И никакой чужой код мне не поможет.
А если могу и есть адекватная документация то мне и копировать код не придётся.
А вот если я знаю чего хочу видеть на экране но не знаю какую команду задать, то тупое копирование — единственный вариант который у меня вообще есть.
Вы просто хотите, чтобы все возможные юзеркейсы разжевывались и клались в рот. Но мы живем в реальном мире — так не бывает.

А после таких вот копипастов приходится потом разбираться в написанных в разном стиле (а то и парадигме — и такое бывало) кусках кода с излишним или недостаточным функционалом.
> так не бывает.
Зато бывает как на рисунке с совой. И очень часто. Особенно новичкам. Которые эти ваши парадигмы только изучают…
не мы такие — жизнь такая… А потом удивляются почему на том же SO тысячи однотипных вопросов.
Когда на самом деле всем начинающим нужна просто маленькая шпаргалочка в виде таблиц с различными комбинациями.
«нужна просто маленькая шпаргалочка»
Это называется документацией.
А теперь вернёмся к моему первому комменту: Иногда документация написана столь плохо, что только гуглинг примеров и спасает.

Вызывать чужой код и копировать чужой код — это разные вещи.

Sign up to leave a comment.

Articles