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

Это должен быть ответ в комментария. Но я решила, что как для коммента, там и много… А к тому же, вдруг ещё кому-то будет интересно.

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


… Давай смотреть так — с практической точки зрения. Положим, ты за 6 месяцев упорного труда, способен освоить некоторые навыки. Некоторые — это значит, что у тебя нет опыта в реальной разработке, нет опыта работы в команде, нет знаний методологии разработки и нет ещё много чего, чего должно быть у опытного работника и ты не студент 3-го курса специальности «программная инженерия». У тебя есть теоретические знания и некоторые навыки, полученные в результате самостоятельного обучения.

1. Если ты займёшься разработкой под веб. 
Ты сможешь получить реальные навыки создав пару-тройку сайтов для себя. На локальном сервере или бесплатной площадке. Потом, может найдёшь кого-то из знакомых, кому нужно сделать сайт и сделаешь… Так ты сможешь получить какое-то количество клиентов, заработать сколько-то денег и получить реальный опыт и портфолио. Дальше — либо фриланс, либо собеседование и контора. Сначала маленькая, где будет много разной работы и не очень много денег. Если будешь дальше совершенствоваться и специализироваться в какой-то нише (js, php, ruby...), то через пару лет сможешь перебраться уже в нормальную компанию с неплохой зарплатой. Поработав лет 5 в компании, можешь либо остаться и делать карьеру там, либо переехать на пляж Доминиканской Республики откуда фрилансить по 75$ (или даже выше) в час, а в свободное время дёргать за си… ки симпатичных доминиканских девушек.



2. Разработка десктопных приложений.
Путь здесь более тернист. А если тебе больше 30… то… из беседы двух программистов (вебинар)
— Как ты думашь, можно ли войти в программирование после 30?
У обоих смешки и ухмылки...
— Конечно можно… но очень трудно.
Здесь будет сложнее получить первый опыт и сложнее попасть в компанию. Здесь важны (очень) знания методологии разработки ПО, навыки работать в команде и т.д.
И пляж Доминиканы маячит гораздо слабее. Хотя, конечно, это зависит от твоей личности. Но в целом, где-то так.

3. Есть ещё разработка под мобильные устройства. Android OR iOS.
Круто и востребовано. Проше получить опыт, но есть своя специфика. Я не много знаю об этом. Перечислять используемые ими технологии не буду — нет смысла.

Я бы выбирала веб. Почему? Интересно. Динамично. Практично — можно придумать свою идею и запилить какой-то собственный проект. В общем, веб — это огромное пространство технологий, идей, людей и возможностей.
И в веб-разработку войти проще даже в возрасте.

Что и в какой последовательности изучать для веб. Надо понимать, что у веб-разработки существует две стороны — frontend и backend. Т.е. frontend — это внешнее представление сайта или веб-приложения (то, что работает в браузере), а backend — это логика сайта (веб-приложения), работающая на стороне сервера. Соответственно и разработчики делятся на две категории. В каждой из них существуют ещё свои разделения.

Для работы на фронтенде необходимо знать:

1. HTML — язык гипертекстовой разметки. Это не программирование, но это как алфавит — без него нельзя вообще. Знать — на отлично.
2. CSS — язык описания стилей. Это тоже не программирование. Это алфавит часть 2. Знать — на отлично.
3. JavaScript — динамика сайта во фронтенде. (хотя и не только, но об этом позже). Знать — на твёрдое хорошо.
4. Базовое понимание PHP (см. далее).
5. Есть ещё ряд навыков. Ну, хотя бы умение пользоваться фотошопом.

Для работы на бэкенде необходимо знать:

1. HTML — язык гипертекстовой разметки.  Знать — хорошо.
2. CSS — язык описания стилей. Знать — базово.
3. JavaScript. Здесь разговор особый. Тема JS сейчас в тренде. Появился NODE.js — серверный многопоточный вариант JS. Появились фреймвёки JS — React, AngularJS и т.д. В общем, разработчики на JS в цене и востребованы. Я знаю пару ребят, которые получают по 4 тыс долларов в месяц и живут очень не плохо. А в среднем — 1500$ — 2000$ вполне свободно. Так что JS, это отдельная перспективная специализация.
4. PHP — скриптовый язык программирования. На этом языке написано подавляющее большинство сайтов в инете. Тоже востребовано и хорошо оплачиваемо.
5. Есть ещё ряд технологий под веб — Ruby и т.д. Но они специфичны. Там тоже можно хорошо зарабатывать и делать интересные вещи… но это более узко.

Что ещё надо сказать… Ну хотя бы то, что и JS и PHP относятся к категории «Си-подобных» языков — в основе их синтаксиса лежит синтаксис языка С. Т.е. они имеют общие черты, но имеют и множество различий.

