joms
@joms
Студент, занимаюсь самообразованием по програм-ю

Можете посоветовать как быть дальше?

Я с давних лет хочу стать программистом. И у меня есть достаточные знания о языках программирования, ООП, что такое фреймворк(хоть и книгу Э. Гамма "Паттерны проектирования" осилить[пока что] не смог).
Я разбираюсь web разработке - html+css+php+mysql, делал учебные сайты по ним. Не могу сказать что такие большие знания.
Я знаю язык java - составлял проекты в андроид студио(мне надо программу в ней подготовить для магистр.диссертации), в общем хотел сделать java своим основным языком.
В целом любые языки могу быстро освоить.
И я пытаюсь куда-нибудь на стажировку, пока что не берут никуда))
Что я хотел, я вот запутался, не знаю какой шаг сделать следующим. Как дальше развиваться. Не могу двигаться дальше от знаний основных конструкций и логики языков программирования. Какой фреймворк выбрать. Как двигаться к более серьезному программированию. Дайте совет.
И заранее прошу прощение за такой вопрос, знаю что такие бывают часто и это надоедает.))
  • Вопрос задан
  • 1368 просмотров
Решения вопроса 1
@frozen_coder
Java-developer
"Хочу сделать основным Java" - очень расплывчато. Java - это инструмент для разных сфер: android, desktop, web. Я бы советовал в web - наиболее распространенная сфера; ванги говорят, что android-приложения уступят когда-нибудь своё место web. Ну это всё дело вкуса и чего ВЫ хотите. Итак, например, хотим в Java-web:
1) А Вы уверены, что знаете Java? Может есть нюансы и маленькие пробелы? (пробежаться по Эккелю и Блоху, можно посмотреть статейки о подготовке к сертификации - много мелочей, неочевидностей раскрыто) Разобрать Java 8, особое внимание stream.
2) Ок, Java SE знаете, а Java EE? Тут можно очень досконально не вникать на первых порах - фреймоворки нам помогут.
3) Пошли Фреймворки и библиотеки - Семейство Spring: Core, MVC, Boot, Data, Security. Для ORM - Hibernate (можно вместе с Spring Data, можно вместо, посмотреть нужно). Для уменьшения болерплейта - Lombok.
4) Для тестирования JUnit, потом посмотрите Spock Framework (тут мы знакомимся еще и с Groovy).
5) Плавно переходим к клиенту. Тут нам Java становится мало. Вспоминаем html и css. Если не знаете JS - узнать. Дальше дело вкуса. Выбираем(пишем своё) библиотеку или модный фреймворк, изучаем пилим клиентскую часть. На этапе разбирательств с клиентом познакомиться(если вдруг чего не знали) с REST, http, https, http 2.0, webSockets, json, ajax что такое DTO.
6) Для UI тестирования попробуйте Geb.
7) WebServices! SOAP, Jaxb, SOAP MTOM.
8) Можете попутно расширить кругозор по БД - попробовать вместо mysql postgres или NoSql базы.
Вот это был примерный набор инструментов.
Но главное - практика. Нужен свой учебный проект. Начинаете его делать - появляются проблемы - смотрите как такое можно решить существующими инструментами - тут же применяете теорию на практике.
Предлагаю писать какой-нибудь корпоративный портал с каким-нибудь реестром, справочником и т.д. Включаем фантазию.
Начните с малого - сам справочник-реестр с функциями CRUD - создать, прочитать, редактировать, удалить запись. Далее прикрутите систему прав и ролей пользователей(не все могут создавать, редактировать и тем более удалять). Добавьте работу с файлами - скачать, загрузить, экспорт в pdf и exel. Продолжайте накручивать своё приложение функционалом - личка и чат, доска объявлений, имитация отношений начальник - подчиненный (тайм-менеджмент, таск-менеджмент, сбор отчетов каких-нибудь по работе), уведомления (в почту, в системе, м.б. попробовать с смс), напишите другую маленькую систему и заобщайте их между собой по SOAP(например, другая система может читать из справочника и что-нибудь туда писать). Берите какое-нибудь гипотетическое предприятие (склад, магазин, автосервис, школа, больница, завод и т.д.) и представьте, что ему надо свой документооборот перевести в электронный вид и максимально автоматизировать бизнес-процессы.
Короче, набирайтесь опыта и учитесь через практику, ставьте сами себе задачи и ищите пути их решения. Стажировка и работа вообще на первых порах дают мощный толчок в развитии. Не можете найти стажировку? Идите на собеседования, делайте тестовые задания - тут сразу все пробелы всплывут.
Ответ написан
Пригласить эксперта
Ответы на вопрос 4
riky
@riky
Laravel
совет - больше практики.
Ответ написан
Комментировать
@FoxInSox
не знаю какой шаг сделать следующим. Как дальше развиваться.

Устройтесь на работу, там расскажут.
Ответ написан
Комментировать
@flerry
Обычно оно само при постоянном занятии написанием кода идет. Если по java - бери и делай проекты. Любые. Вот в голову что-то пришло - попробуй реализовать. Советую еще глянуть книжку Эккеля. Со временем наберешься опыта и сам не будешь понимать, как выучился :)
Ответ написан
Комментировать
RevHarris
@RevHarris
Шо то, шо это
Язык - инструмент. Изучать инструмент ради изучения инструмента - бестолковое занятие.

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

Если есть интересные задумки (лично вам интересные, а не в принципе, в общем) - решайте. Так придёт опыт и умение работать с реальными фреймворками, библиотеками, языками, системами и др. А "задумки" - они есть, так или иначе, всегда. Даже решение 1/1000 от самой смелой идеи (сделать свою операционку, аналог вк, собственный фотошоп или свой гта с блэкджеком и....) даст колоссальный опыт, который не купишь.

Если нету никаких целей, задач и прочего что нужно/можно решить с помощью языка программирования - только работа. Старайтесь устроится куда нибудь. Хоть подмастерьем-подмастерья но устраивайтесь. Не берут - знаний не хватает? Так копайте то, что требует работодатели. Понимаю, не самый приятный путь - но опыта будет "завались".
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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