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

Добрый день! работаю программистом в (тбСкрипт, немного php, js) около года и возникла проблема в том что нету базы, сложно разбираться в структуре поддерживаемых продуктов, практически не возможно написать на том же уровне новый код и становится скучно ходить одними и теми же путями. А хочется писать красивый и понятный код. Вот и возник вопрос, как правильно развить фундамент? На примере JS или C# например
  • Вопрос задан
  • 9527 просмотров
Пригласить эксперта
Ответы на вопрос 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
Ответ написан
toxicmt
@toxicmt
CTO at hexlet.io
Самую главную книгу тут не назвали: SICP (Структура и интерпретация компьютерных программ).

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

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

guides.hexlet.io/how-to-learn-sicp
Ответ написан
Комментировать
@protven
Хороший программист к языку особо и не привязан. Имхо, главное нормальная база теоретических знаний - алгоритмы, основные протоколы, общие паттерны и, самое главное, опыт. Код фигачить надо, тогда и будете развиваться.
Ответ написан
Decadal
@Decadal
Или "как правильно стать хорошим пилотом, не привязываясь к самолёту".

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Похожие вопросы