LINUX.ORG.RU

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

 , ,


1

6

Добрый день!

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

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

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

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

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



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

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

К урокам готов.
Оценки отличные.
Домашние задания выполнены (+ изучены дополнительные материалы).

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

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

Не, без заверенного скриншота дневника нещитово — а твоя «фонтазия» не выходит за рамки обычного жыра на лоре из серии «забанили в гугле» и «мне лениво».

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

заверенного скриншота дневника

Что меня обязывает перед тобой отчитываться?

жыра
«забанили в гугле» и «мне лениво»

Ты уж определись.

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

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

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

Что меня обязывает перед тобой отчитываться?

Ну ты же начал сам рассказывать про сделанные уроки :) А так-то — акк созданный вчера вообще ниочем не говорит.

Ты уж определись.

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

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

А даже не осилил правила русского языка. Какое репетиторство, Маня?

тоньше надо, тоньше, ну или пруф мне давай, я не аноним

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

Вася, я не разлогинивался :) А вот что до 4-х утра влоре делает «школьнег»? Мамка не следит за режимом, раз «уроки сделаны»?

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

Что ж ты подставляешь папку? Он жы под «неисполнение обязанностей» этак-то попадет. Тут и инфа, «наносящая вред», и... за режимом надо следить :)

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

Ты действительно думаешь, что смайлы усилят эффект твоих сообщений? Ты ставишь. Попробуй после каждого предложения по 2-3.

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

Нубофоб или нубохейтер?
Ты тут с 2009 года. Получил 5 звёзд. Это тебе что-то дало, кроме ЧСВ на этом сайте?
Потом они еще будут жаловаться на сниение активности форума.

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

Нубофоб или нубохейтер?
Ты тут с 2009 года. Получил 5 звёзд. Это тебе что-то дало, кроме ЧСВ на этом сайте?
Потом они еще будут жаловаться на сниение активности форума.

у тебя на основном сколько звезд? четыре?

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

Ты нарушаешь правила сайта.

4.
1. Сообщения, не связанные смыслом с темой обсуждения и другими комментариями. Сообщения, связанные смыслом с другими комментариями, но не связанные с темой обсуждения могут быть удалены по усмотрению модератора.
3. Сообщения, провоцирующие нездоровые дискуссии.

5.
4. Сообщения, неинтересные другим участникам обсуждения за исключением 2-3 человек, т.е. сугубо личная переписка, не содержащая полезной информации для других участников форума.

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

ты в ад попадешь за ложь

Спорное утверждение и провокационное сообщение.

5. Оскорбительные и личные сообщения

3. Сообщения, провоцирующие национальные, политические и религиозные споры.

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

Спорное утверждение и провокационное сообщение.

мой пароль от аккаунта на ЛОР: qru32e8mH_

да шучу, не очкуй, я бессмертен

anonymous
()

Странно, что ещё ни одной копипасты не было.

olibjerd ★★★★★
()

Haskell Platform уже советовали?

anonymous
()

А ты наоборот делай - сперва программируй свои простенькие программки, потом учись. :) На фиг тебе книжки без мотивации использовать выученное прямо сейчас?

anonymous
()

Учи английский и изучай всё, что тут есть. По желанию, можно разбавить курсами Стэнфорда и прочих.

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

О, есть люди в теме. ТС, ссылка этого регистранта даже лучше.

fluorite ★★★★★
()

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

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

С идрис начать сложно, ибо туториалы все по хаскелю.

ТС, в целом кажется разумным паскаль (темы: основные алгоритмы и структуры данных, работа с файлами, начала работы с памятью) в объёме два семестра, в неделю по лекции + практика + ДЗ.

Затем си (темы: продолжаем работу с памятью, сетевое программирование, многопоточное программирование). Семестр. Си здесь можно заменить с++, но может быть придётся увеличить срок обучения (нужно ведь продраться сквозь ООП и шаблоны и прочих друзей и виртуалов).

Добавить ассемблер семестр по желанию.

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

А затем реальное программирование: хаскель в объёме два семестра учёбы, +пол года практики в предполагаемой области работы. Можно идти работать. Имхо.

Т.е. иди в ВУЗ технический + занимайся сам программированием.

Затем, если есть желание быть на острие: лямбда исчисление, идрис, теор кат, если хочется.

ЗЫ. А, ну английский, куда ж без него. Короче можно стать программистом без вуза, конечно. Но с вузом - проще как то.

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

алгоритмы. можно Кнута. но там много читать.