Вот где-то так. Я не буду писать о разработке под мобильные устройства и десктопные приложения — мои знания там поверхностны  и не идут дальше C# и Pyton (на среднем уровне). В своей учёбе я использую несколько специфических языков программирования, которыми пользуется только кучка извращенцев и на которых не ведётся коммерческая разработка. Например — Julia и R. Но так надо.

Тебе нужно выбирать область. Изучить базовые вещи. Потом искать свою специализацию и копать, копать, копать… Но оно того стоит.

Твой вопрос — "… и не отражается ли более простой вебовский путь на развитии умения создания эффективных алгоритмов?" — нет. Если ты будешь заниматься фронтендом, то там не так уж и много алгоритмов как таковых. А если бэкендом — то там тоже, что и в десктопном программировании.

По каким источникам учиться. Учебных курсов в инете полно. Но не надо качать всё подряд. Лучшие курсы:
1. Lynda.com (английский — есть переводы) — просто и понятно.
2. Специалист (русский — Москва, Бауманка) — достаточно серьёзно и глубоко.
3. ITVDN (русский) — специфично, но понятно и неплохо.
И дальше отдельные вещи у Geekbrains, Школа современных технологий, Loftschool, SmartMe.

В общем — если решишь попробовать, я дам ссылки где именно и что именно скачать.

Обсудить у себя 10
Комментарии (5)

ох уж эти новички пенсионеры)

слушай, Даша, если даже в самом простом из простых (frontend) требуется изучать Си-подобные языки, то стоит ли изначально начать с Си тернистый путь? или это совсем неравнозначно и нерационально?

некоторые курсы знакомы. смотрел что-то со специалиста и с lynda.com. но хаотично.
потому, если есть мысли, что конкретно нужно сначала просмотреть, то поделись пожалуйста!

Спасибо, Даша!

Ну, фронтенд не так уж и прост. )) В смысле клепать сайты-визитки — можно по 5 штук в день. А вот сидеть на серьёзной разработке… там деньги не зря платят. 
Разница между С и С-подобным javaScript, достаточно велика. С — это серьёзный язык. JS — считается языком с низким порогом входа — т.е. его легко освоить и в ряде топовых американских колледжей и ВУЗов сейчас именно с него начинают обучение программированию. Итого — если ориентируешься на веб, то классический С тебе изучать не стоит, так как в чистом виде ты с ним не столкнёшься, а вот JS — стоит по любому, так ты всегда будешь на него натыкаться (если не уйдёшь полность в php или ruby).

Конкретно по курсам отпишусь немного позже. Мне сейчас в зал бежать надо — стараться мужиков бить, самой стараться не огрести. Удовольствия — море. )) Особенно если по мне не попадают. ))

отмутузила тузиков?) а что за вид спорта? контр страйк или фехтование на ножах?)

на ex ua выделил достаточно широкий спектр курсов и уроков по, в том числе, HTML, PHP и CSS.

Сегодня всё было мирно. Спаррингов не было. Вид спорта — постельная борьба. )) Шучу. Джиу-джитсу. В подростковом возрасте занималась в Славянской Защите у Злотникова. Потом было айкибудо. Сейчас джиу-джитсу. И я от него балдею. Это моё. Хотя Злотников научил хорошо бить, а Сашенька (тренер по айкибудо) — научил эффективно двигаться.

ex.ua… не — nnm-club.me — там есть всё, что нужно и свежеиспеченное.

Смотри Специалиста (желательно преподаватель — Борисов)

HTML и CSS. Уровень 1. Создание сайтов по стандартам W3C на HTML 5 и СSS 3 — nnmclub.to/forum/viewtopic.php?t=761428

HTML и CSS. Уровень 2. Кроссбраузерная верстка, основы юзабилити, HTML5 и CSS3 — nnmclub.to/forum/viewtopic.php?t=782278


Для фронтенда — уровни 1,2,3а. Для бекенда — + ещё 3б и 3в.

JavaScript. Уровень 1. Основы веб — программирования — nnmclub.to/forum/viewtopic.php?t=858374

JavaScript. Уровень 2. Расширенные возможности — nnmclub.to/forum/viewtopic.php?t=858375

JavaScript. Уровень 3а. Использование библиотеки jQuery — nnmclub.to/forum/viewtopic.php?t=858376

JavaScript. Уровень 3б. AJAX. Разработка веб — приложений для Web 2.0 — nnmclub.to/forum/viewtopic.php?t=858377

JavaScript. Уровень 3в. Серверное программирование на Node.js — nnmclub.to/forum/viewtopic.php?t=858379


По PHP завтра посмотрю. Есть Специалист (Борисов) за 2015 год.  

Спасибо, Даша!
Сейчас начну разбираться, шуршать и щёлкать)

Чтобы комментировать надо зарегистрироваться или если вы уже регистрировались войти в свой аккаунт.

Войти через социальные сети: