What a Javaist needs to know to pass an interview

A short note with technologies and useful links that allowed me to pass an interview and work at Sberbank.

Javaist skills

Language

Basics:

  • Java Core (basic language mechanisms: data types, loops, etc.)

  • collections

  • exceptions

  • generics

  • annotations

  • functional interfaces and Stream API

A general understanding and ability to answer interviews is enough:

  • reflection

  • multithreading

  • garbage collector

  • JVM memory device

  • generic JDK device

Oracle Java Course

Framework (Spring)

Basics:

  • Spring MVC

  • Spring Data JDBC

  • Spring Test

  • Spring basics: IoC, DI, beans, etc.

  • difference between Spring and Spring Boot

For general development: Spring Security

Spring Basics Course

Assembly system

Backender skills

Databases and SQL

Basics:

  • relational database device

  • types of connections and keys

  • indexes and restrictions

  • transactions, their levels and ACID

  • ability to write SQL queries (ddl, dml)

For general development:

  • Base version control system (for Java this is Liquibase). It is quite easy to use and will come in handy in your work.

  • other types of SQL: dcl, tcl

  • PL/SQL: should not be used in pet projects, but may be encountered in work.

Interactive SQL course
More in-depth course from PostgresPro
SQL trainers: sql academy And sql exercises

Net

Basics:

For general development:

Video about client-server architecture and protocols
Details about REST

Docker
It is enough to use it in pet projects and have a superficial knowledge of the operating principle. Docker is a really convenient thing, but if you are on Windows, you will have to suffer a little with WSL.

Linux
It is enough to learn the basic commands (navigating in the terminal, changing rights, creating/deleting/moving files) and the general structure of the file system.

Kafka
Additionally. Kafka is complex, so don't get too hung up on it. But you can figure it out a little – it will be a plus in interviews and will help in your work.

General skills

Git

Basics:

  • creating repositories

  • commits, resets, reverts

  • branches (branch creation, rebase and merge)

  • working with a remote repository on GitHub

For general development: approaches to working with git (IMHO, the most useful is git flow)

Well on Git from Yandex Workshop
An article about approaches to working with git

Architecture

  • SOLID principles

  • OOP (or functional programming, if more relevant for your language)

  • Design Patterns
    There is no need to go too deep into them, just read a couple of articles. Also, don't try to use them in your pet projects, it will only confuse you.

Good website with an explanation of the patterns (login from Russia using a VPN).

What not to learn

In my pets, I spent a lot of time studying the built-in Spring Security function for parsing JWT, searching for the ideal way to handle exceptions in Spring MVC, thoroughly studying the Spring Data JPA documentation and the plugin for generation from OpenAPI.

Yes, it was interesting to understand all this, but I could have completed the tasks that were in front of me much faster and in the future this knowledge was not even useful to me.

That's why:

  • try to prioritize correctly

  • put yourself within a time frame

  • remember that the best is the enemy of the good

  • remember the principles of KISS and YAGNI

  • and about one of the Agile principles: a working product is the main indicator of progress

Similar Posts

Leave a Reply

Your email address will not be published. Required fields are marked *