А вы правда умеете программировать?

Вопрос отчасти провокационный, суть вопроса в том, что что значит "умеете программировать",
значит "запомнить много функций" или значит "запомнить и знать что и где искать в гугле и все понимать"?
просто слово "Запомнить" это самое основное в этом деле , но как можно запомнить столько много функций и несколько языков, при приеме на работу уже высокий порог вхождения, разве каждый "программист" помнит все функции , вот например запомнить основные заголовки HTTP (часто это нужно) , а сколько функций в одном языке и сколько у них параметров тоже запоминаете все ? А сколько разных запросов SQL тоже все помните ? А что если функция просто устарела(ну тут очевидно уже гуглите новую)... выучили основы html, css, js, php потом еще выучить настройку серверов типа nginx или apache (конфигурационные файлы и их синтаксисы), потом учить sql синтаксис, разве все все это помнят?
А ведь я читал разные истории программистов кто меняет работу и там уже требуют другие знания, фреймворки например, а что если программист знает один фреймворк потом ему переучиваться на новый,
ну это же физически ни времени ни памяти не хватит, причем каждый программист (мое мнение) понимает что нет большого смысла запоминать много функций и можно всегда лезть в гугл.

Вот например у меня ушло (засек время) 1 час плюс минус, на то чтобы написать функцию не сложную которая будет делать запросы в БД и выводить результаты в html , все связывал через js,html, PHP и естественно вместе с sql, просто чтобы вспомнить что и как делать, действительно ушел 1 час, там были теги типа ну кто знает тот понимает что все это это тоже не за 1 минуту делается это физически не получится, как минимум вспоминать сидеть нужно, но конечно не знаю как у вас, может быть у вас все иначе вы все всё помните.

Суть вопроса:
вы делаете записи какие то важные для вас, где то в текстовых файлах, чтобы зайти подсмотреть, шпаргалка так называемая ?
  • Вопрос задан
  • 2909 просмотров
Решения вопроса 1
Alexandre888
@Alexandre888
Javascript-разработчик
вы делаете записи какие то важные для вас, где то в текстовых файлах, чтобы зайти подсмотреть, шпаргалка так называемая ?

да, записываем, при чём довольно часто.
но, знаете, в чём главный секрет этих шпаргалок? к ним никто и никогда после записи больше не возвращается.
в основном, стараемся запоминать все аспекты, тренируя память и улучшая собственные навыки.
подсмотреть каждый может, но будет ли от этого какая-то польза? я не думаю.
ни в одном адекватном языке программирования не существует вещей, которые запомнить невозможно.
Ответ написан
Пригласить эксперта
Ответы на вопрос 11
FanatPHP
@FanatPHP
Чебуратор тега РНР
Очень показательный вопрос.
И очень, очень, очень показательные ответы.
Наглядно показывают то, как обыватель представляет себе программирование:
назапоминать побольше "функций", в продвинутом варианте - записывать на бумажку, и совсем уровень бога - уметь пользоваться гуглем. Для поиска этих самых функций.

Слово "алгоритм" ни в вопросе, ни в многочисленных ответах не встретилось ни разу.

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

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

Вообще, я тут подумал что разница между программистом и таким вот "рисовальщиком" (как мне правильно попеняли в комментах, я обижаю своим сравнением настоящих ухдожников) очень простая - рисовальщик боится не запомнить все функции, а программист пишет свою. Как только ты написал свою первую функцию, чтобы избежать рутинного повторения в стандартной операции - ты сделал первый шаг к тому, чтобы стать программистом. И опа - ты уже можешь забыть десяток стандартных функций, посольку у тебя уже только одна, которая выполняет работу тех десяти. собственно, работа программиста и стстоит, в каком-то смысле, в том, чтобы не использовать (и - соответственно - не запоминать) стандартные функции. У него есть библиотека своих функций
Ответ написан
CityCat4
@CityCat4
//COPY01 EXEC PGM=IEBGENER
значит "запомнить много функций" или значит "запомнить и знать что и где искать в гугле и все понимать"?


Детский сад, штаны на лямках. Уметь программировать - это решать поставленную задачу качественно и в срок. Методология решения - ну, она может быть непосредственного начальника заинтересует, и то, если на code review ему не понравится, как написано. А руководству - ему аще плевать, оно оценивает с точки зрения бизнеса.

