Как научиться писать самостоятельно код?

Примерно год обучаюсь языку JS, прочитал достаточно материала, ознакомлен неплохо с ооп, понимаю замыкания, также освоил DOM , в общем практически весь нативный js. Но когда дело доходит до практики, я начинаю спотыкаться, средние задачи и даже простые задачи к примеру на codewars бывает проблематично решить, вроде бы к примеру знаю как работает методы reduce, map и т.д. И в итоге сообразительность использования всего этого просто остутствует.Может все дело в тонкостях самого языка? Что посоветуете? Продолжать осваивать учебники(Фленаган,Крокфорд, learn.javascript, и тд)? Как вы набивали опыт?
  • Вопрос задан
  • 7095 просмотров
Решения вопроса 1
saboteur_kiev
@saboteur_kiev
software engineer
В школах и институтах учили строить алгоритмы, еще когда рисовали блок-схемы.
Это не зависит от языка программирования - нужно просто составить алгоритм для решения задачи. Изучая различные аспекты языка программирования, различные библиотеки, фреймворки и так далее вы просто приобретаете знания о дополнительных инструментах, которым нужно пользоваться для решения задачи.

Но само решение придумывает программист, а не язык программирования.

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

Например, взять какую-нибудь игрушку с множеством товара и найти самый выгодный или дешевый товар. Вам будет понятна цель - найти нужный вам товар
При этом не будет важно в каком виде - в виде веб-странички, в виде простого текста на экран, или в виде заполненной таблички в базе данных.
При этом не будет важно какими инструментами вам нужно воспользоваться.
Главное, что вы осознаете что именно хотите получить. И пишете программу, которая выдает вам результат, используя имеющиеся знания.
Чем больше знаний, тем удобнее в конечном счете пользоваться тем что вы написали и тем быстрее и проще вам это писать.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 8
sabramovskikh
@sabramovskikh
практика-практика-практика
Ответ написан
@bnytiki
Практикуйся уже.
За год "изучения" ты уже должен был писать и писать и писать.
JS - один из языков с низким порогом входа - не должно быть проблем с его освоением.
Ответ написан
Комментировать
xmoonlight
@xmoonlight
https://sitecoder.blogspot.com
В конкретно Вашем случае:
Сделайте себе такую табличку:
Название функции => выполняемое действие => Общий вид => Пример(ы) вызова
Затем рассортируйте по тематикам (сгруппируйте).
Как появляется вопрос - сразу смотрите в табличку, находите нужную и применяете.

Такое можно делать даже тем, кто очень хорошо помнит только один язык, но работает сразу с несколькими: это помогает "сводить концы с концами" (в плане подобия функций в разных языках, если что-то нужно подобное сделать на другом).
Язык программирования => Название функции => выполняемое действие => Общий вид => Пример(ы) вызова
Ответ написан
Комментировать
@lomaster
.NET и веб-разработчик
Тут можно поупражняться в решении задачек любой сложности Codewars. После решения задачи, вам дадут доступ к решению остальных, на этом тоже можно научится.
Ответ написан
Комментировать
iCoderXXI
@iCoderXXI
React.JS/FrontEnd engineer
Когда я только начинал учиться программированию, то для меня даже документация казалась темным лесом, потому что ну почитал я что делает команда, а зачем она это делает - не понятно...

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

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

Так же очень полезный навык - декомпозиция. Слона или кита нужно есть частями. Другими словами большую задачу дробим на логически обособленные части, сами части дробим еще, до тех пор, пока каждую маленькую часть не сможем решить кодом размером в 1-2 экрана. Тщательно тестируем на всякие редкие и крайние ситуации. Оформляем этот код в виде модулей, далее собираем как из кубиков "Лего" нужный результат. Тестируем связки компонент, на моем опыте примерно половина времени уходит на продумывание и гугление, от оставшегося времени 90% уходит на дебаггинг и тестирование, и только примерно 5% совокупного времени реально идет на собственно кодинг.
Ответ написан
Комментировать
dimasmagadan
@dimasmagadan
можете начать с этого шикарного видео курса
https://www.youtube.com/watch?v=wvH_OS777fg

Если серьезно, вам уже выше написали:
1 практика - берите заказы, больше заказов, разных
2 учите алгоритмы - посмотрите, по каким книжкам обучают сейчас в вузах. прочитайте хотя б одну
3 основная масса задач - типовые. для них инженерные решения вроде подбора алгоритмов не нужны. старайтесь искать не типовые задачи (хоть те же олимпиадные задачки попробуйте порешать).
Ответ написан
Комментировать
@private_tm
JAVA dev
1. разбераешь простенькии примеры побуквенно
2. побуквенно расказываешь что там просиходит
3. редактируешь существующие
4. пишешь свое(то что ты не можешь сходу пистаь это нормально так как банально мало практики и не запомнил конструкции) на основе примеров
5.пишешь свое уже без примеров
Ответ написан
Комментировать
herodream
@herodream
Полуфиналист ЧМ по программированию. Teamleader.
Практические навыки хорошо приобретать на решении задач. Здорово на учебных, когда можно познакомиться с образцом решения другими людьми, особенно если что-то не получается.

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

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

Войти через центр авторизации
Похожие вопросы