Пользователь пока ничего не рассказал о себе

Достижения

Все достижения (8)

Наибольший вклад в теги

Все теги (83)

Лучшие ответы пользователя

Все ответы (136)
  • Какие ресурсы со статьями, туториалами и темами по изучению программирования, технологий, фреймворков вы знаете?

    @BUY33
    Java-developer
    Лучшее уже перечислили, ну вот еще по Java:
    docs.oracle.com/javase/tutorial/extra/certificatio...
    info.javarush.ru
    https://jaxenter.com/tag/java-2
    programador.ru
    javahero.ru - не только Java
    https://projectlombok.org/index.html
    www.ibm.com/developerworks/ru/java
    szimano.org
    Spoke:
    farenda.com/spock-framework-tutorial
    Geb:
    www.gebish.org/manual/current
    Познать Git:
    https://git-scm.com/book/ru/v2
    https://www.atlassian.com/git/tutorials
    Познать Scala:
    www.scala-lang.org/documentation
    twitter.github.io/scala_school/ru/index.html
    Gradle:
    https://gradle.org/getting-started-gradle/
    MySQL:
    dev.mysql.com/doc/refman/5.7/en
    www.mysql.ru/docs
    phpclub.ru/mysql/doc/reference.html
    AngularJS:
    https://docs.angularjs.org/tutorial
    angular-doc.herokuapp.com/misc/started
    Angular 2:
    https://angular.io/docs/ts/latest/
    learnangular2.com
    theasder.github.io/learning/2016/02/08/Best-Resour...
    ReactJS:
    https://facebook.github.io/react/tutorial/tutorial.html
    tftf.ru/stati/javascript/reactjs
    getinstance.info/articles/react/react-and-es6-part1
    https://blog.risingstack.com/the-react-way-getting...
    https://facebook.github.io/jest/docs/tutorial-reac...
    TypeScript:
    metanit.com/web/typescript
    typescript-lang.ru/docs
    https://github.com/gooddaytoday/TypeScript-Handbook-RU
    Алгоритмы:
    algolist.manual.ru
    rain.ifmo.ru/cat/view.php
    Ruby:
    rusrails.ru/getting-started-with-rails
    ruby-doc.com/docs/ProgrammingRuby
    linuxshare.ru/docs/devel/languages/ruby/ruby.html
    railstutorial.ru/chapters/4_0/beginning
    Python:
    https://www.python.org/
    https://pythonworld.ru/
    python.su
    pep8.ru
    wombat.org.ua/AByteOfPython/toc.html
    jessenoller.com/good-to-great-python-reads
    Atom:
    atomthemes.io
    https://ifmo.su/atom-editor
    blog.harrix.org/article/3997
    Сборная солянка:
    www.w3schools.com
    https://medium.com/@ABatickaya
    frontender.info
    mybootstrap.ru
    https://www.toptal.com/developers/blog
    www.intuit.ru/studies/courses
    www.rsdn.ru
    hyperpolyglot.org
    https://learnxinyminutes.com/
    https://medium.freecodecamp.com/tagged/web-development
    https://github.com/zualex/devmap
    www.json.org/json-ru.html
    eax.me
    https://strangeway.org/
    https://bower.io/
    www.ibm.com/developerworks/ru/topics
    devcolibri.com
    theasder.github.io
    blog.harrix.org
    prgssr.ru
    siteacademy.ru
    Ответ написан
  • Системное администрирование Linux, с чего начать?

    @BUY33
    Java-developer
    Как уже написал Tremo - откажитесь, по максимуму, от GUI. Консоль Ваш друг, товарищ и жена. Т.е. изучаем Bash. Все манипуляции с файлами через консоль. Редактор vim или nano. В любом обучении главное - это практика. Берите и развретывайте различные сервера - DNS, ftp, почтовики, сервера приложений (всякие apache, Tomcat, Wildfly, nginx), openVPN, XMPP. Сделайте локальную сеть из виртуалок, по возможности можно и на физической попробовать. Заюзайте smb, ssh. Разверните LDAP. Базы данных и их администрирование тоже в плюс. Еще можно развернуть и настроить TeamCity, GitLab, RedMine. Познакомтесь с Docker.
    Далее можно и python изучить для автоматизации.
    В дальнейшем можно и до кластеров дойти.
    Углубляйте свои знания сетей. Книги, статьи, журналы. На хабре вообще завались всего.
    Ответ написан
  • Что можно тянуть в одного на Java?

    @BUY33
    Java-developer
    Напишите файловый сервер с возможностью загрузки файлов через ftp-клиент, через web-морду, через SOAP ( или REST), через мобильную приложуху с аутентификацией, базой юзеров, также можно в базе хранить какую-нибудь метоинформацию о файле. Например, может быть такой маленький личный фотоальбом с подписями(блог-постами, комментами etc.), фотки из которого доступно скачать и залить повсякому. Попробуете всё.
    web и Java = Enterprise. Это приложения масштаба предприятия, т.е. они как-то автоматизируют его бизнес-процессы и документооборот, переносят его работу в web и электронный формат. Они также могут общаться с другими приложениями, системами. Отсюда пляшем. Вам нужно какое-то предприятие, у которого вся работа в оффлайн, всё плохо, бюрократия и ад. Придумайте сложный бизнес-процесс со сложными сущностями. Разный и изменяющийся во времени и пространстве уровень доступа. Интеграция с другими приложениями или гос.сервисами. Электронный банк, электронные платежи, электронная валюта. Наворотить можно много чего.
    Начните с малого - какой-нибудь справочник-реестр с функциями CRUD - создать, прочитать, редактировать, удалить запись. Далее прикрутите систему прав и ролей пользователей(не все могут создавать, редактировать и тем более удалять). Добавьте работу с файлами - скачать, загрузить, экспорт в pdf и exel. Продолжайте накручивать своё приложение функционалом - личка и чат, доска объявлений, имитация отношений начальник - подчиненный (тайм-менеджмент, таск-менеджмент, сбор отчетов каких-нибудь по работе), уведомления (в почту, в системе, м.б. попробовать с смс), напишите другую маленькую систему и заобщайте их между собой по SOAP или REST(например, другая система может читать из справочника и что-нибудь туда писать). Берите какое-нибудь гипотетическое предприятие (склад, магазин, автосервис, школа, больница, завод и т.д.) и представьте, что ему надо свой документооборот перевести в электронный вид и максимально автоматизировать бизнес-процессы.
    Из фреймворков - семейство Spring.
    Ответ написан
  • Можете посоветовать как быть дальше?

    @BUY33
    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(например, другая система может читать из справочника и что-нибудь туда писать). Берите какое-нибудь гипотетическое предприятие (склад, магазин, автосервис, школа, больница, завод и т.д.) и представьте, что ему надо свой документооборот перевести в электронный вид и максимально автоматизировать бизнес-процессы.
    Короче, набирайтесь опыта и учитесь через практику, ставьте сами себе задачи и ищите пути их решения. Стажировка и работа вообще на первых порах дают мощный толчок в развитии. Не можете найти стажировку? Идите на собеседования, делайте тестовые задания - тут сразу все пробелы всплывут.
    Ответ написан
  • Как выбрать правильный вектор развития в IT сфере?

    @BUY33
    Java-developer
    Не считаю себя хорошим программистом и профи, пока в процессе. Могу поделиться своим ИМХО.

    Часть 1
    1. Готовое использовать тоже надо уметь и знать, где это готовое найти, которое помочь может, какое готовое хорошо, а какое будет лишним.
    2. П.1 не исключает возможности писать велосипед. Писать велосипеды полезно для себя, чтобы глубже разобраться в работе готового, в процессе подглядеть на готовый код, подумать как написал бы сам. Мб писать узкоспециализированные велосипеды, которые подойдут именно вашей задаче лучше, чем готовые, но универсальные решения.
    3. Я работаю full-stack. У нас все такие, ибо народу не так уж много. Периодически устаю от этого, но периодически не представляю себя без возможности писать и на фронте, и на беке. Если вам по душе решать задачу от начала и до конца, то почему нет? Главное, чтобы в кайф. Возможно стоит в таком случае развиваться периодами - выделяем период и изучаем это направление, потом переключаемся на другое. А возможно надо отталкиваться от конкретной задачи и в её рамках изучать как решить её на клиенте, а как на сервере. Чтобы переключаться и читать любой код, надо обладать широким кругозором и знать базовые концепции, Computer Science, паттерны, парадигмы и т.п. Чтобы делать это быстро, нужен опыт. Когда однажды решал что-то подобное, то второй раз решить это будет проще и быстрее. Ещё полезно держать руку на пульсе и слушать, что сейчас в IT вообще твориться, чтобы знать куда копать, если возникнет необходимость - я покрываю это подкастами и статейками из всяких еженедельных рассылок.

    Часть 2
    1. Английский каждый день, хоть 10 минут, но каждый день. Читать, смотреть, слушать. В идеале ещё и говорить.
    2. Дискретка - да. Например, есть книжка Дискретная математика для программистов. Вышка, матан - ну хз, смотря, что за задачи решать, большинству не особо то и пригождается.
    3. Алгоритмы и структуры данных - да. Какие-нибудь классические книжки по этому делу. Кормен, например. Но вот тут, имхо, нужно писать велосипеды! Изучаете алгоритм или структуру данных, описание на естественном языке, а потом берёте ваш любимый ЯП и реализуете этот алгоритм по описанию сами. Затем ищите в интернете его "эталонную" реализацию, сравниваете с вашим велосипедом. Как книжку пройдёте, то мб захочется углубиться в какую-нибудь сферу Computer Science. Ещё есть Open Source Univercity - https://github.com/ossu/computer-science - это сборник лучших бесплатных материалов по CS в сети, как бы онлайн-образование в сфере CS. Сам не проходил, но в планах туда заглянуть есть)
    4. Паттерны, как и п.3
    5. Изучите пару ЯП с парадигмой, отличной от привычной вам.
    6. Если вы в web, то надо познать как работают сети.
    7. В идеале познать ОС, в общих чертах как устроена, как работает. Команды оболочки, поадминить какие-нибудь сервисы в мини-сети из виртуалок, пожить немного чисто в консоли.
    8. Принять участие в Open Source. Вы же пользуетесь готовыми штуками. Возьмите небольшую такую штуку, посмотрите как она устроена внутри, сходите на её гитхаб, посмотрите issue, мб там нужна ваша помощь. Часто есть issue, отмеченные для новичков. Тут одни плюсы - разберётесь в готовой штуке, сделаете её лучше для себя и для других, получите гордое звание контрибьютора).
    9. Не слушать таких людей, как ваш начальник - это у него не получится, а вы на себе крест не ставьте, вам до пенсии ещё кодить и кодить.
    10. Ну и писать код, больше кода богу кода.
    Ответ написан