• Программирование с нуля. Как начать?

    ProgramCodePav
    @ProgramCodePav
    Front-end developer. Love open source
    Привет. Вы уже успели понять, что главное - желание. Но если и учиться (а это скучно), то надо заниматься максимально классными для вас вещами. Не менее важно видеть результат, поэтому лучше несколько маленьких проектов, чем один большой, который не закончите. Ответ на необходимость строго типизированного языка - да.

    Суть:
    Вам надо сначала изучить логику работы ЯП (pascal, на первых порах и C++ сойдет), потом уже браться за ООП (object pascal, C++, C#, Java и многие другие). А также рулит опыт. Сколько бы вы книг не вычитали, решает опыт. Читайте и пишите код. Устали читать, пишите код. Напишите программу на свой день рождения. Напишите программы для решения типовых задач (если учитесь) и не парьтесь с домашкой :)

    По делу. Я начинал также с паскаля, потом делфи (object pascal)... куча технологий и языков. Пришел к Java Android.

    Следует различать верстку и программирование. Верстка - производить разметку сайтов с помощью html/css, а программирование - решение задач по обработке данных (вольная формулировка). Программирование может быть в вебе, но не версткой - это программирование программ на сервере, которые обрабатывают интернет-ресурсы и подобные сетевые задачи.

    А теперь надо ответить на вопрос: Сколько у вас есть времени и каким бы вы хотели быть программистом (хорошим, лучшим или как хобби)?

    Если у вас много времени, терпения и желание стать лучшим, то надо изучать с нуля:
    pascal (не полностью, а просто научиться решать стандартный перечень задач - работа с массивами, вычисления выражений, работа с файлами, работа со структурами данных - так проще).
    В принципе это займет недели 2, если стараться. Дальше у вас уже будет понимание логики языка. Можно садиться на более сложные (c#/java советую, c/с++ интересные, но сложнее).

    Если у вас времени в обрез или вы хотите просто начать уже сейчас, то советую начать изучать Java. Имхо, Java - один из самых легких из продвинутых ЯП (посмотрите книгу Head First Java).

    Если смотреть издалека, то Pascal я советовал только потому, что он очень простой и функциональный... Он как раз помогает понять типы данных, важность соблюдения границ массива, а структуры данных позволяют работать почти как с ООП языками (типа Java/C++/C#/etc.). Однако всего немногим сложнее будет изучение java, благодаря книжке Head First Java - она отлично составлена, с рисунками, стрелочками и забита аналогиями, а минусом здесь является бросание в пекло (в ООП), где всякие непонятные классы и т.д., отвлекающее от самой основы логики программирования.

    По языкам. (не особо слежу, скажу по своим ощущениям)
    Сейчас особенно выезжают две сферы на рынке - мобильная разработка и веб-разработка (для сервера).
    Справляются с этими задачами круто Java, .net C#, C++.
    Java - львиная доля разработки под Android, Один из популярнейших языков для серверного программирования, big data и других вычислений, иные разработки.
    C# - самый активный конкурент в серверном программировании для Java, разработка под winphone, windows с прямочками от MS (ведь C# разрабатывает MS).
    С++ - везде, но в основном применяется для системного программирования, драйверов и участков программ, где нужна большая скорость выполнения программы (поисковые движки, обработка голоса). Мне он нравится больше всех, но это для себя) На этом языке сложнее всего научиться, но с некоторым опытом работы (2-3 года) можно пройти в топовые конторы.

    ------------
    Честно говоря, мне очень помогали знания курсов Архитектуры ЭВМ и алгоритмов в изучении. Это не обязательно, но очень интересно )

    Итог:
    Если хотите вытоптанный путь, но немного более долгий - начинайте с pascal и потом садитесь на java/C#. Такой путь не требует особых знаний, кроме самих языков (в отличии от С++, где нужны базовые знания о работе компьютера).
    Если вы сообразительный и сильный (умеете мотивироваться и добиваться), то начинайте сразу с java. Сложно будет первые пара программ. Гугл сделает их за вас, но вообще это очень легкий язык.
    С++ - не знаю. Многие советуют с него начинать. Вообще, он довольно простой и структурный в начале, усложняется довольно быстро, но логично. Хороший язык, но его проблема для новичков - нужно учитывать очень много нюансов.

    Кстати, у java есть небольшой плюс - javarush.ru. Интересный проект) фремиум, но бесплатно можно пройти уровней 10-15, это, по сути, позволит познакомиться с языком.
    PS: если вы не решились, начинайте любое. Начните сложные, простые языки, поделайте, поломайте. Это правда поможет. Пробуйте, изобретайте свое.
    Что-то я затянуто написал... ночь.:)

    Успехов!
    Ответ написан
    Комментировать