Создатель java: Java — Википедия – Гослинг, Джеймс — Википедия

Содержание

Гослинг, Джеймс — Википедия

Материал из Википедии — свободной энциклопедии

В Википедии есть статьи о других людях с фамилией Гослинг.

Джеймс Гослинг (англ. James Gosling; 19 мая 1955 года, Калгари, Канада) — автор[1] объектно-ориентированного и кросс-платформенного языка программирования Java[2]. Кроме того, является создателем оконной системы NeWS, Gosling Emacs, а также был одним из разработчиков Star Seven.

В 1977 году окончил университет Калгари со степенью бакалавра информатики, и в 1983 году получил степень доктора в университете Карнеги-Меллон. Тема диссертации „The Algebraic Manipulation of Constraints“.

С 1984 года работал в Sun Microsystems.

2 апреля 2010 года уволился[3] из Sun Microsystems после того, как она была поглощена корпорацией Oracle. В качестве причины своего ухода Гослинг назвал «плохое отношение нового руководства к разработчикам Java», а также намерение Oracle понизить его зарплату.[4][5]

С 28 марта 2011 года Джеймс Гослинг начал работать в Google[5][6][7].

В конце августа 2011 года в новостных лентах прошло сообщение, что Гослинг покинул интернет-гиганта и перешёл работать в стартап, небольшую фирму Liquid Robotics[8], которая занимается разработкой робототехники для исследования океана. Гослинг будет занимать должность главного архитектора программного обеспечения.[9]

В 2007 году награждён орденом Канады, высшей гражданской наградой Канады[10]. В 2015 году удостоен медали фон Неймана от IEEE.

  • Джеймс Гослинг, Билл Джой, Гай Стил, Гилад Брача, Алекс Бакли. Язык программирования Java SE 8. Подробное описание, 5-е издание = The Java Language Specification, Java SE 8 Edition (5th Edition) (Java Series). — М.: «Вильямс», 2015. — 672 с. — ISBN 978-5-8459-1875-8.
  • Ken Arnold, James Gosling, David Holmes, The Java Programming Language, Fourth Edition
    , Addison-Wesley Professional, 2005, ISBN 0-321-34980-6
  • James Gosling, Bill Joy, Guy L. Steele, Jr., Gilad Bracha, The Java Language Specification, Third Edition, Addison-Wesley Professional, 2005, ISBN 0-321-24678-0
  • Ken Arnold, James Gosling, David Holmes, The Java Programming Language, Third Edition, Addison-Wesley Professional, 2000, ISBN 0-201-70433-1
    Русский перевод: К. Арнолд, Дж. Гослинг, Д. Холмс. Язык программирования Java. — 3-е изд. — М., СПб., Киев: Вильямс, 2001. — 624 с. — ISBN 5-8459-0215-0.
  • James Gosling, Bill Joy, Guy L. Steele Jr., Gilad Bracha, The Java Language Specification, Second Edition, Addison-Wesley, 2000, ISBN 0-201-31008-2
  • Gregory Bollella (Editor), Benjamin Brosgol, James Gosling, Peter Dibble, Steve Furr, David Hardin, Mark Turnbull, The Real-Time Specification for Java, Addison Wesley Longman, 2000, ISBN 0-201-70323-8
  • Ken Arnold, James Gosling,
    The Java programming language Second Edition
    , Addison-Wesley, 1997, ISBN 0-201-31006-6
  • Ken Arnold, James Gosling, The Java programming language, Addison-Wesley, 1996, ISBN 0-201-63455-4
  • James Gosling, Bill Joy, Guy L. Steele Jr., The Java Language Specification, Addison Wesley Publishing Company, 1996, ISBN 0-201-63451-1
  • James Gosling, Frank Yellin, The Java Team, The Java Application Programming Interface, Volume 2: Window Toolkit and Applets, Addison-Wesley, 1996, ISBN 0-201-63459-7
  • James Gosling, Frank Yellin, The Java Team, The Java Application Programming Interface, Volume 1: Core Packages, Addison-Wesley, 1996, ISBN 0-201-63453-8
  • James Gosling, Henry McGilton, The Java language Environment: A white paper, Sun Microsystems, 1996

История языка Java

Краткий курс истории языка Java

В этом разделе кратко описывается история языка Java. В основу этого раздела положены различные опубликованные материалы (в основном, интервью с создателями языка Java в июльском выпуске электронного журнала SunWorld за 1995 год).

История Java восходит к 1991 году, когда группа инженеров из компании Sun под руководством Патрика Нотона (Patrick Naughton) и члена Совета директоров (и разностороннего компьютерного волшебника) Джеймса Гослинга (James Gosling) занялась разработкой небольшого языка, который можно было бы использовать для программирования бытовых устройств, например, контроллеров для переключения каналов кабельного телевидения (cable TV switchboxes).

Поскольку такие устройства не потребляют много энергии и не имеют больших микросхем памяти, я должен был быть маленьким и генерировать очень компактные программы. Кроме того, поскольку разные производители могут выбирать разные центральные процессоры (Central Processor Unit— CPU), было важно не завязнуть в какой-то одной архитектуре компьютеров. Проект получил кодовое название «Green».

Стремясь изобрести небольшой, компактный и машинонезависимый код, разработчики возродили модель, использованную при реализации первых версий языка Pascal заре эры персональных компьютеров. Никлаус Вирт, создатель языка Pascal, в свое время разработал машинонезависимый язык, генерирующий промежуточный код для некоей гипотетической машины. Этот язык стал коммерческим продуктом под названием UCSD Pascal. (Такие гипотетические машины часто называются виртуальными — например, виртуальная машина языка Java, или JVM.)

Этот промежуточный код можно выполнять на любой машине, имеющей соответствующий интерпретатор. Инженеры, работавшие над проектом «Green», также использовали виртуальную машину, что решило их основную проблему.

 

Однако большинство сотрудников компании Sun имели опыт работы с операционной системой UNIX, поэтому в основу разрабатываемого ими языка бь л положен язык C++, а не Pascal. В частности, они сделали язык объектно-, а не процедурно-ориентированным.

Как сказал Гослинг в своем интервью: «Язык — это всегда средство, а не цель«. Сначала Гослинг решил назвать его «Oak» («Дуб»). (Возможно потому, что он любил смотреть на дуб, растущий прямо под окнами его офиса в компании Sun.) Потом сотрудники компании Sun узнали, что слово Oak уже используется в качестве имени ранее созданного языка программирования, и изменили название Java.

 

