This is a small project for a medium sophisticated exercise.
The story is to analyze the data of one hour of a day on GitHub and report an evaluation.
The motivation here is to try and sharpen your Java 8 programming skills—in contrast to just googling some ready-to-use libraries. Everything can be achieved by the Java 8 Standard Library in an elegant, modern and performant way.
The benefit will appear when you present your approach to your colleagues.
Important: you do not even have to finish the whole project—we are all happy to discuss with you one task after the other!
Spoiler Alert: if you really want to cheat on yourself, try the branch dittmar/develop
:-(
Java, Analysis, Modelling, I/O, Unit Testing, Java 8
- Retrieve the data from http://data.githubarchive.org/2016-03-14-15.json.gz
- Analyze the data which is “count the activities for each programming language”
- Order the result by the rank of the programming languages
- Export the result as CSV, like (the example is not real data!)
RANK | LANGUAGE | ACTIVITIES |
---|---|---|
1 | JavaScript | 767 |
2 | Java | 547 |
3 | Python | 515 |
… | … | … |
78 | Apex | 1 |
79 | Prolog | 1 |
Optionally you can also introduce a second order by language name.
As a highlight you may add another column “PROPORTION” with the two-digit percentage per language, like
RANK | LANGUAGE | ACTIVITIES | PROPORTION |
---|---|---|---|
1 | JavaScript | 767 | 23.45 % |
… | … | … | … |
There might be different results but only one is correct ;-)
For the download you may use a library of your choice or just a plain HttpURLConnection, if you like.
But all other tasks fit perfectly in the Java 8 environment without any external libraries.
Branch early: create your own branch like
$ git checkout -b <your-name>/develop
Please, do not push* your solution—only to a private repository. Everyone should start plain from the beginning without any suggestion or template.
Now… happy coding!