LINUX.ORG.RU

Путь разработчика

 , ,


1

6

Добрый день!

Меня зовут Андрей.
Твердо решил стать грамотным программистом. Уже догадываюсь о том, что начнутся смешки и троллинг. Ну, ладно.

Посоветуйте хорошую литературу по алгоритмам, языкам: Assembler, C, C++. Не помешает хороший сборник практических задач по указанным языкам.

Ориентируюсь на программирование преимущественно в области встраиваемых решений, сетевого программного обеспечения, драйверов, различных компонентов операционной системы GNU и ядра Linux.

Правильно ли я определил теоретическую базу и объем для изучения необходимого минимума? Верна ли последовательность?

Сейчас имеются самые базовые навыки работы с Unix-подобными системами: умею устанавливать, настраивать и обслуживать Gentoo, устанавливать и настраивать FreeBSD, работать с утилитами из coreutils и т.п.

настраивать и обслуживать Gentoo

Это ну вот прям обязательно тебе пригодится. Ну ладно.

Assembler, C

Ресурсов тьма. K&R читать НЕ советую, хоть и классика, но устаревшая.

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

SICP

Чо? Не слушай этого старого педика, пацан.

anonymous ()

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

rumgot ★★★★★ ()

Начни с алгоритмов (хотя бы на той же Википедии) и книгам по устройству ОС, типа Танненбаума. Это теория, которая потом поможет. Для сети могу порекомендовать «UNIX. Разработка сетевых приложений» Стиверса. И не лезь сразу в ядро, попрактикуйся в юзерспейсе. Рекомендую почитать книги по Qt Шлее для этого, там же есть примеры кода.

А дальше уже смотри по возникающим вопросам

XMs ★★★★★ ()

Я — школьник.

Я бы на твоем месте ботал больше всяких фундаментальных наук, ибо голова лучше соображает

Твердо решил стать грамотным программистом.

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

Посоветуйте хорошую литературу по алгоритмам

Томас Кормен. «Алгоритмы. Построение и анализ.»

Практика тут намного важнее чем теория (однако, это не значит, что ты её не должен знать)

Assembler, C, C++

Выучи сначала C99/C11, ты еще тысячу раз передумаешь, кем ты хочешь быть. Можешь попробовать «Язык программирования С, 6-е издание» от Стивена Прата. И НИКОГДА НЕ СМЕШИВАЙ С И С++ - ЭТО ДВА СОВЕРШЕННО РАЗНЫХ ЯЗЫКА!

Ориентируюсь на программирование преимущественно в области встраиваемых решений, сетевого программного обеспечения, драйверов, различных компонентов операционной системы GNU и ядра Linux.

linux driver development тебе в помощь

Сейчас имеются самые базовые навыки работы с Unix-подобными системами: умею устанавливать, настраивать и обслуживать Gentoo, устанавливать и настраивать FreeBSD, работать с утилитами из coreutils и т.п.

Мелочи жизни, эникейщиком/кулхацкером и за пол часа можно стать

maxis11 ()

«Reverse Engineering для начинающих»
https://beginners.re/
Несмотря на немного «страшное» название, я бы назвал эту книгу одной из лучших о языке ассемблера,
особенно если тебе интересны причины генерации того или иного машинного кода после компиляции программ на C и C++.

Если неплохо знаешь английский, можно почитать «C 21 века»
https://rutracker.org/forum/viewtopic.php?t=5087598

goto-vlad ()

Мне кажется правильным подход Столярова. У него есть хорошие книжки, можешь их почитать. Первое это основные управляющие структуры, алгоритмы и структуры данных. Для их изучения подойдёт любой язык, можно и паскаль. Сложный язык вроде С может запутать, поэтому лучше попроще. Если есть возможность заниматься с кем-то более опытным, лучше то, что он посоветует и с чем поможет. Второе это низкий уровень, это машинный код и язык ассемблера. Я тут не специалист, знаю только x86 да и тот больше в теории, в целом x86 и x86_64 достаточно запутанные архитектуры, возможно ARM лучше, а может и не лучше. В целом самое главное, чтобы была реальная железка (не виртуалка), под которую ты мог писать реальный код на ассемблере и запускать его. 8086 в этом плане самый простой вариант. Зубрить весь ассемблер не надо, но уметь написать потенциально любую программу надо уметь. И только потом можно вплотную браться за C. А после и за С++, хотя это штука непростая.

