Your own portfolio is an important element if you are applying for the position of Junior Java Developer. The portfolio also allows us to collect the acquired knowledge in one place so that we can return to it later.
Preface
For people who will recruit us, our own portfolio is a signal that we know the Java language not only from the theoretical side, but also from the practical side. Including Java code (called source code) in a portfolio is not a matter of "uploading files to a cloud drive," but requires additional knowledge beyond Java itself.
How to build a portfolio
How to build a good portfolio? Why is a portfolio with "Hello World!" definitely not enough? Companies receive a lot of CVs from people applying for the position of Junior Java Developer, in these CVs there are links to the portfolio (Git repository, more on this later) with the source code. If we have only one project in our portfolio, the so-called CRUD w Spring Framework, then we only duplicate the pattern that occurs in people completing Bootcamps – more information in the article Pitfalls of the CRUD template in your own portfolio and real project.
So what should you do? Stand out with an interesting project? Should I just put multiple projects, e.g. with Java basics?
What to put in your portfolio?
A good portfolio, in my opinion, should contain both one "larger" project using Spring Framework as well as "smaller" projects presenting e.g. features of the Java language. A larger project in Spring Framework is not necessarily the previously mentioned CRUD - more about the project with CRUD in the article First-class CRUD service – Java code, IntelliJ, step-by-step. If we do CRUD, it is important that it has good documentation in the README file. md and the code itself contained unit tests, e.g. in JUnit and was compatible with SOLID and DRY.
TheREADME.md file is read by HR recruiters, non-technical ones
Here you should include a description of the project, information about the technologies used, how to install and launch the project. Additionally, you can attach screenshots of the running application.
The Git repository is viewed by technical recruiters
By the "appearance" of a git repository, you can tell whether a person knows and uses the git tool correctly. The most important thing is to create branches and Pull Requests, even for yourself. It is worth spreading the commits in git over a few weeks, for example.
Where to place your portfolio?
The most popular places to share and share source code:
“It is a cloud-based platform and service for software development and version control.” – source Wikipedia.
“It's a Git-based source code repository hosting service.” – source Wikipedia.
There are also projects on GitHub and Bitbucket open-source, with that we will use as Java programmers, e.g. the popular Spring Framework has its code at GitHubie. There you will also find source code from many courses, tutorials and other programmers, not only for Java. The primary feature on GitHub and Bitbucket is source code repositories. A description of all available features is beyond the scope of this article.
What not to do
We do not send our work in the form of an archive that contains files with source code, or worse yet, individual files with Java classes - the code must be placed in a remote source code repository. An exception to this is a situation when placing the source code in a remote source code repository violates the confidentiality rules, e.g. we received a recruitment task from company X, which is based on internal data of this company. In any other case, our code should be placed in a remote source code repository. Sharing Java code is not about putting the source code on a cloud drive.
We do not place elements in the Git repository that are dynamically generated, e.g. compiled classes - files with the .class extension - of the Java language. Libraries that are automatically downloaded and included by a tool such as Maven, Gradle. I hope I don't have to remind you that we don't put logins and passwords in the git repository - it's best to use the public/private keys and/or certificates mechanism.
What are git and GitHub?
Git is a distributed version control system, e.g. for Java class files. "File swapping" of the source code is only done using version control systems such as git. A git repository contains files, most often placed in directories, that make up a project, each file in a git repository contains a change history that can be compared to the change history in a Word file.
Personally, I call GitHub and similar tools a graphical overlay on the Git repository, which allows sharing source code and code review.
GitHub definition from Wikipedia: "a hosting website for programming projects using the Git version control system." Both GitHub and Bitbucket provide Git repositories and their own additional features that are not available to Git. An example of such a function is Pull Request or Merge Request.
What does the "look" of a git repository say?
It is very important for the person verifying our portfolio that the project contains a large number of changes described in git (git commit -m "my change"). The information itself (commit message) is equally important, containing a short description of the changes we have introduced to the code and placed as a commit. This is important because on this basis you can assess how much time it took to create the project and whether it was not added entirely in one change, which is suspicious. The most important thing is to create branches and Pull Requests, even for yourself.
Summary
Unfortunately, for people who are just starting their adventure with Java, git is a serious problem. However, for people recruiting for the position of Junior Java Developer, a portfolio in the Git repository is information that a given person knows how to share source code in a team of developers.