Comments 77
а как же всеми любимые Брюс Эккель «Философия Java» и двухтомник Хорстманна и Корнелла?
сам ожидал увидеть двухтомник в числе первых книг
как-то незаслуженно обошли Хорстманна и Корнелла — замечательнейшие книги
как-то незаслуженно обошли Хорстманна и Корнелла — замечательнейшие книги
тоже ожидал ее(«Философия Java») здесь увидеть.
Пожалуй, относительно оригинального издания Эккеля соглашусь, а вот перевод на русский мне не понравился. :(
Видимо я совсем не тяну на прфессионала, если из 16 прочитал всего лишь 3… и лишь две полностью
Печально, что " Woking Effectively with Legacy Code" попало у вас в раздел «Pro»
Парни, скажите, а на что вообще реально на JAVA пишут? Ну к примеру у меня в мозгу укоренилось — C++, Delphi — это там десктоп приложения. А на JAVA что? И насколько перспективна эта область.
Я сейчас сайты на php+javascript делаю, но хочется еще какую-то область освоить.
Я сейчас сайты на php+javascript делаю, но хочется еще какую-то область освоить.
Вы спали последние 10 лет?
Доброе утро :)
Доброе утро :)
А на С# что сейчас пишут?
Ну что так сразу спали. 10 лет назад меня программирование не интересовало =)
Не лез просто в область программирования помимо web, а на программах и устройствах не написано же — сделано с помощью java)) да и не соприкасаешься как-то.
Не лез просто в область программирования помимо web, а на программах и устройствах не написано же — сделано с помощью java)) да и не соприкасаешься как-то.
За web-Java не скажу, а enterprise вполе себе жирный кусок.
Да хотя бы для Андроида.
Доброе утро!
Доброе утро!
На моей практике я делал на ней следующее:
1. Международная система нецентрированной статистики игровых автоматов и автоматических рулеток.
2. Система автоматизации банковского обслуживания.
3. Биллинговая система мобильных операторов.
1. Международная система нецентрированной статистики игровых автоматов и автоматических рулеток.
2. Система автоматизации банковского обслуживания.
3. Биллинговая система мобильных операторов.
web apps, desktop apps.
Не знаю почему укоренилось мнение, что на плюсах десктоп пишут. High Load серваки очень даже на С++ пишут хорошо. Java живет себе неплохо в ынтырпрайзах. Бэкенды на ней тоже кстати пишут — те же одноклассники на Java написаны (правда с некой оговоркой). Не знаю, почему Java обошли как веб — есть люди которые вполне себе пишут довольно успешно на Java веб-приложения порядка более низкого, чем Ынтырпрайз. Просто начать девелопить на Java веб сложнее чем на пыхе/питоне/рубях.
И на мой взгляд область эта (Java) перспективна на столько, на сколько удачно удастся в нее погрузиться. Если по «вершкам» пройтись — то мало что перспективно вообще.
И на мой взгляд область эта (Java) перспективна на столько, на сколько удачно удастся в нее погрузиться. Если по «вершкам» пройтись — то мало что перспективно вообще.
На плюсах довольно много относительно низкоуровневых библиотек и фреймворков (boost, qt etc). И если брать последний — там много под десктоп. Хотя последнее время все чаще вижу, что используют PyQt, QtRuby etc.
Если брать Java, то тут областей использования выше крыши:
Это навскидку, со своей колокольни. Java очень широко используется. И граблей чуть-чуть меньше, чем в C++, что может сказываться на скорости разработки. Благо по скорости с динамическими оптимизациями местами дотягивает до C (см., например, lucene; и да, хороший погроммист на Фортране может писать на Фортране на любом языке).
Если брать Java, то тут областей использования выше крыши:
- мобильные телефоны/смартфоны (Android/Dalvik, JavaME),
- embedded (та же OSGi пошла оттуда),
- desktop (начиная от толстых клиентов к EE-приложениям, всяких IDE, Eclipse-based RIA),
- нежно любимый многими за свою non-bloated xml конфигурацию enterprise (уже не только JavaEE стек, но и Spring там вполне живет),
- тяжелые бэкенды (например, тот же Solr/Lucene),
- Big Data (стэк слоников — hadoop/hdfs/hbase etc, cassandra),
- NRT (всякие развлечения типа twitter storm),
- data/computation grid (coherence, hazelcast etc),
- куча распределенных фреймворков (hazelcast, zookeeper).
Это навскидку, со своей колокольни. Java очень широко используется. И граблей чуть-чуть меньше, чем в C++, что может сказываться на скорости разработки. Благо по скорости с динамическими оптимизациями местами дотягивает до C (см., например, lucene; и да, хороший погроммист на Фортране может писать на Фортране на любом языке).
Да, дядюшку Боба не то чтобы два раза, его постоянно надо перечитывать :) После первого прочтения посмотрел на свои наработки (на тот момент) и реально ужаснулся. Совершенно по-другому начинаешь смотреть на свой (да и на чужой) код, обращаешь внимание на детали, которые, если неправильно к ним подойти, в последствии могут вылиться в серьезные проблемы.
UFO just landed and posted this here
Вместо книги по рефакторингу лучше бы инструментарий любимой IDE освоить. Вместо/вместе с Бандой четырех еще неплохо бы прочитать Head FIrst Design Patterns. Ну и МакКоннелла обязательно, пусть он и не завязан на Java. Хорстманна-Корнелла и Эккеля тоже само собой разумеется, как раньше и писали в комментах.
The Pragmatic Programmer хорошо раскрывают тему освоения инструментов на 146%, иначе хоть Eclipse, хоть IntelliJ IDEA — результатов не будет.
Вместо книги по рефакторингу лучше бы инструментарий любимой IDE освоить.Совершенно непонятное противопоставление.
Человеку, решившему получить автомобильные права, тоже посоветуете не учить ПДД, а только лишь покататься с инструктором?
Русский перевод «Refactoring», кстати говоря, довольно неплох. Чего нельзя сказать о нахваливаемой всеми вокруг «Философии Java».
Теория нужна, но конкретно книга Фаулера устарела. Там есть полезные советы касательно того, когда и где рефакторить, но в основном она содержит рецепты как рефакторить. Это было актуально в 2000-м, но теперь вместо этого есть меню Refactor в Intellij IDEA.
Книги читаю в оригинале, про перевод сказать ничего не могу.
Книги читаю в оригинале, про перевод сказать ничего не могу.
Рефакторингом пользуемся, он нужен и полезен, он не «устарел», а описание используемых рефакторингов — устарело. Интересный подход.
Поддержка рефакторинга в IDE избавляет нас от рутины и ни от чего более. «Рецепты как рефакторить», кстати говоря, занимает меньшую часть книги, большая часть — главы «мотивировка» и «пример(ы)».
Откуда новичёк узнает, когда и какой метод применить и какие они вообще бывают? «Методом научного тыка» по пунктам меню? Так даже в идее они реализованы не все. Для Java около тридцати шести пунктов меню, а, к примеру, для PHP — и вовсе около десятка самых ходовых. В книге же описано около семидесяти. Не говоря уже о том, что «метод тыка» не самый оптимальный по временным затратам.
Поддержка рефакторинга в IDE избавляет нас от рутины и ни от чего более. «Рецепты как рефакторить», кстати говоря, занимает меньшую часть книги, большая часть — главы «мотивировка» и «пример(ы)».
Откуда новичёк узнает, когда и какой метод применить и какие они вообще бывают? «Методом научного тыка» по пунктам меню? Так даже в идее они реализованы не все. Для Java около тридцати шести пунктов меню, а, к примеру, для PHP — и вовсе около десятка самых ходовых. В книге же описано около семидесяти. Не говоря уже о том, что «метод тыка» не самый оптимальный по временным затратам.
Поддержка той или иной технологии в IDE влияет наши представления о том, какой путь «быстрый» и какой путь «медленный». Будем мы использовать «говорящие» имена членов класса или какие короче набирать. Будем ли мы заранее тщательно, вплоть до исчерпывающего перечня приватных методов с сигнатурами, продумывать архитектуру приложения или отложим по максимуму до той поры, пока станет яснее. Будем ли мы редактировать старый код для избегания дублей или будем по максимуму по принципам SOLID оттягивать конец — писать пре-и пост-обёртки для старого кода, руководствуясь принципом «не трогай лишний раз технику, и она тебя не подведёт».
Без поддержки в IDE рефакторинг становится упражнениями для ума с негарантированным практическим выхлопом. С поддержкой в IDE применяются в основном те методы рефакторинга, которые поддерживаются в IDE (другие применяются в той мере, в которой облегчаются этими).
Насчёт того, что метод тыка не самый оптимальный — зато им изучается именно тот рефакторинг, который, из-за поддержанности в IDE? принесёт наибольший эффект.
Без поддержки в IDE рефакторинг становится упражнениями для ума с негарантированным практическим выхлопом. С поддержкой в IDE применяются в основном те методы рефакторинга, которые поддерживаются в IDE (другие применяются в той мере, в которой облегчаются этими).
Насчёт того, что метод тыка не самый оптимальный — зато им изучается именно тот рефакторинг, который, из-за поддержанности в IDE? принесёт наибольший эффект.
Не «не учить ПДД», а «не закглубляться в устройство автомобиля и больше надеяться на мастерские». Нередко уместно, нередко — нет.
Если продолжить говорить языком метафор, то знание алгоритма того либо иного рефакторинга можно сравнить с умением счёта «в уме», а IDE со встроенными инструментами для рефакторинга — с калькулятором.
Использование калькулятора ускоряет расчёты, снижает количество ошибок. Но человек, не способный без вычислительной техники перемножить 5 на 10 — довольно неприглядное зрелище, согласитесь?
Использовать инструмент и при этом не пытаться понять, как он должен работать, для меня странно.
Использование калькулятора ускоряет расчёты, снижает количество ошибок. Но человек, не способный без вычислительной техники перемножить 5 на 10 — довольно неприглядное зрелище, согласитесь?
Использовать инструмент и при этом не пытаться понять, как он должен работать, для меня странно.
Но человек, не способный без вычислительной техники перемножить 5 на 10 — довольно неприглядное зрелище, согласитесь?Смотря как часто этот человек сталкивается с арифметикой и сколько времени имеет на её освоение и какие способности к этому. За Пушкина, по слухам, всё считала его жена…
В 80% случаев — соглашусь, да, не особо приглядное…
я не Java программист, но порекомендую книгу для начинающих и вообще «Горький вкус — JAVA» www.ozon.ru/context/detail/id/1425895/
2003 г., до-рефакторинговая эпоха в России… скорее всего устарело…
читается интересно, есть очень рациональные мысли
начинающим позновательно.
сам я РНР программист (бывший), но большинство книг про РНР (думаю 90% точно) я бы сегодня не посоветовал бы читать начинающему РНР программисту: учат говнокодить. Притом серьезно сносят мозг, переучивать тяжело и честно говоря не хочется.
начинающим позновательно.
сам я РНР программист (бывший), но большинство книг про РНР (думаю 90% точно) я бы сегодня не посоветовал бы читать начинающему РНР программисту: учат говнокодить. Притом серьезно сносят мозг, переучивать тяжело и честно говоря не хочется.
БОльшая часть книг будет полезна программистам и на других языках.
Понимаю, что статья — перевод, но давайте теперь такую по C++!
и про РНР тоже требуется… см habrahabr.ru/post/153373/?reply_to=5541065#comment_5551355
Кроме выше добавленного я бы перенес Java Concurrency in Practice в середину, или я просто авторские понятия о градации уровня знаний вижу по-иному.
Если перенести JCiP в середину то сломается реальная картина нашего мира. Невероятное количество java программистов (вне зависимости от стажа) практически ничего не знают о многопоточности в java, либо какие-то базовые вещи, без которых даже в EE мире проблематично было бы существовать… ну например, что обычные коллекции не совсем хорошо работают при многопоточном доступе
какие-то базовые вещи, без которых даже в EE мире проблематично было бы существовать
Да ну? В EE мире в общем достаточно знать, что «что обычные коллекции не совсем хорошо работают при многопоточном доступе» и поэтому от многопоточности надо держаться как можно дальше (в том объёме, в котором требуется, она встроена в ядро) — в частности, не делать ничего статического мутабельного и в первую очередь не делать реальных синглетонов (отдавать синглетонность на откуп контейнеру).
osgi добавлен ради эклипса?
Автор Eclipse-guy, тоже показался OSGI притянутым за уши.
Ну дык, Java без IDE — извращение, а IDE у нас практически две с половиной: Eclipse, IDEA и наполовину NetBeans, стремящийся вобрать в себя все худшие черты MS Visual Studio и Embarcadero C++ Builder'а. Так что минимум на 40% OSGI притягивать стоит.
Любому (не только Java) разработчику желательно поглядывать вокруг. Знать, например, что не Java`ой единой можно мозги разминать :) По-моему, как минимум следует попробовать динамический язык (JS, Ruby etc.) и функциональный (та же Scala, чтобы далеко от JVM не уходить).
ну, и еще «Learning Python, 4th Edition » by Mark Lutz, конечно.
хорошая книга
Java Performance (http://www.amazon.com/Java-Performance-Charlie-Hunt/dp/0137142528)
протым языком написано что и как работает
единственное что смущает это копии экрана в книге
думаю из-за этого книга «весит» 720 страниц
но если картинки пропускать то нормально
Java Performance (http://www.amazon.com/Java-Performance-Charlie-Hunt/dp/0137142528)
протым языком написано что и как работает
единственное что смущает это копии экрана в книге
думаю из-за этого книга «весит» 720 страниц
но если картинки пропускать то нормально
Не нравится мне подход «Должен прочитать каждый». Сейчас такой большой выбор книг, что любую книгу из списка можно заменить аналогом. Раздражает когда кто-то, прочитавший одну из книг, перестает считать за людей тех, кто, соответственно, не читал эту книгу.
Я не спорю: наверняка это замечательные книги, но сейчас уже не 1978 год, чтобы можно было сказать, что если ты не читал K&R, ты не знаешь Си. Более того: книжка C# design patterns с небольшими поправками отлично подойдет для Java.
Я не спорю: наверняка это замечательные книги, но сейчас уже не 1978 год, чтобы можно было сказать, что если ты не читал K&R, ты не знаешь Си. Более того: книжка C# design patterns с небольшими поправками отлично подойдет для Java.
И купите себе книгу по Perl! Поверьте мне.
«The Pragmatic Programmer» пробовал читать в электричке. Неизменно навевает сон… Чего нельзя сказать о ХедФёрстовской книги по дизайн-паттернам…
А где рекомендация великого бессмертного и вечно актуального фундаментального труда «Code Complete»?
Судя по названиям, мне надо в первую очередь «Woking Effectively with Legacy Code», «Clean Code» и «Clean Coder»…
А как же «Язык программирования JAVA» от Арнольда и Гослинга?
Веду свой список: http://javawebinar.ru/books.html
На эту обратите внимание "Cracking the Coding Interview": http://bookvoed.ru/book?id=2593572,
часть VIII. Вопросы собеседования: http://storage.piter.com/upload/contents/978545901120/978545901120_X.pdf
На эту обратите внимание "Cracking the Coding Interview": http://bookvoed.ru/book?id=2593572,
часть VIII. Вопросы собеседования: http://storage.piter.com/upload/contents/978545901120/978545901120_X.pdf
Sign up to leave a comment.
Книги, которые должен прочитать Java программист: от новичка до профессионала