Java для взрослых. Полная версия - Алексей Назаров 2 стр.


Примерно в 2018 году я понял, что больше не хочу быть системным администратором  новизна пропала. Конечно, появился ряд новых технологий, но я понял, что мне скучно изучать системы их принципы работы и параметры настроек. Я сам хочу создавать, творить. Так я задумался чтобы всерьез, во второй раз, сменить свой род деятельности и стать программистом.

Я тогда работал в одном банке ИТ-инженером. Мне было поручено задание: при помощи языка Python связать две системы, одна из них  это система заявок Jira, а вторая  для развертывания ПО Jenkins. На тот момент все, что я знал о Python, что это язык программирования, который имеет низкий порог вхождения.

Проект занял у меня 2 недели, безусловно мой код был ужасен и кошмарен, и надеюсь, что его никто не видел, но система регулярно отплевывалась заявками и все были довольны. А мне очень понравилось сидеть в IDE  среде разработки и творить. Я решил изучить Python и стать программистом. И безусловно, попался бы в ловушку, если бы не совет из книги для системных администраторов, что я упоминал выше,  постоянно следить за рынком труда. Я решил изучить рынок труда  насколько разработчики Python востребованы в Новосибирске. Оказалось, что практически ни насколько (напоминаю год был 2018, удаленка отсутствовала  пандемия еще не пришла).

Это был неприятный сюрприз, который заставил меня задуматься какой язык выбрать. Так я пришел к выводу что надо изучать Java. (О выборе языка я расскажу далее во 2 главе).

Я стал покупать один известный онлайн курс и выполнять задания. На этом ресурсе я потратил полгода. Именно потратил. Мне казалось, что однотипных заданий слишком много, а лекции не способствуют скорому продвижению. В общем я бросил курсы на 8 уровне (из 40). И стал изучать Java самостоятельно по книгам. И как же я удивился, когда через три недели учебы по книге стал изучать многопоточность. На упомянутых курсах это был если не ошибаюсь 20 уровень.

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

1.2 Что будет в этой книге

Все, что будет в этой книге подчинено только одной цели  как можно быстрее сделать из новичка программиста уровня «джуниор», чтобы начинать искать работу. Это книга  гайд как учить Java, чтобы стать джуниор-разработчиком.

1.3. Чего НЕ будет в этой книге

Здесь не будет никакой воды, рассуждений и избыточной информации.

Здесь не будет глубокого изучения какого-либо инструмента\технологии.

Эта книга не заменит Вам книги по Java. Объясняю еще раз: это книга-ментор, которая будет вести Вас и направлять, поясняя, что и в какой степени изучать в Java и не только.

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

1.4. Для кого эта книга

Эта книга для тех, кто решил попробовать себя в программировании, но пока не знает какой язык выбрать и с чего начать, равно как и для тех, кто уже начал изучать Java, но не знает куда двигаться. Когда я искал для себя мотивацию и инструменты для изучения Java, где-то в интернетах наткнулся на комментарий человека, который учился на курсах и закончив их попытался написать проект, а в итоге как он сам выразился «получился набор классов и что с этим делать непонятно».

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

1.5. Начальные требования

Для того, чтобы начать без боли погружаться в программирование нужны 2 вещи:

1. Уметь печатать неглядя, десятью пальцами. Если у Вас нет этого навыка найдите в интернетах онлайн тренажер и за две-три недели каждодневных тренировок у Вас все получится. Конечно, можно и без этого, но будет сложновато.

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

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

Глава 2. Выбор языка программирования

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

Уровень языка  это степень, в которой семантика языка учитывает особенности мышления человека, нежели машины  то есть уровень языка тем «ниже», чем он «ближе к машине», и тем «выше», чем он «ближе к человеку».

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

Еще тут нужно учитывать, что не всегда этот параметр достаточно объективен: например, если говорить об одном из самых низкоуровневых языков программирования  Ассемблере, то он действительно очень сложен, судите сами.

Это листинг программы, которая выводит на монитор сообщение «Hello, world!».


                  -Hello, world!  Assembler:

SECTION. data

msg db «Hello, world!», 0xa

len equ $  msg

SECTION. text

global _start

_start:

mov eax, 4

mov ebx, 1

mov ecx, msg

mov edx, len

int 0x80

mov eax, 1

mov ebx, 0

int 0x80

                            


А вот аналогичная программа на Java:

                    -Hello, world!  Java:

public static void main (String [] args) {

System.out.println («Hello world!»);

}

                            


C# приводить не буду  синтаксис похож на Java и области применения сходны: это и веб разработка и десктоп приложения. Тем не менее на рынке труда Java более востребована. Вот результат запроса на одном из самых известных поисковиков вакансий:

10865 вакансий «java»

6153 вакансии «C#»


Теперь таже самая программа на Python:

                  -Hello, world!  Python:

print («Hello world!»)

                            

Всего 1 строка.

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

 относительно недавно стал применяться в веб-разработке.

 Используется в data science: машинное обучение, анализ данных и визуализация.

Ну и конечно программа написанная на Python в большинстве случаев будет выполняться дольше, чем написанная на Java.

А вот, к чему я все это вел, такая же программа на языке GO, который позиционируется как высокоуровневый (как Python), но значительно быстрее:

                    -Hello, world!   Go:

import «fmt»

func main () {

fmt.Println («Hello world!»)

}

                            


Я рассматривал GO как кандидата но, когда открыл что-то посложнее понял, что Java читается легче.

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

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

2.1. Плюсы Java

Несмотря на растущую популярность Go и Python, Java остается одним из самых востребованных языков уже более десяти лет.

У Java возможно самая широкая сфера применения. Java используется для:

 веб-разработки  на нем написаны сайты такие как Амазон, РЖД, Одноклассники и т.д;

Назад Дальше