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)

Начни с пункта 10. Попутно загугливай непонятное.

А вообще, определись сперва, что именно ты хочешь программировать.

bvn13 ★★★★★
()

Первый пункт не выполним, если ты не собираешься идти в науку, тебе достаточно будет второго пункта, программирование это в основном практика. Язык программирования тут роли не играет, можешь хоть с хацкелля начинать. 8 и 9 пункт тоже спорны, только если тебе нужен лишп, можешь его изучить, а так он тебе не нужен (ща набегут упоротые лишперы). В десятом пункте я бы заменил Java на C#.

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

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

Путь в программирование — твой, а не наш.

ТС-у будет сложно, если не сможет придумать себе примеры.

Вчера MikeDM набирал себе подованов на проект на Qt. Может удастся влиться?

bvn13 ★★★★★
()

План - сборник какого-то говна с редкими вкраплениями. Программистом в вакууме? Какая область интересует? Если Java, то читайте Java SE 8 для нетерпеливых и практикуйтесь. Узнайте что такое O(n) и какое оно для тех операций. которыми вы пользуетесь в своих проектах. А потом в джуниоры. Всякие паскали. бейсики, Столяровы, схемы и прочий ветхий хлам не нужен.

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

А вообще, просто программируй

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

system-root ★★★★★
()

Может ли такой план сработать?

Нет.

стать толковым программистом

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

Чего добавить/убрать?

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

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

без механизмов оценки своего «труда»

Если только «я у мамки программист». В реальном мире зарплата является весьма объективным механизмом оценки труда.

no-such-file ★★★★★
()

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

1. что тебе нужно от деятельности программистом? это занятие досуга и/или ремесло необходимое для выживания/содержанияБольшеОдногоФизЛица/бытияЭффиктивнымПотребителем etc

2.например двухтомника Столярова вполне многим_некоторым достаточно для того что бы состоятся как квалифицированные спецы ибо при различных эксцентричностях автора тексты вполне компетентны в части подготовки индустриального трудящегося (когда уже будешь получать материальное возмещение за свой труд в индустрии его 3 и 4 тома поспеют продолжить твоё образование как спеца)

3. 10000 часов / http://www.williamspublishing.com/21-days.html (throw http://norvig.com/21-days.html)

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

химера «проектного образования» как-бе.

всёж стоит ценить межпоколенческий «культурный капитал» и обходить самовзводящиеся грабли опыт наступания на которых уже хранится в комьюнити

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

и не только труда кстати.

а следовательно не сам труд(только) оценивается

и следовательно .... короче Стиглиц, Дж. Цена неравенства. Чем расслоение общества

зы. а в вакууме зарплата есть идеальный и объективный механизм оценки вклада участника в ....

зззы. как же многим застила разум наличие полного порядка на скалярах.

anonymous
()

Планирую писать десктопные программы, кроссплатформенные (клиентские), мобильные приложения тоже можно. Реже — драйверы или прошивки.

для этого:

1. Изучить алгебру логики, комбинаторику, позиционные системы счисления, теорию вычислимости и теорию алгоритмов, принципы построения и функционирования вычислительных систем.

ахаха))

7. Изучение и программирование на C.

едрён батон фейспалм.жпг

anonymous
()

Чувак, давай определим исходные данные:

1. Сколько лет?

2. Какое образование?

3. Цель от программирования? Срубить бабла или правда интересно?

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

идеальный и объективный

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

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

слу пятизвёзд ты совсем контекст и передёргивание разучился?

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

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

anonymous
()

Ты вечно жить что ль собрался. Переходи сразу к плану Б.

1.Устроиться на работу программистом. 2.Прозреть, уволиться.

ilovewindows ★★★★★
()

Выбросить pascal и тем более basic. Сразу Си и алгоритмы.

Добавить «алгоритмы на Java» или «алгоритмы на C++» или «на Си» за авторством Седжвик. Почитать перед собеседованием. Очень практические книжки, есть готовые реализации, в отличие от Кормена.

Если пойдешь в ынтерпрайз - обязательно заботанить документацию про то, что сейчас популярно (в джаве вневременной булшит - Spring и Hibernate, например, просто берешь их документацию и зубришь)

Не забудь, что кроме байтоебства, есть еще и бизнесовые задачи. Можно взять какой-нибудь Python или JS, и заняться прямо СУТЬЮ алгоритма (в то время как на си ты 10 минут прозанимаешься сутью, а оставшиеся 12 часов будешь двигать байтики)

Параллельно читать что-нибудь общеобразовательное по специальности в интернетах. Не обязательно Столярова, есть куча прикольного. В мои времена это был какой-нибудь from journeyman to master, и блог Джоеля Спольского. Сейчас есть какие-то свои популярные блоги, в которых люди описывают, «какая жизнь на самом деле». А если от всех отгородиться и сидеть в пещере, радости будет не то чтобы много

stevejobs ★★★★☆
()

Пункт 1 и 4 выкидывай, пункт 5 до пункта 2 или вместе, затем или 7+6 или 10+10, потом 11. Остальное по желанию когда работу найдешь.

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

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

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

stevejobs ★★★★☆
()

Нет, так не пойдет. Начать надо с теории гомотопий, потом вызубрить мануал по autotools, уже потом - Java SE.

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

Физика, правила Кирхгофа, закон Джоуля-Ленца, комплексное сопротивление, скорость и частота света, уравнения Максвелла, лагранжиан и гамильтониан

Просто так, шоб було

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

Да я так, просто вбросил. Не думаю, что человек, который писал этот список сам прочитал всё это за некий конечный и разумный интервал времени. Хотя, может прочитать и можно, но досконально во всём разобраться будет весьма сложно.

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

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

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

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

grimwaken
()

Верно ли я определил дальнейшие действия?

Нет

1. Изучи питон
2. Пиши программы
3. ? (сам определишься)
4. PROFIT! (ты стал программистом)

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

Да вы тут совсем упоролись, а потом люди простейшие вещи не знают, sweet Jesus.

Парень, начни с пункта 1, из языков бери с и питон, для начала хватит.

ZERG ★★★★★
()

начинай сразу с практики.

C, gdb, asm, python, C++, java, erlang, php, lisp

https://www.recurse.com/blog/5-learning-c-with-gdb

толковые программисты действуют крайне эффективно и создают выдающиеся вещи, полезные всем

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

Ньютон И. Всеобщая арифметика, или книга об арифметических синтезе и анализе

Лузин Н.Н. - Дифференциальное исчисление, Интегральное исчисление (две книги)

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

anonymous
()

мягкая посадка - александр громов

anonymous
()

начни с п. 10, а дальше по ситуации

der_looser ★★
()

http://www.otrok.ru/teach/enc/txt/13/page36.html

а вообщет

найди статью

Ершев Программировние вторая граммотность.

ну а уж если с ней связанную переписку Ершёва с организаторами международной конференции по информатики того года когда он эту статью презентовал - то ваще поймёшь многое о кодерочках.

anonymous
()

Попробуй поортировать что-пибудь на закаменевшем winapi на linux и android. В процессе научишься всему что нужно.

mittorn ★★★★★
()

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

ism ★★★
()
Последнее исправление: ism (всего исправлений: 1)
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.