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

Здравствуйте. Нужна Ваша помощь. Думаю заняться программированием, но не знаю, с чего начать.

Прочитал кучу советов в Инете, но у каждого-то свой случай. Поэтому Буду признателен за Ваши ответы .
Немного о себе. Опыта нет, равно как и знаний (кроме сухой начальной школьной теории о ЯП и их применении + hello world в Pascal ).

Занятия с книжкой закончились неудачно после встречи с первой "сложной" задачей.

Какой язык выбрать, если нужно с нуля разобраться в основах (полностью)?
P.S. Слышал, что для формирования правильного восприятия нужен ЯП со статической типизацией
(то есть не популярный Пайтон). Правда ли это?
Со сферой применения знаний не определился. Возможно, разработка игр\сайтов, кроссплатформенных приложений. Работать программистом не думал, т.к. нет знаний.

Спасибо за Ваши ответы.
  • Вопрос задан
  • 4161 просмотр
Пригласить эксперта
Ответы на вопрос 10
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: если вы не решились, начинайте любое. Начните сложные, простые языки, поделайте, поломайте. Это правда поможет. Пробуйте, изобретайте свое.
Что-то я затянуто написал... ночь.:)

Успехов!
Ответ написан
Комментировать
tsarevfs
@tsarevfs
C++ developer
Выбор языка программирования не важен. Хватит читать советы. Берите любое из Python, Java, C++ не ошибетесь. На python будет намного проще в самом начале. C++ даст наиболее полное понимание программированя (во многом через боль и унижение на начальном этапе).
Начинайте читать книги (выбор книг для каждого языка освещен в сотнях вопросах на тостере), делать задания. Возможно стоит найти онлайн курс по языку.
Для успеха, прежде всего, вам потребуется 100% уверенность что это вам нужно. Придется потратить массу усилий чтобы получить результат. Но мне кажется, это того стоит.
Ответ написан
Комментировать
@RiON69
Советую начать именно с Python.

Создай план действий наподобие такого:
1. Прочесть хотя бы 1 книгу про Python
2. Много практиковаться
3. Написать пару небольших приложений для себя

Для практики и быстрого освоения языка рекомендую начать с www.codecademy.com/tracks/python
Для практики и развития программного мышления рекомендую также www.checkio.org
Но книгу хотя бы одну книгу прочесть все же нужно обязательно
Ответ написан
Комментировать
tuccar
@tuccar
Прочитай книгу SICP (Структура и интерпретация компьютерных программ). Надо начинать с нее.

www.ozon.ru/context/detail/id/5322055
Ответ написан
@Oleg_Danilov
Я начал изучение основ программирования с универсального языка C# (начал ходить на курсы Юниум). Он позволит вам создавать и сайты, и приложения, и игры. По этому языку на MVA есть отличный курс от Дмитрия Сошникова с нуля:
www.microsoftvirtualacademy.com/training-courses/e...
Ответ написан
Комментировать
@ivkol
выбирайте язык и решайте задачи
Ответ написан
Комментировать
@Espleth
На такой вопрос нужен только один ответ, а не 6, как тут уже есть: используйте гугл. Практически любой вопрос (в том числе данный), который у вас возникнет в ближайшее время/уже возник вы сможете загуглить.
Ответ написан
Комментировать
heksen
@heksen
Попробуйте окно создать под windows на c++ (visual studio). Разберитесь в обработчиках и.т.д..
Ответ написан
Комментировать
@beduin01
Шикарная книга для начинающих ddili.org/ders/d.en/index.html
Из плюсов - порог вхождения такой же низкий как в Python.
Ответ написан
Комментировать
@NickLJ7 Автор вопроса
Понимаю. Внесу ясность в обсуждение: главная задача - разобраться в самой сути программирования, понять, как и что делать.
О Python
Особенно коварны в динамическом языке программирования опечатки: разработчик может несколько раз просмотреть неработающий код и ничего не увидеть, пока наконец не найдёт набранный с ошибкой идентификатор.


Это имелось в виду?
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы