Как организовать самообучение языкам программирования?

Задался целью - создание своего сайта посвященного спортивному прогнозирования. Приступил к изучению азов html, сейчас подключил css. Но тут же столкнулся с проблемой - не могу сконцентрироваться. Очень много информации, которая мне интересна, хватаюсь копипастить разные интересны css штуки (очень забавляет) добавляю в закладки множество видео уроков, читаю разные книги, на планшете юзаю приложения-обучалки, хватаюсь за те понятия которые мне очень важны для создания сайта ( например файловый обработчик форм, который я все равно на данном этапе не могу понять) Другими словами добавляю все в каталог "Пригодится" :) а пригодится ли? Уж очень не терпится приступить к изучению javascript и php. Но мне тяжело организовать свое время. Помогите советом - как организовать самообучение? Что-то типа сколько времени уделять на изучение новых терминов, сколько практиковать изученное, когда переходить к изучению нового языка? Может у кого-то есть своя технология, которая со временем доказало свою состоятельность.
  • Вопрос задан
  • 5256 просмотров
Решения вопроса 2
aRegius
@aRegius
Python Enthusiast
1. Определяете минимум, который вам необходим для создания продукта-цели. Ну, то есть, самый минимум, minimum minimorum. Например: "Для создания моего продукта мне нужны HTML, CSS, JS и PHP. Без любого из них я свой продукт создать не смогу. Это мой необходимый минимум."

2. Ищите по 1-му толковому материалу (чтобы не распылять усилия на 8 книг и 15 онлайн-курсов по JS, условно) для каждого инструмента. Более того, по трем из них я вам могу дать рекомендации: HTML5 + CSS3 + JS. PHP не мой "конек", возможно коллеги подскажут...

3. Учите в том же порядке: HTML, потом CSS, потом JS/PHP (PHP/JS, тут уж сами смотрите).

4. Открывайте соответствующий материал по предмету, ознакомьтесь со структурой подачи материала и определите для себя ключевые точки для разбития этого материала на блоки, каждый из которых вы будете стараться пройти "за один присест".
Например: открываете книгу по HTML, смотрите содержание, и принимаете решение (исходя из имеющегося у вас времени, которое вы готовы в день уделять обучению), что будете в день работать над 2-мя главами материала.
Или: открываете материал по JS, смотрите содержание, и принимаете решение, что будете в день работать над 1-ой темой (сегодня - "Основы JavaScript", завтра - "Качество кода" и т.п.)

5. Планируя таким образом обучение, вы, что немаловажно, будете примерно представлять сроки, которые вам для этого потребуются.

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

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

Подытожим: определитесь с минимумом технологий, распланируйте время на изучение, учите технологии step-by-step - не распыляйте усилий, придерживайтесь графика.

P.S. Вам будет проще, если вы сконцентрируетесь, поставите себе минимально возможные сроки и "возьмете эту крепость блицкригом", ибо на скользкую горку проще всего забраться с разбегу :)
Ответ написан
@zMeFz
Тут достаточно больших и развёрнутых ответов, но от себя скажу просто и кратко: надо просто взять/найти/придумать проект и делать его. По ходу нужны будут разные вещи, которые так же по ходу будешь находить и разбирать.
Для начала, конечно, не плохо бы просто разобраться в синтаксисе основных языков, а потом просто начинай делать проект. Придумал простое тз - реализовал, придумал какое-то усложнение - дописал. В процессе разберешься во всём необходимом.
А по поводу "полезностей" - собирай. Чем больше всего интересного есть - тем лучше. Главное раскладывай всё в закладках по полочкам(максимально сортируй по папкам). Потом это всё очень пригодится.
Ответ написан
Пригласить эксперта
Ответы на вопрос 5
maxminimus
@maxminimus
просто или ничего
падавану юному говорить для начала свободно надо на основных языках веб-программирования -
js css html

js фирст, потом css и html
надо сразу понять что ты при желании можешь совсем не использовать возможность использования декларативного программирования-оформления стилей оформления и структуры дерева документа

