Как стать программистом 4

Как стать программистом? Часть 4 – Топ 7 технологий для java junior разработчика.

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

 

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

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

Первое место! ООП

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

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

Раз Вы новичок, то Вас скорее всего, на собеседовании, попросят объяснить, как работает ООП на том языке, который Вы изучаете. Может дадут кусок кода, в котором иерархия классов и скажут определить, какой метод вызовется при тех или иных условиях.

Второе место! Java core

Вторым по важности идет java core. Это достаточно широкое понятие. На знание java core, Вас могут попросить решить тест. Этот тест будет из разряда, что будет если выполнится данный код. Вы заранее можете потренироваться решать такие тесты. В интернете полно ресурсов, которые позволят пройти такую проверку бесплатно. Поищите OCJP(SCJP) tests online.

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

Обратите внимание на то, что я сказал, что вам МОГУТ дать такой тест. Если его не дадут, то скорее всего спросят устно. В этом случае Вы можете проскочить.

Третье место. Java Collections

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

Первым делом выучите основные интерфейсы и поймите для чего они нужны и чем отличаются. Список не большой это Collection List, Set, Queue и Map. Не нужно заучивать все их методы, лучше научитесь пользоваться ими.

Затем выучите основные реализации. Также список не большой, это LinkedList, ArrayList, Vector, HashMap, Hashtable, TreeMap, HashSet, TreeSet. Их недостаточно просто уметь применять. Понимайте особенности реализации и то, когда их нужно использовать. Желательно знать временную сложность выполнения тех или иных операций.

Четвертое место. Servlets

Сервлеты – это тоже очень важная штука. Очень часто на собеседовании меня спрашивали о жизненном цикле сервлетов.

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

Пятое место. Synchronization

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

Научитесь пользоваться ключевым словом synchronized. Так получилось, что я устроился на свою первую работу не зная о существовании классов Semaphore и СountDownlatch. Поэтому я считаю, что это не сильно важно, но если будет свободное время, то поковыряйте их.

Шестое место. JDBC

Практически в любом тестовом проекте, который Вы получите, будет работа с базами данных. Тема, мягко говоря, важная. Знаете, что такое CRUD редактор? Если нет, то поищите в google.

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

Седьмое место. SQL

Раз уж мы коснулись JDBC, то и SQL не обойдем стороной. Вы достаточно неплохо познакомитесь с SQL, когда будете писать CRUD редактор на JDBC. Но я подчеркну еще, что Вы должны понимать следующие операторы языка SQL: SELECT, WHERE, INSERT, DELETE, UPDATE, JOIN (все типы), GROUP BY, ORDER BY.

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

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

Итог

Как Вы могли заметить, самые крепкие знания Вам потребуются по Java core. По всему остальному можно создать видимость наличия у Вас опыта использования. Это объясняется тем, что обычно только по Java core могут дать решать тест. А тест, как Вы понимаете уже сложнее, обмануть. Хотя может попасться такой интервьюер, который так будет придираться, что пиши пропало.

Еще дополню, что в мое слово “обмануть” я вкладываю немного другой смысл. Я думаю, что почти у всех новичков есть некоторая своя оценка их знаний. И зачастую она очень низкая. То есть, ты думаешь, что ничего не знаешь, а на работу тебя взяли. Получается ты думаешь, что обманул интервьюера. Хотя он может просто закрыл глаза на некоторые твои пробелы и фирма готова их закрыть за свой счет. Получается, что  обман существует только в твоей голове.

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

Все!

 

Комментарий “Как стать программистом? Часть 4 – Топ 7 технологий для java junior разработчика.

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

Ваш e-mail не будет опубликован.

*

Можно использовать следующие HTML-теги и атрибуты: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code class="" title="" data-url=""> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong> <pre class="" title="" data-url=""> <span class="" title="" data-url="">