книгу большой четвёрки - https://en.wikipedia.org/wiki/Design_Patterns . причём лучше читать на английском, ибо русские переводы, которые я лично видела, были просто ужасны. может, и появились адекватные переводы, но не думаю. переводчики - гуманитарии сраные, напереводили там местами с точностью до наоборот.

по ассемблеру, например: http://www.staroceans.org/kernel-and-driver/Assembly Language Step-By-Step - ...

по С - всё-таки если начинающий, то K&R. это базис. с тех пор изменения были, но не концептуальные. дальше обычного справочника в сети хватит. например, http://www.cplusplus.com/reference/

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

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

Iron_Bug ★★★★★
()
Последнее исправление: Iron_Bug (всего исправлений: 3)
Ответ на: комментарий от ox55ff

Почему? Просто Шлее надо читать не до и тем более не вместо книг по языкам.

hobbit ★★★★★
()

Автору

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

Страуструп, точнее, «Язык программирования С++» - книга нужная, но совершенно точно не для начинающих. По крайней мере, автор предполагает, что читатель уже знаком с «обычнным» Си. У него есть ещё «Дизайн и эволюция C++», но я её не читал, к сожалению.

И да, я бы для начала не побрезговал и Паскалем. Синтаксис строгий, многое можно сделать в рамках стандартных типов. В современном Паскале (года так с 1990-го) есть нормальная модульность, а не кривые костыли из начала 70-х, которые C и C++ до сих пор тащат, и малейшая ошибка в которых заставит новичка надолго застрять в малопонятных сообщениях. Так что можно и со Столярова начать, не воспринимая его мнение как истину в последней инстанции.

Главное, что надо иметь для обучения - желание. Программист - не тот, кто может программировать, а тот, кто не программировать не может.

hobbit ★★★★★
()
Последнее исправление: hobbit (всего исправлений: 1)
Ответ на: Автору от hobbit

Страуструп, точнее, «Язык программирования С++» - книга нужная, но совершенно точно не для начинающих. По крайней мере, автор предполагает, что читатель уже знаком с «обычнным» Си. У него есть ещё «Дизайн и эволюция C++», но я её не читал, к сожалению.

Страуструп специально для полных новичков уже давно написал толстенную книгу «Программирование. Принципы и практика с использованием C++» :-) ТС может почитать вышеуказанную книгу, она читается легко и доступно :-)

Чтобы стать хорошим программистом, на данном этапе (школьник) я рекомендую ТС: :-) учить английский язык :-) :-) ознакомиться с ТРИЗ :-)

В универе у ТС ещё будет время на: :-) дискретную математику (в т.ч. теория множеств, мат. логика) :-) :-) теория графов и комбинаторика :-) :-) теория информации и конечные автоматы :-)

anonymous
()

Родился в 2001 году. Я — школьник.

Учи матан тогда. Программирование (кодинг) - дело не хитрое и постигается довольно быстро при наличии должной базы. Без базы ты станешь клоуном вроде Царя. Прежде чем более-менее нормально программировать, надо уметь (хотя бы немного) в дискретную математику (в любом случае), векторную алгебру и геометрию (если хочешь что-то с графикой и играми делать, отличное от рисования и примитивных скриптов для уже готовых движков), знание физики и электротехники тоже могут пригодиться, если пойдешь со встраиваемыми решениями работать (если конечно нет желания кодить веб-приложения, там ничего знать не требуется, хотя нет, БД осилить в любом случае придется, что без основ дискретки может стать слишком неподъёмной задачей). Ах, да в целом полезно знать и численные методы, но на прикладной разработке этого может и не потребоваться.

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

Я знаю, что алгоритмы — важнее всего.

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

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

Да потому что за 4 года обучения (бакалавриат) ты будешь общаться с ~100 людьми

Нет, максимум 10 человек с практики и пара десятков преподов, итого человек 30 + 20 одногруппников примерно его уровня.

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

Блин, на самом деле везде обосрут, в том числе и ИРЛ.

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

Столько теории? Это же всю жизнь на толковое изучение потратить нужно.

Молодец, ты начал о чем-то догадываться.

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

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

Допустим, ты не тролль, и реально знаешь Java :-) Лол :-) Так ты решил на чём писать pet-проекты? :-)

anonymous
()

Я бы посоветовал выбрать предметную область, и изучать в первую очередь ее. Абстрактный программист ИМНО так же прекрасен и бесполезен, как сферический конь в вакууме;-)

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