учебник Фленагана надо полностью переварить
и php немного для начала - только основные серверные функции для работы с папками и файлами
или лучше - изучить api node.js - и делать сервер на js

js - очень простой язык, проще некуда, «Лисп в шкуре Си»
и самый кросплатформенный - новичкам самое то
не забываем принцип KISS - ценим минимализм-простоту-легкость
без чужих фремворков и библиотек ты получишь максимальную производительность js - в 3-5 раз ниже чем на Си

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

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

клиент толстый, сервер тощий -
сервер используй только для простых функций - чтение-запись данных, сканирование папок, авторизация ...

офлайн и мобайл фирст -
надо сразу понять что мобильный планшет или сенсорный экран - это основное средство ввода

велосипайд фирст -
чтобы научиться - делать ты должен сам

просветление неизбежно после этого обретешь
и настоящим веб-мастером станешь
или даже джедаем или нинзем, если пребудет с тобой СИла
три-пять лет для этого надо грызть гранит

84e114455f594424ab60590ae6da6dea.jpg

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

нормальные программисты делятся на два типа:
1) инженеры - те кто могут написать шаблон для себя или для других
2) слесари-монтажники и чесальщики-мотальщики - те кто работают в рамках готового шаблона
- оба типа нужны, всё зависит от твоих способностей и талантов
Ответ написан
atis2345
@atis2345
PHP developer
Как? Молча.

В общем делаем так..
Берем и читаем. Читаем, кодим, читаем.
И так до бесконечности. Ну или пока не выгорите )))

А вы что думали? Легко будет !? А фиг там!

У меня тоже очень много закладок которые я еще не читал, или читал не полностью.

Что лучше два часа в доту или замутить что то новенькое используя только что изученный материал?
Надо чем то жертвовать. Причем постоянно.
Ответ написан
@ProgCS Автор вопроса
Сначала не было видно, теперь есть.
Ответ написан
Комментировать
@svilkov87
Здравствуйте, уважаемый автор вопроса!
Вы напоминаете мне себя в какой-то степени))
Как помнится мне, около полутора-двух лет назад, когда я был знаком только с html/css, я наивно полагал, что в скором времени забацаю мега крутой популярный проект, приносящий нескончаемое количество бала( а-ля vk или даже лучше). Буду работать на себя, исключительно. Буду окружен красивыми девушками, которые говорят нечто вроде "Вау, да он web-разработчик... ММммм..." Это все сарказм, конечно. Но подчеркну, я знал только html/css)).
Но тут настало время изучать скрипты, а не языки разметки.
Php или js, подумал я?
После реализации на js(jquery) простых выпадающих менюх в навигационной панели, я понял, что этого недостаточно, так как как-то нужно связывать и где-то хранить данные(как например Ваш будущий проект по спорт-тематике).
Что ж, PHP! Все говорят, что язык прост в изучении, на нем написано половина интернета итд...
Вот только я вообще ничего не понимал в PHP. И давался он мне в первый раз с великим трудом.
Знаете, внимание Всем! Я даже не понимал, что такое массив и для чего он нужен.
А регулярные выражения? А для чего надо обрабатывать формы?
Попробуй объясни это человеку, знающему только html/css.

Автор, к чему это я?
То, что у Вас есть цель создать интересный проект это очень хорошо.

Но я бы Вам рекомендовал отложить на некоторое время Ваш проект в сторону и создал бы простенький сайт-визитку. Сделайте его сначала в процедурном стиле PHP, а потом в OOП. Используйте роутинг. Научитесь держать данные в таблицах базы данных. Выбирать, обновлять и удалять их. Как только Вы научитесь делать это, поверьте - Вы сразу почуствуете, что до проекта по спортивному прогнозированию нужно пройти определенный путь.

P.S.: Моя основная работа - далеко не программирование, но я стремлюсь поменять профессиональную сферу. Занимаюсь по вечерам, по 5 часов, в среднем + выходные.