Лично я ничего не записываю. Основной набор функций запоминается сам по себе вместе с методологией решения общих задач, конкретный формат вызова, список параметров, коды возврата и прочее - всегда есть ман и гугл. Нельзя обьять необьятное. А если на языке работаешь редко - так и элементарщину приходится гуглить - я вот на перле например пишу раз в три месяца - ессно я многое не помню.
Ответ написан
Комментировать
bingo347
@bingo347
Crazy on performance...
В вопросе наглядный пример моего утверждения, что "учить" - это плохое слово. В нашем мозгу оно ассоциируется с зазубриванием чего-либо. Вот только зазубривая что-либо освоить это не получится. Но тем не менее слово "учить" встречается крайне часто: люди пытаются учить программирование, учить языки (неважно C# или английский), а учить таблицу умножения нас подсаживают еще с младших классов. Не надо учить. Это бесполезно. Стихи еще можно учить, понимание мыслей автора это не даст, но память натренирует. А вот программирование, языки и таблицу умножения учить не нужно, нужно понять. Правда вот учителя начальных классов многие сами таблицу умножения не понимают, а тупо заучили наизусть, и так и продолжают передавать ученикам, с XIX века ничего не поменялось.
Вы можете выучить синтаксис языка, но это лишь шелуха, абстракция, набор правил как преобразовывать этот язык в другой. Без понимания знание абсолютно бесполезное. Ну знаете Вы, что существуют в некотором условном языке if, for, while. Но сможете ли Вы из этого составить некоторую программу без понимания что это и зачем. А заучивание Вам этого понимания не даст.
Вы можете выучить функции стандартной библиотеки, но это опять шелуха. Эти функции кто-то написал, часто на том же самом языке, на котором Вы их используете. Но без понимания, что они делают Вы и с ними программы не составите.
А как Вы собираетесь учить составление алгоритмов? Да у многих сейчас есть мнение, что этот навык не нужен, что все алгоритмы уже составлены, но это иллюзия.
А навык решения проблем, как заучить его?

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

То есть все, что Вы собрались учить - это лишь инструменты. Скажите, сделает ли Вас плотником, то что Вы зазубрили как выглядит молоток, а как рубанок? Зато плотник может не знать, как работать с каким-то конкретным станком, но достаточно быстро начнет с ним работать, если дать ему документацию к этому станку. С программистами все так же.
Ответ написан
Комментировать
Robur
@Robur
Знаю больше чем это необходимо
Уметь программировать - это уметь решать поставленные задачи быстро и качественно с помощью написания кода.
А сколько чего вы там помните или не помните, не так неважно, если вы хорошо делаете свое дело. Если вам шпаргалки помогают решать задачи - пишите шпаргалки, если помогает что-то другое - делайте что - то другое.
Ответ написан
@cicatrix
было бы большой ошибкой думать
Я вообще не считаю, что запоминание ключевых слов и названий функций, пусть даже из стандартной библиотеки какого-либо языка может сделать кого-то программистом. Тем более, что языки и библиотеки имеют тенденции устаревать, а на их смену приходят всё новые языки. Я начинал с Бейсика, потом Фортран, потом Си, потом Паскаль, потом плюсы, потом "до диез", потом JS, потом Python. Половины из того, что знал, разумеется, уже не помню. Но по прежнему себя, я думаю, имею право называть программистом, потому что, пусть и с большим скрипом, я могу писать на чистом асме, причём, обладая даташитами, на любой платформе, но, разумеется, в реальной жизни я этого не делаю практически никогда. Однако, знание того, как в итоге твой программный код исполняется, что конкретно происходит в процессоре, как из транзисторов собираются логические вентили, как потом эти вентили организуются в блоки процессора, как данные хранятся в памяти, как работает стек протоколов TCP/IP, позволяет мне себя считать программистом, хотя я и не имею в этой области формальной корочки об образовании. Кроме того, эти знания позволяют мне применять для решения задач практически любой язык программирования. Да, безусловно, тонкостей многих языков я не знаю, и много специалистов просто уделают меня "под орех", если речь зайдёт о написании кода на скорость. Однако, за годы практики, у меня скопился неплохой репозитарий практически готовых решений на практически все случаи жизни, которые написаны не Васей со stackoverflow или github, а мной лично. Если хотите, моя папка "Projects" и есть мой блокнот, где я держу свои записи.
Ответ написан
Комментировать
profesor08
@profesor08
"Вот банальная строка", удали первое и последнее слово, а слово посередине замени на любое другое.Сделай это экспортируемым функционалом, чтоб можно было использовать много раз в разных местах. Покрой тестами. Выполняя задачу сделай вид, что ты не знаешь встроенных в язык функций для работы со строками, при этом не пользуясь интернетом. Сможешь придумать алгоритм для это дела и оформишь все как надо - молодец, программировать умеешь.
Ответ написан
Комментировать
azerphoenix
@azerphoenix
Java Software Engineer
Все прекрасно понимают, что человеческая память неидеальна. А значит, каждый из нас может чего-либо забыть.

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

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

Есть какие-либо базовые знания, которыми вы должны владеть в зависимости от вашего уровня, специализации
Ответ написан
Комментировать
@Kirill-Gorelov
С ума с IT
Я вообще иногда путаю в php json_encode и json_decode.
Ответ написан
Комментировать
wataru
@wataru
Разработчик на С++, экс-олимпиадник.
Умение программировать - это прежде всего некоторая разновидность умения мыслить абстрактно. Это возможность в уме составить последовательность действий приводящих к нужному результату и записать ее на языке программирования.

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

По мере приобретения опыта эти стандартные части языка и алгоритмы станут базой и запомнятся.

Но главное различие между теми, кто может стать хорошим программистом и остальными - это способность мыслить абстрактно.
Ответ написан
Комментировать
@MADZX
Все это -шум треск и хлопанье крыльев !
Основная способность программиста - умение алгоритмизировать задачу !
А вторая способность - умение писать для людей !!!
То есть писать так, чтобы ваши программы не раздражали пользователя,
а создавали для него комфортную среду общения с машиной.
А это умение приходит с годами, с опытом.
Без этих двух способностей нельзя стать Программистом,
а можно стать только кодером, которых к сожалению сейчас большинство.
Ответ написан
Комментировать
Lucian
@Lucian
https://t.me/MakeFreelance
В голове стараюсь много не держать, чтобы голова была чистая, в основном это гугл и куски предыдущего кода, само собой за много лет уже сложилась эффективная система подхода к решению любых проблем клиентов.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы
ФЛАЙ НЭТ Москва
от 70 000 до 70 000 ₽
IXORA Нижний Новгород
от 115 000 ₽
Wanted. Москва
от 60 000 до 120 000 ₽