В 1992 году в рамках проекта Green была выпущена первая продукция, названная
«*7». Это было средство для чрезвычайно интеллектуального дистанционного управления. (Оно имело мощность рабочей станции SPARK, помещаясь в коробочке размером 6x4x4 дюйма.) К сожалению, ни одна из компаний— производителей электронной техники не заинтересовалась этим изобретением.

 

Затем группа стала заниматься разработкой устройства для кабельного телевидения, которое могло бы осуществлять новые виды услуг, например, включать видеосистему по требованию. И снова они не получили ни одного контракта. (Забавно, что одной из компаний, отказавшихся подписать с ними контракт, руководил Джим Кларк (Jim Clark) — основатель компании Netscape, впоследствии сделавшей очень много для успеха языка Java.)

 

Весь 1993 год и половину 1994 года продолжались безрезультатные поиски покупателей продукции, разработанной в рамках проекта «Green» (под новым названием «First Person, Inc.»). (Патрик Нотон, один из основателей группы, впоследствии в основном занимавшийся маркетингом, налетал в общей сложности более 300 тысяч миль, пытаясь продать разработанную технологию.) Проект «First Person, Inc.» был прекращен в 1994 году.

Тем временем в рамках Интернет разрасталась сеть World Wide Web. Ключом к этой сети является броузер, превращающий гипертекст в изображение на экране.
В 1994 году большинство людей пользовалось броузером Mosaic, некоммерческим Web-броузером, разработанным в суперкомпьютерном центре Университета штата Иллинойс (University of Illinois) в 1993 году. (Частично этот броузер был написан Марком Андреессеном (Mark Andreessen) за 6,85 доллара в час. В то время Марк заканчивал университет и броузер был его дипломной работой. Затем он стал одним из основателей и главным программистом компании Netscape, и к нему пришли слава и богатство.)

 

В своем интервью журналу Sun World Гослинг сказал, что в середине 1994 года разработчики языка поняли: «Нам нужно создать действительно крутой броузер. Такой броузер должен представлять собой одно из немногих приложений модной клиент-серверной технологии, в которой жизненно важным было бы именно то, что мы сделали: архитектурная независимость, выполнение в реальном времени, надежность, безопасность — вопросы, не являвшиеся чрезвычайно важными для рабочих станций. И мы создали такой броузер».

 

На самом деле броузер был разработан Патриком Нотоном и Джонатаном Пэйном (Johnatan Payne). Позднее он превратился в современный броузер HotJava. Этот броузер был написан на языке Java, чтобы продемонстрировать всю его мощь. Однако разработчики не забывали о мощных средствах, которые теперь называются апплетами, наделив свой броузер способностью выполнять код внутри Web-страниц. «Демонстрация технологии» была представлена на выставке Sun World ’95 23 мая 1995 года и вызвала всеобщее помешательство на почве язака Java, продолжающееся и поныне.

 

Компания Sun выпустила первую версию языка Java в начале 1996 года. Через несколько месяцев после нее появилась версия Java 1.02. Люди быстро поняли, что версия Java 1.02 не подходит для разработки серьезных приложений. Конечно, эту версию можно применять для разработки Web-страниц с пляшущими человечками, однако в версии Java 1.02 ничего нельзя даже напечатать.

Честно говоря, версия Java 1.02 была еще сырой. Ее преемница, версия Java 1.1, заполнила большинство зияющих провалов, намного улучшив возможность отражения и добавив новую модель событий для программирования графического пользовательского интерфейса. Несмотря на это, она все еще была довольно ограниченной.

 

Выпуск версии Java 1.2 стал основной новостью конференции JavaOne в 1998 году. В новой версии слабые средства для создания графического пользовательского интерфейса и графических приложений были заменены сложным и масштабным инструментарием. Это был шаг вперед, к реализации лозунга «Write Once, Run Anywhere» ™ («Один раз напиши— и везде выполняй»), выдвинутого при разработке предыдущих версий.

В декабре 1998 года через три дня (!) после выхода в свет название новой версии было изменено на громоздкое словосочетание Java 2 Standart Edition Software Development Kit Version 1.2 (Стандартное издание пакета инструментальных средств для разработки программного обеспечения на языке Java 2, версия 1.2).

Кроме стандартного издания пакета («Standart Edition») были предложены еще два варианта: «микроиздание» («Micro Edition») для портативных устройств, например, для мобильных телефонов, и. «промышленное издание» («Enterprise Edition») для создания сер верных приложений. В нашей книге в центре внимания находится стандартное издание.

Версии 1.3 и 1.4 стандартного издания пакета инструментальных средств намного совершеннее первоначального выпуска языка Java 2. Они обладают новыми возможностями и, разумеется, содержат намного меньше ошибок. В табл. 1 1 показан стремительный рост объема библиотеки API по мере появления новых версий стандартного издания пакета SDK.

Таблица 1.1. Рост объема библиотеки API из пакета Java Standart Edition

Версия

Количество классов и интерфейсов

Количество методов и полей

1.0

212

2125

1.1

504

5478

1.2

1781

20935

1.3

2130

23901

1.4

3020

32138

 

 

 

 

Распространенные заблуждения относительно языка Java

В этом разделе перечислены и прокомментированы некоторые из распространенных заблуждений, касающихся Java.

Язык Java — это расширение языка HTML.

Java— это язык программирования, а язык HTML— это способ описания структуры Web-страниц. Между ними нет ничего общего, за исключением расширений языка HTML, позволяющих размещать на Web-страницах апплеты, написанные на языке Java.

Я работаю на языкеXML, поэтому мне не нужен язык Java.

Язык Java— это язык программирования, а язык XML— просто способ описания данных. Данные, описанные с помощью языка XML, можно обрабатывать с помощью программ, написанных на любом языке программирования, но лишь библиотека API языка Java содержит превосходные средства поддержки для обработки таких данных. Кроме того, в языке Java реализованы многие возможности языка XML. Более подробно они описаны во втором томе.

 

Язык Java легко выучить.

Нет ни одного языка программирования, столь же мощного, как язык Java, который можно было бы легко выучить. Игрушечные программы писать довольно просто, однако выполнять серьезную работу всегда трудно. Кроме того, обратите внимание на то, что в этой книге обсуждению собственно языка Java посвящено только четыре главы. В остальных главах объясняется, как работать с его библиотеками, содержащими тысячи классов и интерфейсов, а также многие тысячи функций. К счастью, знать каждую из них не обязательно, однако для выполнения реального проекта от пользователя требуется на удивление много знаний.

 

На языке Java легко программировать.

