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

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

    @frozen_coder
    Java-developer
    По книгам - это классика Хорсманн, Эккель, Блох. Есть еще headfirst, но там всё как-то слишком по-детски разжевано с картинками, хотя кому-то так нагляднее. В остальном полностью поддерживаю evg_.
    Ответ написан
    Комментировать
  • Как научиться реализовывать алгоритмы?

    @frozen_coder
    Java-developer
    Читайте книги по алгоритмам, по чистоте кода (Чистый код Мартина как библия), изучайте чужой код - старших коллег и openSorce сообщества, практикуйтесь - реализуйте простые алгоритмы, у Мартина прочитайте что такое ката, возвращайтесь к своему коду и думайте как его улучшить. Довольно давно - это сколько? 10 тыс. часов программирования преодолели?
    Ответ написан
    Комментировать
  • Какие есть хорошие книги по java с уклоном в искусственный интеллект?

    @frozen_coder
    Java-developer
    Мне думается, что хорошие книги по Java и про искусственный интеллект - это разные книги. Не знаю за ИИ. За Java рекомендую классику - Эккель, Хорстманн, Блох, Шилдт как справочник. Если интересует именно Java, то овладейте ей как языком программирования, потом ищите книги по ИИ(с большой долей вероятности в ней могут оказаться примеры не на Java) и уже на Java реализуйте описанные в них идеи, алгоритмы, примеры и свои программы с ИИ.
    Про книги об ИИ был уже вопрос на тостере. Гуглите лучше.
    Что почитать об искусственном интеллекте?
    К ключевым словам поиска можете добавить машинное обучение, глубокое обучение (deep learning), нейронные сети.
    Ответ написан
    Комментировать
  • Системное администрирование Linux, с чего начать?

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

    @frozen_coder
    Java-developer
    Да ни говорите про все эти курсы никому. В портфолио указывают свои работы. Вы хотели сказать в резюме. Курсы для отмывания денег и существуют (невозможно стать программистом за 21 день, блин -_-). В каждой третьей вакансии - умение читать документацию. Так и говорите, что все знания черпали из документации. Только в плюс будет.
    Ответ написан
    Комментировать
  • Какая книга интересно и чётко расскажет устройство компьютера на физическом уровне?

    @frozen_coder
    Java-developer
    Организация ЭВМ. К. Хамахер, З. Вранешич, С. Заки
    Ответ написан
    Комментировать
  • Книги по электронике с нуля?

    @frozen_coder
    Java-developer
    Может не совсем для начинающих, но точно стоит посмотреть Хоровиц и Хилл "Искусство схемотехники"
    www.ozon.ru/context/detail/id/4446097/?gclid=CjwKE...
    И еще по схемотехнике Угрюмов "Цифровая схемотехника"
    https://www.ozon.ru/context/detail/id/5217645/
    Касательно как всё устроено в компьютерах Хамахер "Организация ЭВМ". По этой книге курсовик по проектированию процессора делал.
    https://www.ozon.ru/context/detail/id/1374858/?gcl...
    И вот еще более академический труд Танненбаума Архитектура компьютера
    www.ozon.ru/context/detail/id/20032936/?gclid=CjwK...
    Ответ написан
    2 комментария
  • Хорошо ли использовать workbench?

    @frozen_coder
    Java-developer
    Использовать неплохо. Плохо пользоваться гуи для изменения базы, создания таблиц и т.п.. Лучше писать скрипты и запускать их в workbench. Скрипты хранить рядом с проектом, чтобы можно было посмотреть, как модифицировалась структура, не влезая в логи. workbench удобно использовать для просмотра базы и прочих обозревательных целей, соединяться с разными базами, удаленными и проч, когда все в разных вкладках рядом с друг с другом. Выводить таблицы в консоль неудобно, для каждой сортировки скрипт писать, бе. Я в консоли только сами базы создаю, патчи (скрипты) накатываю или дамп снимаю.
    Еще есть прекрасная платная альтернатива в лице DataGrip.
    Ответ написан
    Комментировать
  • В какой книге по java есть нормальное объяснение классов и методов пакета java.lang?

    @frozen_coder
    Java-developer
    Попробуйте Эккеля или Хорстманна. Это типо тоже классика.
    Ответ написан
  • Переход проекта с jQuery на Angular 1 или Angular 2 или React?

    @frozen_coder
    Java-developer
    Я за React + Redux. Вникать надо по минимуму. Если знаете JavaScript, то вам больше ничего и не надо, чтобы понять. На хабре полно статей, чтобы начать. Запоминать какие-то магические слова не надо (типа ng-то, ng-это).
    Не знаю за второй Angular, но решение на React + Redux будет быстрее первой версии.
    Больше свободы. Меньше специфического синтаксиса и невидимой магии, чем в Angular.
    Минус - вам нужно принять много своих решений как лучше сделать и выбрать между большим разнообразием доп. либ, но в этом же и плюс.
    Вместо Redux можно попробовать MobX.
    Angular2 активно эволюционирует, вроде только вышел, а уже 2.3. И я бы отнес TypeScript к плюсам - люблю типизацию. Но у React есть Flow.
    Ухожу с 1го Angular. Не нравится scope и двухсторонний биндинг. Переходить на 1й в долгосрочной перспективе смысл ли есть, когда будущего нет? ИМХО. Вопрос холиварный. Попробуйте оба-три варианта и выберете сами, что по душе.
    Ответ написан
    2 комментария
  • Как построить свой путь до программиста Java?

    @frozen_coder
    Java-developer
    Лучший вариант найти стажировку, где могут дать покодить кусочек реального проекта, а затем устроится джуном. Найдите список вопросов собеседования на джуна Java. Посмотрите, что не знаете и подтяните эту область. Не можете найти стажировку, тогда сразу пробуйте ходить на собеседования. Там сразу поймете, что вы еще не знаете -> Делаете выводы, готовитесь -> Идете на новые собеседования.
    Сертификация больше для души и для себя. В процессе подготовки и решения заданий можно разобраться в мелочах и нюансах Java. НО! Вы с большущей вероятностью не встретите на практике подобные примеры кода и ситуации, которые встречаются в вопросах сертификации. Вот очень хорошая книжка для подготовки, но для 6 версии.
    https://www.amazon.com/SCJP-Certified-Programmer-J...
    Кроме того, в некоторых компаниях можно пройти сертификацию за счет работодателя.
    Ответ написан
    Комментировать
  • Интересные статьи о JavaScript?

    @frozen_coder
    Java-developer
    На самом же хабре море подобных статей, которые выходят, если не каждый день, то каждую неделю по 2-3 будет минимум. Затем по воскресеньям же выходит дайджест по web-разработке, в котором этих статей завались со всего интернета.
    От себя могу добавить ресурс на русском - frontender.info . Но там не только JS.
    Ответ написан
    1 комментарий
  • Как в джаве работать с массивами?

    @frozen_coder
    Java-developer
    List<Short> a = new ArrayList();
    По хорошему выберите что-то одно - или массивы, или коллекции. Лучше коллекции, массивы я вообще не помню когда последний раз юзал.
    Как уже выше советовали прочитайте про Collections, Generics, Autoboxing.
    for(int i = 0; i < a.size(); i++){
    sum += a.get(i);
    }

    А вместо for с коллекциями можно в for each. И кстати зачем сначала использовать short, а потом переходить на int? Может лучше сразу в int?
    Integer sum = 0;
    for(Short item : a){
         sum += (Integer) item;
    }
    Ответ написан
  • Нужна ли математика в enterprise?

    @frozen_coder
    Java-developer
    Стоит соваться. Я не думаю, что много народа в enterprise помнят хоть что-то из матана.
    , хорошо понимал дискретную и теорию чисел, булевую алгебру ,
    - то что надо. Ни разу не приходилось писать что-то математическое. А вот знания из этих дисциплин пригодились. Люблю конечные автоматы). Булева алгебра - это фундамент. Не зная её, вообще нечего делать в программировании. Так что у вас всё гуд.
    Где может понадобится всякая математика, так это во всяких 3D графиках, в задачах где надо строить какие-то сложные мат. модели. Для всяких корпоративных порталов и прочего этого не нужно.
    Enterprise - это совсем не то. Что вам действительно надо, так это знать базы данных. Алгоритмы и паттерны. Ну и язык с его экосистемой, xml и проч. Ну вы поняли.
    P.S. Сижу на java. Помню только фамилию преподавателя матана)
    Ответ написан
    1 комментарий
  • Нужен ли Linux для начинающего разработчика?

    @frozen_coder
    Java-developer
    Это очень субъективный и холиварный вопрос удобства разработки. Инструменты для фронта и бэка есть и там, и там. Всё заводится и работает и там, и там. Можете поставить второй системой, попробовать решить все те задачи, которые вы делаете в Windows. Или погонять в виртуалке, или попробовать развернуть в ней LAMP-сервер и использовать как среду для тестирования, запуская на нем свои разработки и таким образом познакомится с возможной боевой средой. Если не понравится, ну и ладно. Просто будете иметь представление и взаимопонимание с админами). Ставьте Mint - Ubuntu-based, много всякого из коробки, удобен и красив, если полегче в плане нагрузки на комп, то Xfce-версию. Тонны времени на разворачивание всего и вся не потребуется. Ответы на возникающие вопросы найдете быстро и интерфейс более, менее привычен. А если хотите погонять как сервер на виртуалке, то Debian. У Microsoft'овских интрументов хорошая поддержка TypeScript - надмножество JS от Microsoft, которое в тренде). В офисе разнице нет. У нас успешно работают на всех системах и можешь ставить себе, что угодно. Бросать всё и бежать на Linux сразу смысла нет. А если вам еще и офисные программы нужны (учеба, документы и проч.), то сразу добавляйте MS Office к ФШ на wine, ибо LibreOffice ужасен.
    Ответ написан
    Комментировать
  • Подходит ли java для написания серверной части сервера?

    @frozen_coder
    Java-developer
    серверной части сервера
    страшно звучит. Вы подразумевали какой-то распределенный сервер, где его части общаются между собой по модели клиент-сервер? Всё ещё страшно звучит. Ну да ладно.
    Если по производительности, то Java скорее всего выйграет php и python. Скриптовые языки менее производительны компилируемых. Вообще выбирать php и python для написания сервера - плохая идея, они не для того и тут себя не раскроют и не окупят. Если хотите написать производительный сервер, то вам в C++, Golang, Rust, хотя и Java сойдет. У этих языков даже все инструменты для этого есть и библиотеки. Много серверов на них уже написано.
    Ответ написан
    1 комментарий
  • Java и Web - что выбрать?

    @frozen_coder
    Java-developer
    Backend - Spring, Core, MVC, Boot, Data, Security. Советую заюзать lombok. Не слышал на фронте про спец. фреймворки для Java (А оно точно надо? Чтоб прям под Java? Я вот даже слабо представляю как это, если не Android). Большой разницы, что там на фронте для Java нет, если вы с фронт-приложением общаетесь через REST. Написали для обмена DTO и общайтесь через REST. А это уже может быть что угодно. Angular, React, Vue и т.д. Если любите строгую типизацию, то берите еще и TypeScript. Если уж прям only Java, то есть такая штука как jsp(в 2016 начинать новые проекты и использовать jsp не комильфо). Фронт - это вообще что-то личное. Мне нравится Angular, соседи пишут на React, еще есть проекты на JQuery. Удобно - это субъективно. Есть еще такая тема, что SEO не может с SPA нормально, если вам это важно, то стоит это учесть при выборе.
    Ответ написан
    Комментировать
  • Кто мог бы подсказать, где можно взять SQL код для быстрого создания таблицы?

    @frozen_coder
    Java-developer
    Могу предложить найти дампы БД всяких Российских классификаторов
    www.classbase.ru/download
    или например ФИАС
    basicdata.ru/download/fias
    А вот, что нашел Гугль
    fkn.ktu10.com/?q=node/7216
    и еще
    www.drupal.ru/node/23269
    вот база данных стран и их городов в json
    https://raw.githubusercontent.com/David-Haim/Count...
    а вообще вот крутой генератор, в любом формате можно сгенерить много данных
    www.generatedata.com
    И ещё
    https://www.mockaroo.com/
    И вот, но придется выцепить данные из других форматов
    www.databasetestdata.com
    А здесь можно найти DataModel для вдохновения на ваши тестовые БД, но создание таблиц и связи придется писать самому (это уже не должно быть леньки, а надо практиковаться)
    www.databaseanswers.org/data_models
    Больше искать было леньки. Ну ты понял.
    Ответ написан
    1 комментарий