В целом имей в виду, что работу низкоуровневым программистом в России найти сложно и платить скорее всего будут копейки. Возможно лучше переориентироваться на более востребованные языки. Хотя C знать надо в любом случае.

Legioner ★★★★★ ()

сначала школьники программируют на генту, а потом у людей от обновления ядра thinkpad'ы умирают

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

А алгебру логики, комбинаторику, статистику?
Что нужнее? Я знаю, что алгоритмы — важнее всего. Столько теории? Это же всю жизнь на толковое изучение потратить нужно.

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

6 лет-то всего на универ, ну и плюс года 3 на аспирантуру. Все зависит от твоих способностей.

в универе ничему хорошему не научат, пусть стартап организует, а не время тратит

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

Стив Джоббс — исключение.

мир изменился, сейчас школьники зарабатывают по 100$ в день на играх в Google Play

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

Он же вроде как бизнесмен. А там чем меньше образование - тем лучше

Jopich1 ()

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

anonymous ()

Не ошибись с выбором универа. Вышка — очень хорошо, правильная вышка — бесценно.

Почему так? Да потому что за 4 года обучения (бакалавриат) ты будешь общаться с ~100 людьми, каждый из которых бесконечно опытнее тебя в своей области. Ни одно самообразование этого не даст.

До поступления в ВУЗ советую банально изучать то, что интересно. Всё равно каким-то крутым спецом ты не станешь, но фору к первому курсу заимеешь.

Crocodoom ★★★★ ()

Если именно хочешь подучить С++, то советую книгу от его создателя (Bjarne Stroustrup): «The C++ Programming Language».

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

И главное — запомни: ЯП это лишь инструмент, и ненавидеть какой-либо ЯП — как минимум глупо (прим. переводчика: хотя в случае с Java — простительно).

KennyMinigun ★★★★★ ()

Assembler, C, C++.

С++ лишний, не засерай голову.

FreeBSD

Зачем? это не востребовано.

Посоветуйте хорошую литературу

Язык Си в 21 веке.

AUX ★★★ ()

В первую очередь изучай алгоритмы + структуры данных, дискретную математику и английский (в идеале до разговорного) это полезно большинству специализаций в разработке.

Асм и Си вполне можно изучать одновременно. Глубоко асм пока не копай, уровня чтения вполне хватит.

Регулярно практикуйся. Читай исходники программ.

По Си мне понравилась книга братьев Дейтел

Ещё советую книгу «Linux system programming» Robert Love

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

С++ лишний, не засерай голову.

вообще голову не засерай, пиши инди-игру на java под андроид и айос

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

ты забыл поместить свое сообщение в блок unsafe, сектант.

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

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

вообще голову не засерай, пиши инди-игру на java под андроид и айос

Как вариант,бонусом бабла поиметь можно. Даже при самом херовом раскладе по 2-3 тыс. руб. будешь иметь точно.

AUX ★★★ ()

учись в шахматы играть - развивает умище - для программиста важно

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

Ты в своем уме?

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

anonymous ()

Я — школьник.
обслуживать Gentoo, устанавливать и настраивать FreeBSD

странно, что не арч

anonymous ()

https://psoberoi.github.io/stepanov-civilization/canon.html#programming

ну и да Жизнеописания Плутарха И Илиада Гомера(не Симпсона) пользительны в карьере программиста - как и другие рекомендованные произведения.

зы. Тарьяновский буклет ваще бомба.

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

Тут выше уже советовали Стивена Прата 6-е издание, с упражнениями (не перепутай с его книгами по C++) - уже включает в себя материалы по C11.

Ещё есть Кочан «Программирование на языке C», но ножно новое 4-е издание, которое у нас почему-то не перевели. Оно тоже затрагивает стандарт С11, а переведённое 3е - посвящено C99.

Некоторым нравятся книги Дейтедлов - из последних «C для программистов с введением в С11».

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

grem ★★★★★ ()
Последнее исправление: grem (всего исправлений: 1)

толсто, надо тоньше

прямо-таки представляю себе прыщавого школьника, который твердо решил стать программистом и думает куда бы пойти спросить совета что почитать. А потом его пробивает эта простая, но гениальная мысль: «надо на ЛОР! там самые крутые программисты: растосектанты, смайлофаг, неадекватные сишники... если и затроллят, то хоть жизни научат!». и такой в пятницу вечером в тайне от родителей создает тут тему. язабан

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