Набор инструментальных средств Java SDK использовать нелегко всем, за исключением программистов, привыкших к режиму командной строки. Существуют интегрированные среды программирования, включающие текстовые редакторы, компиляторы, средства для создания форм с помощью технологии «drag-and-drop», однако для новичка они выглядят слишком сложными и устрашающими. Кроме того, они часто генерируют программы, состоящие из сотен строк. Нам кажется, что начинать изучение языка Java по длинным программам, сгенерированным автоматически и заполненным комментариями типа «РУКАМИ НЕ ТРОГАТЬ!», — не слишком удачная идея. Мы полагаем, что лучше всего изучать язык Java, пользуясь привычным текстовым редактором. Именно так мы и поступим.

Язык Java со временем станет универсальным языком программирования для всех платформ.

Теоретически это возможно. Именно об этом мечтают все производители программного обеспечения, кроме компании Microsoft. Однако есть много приложений, прекрасно работающих на персональных компьютерах, которые не будут так же хорошо работать на других устройствах или под управлением броузера. Кроме того, эти приложения написаны так, чтобы максимально использовать возможности процессоров и машинозависимых библиотек. В любом случае они уже перенесены на все важные платформы. К таким приложениям относятся текстовые и графические редакторы, а также Web-броузеры. Обычно эти приложения пишутся на языках С или C++, и пользователь ничего не выиграет, если переписать их на языке Java. Помимо всего прочего, после переписывания на языке Java эти программы станут более медленными и менее эффективными, по крайней мере, в ближайшем будущем.

 

Язык Java — это просто еще один язык программирования.

Java— прекрасный язык программирования. Многие программисты отдают предпочтение именно ему, а не языкам С или C++. Однако в мире существуют сотни прекрасных языков программирования, так никогда и не получивших широкого распространения, в то время как языки с очевидными недостатками, такие как C++ и Visual Basic, достигли ошеломительных успехов.

Почему? Успех любого языка программирования в основном определяется практичностью его системы поддержки (support system), а не элегантностью его синтаксиса. Существуют ли полезные, удобные и стандартные библиотеки, позволяющие сделать именно то, что необходимо программисту? Разработана ли удобная среда для создания и отладки программ? Интегрирован ли язык и его инструментарий в компьютерную инфраструктуру? Язык Java достиг успехов в области серверных приложений, поскольку его библиотеки классов позволяют легко сделать то, что раньше было трудным, например, поддерживать работу в сети и многопоточность. Тот факт, что язык Java уменьшил количество ошибок, связанных с указателями, также говорит в его пользу. Благодаря этому производительность труда программистов повысилась. Однако не в этом кроется причина его успеха.

 

Программы на языке Java интерпретируются, значит, серьезные приложения будут слишком медленно выполняться на конкретной платформе.

Многие программы затрачивают большую часть времени на взаимодействие с пользовательским интерфейсом или ожидание данных из сети. Все программы, независимо от того, на каком языке они написаны, должны реагировать на щелчок мыши за определенное время. Разумеется, не следует выполнять задачи, требующие высокой производительности центрального процессора, с помощью интерпретатора языка Java. Однако на платформах, допускающих синхронную компиляцию, нужно лишь запустить байт-коды на выполнение, и большинство вопросов просто отпадут.

В конце концов язык Java отлично подходит для разработки сетевых программ. Опыт показывает, что он легко поддерживает высокую скорость передачи в сети даже во время таких интенсивных вычислений, как шифрование. Поскольку скорость работы на языке Java выше скорости передачи данных в сети, становится неважным, что программы на языке C++ могут работать еще быстрее. На языке Java легче программировать, а программы, написанные на нем, машинонезависимы.

 

Все программы на языке Java выполняются под управлением Web-броузеров.

 

Все апплеты, написанные на языке Java, действительно выполняются под управлением Web-броузеров. Собственно, это и есть определение апплета— программа, выполняемая Web-броузером. Однако вполне возможно и уместно создавать с шостоятельные программы на языке Java, которые выполняются независимо от Web-броузера.

Эти программы (обычно называемые приложениями) являются полностью машинонезависимыми. Просто берите программу и выполняйте ее на другой машине! Поскольку язык Java более удобен и менее подвержен ошибкам, чем язык C++, он представляет собой хороший выбор. В сочетании со средствами доступа к базам данных, например, пакетом Java Database Connectivity, язык Java становится просто неотразимым. Особенно удобно его изучать в качестве первого языка программирования.
Большинство программ в этой книге являются абсолютно самостоятельными. Конечно, апплеты очень забавны. Однако приложения на языке Java на практике более важны и полезны.

Апплеты на языке Java представляют собой большую опасность для системы защиты.

Было опубликовано несколько отчетов об ошибках в системе безопасности языка Java. Большинство из них касалось реализации языка Java с помощью конкретного броузера. Исследователи восприняли это как вызов и принялись искать лазейки в системе защиты языка Java, чтобы преодолеть силу и сложность модели безопасности апплетов. Обнаруженные технические ошибки вскоре были исправлены, и, насколько мы знаем, ни одна реальная система никогда не была скомпрометирована. Чтобы оценить важность этого факта, вспомните о миллионах вирусных на выполняемые файлы операционной системы Windows и макросы текстового процессора Word, действительно вызвавшие немало бед, и удивительно беззубую критику слабостей атакованной платформы. Кроме того, механизм ActiveX в броузере Internet Explorer мог бы вызвать много нареканий, однако способы его взлома настолько очевидны, что лишь немногие специалисты потрудились опубликовать свои изыскания.

 

Некоторые системные администраторы даже стали выключать системы защиты языка Java в своих броузерах, чтобы пользователи могли, как и прежде загружать исполняемые файлы, элементы управления ActiveX и документы, созданные с помощью текстового процессора Word. Забавно, что в настоящее время вероятность преодоления системы защиты апплетов на языке Java сравнима с вероятностью погибнуть в авиационной катастрофе, в то время как риск заразить компьютер, открыв документ, созданный текстовым процессором Word, сравним с риском погибнуть под колесами автомобиля, перебегая дорогу в час пик.

 

Язык JavaScript — упрощенная версия языка Java.

Язык JavaScript — это язык разработки сценариев, который можно использовать на Web-страницах. Он был разработан компанией Netscape и сначала назывался LiveScript. Синтаксис языка JavaScript напоминает синтаксис языка Java, однако на этом их сходство заканчивается (за исключением имени, конечно). Подмножество языка JavaScript было стандартизовано под именем ЕСМА-262, однако его расширения, необходимые для реальной работы, стандартизованы не были.

 

