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)
Ответ на: комментарий от tz4678

И да в бизнесе ценится только то насколько ты быстро решаешь задачу, а не качество твоего кода.

взаимоисключающие параграфы в любом софте сложнее лендинга от макаки.

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

и дают списки литературы

Мы в каком году? Нужные книги легко можно найти в сети. Чтобы прочесть «The C Programming Language», «The Unix Programming Environment» «The Practice of Programming» и «The Art of UNIX Programming», не обязательно получить этот список в универе, тем более, что там тебе его и не дадут.

WitcherGeralt ★★
()

П%№дуй в книжный (если нет нормального, то печалька: электронные книги дают функциональную возможность читать, но не дают психологического эффекта. Хотя хз как сейчас молодое поколение воспринимает инфу, может и прокатит), и листай всё, что есть. Что-нибудь обязательно приглянется - то и читай. Язык программирования не важен, важна заинтересованность.

А потом еще одну, и еще, и еще.

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

Это не значит, что ты должен избегать форумов и видеоуроков. Но книги дадут тебе базу. Про выбор книг можешь поискать тут на лоре, надавно было. Ну или создать другую тему

ЗЫ ну, как бы баян, но: английский важен. Впринципе, в любом нормальном деле, если ты не планируешь провести следующие 40 лет и умереть в мухосрани.

Deleted
()
Последнее исправление: Deleted (всего исправлений: 1)
Ответ на: комментарий от Deleted

электронные книги дают функциональную возможность читать, но не дают психологического эффекта

Психологический эффект даёт написание конспекта по мере чтения, а не формат книги.

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

электронные книги дают функциональную возможность читать, но не дают психологического эффекта

Не согласен, я предпочитаю исключительно электронный вариант, и удобство и эффект отличный.

важна заинтересованность.

А вот это главное, вне всякого сомнения, всё остальное приложится...

enso ★★★★★
()
Последнее исправление: enso (всего исправлений: 1)
Ответ на: комментарий от perl5_guy

Спасибо, я уже давно всё нашел. Самое важное из найденного представил тебе выше.

Очень умиляют ребята, которые ничего не могут сообразить сами без указки, но обязательно отказывают другим в этом умении.

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

В пятом комментарии посоветовали. Но все же это не то, с чего можно начать понимать как писать код.

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

Ну не знаю, деньги потраченные на Лутца достаточно неплохо замотивировали не забивать на изучение пихтона))0

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

У вас неверное представление о написании кода.
Программист — это не стенографистка.

anonymous
()

Где и как научиться программированию, а не только синтаксису?

По большому счету, «программирование» включает в себя следующие вещи:

  • Знание ЯП (то что ты называешь «синтаксис», хотя на деле это еще и общепринятые идиомы языка, общие принципы организации кода на этом языке, инструменты сборки/отладки/профилирования и т.п). Этому должны учить учебники по твоему ЯП
  • Алгоритмы и структуры данных. По этой теме есть учебники общего плана, а есть книжки типа Effective STL, описывающие реализации из конкретного языка
  • Архитектура кода. Смотри книжки про паттерны разработки, архитектуру корпоративных приложений и т.п. Есть вещи применимые ко всем языкам, есть специфика присущая отдельным ЯП
annulen ★★★★★
()

И не стоит забывать про практику, можно даже начинать с нее, в процессе поймешь, чего не хватает

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

там же учишься смайлы рисовать ((()))) а не программировать

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

SICP

Кстати, да! Спасибо, что напомнил. А встречный вопрос - вариант изучения Си по книге «Хакинг: искусство эксплойта.» ?

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

вариант изучения Си по книге «Хакинг: искусство эксплойта.» ?

Путь явно не для нуба. Хотя если ты хорошо знаешь асм, принципы работы ОС, стека и т.п., и при этом каким-то хреном не знаешь сишку, то может зайти

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

Благодарю за инфу! Учту. Кстати про STL, можно мнение? Некоторые авторы советуют не учить и не пользоваться этой библиотекой, чтобы понять язык C++.

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

Некоторые авторы советуют не учить и не пользоваться этой библиотекой, чтобы понять язык C++.

Это скорее способ не понять С++ (а пользоваться можно и не понимая)

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

Хотя базовую инфу по структурам данных можно и из документации кутишных контейнеров почерпнуть

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

Да и вообще, стандартная библиотека С++ - это часть языка. Нельзя говорить, что ты знаешь $ЯП, если ты не знаешь стандартную библиотеку $ЯП

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

Тогда советую Харви Дейтел, Пол Дейтел «КАК ПРОГРАММИРОВАТЬ НА С»

Deleted
()

Где и как научиться программированию, а не только синтаксису?

Писать программы. Без опыта ты не программист, пусть хоть наизусть стандарт C++ выучишь.

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

Архитектура кода. Смотри книжки про паттерны разработки, архитектуру корпоративных приложений и т.п. Есть вещи применимые ко всем языкам, есть специфика присущая отдельным ЯП

Еще про рефакторинг забыл добавить. У Фаулера хорошая книжка

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

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

Сам сейчас по его серии книг учусь. Он один из тех хейтеров STL и вообще новых стандартов языка C++. В своей книге по плюсам советует учить язык, а не библиотеку. Мне, как нубу ему возразить нечего. Но вот выше человек предрекал не долгое существованию специалиста без STL.

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

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

p.s. и вот смотри, с одной стороны - STL, с другой BOOST, а с третьей - Qt

metawishmaster ★★★★★
()

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

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

Только так у нас появится свой, российский, столлман.

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

Кстати, Qt тоже игнорирует STL.

Отнюдь, начиная с 5.0 Qt активно использует STL в реализации и постепенно депрекейтит дублирующуюся функциональность.

annulen ★★★★★
()

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

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

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

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

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

Но именно их спрашивают на собеседовании

Einstok_Fair ★★☆
()

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

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

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

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

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

umren ★★★★★
()

Брать и программировать чё-нибудь, лол.

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

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

InterVi ★★★★★
()

Где и как научиться программированию

В университете. Я изучал Турбо Паскаль в Целиноградском инженерно-строительном институте. Потом сам изучил Basic...

anonymous
()

Не то что бы удивительно, но за 3 страницы треда никто не посоветовал МакКонела «Совершенный код». Который именно что про принципы. К знанию CS в частности, очевидный 3хтомник Кнута, но это уже вряд ли нужно ОПу.

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

Тогда у меня для тебя плохие новости. Либо ты не умеешь считать до пяти, либо читать.

у меня для тебя плохие новости, ты упустил вариант, что я не умею ни того ни другого, так что у тебя проблемы либо с русским языком, либо с логикой

MyTrooName ★★★★★
()

Р. Мартин Игра ПрЧистый код

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

уже по «Я перечислю что не нужно делать: учить алгоритмы типа...» было ясно, что афтар может только «лепить из говна и палок сайт на коленке»

два чая этому господину! :)

metawishmaster ★★★★★
()

Держи алгоритм:

  • изучить любой адекватный ЯП (не Brainfuck)
  • писать на нём много
  • как станешь хорошо писать, посмотреть на любимую опенсорсную программу и учить тот ЯП, на котором она написана
  • коммитить в опеносорсные проекты и делать это хорошо и по делу, чтоб коммиты принимали
  • на этом этапе глупые вопросы должны отпасть
peregrine ★★★★★
()
Ответ на: комментарий от annulen

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

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

Непосредственно для программирования этот скилл не нужен, что подтверждается наличием определенного количества высокооплачиваемых социопатов в этой профессии. Хотя навык полезный, и не только для программистов

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