LINUX.ORG.RU

Путь в программирование

 , , ,


4

6

Цель следующая: необходимо стать толковым программистом. Веб мне не нравится (от слова «совсем»). Хочу освоить нужные инструменты (языки) для программирования. Планирую писать десктопные программы, кроссплатформенные (клиентские), мобильные приложения тоже можно. Реже — драйверы или прошивки. Никогда раньше не занимался программированием (ну, если не считать qbasic в школе, который давным давно полностью забыт).

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

1. Изучить алгебру логики, комбинаторику, позиционные системы счисления, теорию вычислимости и теорию алгоритмов, принципы построения и функционирования вычислительных систем.
2. Изучение алгоритмов (чтение «Алгоритмы. Руководство по разработке» Скиена, «Алгоритмы и структуры данных» Вирта, «Алгоритмы: построение и анализ» Кормена).
3. Чтение «Программирование: введение в профессию» Столярова.
4. Написание простеньких программ на Basic, изучение Assembler.
5. Изучение и программирование на Pascal.
6. Чтение Стивена Прата «Язык программирования C. Лекции и упражнения», K&R.
7. Изучение и программирование на C.
8. Чтение «Введение в функциональное программирование» Харрисона, «Типы в языках программирования» Пирса, SICP, GNU Emacs Lisp Reference Manual.
9. Изучение и программирование на Scheme.
10. Чтение «Java SE 8. Базовый курс» Хорстманна, «Программирование на Java» Якова Файна, «Изучаем Java на примерах и задачах» Сеттера.
11. Изучение и программирование на Java.
12. Реальная работа в проекте (набор опыта), потом джуниором ~ 1.5 года.

Может ли такой план сработать? Что поправить? Чего добавить/убрать?
Спасибо за внимание.



Последнее исправление: gnurof (всего исправлений: 2)
Ответ на: комментарий от system-root

в течении первого пункта ты состаришься и умрёшь

так и запишем, никто первые два курса в вузе не отучился, все состарились и умерли =) Нужен стандартный набор: матлог, матстат, комбинаторика, разная дискретка. Все это в самом базовом варианте по книжке «математика для гуманитария» уже сойдет для быдлокодинга сайтиков на Java

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

у нас аналитик одныжды придумал веб-интерфейс записи на несколько событий одновременно. Типа, ты хочешь в один день записаться и к терапевту, и к хирургу, на какие часы это сделать? Так вот вместо ручного выбора он предложил людям выбирать из готовых слотов «в 14 часов одно, в 16 другое», «в 15 одно, в 17 другое», итп. Интерфейс отображал все перестановки всех событий за день, а юзеру «всего лишь» нужно было прощелкать кнопку «дальше» пока он не увидел бы подходящий. Рассказать что это значит на практике?)) Вот чтобы такого не было, нужно знать хотя бы самые азы

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

Рассказать что это значит на практике?

в общем понятно (когда много вариантов), но расскажи - интересный случай хоть и типовой

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

Зачем тогда её преподают кодерам?)

Я тут недавно накопала книжку по модульному 3d-оригами. Там можно было сделать бумажный икосаэдр, в котором каждое ребро - это отдельный кусок бумаги, который хитрым образом зацепляется за другие.

И вот когда делаешь икосаэдр из цветной бумаги, возникает задача о раскраске ребер икосаэдра в пять цветов наиболее правильным способом. Определение «наиболее правильного способа» при этом тоже надо придумать, потому что на самом деле раскрасок икосаэдра, таких что в каждой вершине сходятся ребра всех пяти цветов, существует несколько. При этом оказывается только одна из них уникальна...

Вот в общем примерно за этим.

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

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

так то комбинаторика в 60-70ых из старой старшей школы была изгнана - видимо второе антибиоточное поколение человеков уже было трудно обучаемо сим азам в массе.

подсчёт количества размещения без повторения это арифметика которая доступна сразу после закрепления умножения и прогрессий т.е. в современной шкале 5-6 класс средней школы.

а так то вполне понятно почему перегружают фактами чьё знание легко проверяемо тестом - чем хотя-бы двух шаговые суждения_вычисления.

зы. Олимпиада Азимова частично об способе снижения социальной напряжённости в индустриальном обществе которое по факту скрыто сословно

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

Есть, даже в ЕГЭ вроде, там где начала теории вероятности или что-то такое, там без размещений и сочетаний никак.

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

Ради таких вводных посылать человека учить целый теоретический курс немного перебор. Должны быть какие-то научно-популярные книжки для такого уровня.

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

Ага, а после такой «комбинаторики» вот такие вопросы возникают Ищу алгоритм генерации всех сочетаний элементов списка

В итоге оказалось, что это абсолютно бесполезно.

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

4 дня потратил

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

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

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

«Первую тысячу лет сложно, потом привыкаешь.» ©

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

Я думал дискретка - это преобразование фурье.

У меня какая-то другая дискретка была, автоматы мура, мили, конъюнкция/дизъюнкция, минимизация покрытий, таблицы переходов и все это было применимо только к ПЛМ. Потому когда слышу, что программисту нужна дискретка, даже смешно, только разве для общего развития, типа для повышения эрудиции но не как не для очередного энтерпрайзного crud да и даже не для системщика, чем она поможет в разработке ПО?

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

Потому когда слышу, что программисту нужна дискретка

Ну «дискретка» это, в принципе, и теория графов, теория автоматов и, соответственно, языков и вычислений/вычислимости. Та же книга Хопкрофта (хотя он старательно избегает понятие «множество» и это ему неплохо удаётся) относится к «дискретке».

Каждый вуз и каждый аффтар вкладывает в это понятие разные вещи.

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

Я думал дискретка - это преобразование фурье

Нет, дискретка - это «задача коммивояжёра» и прочие «семь мостов».

преобразование фурье

Это матан.

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

дискретка

Имхо под дискреткой подают кучу разных областей, которые однозначно не засунешь в «непрерывную» математику.

преобразование фурье

это матан

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

Это больше вычислительная математика либо ЦОС.

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