История создания Java • Vertex Academy

Данная статья:

  • написана командой Vertex Academy. Надеемся, что она Вам будет полезна. Приятного прочтения!
  • это одна из статей из нашего «Самоучителя по Java»

 


Ниже приводим краткую историю создания языка программирования Java в вопросах и ответах.

Кто разработал язык Java?

Инженеры компании Sun Microsystems:

  • Патрик Ноутон (Patrick Naughton) — руководитель группы инженеров
  • Джеймс Гослинг (James Gosling) — член Совета директоров и, как его еще иногда называют, разносторонний «компьютерный волшебник»
Почему решили создать?

Патрик Ноутон, Джеймс Гослинг  работали над проектом «Green», целью которого было разработать язык для программирования бытовых электронных устройств. Каких ещё бытовых устройств? Да самых разных. Например, контроллеров для переключения каналов кабельного телевидения (cable TV switchboxes).

Бытовые устройства:

  • мало потребляют энергии (отсюда и кодовое название проекта — «Green» )
  • а также бытовые электронные устройства имеют небольшие микросхемы памяти, а, соответственно, и программы, написанные под них, должны были быть небольшими.  Помимо этого стояла задача, чтобы единожды написанный код читался на любой машине, а не писался под каждое устройство отдельно. Язык программирования C++ для данных целей их не очень устроил и они разработали новый язык программирования — Java.
А почему такое название – Java?

Стоит упомянуть, что не всегда этот язык имел привычное нам название — Java.

Изначально новому языку программирования было дано имя Oak (от англ.«Дуб»). Всё дело в том, что под окном офиса Джеймса Гослинга рос дуб, который ему очень нравился и в честь которого он и решил назвать новый язык.

Когда же компания Sun Microsystems увидела, что язык хорошо себя зарекомендовал и его можно сделать общедоступным, было принято решение поменять название Oak, поскольку это название уже имел другой язык программирования, а также необходимо было более созвучное, одним словом более коммерческое имя. И было дано новое имя языку —  Java.

Так а почему всё-таки Java?

Существует 3 основные версии почему так назвали язык: 

Версия № 1: Самая интересная. Программисты пьют много кофе. Пока создавался новый язык программирования, были выпиты гигалитры кофе, и поэтому решили назвать язык в честь сорта кофе Java.

Версия № 2:  Название дано в честь марки кофе Java, который был назван в честь острова Ява (на англ. – Java). Эта версия перекликается с версией № 1.

Версия № 3: Поскольку новый язык разрабатывался для программирования бытовых электронных устройств, то иногда связывают это с аллюзией на кофе-машину как пример бытового устройства.

Год создания Java?

1991 — под названием Oak

23 мая 1995 год — дата официального выпуска под названием Java

А кто владелец Java сейчас?

В 2009 году язык Java сменил своего владельца –  компания Sun Microsystems была куплена компанией Oracle. Так что сейчас владелец Java — компания Oracle.


Надеемся, что наша статья была Вам полезна. Также есть возможность записаться на наши курсы по Java в Киеве. Обучаем с нуля.

По всем вопросам звоните:

+38 050 205 77 99

+38 098 205 77 99

Или читайте информацию по нашим курсам Java c нуля у нас на сайте.


Дорожная карта web-разработчика Java в 2019 году

Java – это огромная экосистема, в которой легко потеряться. Это подробный гайд по фреймворкам с подборкой книг и лайфхаков.

Почему Java?

Java – технология с долгой историей. Вокруг нее постоянно растут стеки инструментов. Потом они становятся монструозными, и на смену им приходят новые. Против Java ведется политическая война со стороны других корпораций. Этот язык программирования никогда не будет модным. Он не выглядит сексуально с его бойлерплейт-кодом и слухами о плохой производительности.

При этом экосистема Java является стандартом де-факто для корпоративной разработки. Платформа уверенно занимает нишу в мобильных технологиях и Web. Реализованы шикарные инструменты для big data, такие как Hadoop и Spark. Все это взято у конкурентов без боя: бизнес требует от инструментов разработки прозрачности и надежности. Поэтому Java с её безопасностью кода, хорошим подходом к многопоточности и низкому порогу вхождения для свежих разработчиков, дает бизнесу то, что ему нужно.

Для новичков Java привлекательна простым и понятным синтаксисом, плавной кривой обучения. Назойливые проблемы со всякими низкоуровневыми штуками вроде менеджмента памяти и кроссплатформенности JVM берет на себя. Поэтому учиться легко, а после всегда можно найти хорошее рабочее место.

Быстрый старт

Для начала нужно установить JDK и любую IDE. Из версий сейчас самая популярная 8-я. Из IDE можно начать с IntelliJ IDEA.

Есть две классических Java книги, которые рекомендуются сообществом к изучению. Это «Effective Java» Джошуа Блоха и «Философия Java» Брюса Эккеля. Но чтение толстых книг в начале обучения фундаментальным основам языка – не самый эффективный и быстрый путь влиться. Лучше взять за основу что-нибудь проще. Например, «Head First Java», её чтение не утомляет.

Так почему «Идея»?

Разработчик IntelliJ IDEA создал отличный плагин EduTools, который встраивается прямо в IDE. Он содержит в себе упражнения, позволяющие быстро изучить основы языка в интерактивном режиме. Этого инструмента, в сочетании с литературой, вполне достаточно для построения базы.

Если есть хороший технический бэкграунд в другом объектно-ориентированном языке программирования, то можно срезать углы. Потому что существует класс книг, написанных специально для таких «новичков». Например, «Java for C/C++ Developers» от Michael C. Daconta. В таких книгах обычно перечисляются ключевые отличия одной технологии от другой. Это экономит время на обучение, фокусируя только на нужных деталях.

Обучение через тестирование

Область, которую предстоит изучить, огромна. Нет границ, которые позволят уверенно сказать «всё, теперь я знаю Java». Ни прочитанные книги, ни написанные программы, ни пройденные курсы, ни освоенные технологии.

С момента, когда мы начинаем обучаться, обучение становится стилем жизни. Нужно в свободное время читать по Java всё, что попадается под руку, любые непонятные вещи должны браться на заметку и включаться в учебный план. Вышеназванные фундаментальные книги также служат этой цели и цели общего структурирования своего плана. Можно обратить внимание на качественные подборки материалов по Java и поискать там пищу для размышлений.