В любом случае, желаю Вам удачи!
Ответ написан
Stac
@Stac
Сайт это прежде всего информация. Примем это. Сайт, где главное не информация, а какой-то сервис, назовем веб-приложением и не будем рассматривать в рамках этой заметки.

Что у вас будет - не ясно. Но HTML понадобится точно.

Представляем информацию с помощью HTML. CSS понадобится для внешнего видимого (как правило) оформления.

Это главное.

HTML для каждой страницы можно вручную подготовить (написать, сверстать), а можно программно. Так делают (и для этого служат) генераторы статических сайтов или CMS.

И те и другие берут данные из источника (файлы, базы данных, сторонние HTTP-сервисы,...), берут шаблоны страниц и наполняют их данными (это называется рендеринг). На выходе получается готовая веб-страница.

Отличие в том, что генератор статических сайтов, как правило, работает на на компьютере разработчика. А получившиеся в результат страницы - набор файлов - разработчик загружает на вебсерер.

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

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

Если вы не знаете никакого, то начать можно с любого.

Поймите то, где будет работать ваша программа (генератор сайта, CMS,...).

Варианты такие:
1) ваш личный компьютер: программа сгенерирует все файлы сайты и вы их загрузите на сервер, в т.ч. самый дешевый виртуальный хостинг.
2) виртуальный хостинг под управлением Unix-совместимой операционной системы: программа будет работать под управлением вебсервра (Apache, nginx) где-то на компьютерах провайдера
3) виртуальный хостинг под управлением операционной системы Windows Server: программа будет работать под управлением вебсервра (IIS) где-то на компьютерах провайдера
4) виртуальный или выделенный сервер: вы сами выберите операционную систему и веб-север, но компьютер остается под контролем провайдера.

Выбор варианта повлияет на многое. На ваши затраты, на ваши возможности по настройке и использованию разного программного обеспечения.

В варианте 1 все в ваших руках, вы можете использовать любой язык, который только сможете заставить работать под своей операционной системой.

Вариант 2 накладывает ограничения: как правило любой провайдер виртуального хостинга предложит вам (даст возможность использовать) PHP и Perl. Редкий хостер (но его можно найти) предложит python или ruby.

Вариант 3 имеет свои особенности. Почти всегда вы также сможете использовать PHP, но появляется возможность использовать технологии Microsoft и их языки VB.net, C# и другие.

Вариант 4 снова возвращает нас к полной свободе - можно использовать все, что угодно. Но требует от нас и большей квалификации и ответственности - сервер полностью придется настраивать самостоятельно или нанимать сисадмина.

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

Когда я шел этим путем лет 8 назад, я уже умел программировать на разных не особо популярных языках.

И первые сайты мои были сгенерированы моими, а позднее сторонними программами-генераторами и представляли собой пачку HTML файлов.

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

Поэтому пришлось изучить PHP. Позднее к нему добавился базовый JavaScript, т.к. страницы сайтов становились все более и более интерактивными.

Почти для всех задачах мне достаточно тех языков, что я знаю. Постепенно я улучшаю свои навыки, углубляю знания.

Да, вокруг много всего интересного и появляется это постоянно. Около 30 вкладок в моем браузере открыто сейчас. Это то, что мне было бы интересно изучить.

Важно понимать, что процесс познания нового идет параллельно с работой. Далеко не все, что я могу интересного нового узнать я смогу применить в работе.

Рабочие проекты используют надежные, проверенные лично мной решения. Они весьма консервативны. Пусть они не лучшие в мире и устаревшие, но это позволяет лично мне спать по ночам спокойно и отвечать на работу проектов перед клиентами.

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

А еще хорошо найти какого-то наставника, который будет хотя бы давать направления и ставить ограничения.

У меня таким был начальник на той работе, где я выучил PHP. Я работал в тех условиях, которые были мне даны, что сильно повлияло на путь моего развития, как разработчика. Он далек от общепринятого. Со своими плюсами и минусами. Но главное, что теперь, уже семь лет, у меня нет других начальников, кроме себя :)
Ответ написан
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы