LINUX.ORG.RU

Как учиться программированию?

 


9

3

Где и как научиться программированию, а не только синтаксису? Вернее, чтобы вообще не стоял вопрос об ЯП. Есть ли признанные книги, курсы? Может есть варианты решения: изучаешь программирование через изучение синтаксиса или наоборот?

Посоветуйте пожалуйста для уровня нуба.

К примеру вот навскидку, что-то из подобного подойдёт?

1. https://www.intuit.ru/studies/courses/3533/775/info

2. https://www.intuit.ru/studies/courses/2193/67/info

3. https://www.intuit.ru/studies/courses/11876/1156/info

Буду благодарен за советы.

P.S. Это не толксы, не нужно тут чсв показывать.

★★

Последнее исправление: le_legioner (всего исправлений: 2)

Ответ на: комментарий от Deleted

Быдлокод абсолютно объективен, например отборным быдлокодом, который легко и с первого взгляда можешь определить сам, будет отклонение от всех пунктов pep8.

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

WitcherGeralt ★★
()
Ответ на: комментарий от WitcherGeralt

Быдлокод абсолютно объективен

Ололол.

отклонение от всех пунктов pep8

Из-за этого программы перестают работать?

Deleted
()
Ответ на: комментарий от perl5_guy

Зависит от универа, и ничему ты не научишься просто слушая. Надо ещё и код писать. И тем более на это не требуется 5 лет, если он хочет фронтенд ваять, например.

WitcherGeralt ★★
()
Ответ на: комментарий от WitcherGeralt

Хорошее изречение, конечно, но довольно мутное, т.к. непонятно, каким именно людям.

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

Deleted
()

Чтобы учиться программировать, делай три вещи:


  • Пиши код. А точнее, решай практические задачи посредством написания кода.
  • Учи теорию (этот пункт не должен останавливать тебя от написания кода).
  • Варись в среде. Читай ресурсы, заглядывай в чаты. Социальная часть важна.


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

quantum-troll ★★★★★
()
Ответ на: комментарий от Deleted

непонятно, каким именно людям

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

Да и какое это имеет отношение к желанию научиться программировать?

Беда в том, что, если разработчик не узнает про правила хорошего тона изначально, от него кто-нибудь рано или поздно услышит «да какая разница, работает ведь» в ответ на критику его нечитаемого, либо не оптимизированного тормозного говна.

Стайл, оптимизация, какие-то базовые вещи на тему безопасности (например, sql-инъекции — банальщина, казалось бы. ан нет, регулярно встречаются, спасибо быдлокодерам), официальные гайды по написанию кода на конкретном языке, общие вещи типа философии юникс — это всё и подобное я подразумеваю под правилами хорошего тона.

WitcherGeralt ★★
()
Ответ на: комментарий от WitcherGeralt

Беда в том, что, если разработчик не узнает про правила хорошего тона изначально, от него кто-нибудь рано или поздно услышит «да какая разница, работает ведь» в ответ на критику его нечитаемого, либо не оптимизированного тормозного говна.

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

Deleted
()
Ответ на: комментарий от quantum-troll

не рекомендую начинать с С

А почему?
Мне попалась задачка, под которую кмк C подходит. Весь день читаю описания функций, код пока писать не начал, но складывается ощущение, что язык достаточно прост.
Ранее писал на vbs, lua, python3. Язык в каждом случае выбирался исходя из задачи.

anonymous
()
Ответ на: комментарий от anonymous

Потому, что:
1. Сложно писать корректный код
2. Отсутствие полноценных средств для обобщения способствует порочным практикам и усложняет поддержку
3. Адовая инфраструктура, где нельзя всё собрать одной командой

quantum-troll ★★★★★
()
Ответ на: комментарий от quantum-troll

Язык можешь брать любой, хотя я не рекомендую начинать с С или С++.

Ну сишечку-то надо? Она идёт бок о бок с пониманием архитектуры железа и операционной системы.

mv ★★★★★
()
Ответ на: комментарий от UNiTE

Остановиться и подумать. Есть тысячи достойных занятий.

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

mv ★★★★★
()
Ответ на: комментарий от le_legioner

Берёшь практическую задачу, пытаешься определить, на каком языке её принято решать, читаешь доки по языку, ищешь что-то типа «хорошие практики при написании кода на языке $langname», решаешь задачу, по-пути изучаешь необходимую теорию по тем проблемам, с которыми сталкиваешься. Пиши велосипед, не ищи готовых решений. Когда напишешь велосипед, сравни его с готовыми решениями, осознай ошибки.

Можешь взять какое-нибудь хорошее тестовое задание в крупной компании. У Яндекса, например, они прямо в объявлениях о вакансии встречаются, либо можно выпросить у эйчара.