Заведите метрики для отслеживания прогресса. Для этого нужно проходить тесты достаточно часто, благо сейчас их много в Интернете. Мы проходим Java тест, смотрим на результат, ищем пробелы в знаниях, выписываем, гуглим, восполняем. Это хорошая стратегия, она эффективнее последовательного изучения книги за книгой. Хороший маркер – это когда вы написали какой-то код, а спустя время поняли, что он плох. Хорошим финалом при этом будет прохождение OSJP – самой авторитетной сертификации от Oracle.

Что еще?

Стек Java для web-приложений многогранен, и нужно на базовом уровне овладеть и смежными технологиями.

Для начала стоит представлять типовую архитектуру того, что делает web-разработчик. Всё, что видит перед собой пользователь в браузере – это клиент или frontend-часть приложения. Данные и команды, инициированные действиями пользователя, отправляются на сервер по протоколу HTTP в соответствии с определенными договоренностями об их формате и значении. Эти договоренности формируют web API приложения и реализуются надстройками над HTTP вроде RESTful или, реже, GraphQL. Данные обычно упаковываются в JSON или XML, хотя есть место и кастомным реализациям.

Серверная часть приложения, backend, принимает данные, десериализует их во внутреннее представление, осуществляет авторизацию и аутентификацию пользователя, валидацию пришедшей информации, реализует какую-то бизнес-логику, сохраняет часть информации в БД и формирует необходимый ответ для клиента. Само приложение для взаимодействия с клиентом может поднимать встроенный web-сервер или само встраиваться в сторонний web-сервер.

Это значит, что нам необходимо иметь ясное представление о:

  • СУБД и SQL, реляционном и нереляционном хранении данных. Для этого рекомендуется книга «Head First SQL» + ознакомление со статьями по NoSQL для общей эрудиции. Погонять запросики помогут удобные online-сервисы.
  • Протоколе HTTP и передаче данных. Фундаментальная вещь – это «Компьютерные сети» Эндрю Таненбаума и первые общие главы любой книги по PHP от Дмитрия Котерова. Несмотря на другой язык программирования, автор дает очень хорошее общее понимание взаимодействия клиента и сервера.
  • JSON и XML. Достаточно просто статей из Википедии для общего понимания этих форматов.
  • Javascript и HTML. Базовые знания нужны, потому что часто backend генерирует странички, выдаваемые в браузер, например, по технологии JSP. Достаточно посмотреть путь javascript-разработчика и выбрать то, что приглянулось. Хотя можно взять за основу что-то вроде Vaadin, который на выходе сгенерирует Javascript-код и подтянет нужные стили по Java-коду.

Pet project

При изучении Java очень важно соблюдать баланс между теорией и практикой, причем реализация учебных программ из упражнений относится к теории. Плохо сидеть в учебниках и смотреть лекции на Youtube без написания реального (условно) приложения. Также плохо бросаться в код и городить костыли; если будет сделано рабочее приложение, но не будут приобретены знания – это тоже впустую потраченное время.

Хороший подход – придумать идею web-сервиса и постепенно реализовывать его, шаг за шагом, по мере приобретения новых знаний. Это может быть ToDo List или каталог просмотренных фильмов, дневник или маленький движок форума, игрушечные CMS или CRM. Это нормально, если код придется часто переписывать, порой с нуля: это говорит о прогрессе.

Очень важно сделать все «велосипедом», с минимумом дополнительных библиотек и уж точно без фреймворков. Самописный web-сервер на основе сокетов, маршаллер XML/JSON, собственные контейнеры. Не обойдется без изучения рефлексии и базовых паттернов (лучшая книга по шаблонам разработки — GoF). Код на выходе получится ужасным, но основное тут – получить набор проблем, которые очень красиво решаются фреймворками.

Со списком этих проблем и задач дальнейшее изучение экосистемы Java пройдет просто молниеносно. Поэтому мучения по написанию сотен строк кода, которые заменяются парой строк при подключении фреймворка, окупятся сторицей.

Java EE и Spring

Java Enterprise Edition и фреймворк Spring постоянно идут рука об руку в обучении. Важно понимать их различия и сходства. Формально говоря, Java EE (Jakarta EE) – это спецификация, описывающая архитектуру серверной части приложения. Отчасти, Java стала столь популярной технологией благодаря смещению акцента разработки на бизнес-логику. Если вы приходите к заказчику, предприятию, то его не интересуют технические детали. Зато его интересует, каким образом новый продукт улучшит его жизнь и принесет финансовую прибыль.

Набор спецификаций согласует все части приложения и гарантирует их взаимную работу. Так вводится парадигма предметно-ориентированного проектирования. Все хорошо понятные бизнесу предметные области выделяются и перекладываются в чистый Java-код. Затем пишется интеграция между ними, декларируется сквозной путь данных в процессе обмена. В итоге получается пакет кода, описывающего бизнес-логику ПО. А реализация всех технических деталей ложится на сервер приложений. Этот класс ПО называется middleware, его примерами являются WebSphere, Weblogic, WildFly. Такой контейнер, по сути, одна большая зависимость, которая и «поставляет» функционал в соответствии с написанной логикой.

Spring же – просто фреймворк. Java EE – это не самая удачная попытка стандартизации, ставшая тяжеловесной, а Spring изначально появился как легкая и понятная альтернатива. Впрочем, и Spring разросся со временем и появился фреймворк над фреймворком – Spring Boot.

В процессе обучения лучшая стратегия – ознакомиться и с той, и с другой платформой. Для изучения Java EE отлично подходят книги «Head First Servlets and JSP» и «Программирование web-приложений на языке Java» Буди Курняван. Для Spring – «Spring в действии» Крейга Уоллса. Так как Spring включает в себя очень много всего, сфокусироваться для начала следует на модулях Core, MVC и Web-MVC и Security.

Какой стек выбрать?

Когда придет понимание, что Spring Beans похожи на EJB, Spring Service Locator – на JNDI, Spring Security – на JAAS, Spring Data – на JPA и т. д., это станет важнейшим майлстоуном в обучении. Вторым будет ознакомление с хорошими реализациями, постижение best practices. В случае Spring можно воспользоваться кодогенератором JHipster – сгенерированный этим инструментом код имеет хорошую структуру и задействует множество популярных технологий. Кстати, в дальнейшем этот сервис можно будет использовать для быстрого прототипирования.

В дальнейшем можно сфокусироваться на одной из платформ, а за развитием второй просто следить в фоновом режиме, углубляя эрудицию. Порой придется выбирать какую-то технологию, исходя из того, что более подходит к задаче. Например, на Java EE с её JSF и PrimeFaces легче сделать масштабируемое приложение с генерируемым сервером клиентом. А на Spring легко делаются модные микросервисы. Но это все условно – порой эффективнее разрабатывать на хорошо знакомом фреймворке, а не на том, который лучше приспособлен.

