@rock4ster

Как развиваться в программировании не привязываясь к языку?

Добрый день! работаю программистом в (тбСкрипт, немного php, js) около года и возникла проблема в том что нету базы, сложно разбираться в структуре поддерживаемых продуктов, практически не возможно написать на том же уровне новый код и становится скучно ходить одними и теми же путями. А хочется писать красивый и понятный код. Вот и возник вопрос, как правильно развить фундамент? На примере JS или C# например
  • Вопрос задан
  • 7362 просмотра
Пригласить эксперта
Ответы на вопрос 15
  • myjcom
    @myjcom
    Clean Code: A handbook of software craftsmanship / Чистый код: Создание, анализ и рефакторинг
    Год издания: 2013
    Автор: Robert Martin / Роберт Мартин
    ISBN: 978-5-496-00487-9

    The Clean Coder: A Code of Conduct for Professional Programmers / Идеальный программист. Как стать профессионалом разработки ПО
    Год издания: 2012
    Автор: Robert C. Martin / Роберт Мартин
    ISBN: 978-5-459-01044-2

    Алгоритмы. Справочник с примерами на C, C++, Java и Python
    Год издания: 2017
    Автор: Хайнеман Д., Поллис Г., Селков С.
    ISBN: 978-5-9908910-7-4

    Design Patterns. Elements of Reusable Object-Oriented Software/Приемы объектно-ориентированного проектирования. Паттерны проектирования
    Год издания: 2015
    Автор: Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides/Гамма Э., Хелм Р., Джонсон Р., Влиссидес Дж
    ISBN: 978-5-496-00389-6

    Test-driven development by example / Экстремальное программирование. Разработка через тестирование
    Год издания: 2017
    Автор: Kent Beck / Кент Бек
    ISBN: 978-5-496-02570-6

    Грокаем Алгоритмы. Иллюстрированное пособие для программистов и любопытствущих
    Год издания: 2017
    Автор: Бхаргава А
    ISBN: 978-5-496-02541-6

    Алгоритмы. Теория и практическое применение
    Год издания: 2016
    Автор: Стивенс Род
    ISBN: 978-5-699-81729-0

    прочитать нужно все

    ну и на закуску
    C Unleashed / Искусство программирования на C. Фундаментальные алгоритмы, структуры данных и примеры приложений. Энциклопедия программиста
    Год: 2001
    Автор: Heathfield R., Kirby L. / Хэзфилд Р., Кирби Л.
    ISBN: 0-672-31896-2 / 966-7393-82-8
    Ответ написан
  • @protven
    Хороший программист к языку особо и не привязан. Имхо, главное нормальная база теоретических знаний - алгоритмы, основные протоколы, общие паттерны и, самое главное, опыт. Код фигачить надо, тогда и будете развиваться.
    Ответ написан
  • toxicmt
    @toxicmt
    CTO at hexlet.io
    Самую главную книгу тут не назвали: SICP (Структура и интерпретация компьютерных программ).

    > СИКП — не книга про языки программирования или разработку программного обеспечения, не книга по ООП, функциональному программированию или паттернам проектирования.

    > СИКП — книга об информатике (computer science). Восприятии компьютеров как абстрактных машин, используемых для манипулирования данными. Несмотря на то, что книга впервые опубликована в 1979, она до сих пор не потеряла свою актуальность и не потеряет в будущем. СИКП неизменно находится в топе лучших книг по обучению программированию на протяжении десятков лет.

    guides.hexlet.io/how-to-learn-sicp
    Ответ написан
  • Decadal
    @Decadal
    Или "как правильно стать хорошим пилотом, не привязываясь к самолёту".

    Вы можете менять языки как перчатки, а можете сосредоточиться на одном конкретном языке, но самое главное: решать разные задачи. Вопрос только в разнообразии задач и требуемом качестве их решения. Тогда язык становится инструментом, "одним из".
    Ответ написан
  • vvpoloskin
    @vvpoloskin
    Инженер связи
    Жизненный опыт подсказывает, что если знаешь два-три разных языка хотя бы на уровне пет-проектов, уже не привязываешься. Особенно хорошо, если изучите C, любой скриптовый, приукрасите асмом и для общего развития хаскелем/лиспом. Там уже без разницы будет на чем кодить. Важно понимать, что ЯП всего лишь инструмент для реализации какой-либо задачи.
    Ответ написан
  • 32bit_me
    @32bit_me
    Программист, встраиваемые системы
    Практика и самостоятельный проект (хотя бы попробовать). Основное правило: не спешить и переписывать код многократно до просветления и идеальной структуры всего проекта.
    Ответ написан
  • devalone
    @devalone
    ̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻
    писать код. Как бы это банально не звучало, но многое постигается с практикой. Также полезно читать всякие умные статьи с best practies, умные книжки, но писать код важнее.
    maxresdefault.jpg
    Ответ написан
  • @lxsmkv
    Test automation developer
    Как писать бестселлеры не привязываясь к языку. Нет, не получится. У каждого языка своя парадигма, свой менталитет. Читать много. То что понравится брать на заметку. Читать про сами языки, как они возникли, какие проблемы они хотели решить когда были созданы. Какие возможности эти языки предлагают, читать сравнительные статьи, холивары даже. Читать код всяких библиотек и sdk. Он обычно написан опытными программистами.
    Изучатъ историю становления компьютерных вычислений как дисциплины. Пробовать разные языки, хотя бы на уровне базовых туториалов. Про паттерны почитайте. Например www.gameprogrammingpatterns.com - там рассматриваются некоторые в контексте разработки игр. В контексте игростроя вообще концепции легче воспринимаются, это область применения которая понятна и знакома практически любому человеку. Так же, например если хочешь получить практические навыки в автоматизации, нет ничего лучше чем начать с написания игровых ботов. Игры такой контекст который задействует практически все технологии и области компьютерных знаний.
    Ответ написан
  • machetero
    @machetero
    gotlib.info
    Удивительно, что никто не советует почитать Макконела. Его книга считается лучшей по программированию без привязки к языку.
    Ответ написан
  • Приветствую!
    работаю программистом в (тбСкрипт, немного php, js) около года и возникла проблема в том что нету базы,

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

    сложно разбираться в структуре поддерживаемых продуктов,

    Это не ваша вина. Миллионы программистов до вас наваяли какую-то жуткую мешанину кода, а вам разбираться? Вы не сможете ничего сделать в такой ситуации, только дописать ещё немного кода, за который вас проклянёт тот, кто будет разбираться после вас. Смиритесь.

    практически не возможно написать на том же уровне новый код

    Есть только два уровня кода - понятный и непонятный. Компьютеру всё равно, с каким кодом работать, а человеку - нет. Пишите понятный ЧЕЛОВЕКУ код.

    и становится скучно ходить одними и теми же путями.

    Такова особенность нашей профессии. Расслабьтесь и получайте удовольствие :)

    А хочется писать красивый и понятный код.

    ВОТ! Вот это и есть суть вопроса!
    Считайте, что красивый - это понятный.
    Где-то писали, что человек может удержать в памяти не более 7 понятий одновременно.
    Разбивайте код на смысловые (именно смысловые!) блоки, содержащие не более 7-10 действий. Безжалостно режьте, если больше. Давайте классам и методам длинные понятные названия. Используйте транслит вместо "благородного" английского.
    И если за это вас запишут в быдлокодеры, несите это прозвище с гордостью!!!

    Вот и возник вопрос, как правильно развить фундамент?

    Уж точно не читать всю ту макулатуру, которую тут насоветовали. Если б она помогала, вопрос, подобный вашему, не всплывал бы с удручающей регулярностью.
    Ответ написан
  • @ufadiz
    Как основу можешь взять книги по алгоритмам, а по мышлению можно взять СИКП - структура и интерпретация компьютерных программ.
    Ответ написан
  • Эти книги советую прочесть:
    Code Complete
    Clean Code
    Clean Coder

    По алгоритмам и структурам данных:
    Sedgewick algorithms

    Можно решать задачи:
    Книга Cracking the coding interview
    leetcode.com
    hackerrank.com
    Ответ написан
  • @SilentFl
    еще забыли сказать что не нужно вариться в одиночку - нужно общаться с другими программистами: работа в команде, отправление своего кода на код-ревью и ревью чужого кода, парное программирование.
    Можно смотреть исходники других проектов, опять же - участие в opensource
    Изучать best practices по своему языку, пробовать смотреть другие языки
    Ответ написан
Ваш ответ на вопрос

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

Войти через TM ID
Похожие вопросы