WitcherGeralt ★★
()
Ответ на: комментарий от burato

Это понятно. Я хотел именно услышать мнения. Ну вот к примеру я изучил синтаксис за полгода. Разве этого хватит? Нужно как минимум изучить git. Если остановиться на системном программировании Linux (ну хочу так), то что ещё необходимо из знаний? Ну само-собой это инглишь, советуют учить алгоритмы. Чем ещё новичку заняться, не теряя время на пустую теорию? Выше советуют набивать шишки идя по граблям и я считаю, что наверное, это самый дельный совет.

le_legioner ★★
() автор топика
Ответ на: комментарий от le_legioner

Вопрос о том, как работать, чтобы код писался.

Чтобы код писался, нужно работать начальником программистов.

slovazap ★★★★★
()
Ответ на: комментарий от slovazap

Вот! Наверное это мне и нужно - понять, что этот «начальник» будет требовать от меня кроме просто кода. Вернее, что он будет меня заставлять делать, чтобы код был вовремя и нужный. Наверное...

le_legioner ★★
() автор топика
Ответ на: комментарий от le_legioner

Ну вот к примеру я изучил синтаксис за полгода.

Всегда хватало 1-2 дня. Сначала копи-паста из справочника по функциям языка, потом копи-паста того, что уже написать получилось.

anonymous
()
Ответ на: комментарий от no-such-file

Научишься синтаксису, а не программированию. Или не прав? Посоветуй подобную книгу по Си и системному программированию. Буду признателен.

le_legioner ★★
() автор топика
Ответ на: комментарий от Deleted

Это если кодишь для души, для себя. А в продакшене потребуют же наверное ещё кое-чего? Но благодарю за советы.

le_legioner ★★
() автор топика
Ответ на: комментарий от Andreezy

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

WitcherGeralt ★★
()
Ответ на: комментарий от tz4678

Благодарю за советы. Они будут пригодны и для изучения Си и системного программирования?

le_legioner ★★
() автор топика
Ответ на: комментарий от le_legioner

Когда это уже далеко не первый язык, то, по-правде, все так делают в той или иной мере.

WitcherGeralt ★★
()
Ответ на: комментарий от Im_not_a_robot

Логично. Но есть же разница в программировании дома на кухне для своего чсв и в продакшене? Эта разница мне мозг выедает.

le_legioner ★★
() автор топика
Ответ на: комментарий от Andreezy

Потребуй flake8 сам.

Получишь свою горсточку уважения, если даже не от текущих коллег то от последующих.

alpha ★★★★★
()
Ответ на: комментарий от le_legioner

Но есть же разница в программировании дома на кухне для своего чсв и в продакшене?

Продакшен бывает очень разный.

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

Потом правда с этим опытом придешь в какую-нибудь шарашку и будешь белой вороной, поскольку там люди пишут код в блокноте на ворованной винде без контроля версий.

Но хотя бы тогда будешь здраво её оценивать.

alpha ★★★★★
()
Ответ на: комментарий от le_legioner

Зависит от продакшна. Вот ты сейчас думашь «а как там у серьёзных пацанов в продакшене?», а потом придёшь в продакшн и единсвенной твоей мыслью будет «Бля...».

WitcherGeralt ★★
()
Ответ на: комментарий от alpha

Или продолжительную серию косых взглядов, что чуть более вероятно.

WitcherGeralt ★★
()
Ответ на: комментарий от anonymous

Вот спасибо за ответ. Мне интересно. Но возраст не позволяет изучать акадимически - не 18 мне. Поэтому важны советы по поводу того, чего не нужно будет системному программисту на C/C++. Наверное я уже не успею стать идеальным специалистом, но быдлокодером тоже не хочется становиться

le_legioner ★★
() автор топика
Ответ на: комментарий от UNiTE

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

le_legioner ★★
() автор топика
Ответ на: комментарий от WitcherGeralt

Да может и эту почитаю. Может зайдёт. Но сейчас концентрируюсь на Си и немного плюсы через полгодика.

le_legioner ★★
() автор топика

Всем спасибо!

Немного прояснилось видение! Премного благодарен всем за потраченное время!

le_legioner ★★
() автор топика
Ответ на: комментарий от WitcherGeralt

Конечно не научишься. На лекциях тебе направления указывают, разбирают базовые вещи и дают списки литературы, осилить которую нужно самостоятельно.

У тебя превратное мнение о front-end'е. Там знать надо ололо сколько. Мне кажется, что через пару лет универсалы вымрут как класс и разделение на серверную и браузерную часть ещё резче станет.

perl5_guy ★★★★★
()
Ответ на: комментарий от tz4678

ТС, не слушай его. Таких как он я лично много лет выметал ссаными тряпками из проектов.

Deleted
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.