Что дальше?

Помимо основных фреймворков, в Java куча всего полезного. Например, Jasper для построения отчетов в реальном времени. Или JOOQ для создания запросов к базам данных. Нужно уметь тестировать свой код при помощи JUnit или Mockito. Полезно использовать Sonar для валидации стиля кода. Если предполагается большой объем данных, то почти наверняка придется столкнуться с Hadoop. А Gradle и Maven помогут систематизированно управлять жизненным циклом своего ПО.

В этом многообразии легко потеряться. Поэтому важнее не изучать эти инструменты, а изучать информацию о них. Где они применяются, в чем ключевые особенности. И использовать их только тогда, когда без них не обойтись. Потому что вряд ли придется писать сложный код на Gradle. А большую часть Maven-инструкций можно просто скопировать со StackOverflow. Нет нужды читать книги толщиной с руку по этим технологиям, тратя лишнее время.

Помимо Spring и Java EE, есть также Spark и Play, Struts и Grails. Их нужно обязательно попробовать. Хотя бы для того, чтобы понять, что есть жизнь и без Spring с его DI. Развитие эрудиции по всему многообразию инструментов и фокус на одном из инструментов – лучшая стратегия в обучении.

Курс Java-разработчик. Обучение на Java-разработчика онлайн

  • Вводный модуль

    • Какие бывают программы
    • Где и для чего применяется Java
    • Как выглядит программный код
    • Установка среды разработки
    • Исправляем готовое приложение
    • Пишем консольное приложение
    • Домашняя работа
  • Синтаксис языка

    • Приветственное видео
    • Что вообще бывает в коде
    • Переменные в Java
    • Boolean, операторы сравнения и условные операторы
    • Циклы
    • Разбираем сложный код
    • Домашняя работа
  • Система контроля версий Git

    • Версии программного кода
    • Установка Git
    • Индекс и частичные коммиты
    • Сравнение версий
    • Отмена изменений и откат версий
    • Репозитории и коллективная работа
    • Ветки — создание и управление
    • Слияние и разрешение конфликтов
    • Полезные инструменты
    • Правила работы с Git
  • Объекты и классы

    • Понятие класса и объекта
    • Метод, параметры, return
    • Статические методы и переменные
    • Константы и Enum
    • Создание объектов и конструктор
    • Инкапсуляция, геттеры и сеттеры
    • Копирование объектов
    • Внешние библиотеки классов
    • Создание JAR-файлов
  • Числа, строки, даты

    • Объекты и примитивы
    • Зачем нужны объекты и примитивы
    • Значения по умолчанию
    • Boxing и unboxing
    • Повторяем изученное
    • Домашняя работа
    • Какие бывают числа
    • Биты и байты
    • Числа int и double
    • Точность чисел с плавающей точкой
    • Преобразование чисел разных типов
    • Преобразование строки в число и обратно
    • Какие бывают операции с числами
    • Инкремент и декремент
    • Класс Math
    • Символы и кодировки
    • Специальные символы
    • Методы класса String
    • Конкатенация строк
    • Сравнение строк
    • Регулярные выражения
    • Календарь и метка времени
  • Массивы и коллекции

    • Создание массивов
    • Перебор элементов массивов
    • Обход массивов в обратном порядке
    • Массивы массивов
    • Домашняя работа
    • Списки элементов
    • Наборы уникальных элементов
    • HashMap и TreeMap
    • Поиск и сортировка
  • Наследование и полиморфизм

    • Наследование классов Java
    • Домашняя работа
    • Доступ к методам и переменным
    • Абстрактные классы
    • Интерфейсы
    • Полиморфизм
    • Интерфейс Comparable
    • Интерфейс Comparator
    • Краткая реализация интерфейсов
    • Интерфейсы Map и Set
  • Особенности ООП в Java

    • Лямбда-выражения
    • Домашняя работа
    • Указатели на методы
    • Метод forEach
    • Способы получения Stream
    • Sorted, max, min
    • Map reduce
    • Static- и default-методы в интерфейсах
    • Generics
    • Система сборки Maven
    • Репозиторий Maven
    • Аннотации и Lombok
  • Исключения, отладка, тестирование и логгирование

    • Возникновение исключений
    • Отлов исключений
    • Типы исключений
    • Домашняя работа
    • Отладка приложений
    • Виды тестирования ПО
    • Модульное тестирование
    • Логгирование в консоли
    • Логгирование с помощью log4j2
  • Работа с файлами и сетью

    • Класс File
    • Чтение файлов с помощью FileInputStream
    • Чтение файлов с помощью BufferedReader
    • Чтение файлов с помощью класса Files
    • Домашняя работа
    • Запись в файл
    • Табличные файлы
    • Структура XML и HTML-файлов
    • Парсинг HTML-файлов
    • Формат JSON и парсинг JSON файлов
    • Конфигурационные файлы
  • Работа с MySQL в Java

    • Установка MySQL
    • Подключение через JDBC
    • Запросы без ResultSet
    • Домашняя работа
    • Hibernate — подключение и настройка
    • Hibernate: изменение данных в базе
    • Связи ManyToOne и OneToMany
    • Связь ManyToMany
    • Hibernate query builder
    • Ленивая загрузка данных
    • Where и OrderBy
    • HQL
  • Многопоточность

    • Зачем нужна многопоточность
    • Класс Thread
    • Интерфейс Runnable
    • Домашняя работа
    • Состояние гонки и критические секции
    • Атомарные переменные
    • Ключевое слово Volatile
    • Synchronized-методы
    • Synchronized-блоки
    • Взаимодействие потоков — методы Wait и Notify
    • Потокобезопасные классы
    • Взаимная блокировка — Deadlock
    • Интерфейс Callable
    • Executors, Executor и ExecutorService
    • Метод Shutdown
    • ThreadPoolExecutor
    • SheduledExecutorService
    • Приостановка и прерывание потоков
    • ForkJoinPool и RecursiveTask
  • Разработка веб-приложений

    • Создание Maven-проекта
    • Создаём приложение на Spring Boot
    • Создание первого контроллера
    • Домашняя работа
    • Концепция MVC
    • RESTful API и CRUD
    • Создание контроллера
    • Request, response и статусы ответов
    • Подключение к БД и создание сущности
    • Репозиторий и добавление элементов в БД
    • Получение данных из БД
    • Изменение и удаление данных в БД
    • View и подключение шаблонов
    • Параметры конфигурации
    • Упаковка приложения в JAR-файл
  • Нереляционные базы данных и очереди

    • Введение
    • Основы Redis, простейшие команды
    • Домашняя работа
    • Сложные структуры данных в Redis
    • Сравнение Redis vs MySQL
    • Базовые возможности MongoDB
    • Агрегация данных в MongoDB
    • Итоги
  • Производительность и оптимизация

    • Факторы производительности
    • Преждевременная оптимизация
    • Что нужно оптимизировать
    • Длительность конкатенации строк
    • Буферизация
    • Два принципа оптимизации по времени
    • Домашняя работа
    • Какую память нужно экономить
    • Память можно не экономить
    • Память и разные структуры данных
    • Чем меньше запросов, тем лучше
    • Multiinsert
    • Утечка памяти
    • Индексация и оптимизация запросов
    • Кэширование запросов
    • Хранение данных
    • Заключение
  • Распределённые хранилища и вычисления

    • Что такое большие данные
    • Файловая система HDFS
    • Практическая работа с HDFS
    • Домашняя работа
    • Концепция MapReduce
    • Фреймворк Apache Spark
    • Установка Spark
    • Запуск в Spark собственного приложения
    • Запуск приложения обработки текста
    • Модуль YARN
  • Заключительный модуль

    • Заключительный модуль
    • Desktop-приложения — создание интерфейса
    • Desktop-приложения — события и их обработка
    • Desktop-приложения — кастомизация интерфейса
    • Домашняя работа
    • Android-приложения
    • Язык программирования Scala
    • Язык программирования Kotlin
    • Реактированое программирование и RxJava
  • Бонус-модуль. Паттерны проектирования

    • Что такое паттерны проектирования
    • Паттерн Singleton
    • Паттерн Factory
    • Паттерн Abstract Factory
    • Паттерн Decorator
    • Паттерн Adapter
    • Паттерн Bridge
    • Паттерн Strategy
    • Паттерн Observer
    • Паттерн Iterator
    • Другие паттерны
  • Алгоритмы и структуры данных

    • Общие сведения
    • Вычислительная сложность и расход памяти
    • Массивы, сортировка и поиск
    • Рекурсия
    • Стэк и очередь
    • Деревья
    • Графы
    • Хэш-таблицы
    • Строки
    • Битовые маски
    • Связные списки
  • Прокотол HTTP

    • Что такое HTTP. Заголовки и тело запроса
    • Заголовки и тело ответа. Коды ответов
    • Запросы GET и POST
    • PUT, DELETE, OPTIONS
    • Стандарт REST
    • Типы кодирования POST-запросов
    • Encoding, сжатие, Content-Type
    • Куки и сессии
    • HTTP 1.0, 1.0 и 2.0
    • HTTPS
  • Как стать Java разработчиком? (Java Developer)

    Как стать Java разработчиком? (Java Developer)

    Курс программирования java от ITVDN.com и купон на 15% скидку «BCJBD1F»

    Бесплатная регистрация по ссылке https://itvdn.com/ru/specialities/java-developer

    Java обучение

    Одна из лучших школ по программированию ITVDN предлагает  курсы Java обучение

    Java Developer – это программист, приоритетной задачей которого, является создание сложных систем для обработки данных (BigData). Как правило, java разработчики создают БС (сложные банковские системы), web приложения, на java пишут серверную часть (Back end), облачные хранилища данных.

    В наше время, Java программисты (java developer) очень востребованы. Их опыт применяется в тех областях, где требуются проекты с многопользовательской обработкой данных. А также предъявляются очень высокие мерки требований к уровню безопасности. В обязанности Java программиста обычно входит:

    • разработка архитектуры приложения
    • разработка бизнес-логики приложения
    • поддержка и сопровождение проекта
    • написание технической документации

    Java – это объектно ориентированный и строго типизированный язык. Его можно сравнить с C (си) подобным синтаксисом. А C (си) в свою очередь похож на C++ (cpp) и C# (C sharp). В тоже время, в языке Java есть как свои плюсы, так и минусы. Если помним, то Java-приложения для запуска использует специальную виртуальную машину, из за этого факта, приложения запускаются немного медленнее, по сравнению например с тем же C++, но этот минус легко превращается в плюс, когда виртуальная машина позволяет запускать приложения на windows или unix системах. Это дает независимость от платформы. Для Java написано огромное количество фреймворков, библиотек и это дает вам возможность разрабатывать собственные приложения быстрее.

    Как правило, Java разработчик обладает уверенными знаниями в ООП (объектно-ориентированном программировании), он должен уметь писать читабельный код, который будет понятен другим программистам java и применять шаблоны проектирования, хорошо знать структуры данных, алгоритмы, так как это напрямую влияет на скорость работы приложения, ибо скорость выполнения итерации сильно зависит от применения эффективного алгоритма, java developer обязан знать базы данных (DB), что бы выполнять сложные запросы и выборки из нескольких таблиц. Под Java написано множество библиотек и фреймворков (Framework). И для того, что бы быстро разрабатывать приложения, не изобретая велосипед, нужно знать их не только на уровне любителя, но и понимать, как эти библиотеки и фреймворки устроены внутри.

    Курс программирования java от ITVDN.com и купон на 15% скидку «BCJBD1F»

    Для легкого старта в изучении языка Java ITVDN рекомендует пройти курсы Java developer.

    Как проходит обучение java обучение?

    Как стать Java разработчиком? (Java Developer)

     

    План обучения

    Пользуйтесь Планировщиком обучения для составления индивидуального плана обучения, выберите только нужные курсы и темы.

    Как стать Java разработчиком? (Java Developer)

    Смотрите видео уроки

    Смотрите видео уроки, пользуйтесь временными метками для быстрого перехода к теме.

    Как стать Java разработчиком? (Java Developer)

    Учебные материалы

    Скачайте исходники программного кода, опорный конспект и презентации к урокам и работайте с ними.

    Как стать Java разработчиком? (Java Developer)

    Выполняйте задания

    Закрепляйте полученные знания, выполняя домашние задания после каждого урока.

    Как стать Java разработчиком? (Java Developer)

    Проверка знаний

    Проходите онлайн тестирование после каждого урока и после всего курса.

    Как стать Java разработчиком? (Java Developer)

    Общение с ментором

    Общайтесь с ментором, получайте помощь и поддержку в решении сложных задач.

    Как стать Java разработчиком? (Java Developer)

    Тренажер навыков

    Формируйте навыки написания кода, используя Тренажер.

    Как стать Java разработчиком? (Java Developer)

    Форум

    Общайтесь с другими студентами, тренерами, единомышленниками на форуме ITVDN.

    Как стать Java разработчиком? (Java Developer)

     

    Вебинары

    Участвуйте в бесплатных образовательных вебинарах по программированию, задавайте Ваши вопросы в прямом эфире.

    Как стать Java разработчиком? (Java Developer)

    Сертификат

    Пройдите тестирование и получите сертификат, подтверждающий Ваши знания.

    Как стать Java разработчиком? (Java Developer)

    Диплом по специальности

    Для получения диплома нужно изучить все обязательные технологии по выбранной специальности и сдать финальный экзамен.

    Как стать Java разработчиком? (Java Developer)

    Бонусы

    Получайте бонусы за использование ресурсов ITVDN и обменивайте их на подарки и скидки.

     

    ВИДЕО КУРСЫ ПО СПЕЦИАЛЬНОСТИ «JAVA DEVELOPER»

     

    Как стать Java разработчиком? (Java Developer)Обязательные курсы             Как стать Java разработчиком? (Java Developer)Дополнительные курсы

    Как стать Java разработчиком? + купон на 15% скидку BCJBD1F

    ЗАПИСИ БЕСПЛАТНЫХ ВЕБИНАРОВ JAVA

     

    Как стать Java разработчиком? (Java Developer)Бесплатные вебинары

    В конце обучения вы получаете сертификат и диплом по java

    Диплом Java DeveloperДиплом Java DeveloperСертификат о прохождении курсаСертификат о прохождении курса

    Требования к Java Developer:

    • Глубокие знания языка программирования Java
    • Уверенные знания ООП и шаблонов проектирования
    • Уверенные знания алгоритмов и структур данных
    • Знания баз данных (MySQL или PostgreSQL)
    • Знания JDBC и базовые знание Hibernate
    • Знания систем тестирования приложений (TDD)
    • Знание веб-сервисов таких как XML и JSON
    • Базовые знание фреймворка Spring
    • Английский язык на уровне чтения технической документации (углубленные знания будут преимуществом)

    Java разработчик может занимать такие должности:

    Trainee Java Developer
    Junior/Middle/Senior Java Developer
    Программист Java
    Java Team Lead
    Java Solution Architect
    Lead Java Engineer

    Язык программирования java

    Java — данный язык очень сильно типизированный объектно-ориентированный язык программирования, java был разработан американской IT компанией Sun Microsystems (в будущем ее выкупит компания Oracle). Приложения написанные на Java как правило транслируются в специальный байт-код, из-за этого они могут работать на любой компьютерной архитектуре (windows, unix) с помощью виртуальной Java-машины. Датой официального выпуска считается 23 мая 1995 года. На 2019 год Java считается одним из самых востребованных языков программирования.

     

    Курс программирования java от ITVDN.com и купон на 15% скидку «BCJBD1F»

    Бесплатная регистрация по ссылке https://itvdn.com/ru/specialities/java-developer

     

     

    Курсы программирования на Java, онлайн курс по Java разработке, курсы по Java, курсы «Джава». Запишись на курсы программирования Java, пройди курсы Java и получи новые навыки!

    Для меня принять решение об обучении на курсе по языку Java было довольно просто, достаточно было посмотреть на преподавателя и структуру курса, также огромным плюсом было увидеть в партнерах Otus.ru компанию, в которой я хотел работать. Очень важно, что перед началом курса проводиться День открытых дверей, где можно лично задать вопросы по курсу и более подробно ознакомиться с программой. Я бы хотел по порядку разобрать основные составляющие курса.

    Программа.

    Изначально конечно в голову закрались сомнения, а есть ли смысл слушать лекции по программированию, которые затрагивают самые азы (типы данных, например), но как говориться повторение – мать учения, решил слушать, и не пожалел. Разбирали действительно все детально и домашние задания очень интересны, одно задание по замеру работы разных сборщиков мусора чего стоит. Приятно, что в программу включены Hibernate и Spring, хоть и основы, но этого действительно достаточно, чтобы понимать в какую сторону копать в случае чего. Достаточно было и сносок на дополнительный материал расширяющий тему урока.

    Преподаватель.

    Не знаю, стоит ли указывать тут сторонние обучающие ресурсы, но скажем так с лекциями Виталия я знаком уже давно. Всегда нравилось, что Виталий приводит много примеров из жизни. Лично для меня это огромная проблема в программировании, я могу что-то выучить, понимать как это работает, но абсолютно не знать, где это применить Все объяснения доходчивы и понятны. Постоянно спрашивает, о чем бы хотели дополнительно послушать ученики. Примеры с кодом есть на каждую тему и мы даже несколько раз ставили эксперименты прямо на лекциях, пытаясь что-то сломать, было довольно интересно.

    Команда OTUS

    Тут много я не скажу, так как особо и не сталкивались. Но из личных наблюдений, все вопросы в общем чате для программистов решались и довольно в короткие сроки. Команда очень лояльна к ученикам и идет на встречу. Так что, если есть какие-то вопросы или сомнения всегда можно обращаться.

    Минусы.

    Те минусы, которые я могу отметь, насколько мне известно, уже исправлены. Например, платформа. Первые лекции были довольно не стабильны, но команда Otus.ru довольно быстро нашла аналог, который устроил всех. Все программисты относились к этому с пониманием, т.к. мы были первым набором, так сказать первопроходцами

    Второй минус даже вовсе и не минус, а скорее неудобство – один преподаватель. Будущим группам повезло, у них, насколько я знаю, будет два преподавателя. В основном это относиться к проверке домашнего задания, на проверку уделялось 48 часов и, если есть замечания к решению, есть шанс не сдать в срок, т.к. исправленную версию вновь отправляешь на проверку. Хотя к этому относились также лояльно и никто не ругался, тут скорее проблема в моем перфекционизме, нужно все сдать в срок

    Результат.

    Через несколько дней я выхожу на работу в Москве именно в ту компанию, где хотел работать. Все интервью организовывали сотрудники Otus, так что результатом я конечно доволен На собеседованиях кстати пригодились те самые знания о сборщиках мусора, о которых я говорил ранее. Так что хотелось бы поблагодарить еще раз всю команду Otus.ru за профессионализм и работу, а также всех ребят с курса за интересные обсуждения и за то, что делились своими знаниями. Я продолжу следить за курсами и если будет что-то интересное для меня, обязательно приду снова!

    Добавить комментарий

    Ваш адрес email не будет опубликован. Обязательные поля помечены *