Изучение java
-
- Posts: 4
- Joined: 26 Feb 2014 09:13
Изучение java
Всем привет.
Программирую на php. Планирую в следующем году найти работу в США, вероятнее всего бодишоп.
Как я понял, с php меня врядли повезут. Нужна джава.
Начал смотреть как обстоят дела с джавой. Там огромный стек всего, что нужно знать вместе с джавой.
Не совсем пока понятно что именно нужно, без чего можно обойтись и как долго каждая технология осваивается.
Из того, что я понял:
1) Java Core (Сам язык)
2) Spring, Struts, Play (Фреймворки. Спринг самый популярный, плей для хипстеров и поклонников рельсов и джанго)
3) Hibernate (ORM для java)
4) JBoss, Tomcat, GlassFish, Weblogic, WebSphere (Application servers. Мне кажется любой в состоянии открыть конфиг и гугл, чтобы настроить это. В продакешене должен делать админ. Я не прав? Это как писать знание Apache, nginx или unicorn. Ну сделать пару конфигов и настроить приложение в продакшене я смогу. Это одно и тоже?)
5) JUnit (писал спеки, не думаю, что в юнит тестах что-то архисложное)
6) Maven, Gradle, Ant (В порядке популярности. Автоматический билдинг проекта. Что тут нужно знать тоже не совсем понятно)
7) PL/SQL (Работаю с PostgreSQL, Oracle в глаза не видел)
8. JSP (Это просто шаблонизатор типа haml, erb и тд?)
9) JSF (Пока туманно представляю что это и зачем. Похоже на какой-то слой между фронтэндом и бэкэндом. А как же MVC?)
10) Servlets (Что-то между юзером и http сервером)
11) JDBC (Либа для работы с базой)
У меня двоякое ощущение. С одной стороны, что это какое-то непроходимое болото, а с другой, что по сути нужно знать саму джаву и фреймворк, а остальное по мере необходимости.
Направьте, пожалуйста, падавана в нужное русло. За что хвататься и какую литературу лучше почитать. Купил на амазоне пару книг по джаве, так там 30 страниц объясняют циклы.
Что посоветуете для практики? Какие есть интересные опенсорс проекты, где нужны руки?
Хочется иметь фидбек и ревью кода.
Найти удаленку на джаве видится мне маловероятным, а уходить с нормальной позиции и зарплаты в джуниоры не хотелось бы.
Программирую на php. Планирую в следующем году найти работу в США, вероятнее всего бодишоп.
Как я понял, с php меня врядли повезут. Нужна джава.
Начал смотреть как обстоят дела с джавой. Там огромный стек всего, что нужно знать вместе с джавой.
Не совсем пока понятно что именно нужно, без чего можно обойтись и как долго каждая технология осваивается.
Из того, что я понял:
1) Java Core (Сам язык)
2) Spring, Struts, Play (Фреймворки. Спринг самый популярный, плей для хипстеров и поклонников рельсов и джанго)
3) Hibernate (ORM для java)
4) JBoss, Tomcat, GlassFish, Weblogic, WebSphere (Application servers. Мне кажется любой в состоянии открыть конфиг и гугл, чтобы настроить это. В продакешене должен делать админ. Я не прав? Это как писать знание Apache, nginx или unicorn. Ну сделать пару конфигов и настроить приложение в продакшене я смогу. Это одно и тоже?)
5) JUnit (писал спеки, не думаю, что в юнит тестах что-то архисложное)
6) Maven, Gradle, Ant (В порядке популярности. Автоматический билдинг проекта. Что тут нужно знать тоже не совсем понятно)
7) PL/SQL (Работаю с PostgreSQL, Oracle в глаза не видел)
8. JSP (Это просто шаблонизатор типа haml, erb и тд?)
9) JSF (Пока туманно представляю что это и зачем. Похоже на какой-то слой между фронтэндом и бэкэндом. А как же MVC?)
10) Servlets (Что-то между юзером и http сервером)
11) JDBC (Либа для работы с базой)
У меня двоякое ощущение. С одной стороны, что это какое-то непроходимое болото, а с другой, что по сути нужно знать саму джаву и фреймворк, а остальное по мере необходимости.
Направьте, пожалуйста, падавана в нужное русло. За что хвататься и какую литературу лучше почитать. Купил на амазоне пару книг по джаве, так там 30 страниц объясняют циклы.
Что посоветуете для практики? Какие есть интересные опенсорс проекты, где нужны руки?
Хочется иметь фидбек и ревью кода.
Найти удаленку на джаве видится мне маловероятным, а уходить с нормальной позиции и зарплаты в джуниоры не хотелось бы.
-
- Уже с Приветом
- Posts: 1237
- Joined: 10 Nov 2005 03:51
Re: Изучение java
Вроде как ImageJ (открытый код) написан на Java. Вряд ли там нужны руки, но попрактиковаться в написании плагинов для ImageJ наверно можно. Программе уже лет 15.
Это совет ботаника, я использовала ImageJ как пользователь.
Это совет ботаника, я использовала ImageJ как пользователь.
Я знаю, как надо. Но сделаю, как хочу.
-
- Уже с Приветом
- Posts: 4185
- Joined: 27 Apr 2011 03:43
- Location: Сергели ->Chicago
Re: Изучение java
ненужное удалил.
1) Java Core (Сам язык)
2) Spring, Spring MVC (RESTFul web services), annotation based
3) Hibernate (обратить особое внимание на one-2-many, many-2-many, cache, performance https://docs.jboss.org/hibernate/orm/3. ... mance.html)
4) Tomcat (start, stop, deploy app, tail logs)
5) JUnit, Spring mock, Mockito и тп
6) Maven, Ant(уже не обязательно) - уметь настроить build jar, war, запустить тесты.
10) Servlets - сервлеты на прямую уже мало кто использует, но знать не помешает на уровне стандартных ответов на интервью
11) JDBC - опционально, чисто с целью ознакомления
книги
- Data Structures & Algorithms in Java(Robert Lafore)
- SCJP Sun® Certified Programmer for Java™ 6 Study Guide Exam (310-065) (не смотрите на версию и даты, книга по сей день актуальна включая ява 7/8)
- Effective Java (Joshua Bloch)
- Spring/hibernate/tomcat - читать не нужно, нужно сделать свой pet project, выложить код на гитхаб и по возможности запустить в паблик доступ.
1) Java Core (Сам язык)
2) Spring, Spring MVC (RESTFul web services), annotation based
3) Hibernate (обратить особое внимание на one-2-many, many-2-many, cache, performance https://docs.jboss.org/hibernate/orm/3. ... mance.html)
4) Tomcat (start, stop, deploy app, tail logs)
5) JUnit, Spring mock, Mockito и тп
6) Maven, Ant(уже не обязательно) - уметь настроить build jar, war, запустить тесты.
10) Servlets - сервлеты на прямую уже мало кто использует, но знать не помешает на уровне стандартных ответов на интервью
11) JDBC - опционально, чисто с целью ознакомления
книги
- Data Structures & Algorithms in Java(Robert Lafore)
- SCJP Sun® Certified Programmer for Java™ 6 Study Guide Exam (310-065) (не смотрите на версию и даты, книга по сей день актуальна включая ява 7/8)
- Effective Java (Joshua Bloch)
- Spring/hibernate/tomcat - читать не нужно, нужно сделать свой pet project, выложить код на гитхаб и по возможности запустить в паблик доступ.
-
- Уже с Приветом
- Posts: 4288
- Joined: 20 Mar 2004 03:19
- Location: KO69
Re: Изучение java
насчет пробного проекта : советую сделать что нить из разряда portfolio management - куча данных в разных группах, грузить, хранить, многопользовательский доступ и т.п. Сейчас любят UI + много данных : "плоские" или не реляционные, или реляционнные с кучей зависимостей причем так чтобы эти зависимости повторно не грузились. Любая комбинация явы (desktop/web) и какой нить базы данных будет очень полезна. Статистика тоже - но там больше упор на скорость вычислений и всякую комбинаторику, очень интересно, но ниша небольшая.
--
В.
--
В.
-
- Posts: 4
- Joined: 26 Feb 2014 09:13
Re: Изучение java
valchkou, спасибо большое!
Vоvan, вы не могли бы пояснить, что такое portfolio management Я планировал сделать интернет-магазин или твиттер, но мне не принципиально что, главное побольше скилл прокачать.
Vоvan, вы не могли бы пояснить, что такое portfolio management Я планировал сделать интернет-магазин или твиттер, но мне не принципиально что, главное побольше скилл прокачать.
-
- Уже с Приветом
- Posts: 4288
- Joined: 20 Mar 2004 03:19
- Location: KO69
Re: Изучение java
используется часто в финансах/планировании :DenisMO wrote:valchkou, спасибо большое!
Vоvan, вы не могли бы пояснить, что такое portfolio management Я планировал сделать интернет-магазин или твиттер, но мне не принципиально что, главное побольше скилл прокачать.
у вас есть набор акций - пользователь имеет по 5-10 груп по 30-50 штук в каждой. Программа хранит/читает из онлайн их стоимость за последние например два года. Задача - написать хранение такого типа данных, какие обьекты будут использоваться, какие методы для выборок и т.п.
или :
есть толпа людей с определенными знаниями и их рейтом - надо сделать несколько расписаний их занятости на период времени и просчитать скольо они буду стоить в разных комбинациях
--
В.
-
- Уже с Приветом
- Posts: 20198
- Joined: 01 Dec 2003 23:16
- Location: Russia->USA
Re: Изучение java
как правило под этим рекрутеры понимают не просто язык аDenisMO wrote:1) Java Core (Сам язык)
как антоним JEE. т.е. программы не предназначенные для контейнеров - библиотеки или собственные специализированные сервера. Почему-то часто считают что для Core Java multithreading, понимание работы JVM (типа garbage collection) нужно, а JEE - нет.
Play для скалолазов - Asynchronous programming и все такое.. IMO перспективноDenisMO wrote:2) Spring, Struts, Play (Фреймворки. Спринг самый популярный, плей для хипстеров и поклонников рельсов и джанго)
гугл, конечно поможет, но скажем у WebSphere открыть конфиг - идея плохая. или через консоль (при навигации по которой интуиция плохой помошник) или по-взрослому, через jython-скрипты. Полезно знать что в принципе можно настраивать иначе что гуглить догадатся сложно.. а эти знания приобретаются из практического опыта или трейнингов.DenisMO wrote:4) JBoss, Tomcat, GlassFish, Weblogic, WebSphere (Application servers. Мне кажется любой в состоянии открыть конфиг и гугл, чтобы настроить это. В продакешене должен делать админ. Я не прав? Это как писать знание Apache, nginx или unicorn. Ну сделать пару конфигов и настроить приложение в продакшене я смогу. Это одно и тоже?)
Это ответ Java на ASP,PHP,.. Гослинг говорил, что сделали чтоб отвязались, надеялись показать какой это идиотизм.. ан прижилось и фиг выкинешDenisMO wrote:8. JSP (Это просто шаблонизатор типа haml, erb и тд?)
JSF это стандарт для MVC фреймворков, есть куча имплементаций .. ну как в ORM - JPA стандарт и Hiberante, DataNucleus, EclipseLinkDenisMO wrote:9) JSF (Пока туманно представляю что это и зачем. Похоже на какой-то слой между фронтэндом и бэкэндом. А как же MVC?)
Говори что думаешь, думай что говоришь!
Маразм крепчал и скрепы гнулись
Маразм крепчал и скрепы гнулись
-
- Уже с Приветом
- Posts: 4185
- Joined: 27 Apr 2011 03:43
- Location: Сергели ->Chicago
Re: Изучение java
это такой интересный стандарт, который теперь никому нафиг не нужен и за бесплатноgeek7 wrote:JSF это стандарт для MVC фреймворков, есть куча имплементаций
-
- Уже с Приветом
- Posts: 4288
- Joined: 20 Mar 2004 03:19
- Location: KO69
Re: Изучение java
это точно.valchkou wrote:это такой интересный стандарт, который теперь никому нафиг не нужен и за бесплатноgeek7 wrote:JSF это стандарт для MVC фреймворков, есть куча имплементаций
Поэтому я бы ему советовал делать упор на Model & Controller, а со View - потом бодаться. Серьезным конторам нужно понимание области и как данные хранить/обрабатывать. Для View у многих есть отдельные люди у которых более опыт направлен на UI. Core IMHO лучшее в чем нужно натаскиваться.
--
В.
-
- Уже с Приветом
- Posts: 4185
- Joined: 27 Apr 2011 03:43
- Location: Сергели ->Chicago
Re: Изучение java
основной скилз который нужно натаскатьVоvan wrote:это точно.valchkou wrote:это такой интересный стандарт, который теперь никому нафиг не нужен и за бесплатноgeek7 wrote:JSF это стандарт для MVC фреймворков, есть куча имплементаций
Поэтому я бы ему советовал делать упор на Model & Controller, а со View - потом бодаться. Серьезным конторам нужно понимание области и как данные хранить/обрабатывать. Для View у многих есть отдельные люди у которых более опыт направлен на UI. Core IMHO лучшее в чем нужно натаскиваться.
--
В.
это правильно отвечать на любой стандартный жава вопрос на собеседовании по англицки.
сертификация не будет лишней или хотябы подготовка к ней
-
- Уже с Приветом
- Posts: 15475
- Joined: 27 Sep 2007 22:53
Re: Изучение java
Это дельный совет. На стандартных вопросах завалить проще всего.valchkou wrote:основной скилз который нужно натаскатьVоvan wrote:это точно.valchkou wrote:это такой интересный стандарт, который теперь никому нафиг не нужен и за бесплатноgeek7 wrote:JSF это стандарт для MVC фреймворков, есть куча имплементаций
Поэтому я бы ему советовал делать упор на Model & Controller, а со View - потом бодаться. Серьезным конторам нужно понимание области и как данные хранить/обрабатывать. Для View у многих есть отдельные люди у которых более опыт направлен на UI. Core IMHO лучшее в чем нужно натаскиваться.
--
В.
это правильно отвечать на любой стандартный жава вопрос на собеседовании по англицки.
сертификация не будет лишней или хотябы подготовка к ней
Мой любимый - оператор new.
-
- Уже с Приветом
- Posts: 3647
- Joined: 23 May 2010 15:10
Re: Изучение java
Мне аж интересно сталоМальчик-Одуванчик wrote: Это дельный совет. На стандартных вопросах завалить проще всего.
Мой любимый - оператор new.
Что про new спрашиваете?
-
- Уже с Приветом
- Posts: 15475
- Joined: 27 Sep 2007 22:53
Re: Изучение java
че-нить простенькое типа, в каком случае А а = new A; ... delete a; влечет за собой косяк.Alexandr wrote:Мне аж интересно сталоМальчик-Одуванчик wrote: Это дельный совет. На стандартных вопросах завалить проще всего.
Мой любимый - оператор new.
Что про new спрашиваете?
-
- Уже с Приветом
- Posts: 3647
- Joined: 23 May 2010 15:10
Re: Изучение java
если A - это массив, определенный через typedef?Мальчик-Одуванчик wrote:че-нить простенькое типа, в каком случае А а = new A; ... delete a; влечет за собой косяк.Alexandr wrote:Мне аж интересно сталоМальчик-Одуванчик wrote: Это дельный совет. На стандартных вопросах завалить проще всего.
Мой любимый - оператор new.
Что про new спрашиваете?
тогда явно косяк, нужно delete[]
я в правильном направлении мыслю или у вас затея другая была?
-
- Уже с Приветом
- Posts: 610
- Joined: 21 Jan 2004 11:43
- Location: CA
Re: Изучение java
Мальчик-Одуванчик wrote: че-нить простенькое типа, в каком случае А а = new A; ... delete a; влечет за собой косяк.
В первый раз слышу про delete оператор в джаве, просветите пожалуйста.
-
- Уже с Приветом
- Posts: 17281
- Joined: 07 Sep 2011 10:05
- Location: Seattle, WA
Re: Изучение java
Скотт Мейерc в Effective C++ поэтому и предупреждает, что не надо так массивы через typedef определять.Alexandr wrote: если A - это массив, определенный через typedef?
тогда явно косяк, нужно delete[]
-
- Уже с Приветом
- Posts: 17281
- Joined: 07 Sep 2011 10:05
- Location: Seattle, WA
Re: Изучение java
Скотт Мейерc в Effective C++ поэтому и предупреждает, что не надо так массивы через typedef определять.Alexandr wrote: если A - это массив, определенный через typedef?
тогда явно косяк, нужно delete[]
-
- Уже с Приветом
- Posts: 9035
- Joined: 25 Oct 2011 19:02
- Location: SVO->ORD->SFO
Re: Изучение java
Массивы вобще зло несусветное.
-
- Уже с Приветом
- Posts: 11999
- Joined: 08 Sep 2006 20:07
- Location: Силиконка
Re: Изучение java
Хмм, попытался представить "беззлобную" программу. Не смог.dotcom wrote:Массивы вобще зло несусветное.
То есть теоретически, оно конечно можно - взяли Lisp, и вперёд - cons, car, cdr - но на практике я таких программ не знаю - думаю, их просто нет.
Мир Украине. Свободу России.
-
- Уже с Приветом
- Posts: 15475
- Joined: 27 Sep 2007 22:53
Re: Изучение java
Правильно конечно.Alexandr wrote:если A - это массив, определенный через typedef?Мальчик-Одуванчик wrote:че-нить простенькое типа, в каком случае А а = new A; ... delete a; влечет за собой косяк.Alexandr wrote:Мне аж интересно сталоМальчик-Одуванчик wrote: Это дельный совет. На стандартных вопросах завалить проще всего.
Мой любимый - оператор new.
Что про new спрашиваете?
тогда явно косяк, нужно delete[]
я в правильном направлении мыслю или у вас затея другая была?
-
- Уже с Приветом
- Posts: 15475
- Joined: 27 Sep 2007 22:53
Re: Изучение java
А Александреску утверждает что иногда так охренительно удобно.Интеррапт wrote:Скотт Мейерc в Effective C++ поэтому и предупреждает, что не надо так массивы через typedef определять.Alexandr wrote: если A - это массив, определенный через typedef?
тогда явно косяк, нужно delete[]
-
- Уже с Приветом
- Posts: 17281
- Joined: 07 Sep 2011 10:05
- Location: Seattle, WA
Re: Изучение java
Ну разве что если в имя typedef-а вставлять суффик Array, что-то вроде MyCoolArray. Иначе стремно.Мальчик-Одуванчик wrote:А Александреску утверждает что иногда так охренительно удобно.Интеррапт wrote:Скотт Мейерc в Effective C++ поэтому и предупреждает, что не надо так массивы через typedef определять.Alexandr wrote: если A - это массив, определенный через typedef?
тогда явно косяк, нужно delete[]
-
- Уже с Приветом
- Posts: 15475
- Joined: 27 Sep 2007 22:53
Re: Изучение java
фишка в том что такими типами удобно специализировать шаблоны, особенно в сочетании с SFINAEИнтеррапт wrote:Ну разве что если в имя typedef-а вставлять суффик Array, что-то вроде MyCoolArray. Иначе стремно.Мальчик-Одуванчик wrote:А Александреску утверждает что иногда так охренительно удобно.Интеррапт wrote:Скотт Мейерc в Effective C++ поэтому и предупреждает, что не надо так массивы через typedef определять.Alexandr wrote: если A - это массив, определенный через typedef?
тогда явно косяк, нужно delete[]
-
- Уже с Приветом
- Posts: 17281
- Joined: 07 Sep 2011 10:05
- Location: Seattle, WA
Re: Изучение java
Век живи - век учись. Я эту аббревиатуру SFINAE и не слышал, хотя считал, что C++ хорошо знаю. Глянул описание, с этим встречался ес-но, но не знал, что это СВИНОЕ (и как следствие - некошерное).Мальчик-Одуванчик wrote:фишка в том что такими типами удобно специализировать шаблоны, особенно в сочетании с SFINAE
-
- Уже с Приветом
- Posts: 3647
- Joined: 23 May 2010 15:10
Re: Изучение java
ну да, в общем-то boost::mpl идею двигает дальше и говорит - по фиг что, главное, что у типа есть T::type, а там это может быть и массив и список и дерево и чего там только не может бытьМальчик-Одуванчик wrote:фишка в том что такими типами удобно специализировать шаблоны, особенно в сочетании с SFINAEИнтеррапт wrote:Ну разве что если в имя typedef-а вставлять суффик Array, что-то вроде MyCoolArray. Иначе стремно.Мальчик-Одуванчик wrote:А Александреску утверждает что иногда так охренительно удобно.Интеррапт wrote:Скотт Мейерc в Effective C++ поэтому и предупреждает, что не надо так массивы через typedef определять.Alexandr wrote: если A - это массив, определенный через typedef?
тогда явно косяк, нужно delete[]