I have many files like this 

    ENSG00000000003.13	366
    ENSG00000000005.5	26
    ENSG00000000419.11	1905
    ENSG00000000457.12	775
    ENSG00000000460.15	377
    ENSG00000000938.11	316
    ENSG00000000971.14	272
    ENSG00000001036.12	1726
    ENSG00000001084.9	2479
    ENSG00000001167.13	1166
    ENSG00000001460.16	38
    ENSG00000001461.15	298


They are all htseq-count. 

I have two questions

1- how can I convert the ID to gene names? do you have any solution available (I can use any language) ?
2- what would you use for normalizing them? 


To answer your first question : <br>

Create a TSV file with your input => list.tsv <br>

Remove ".13" etc from your ENSG (list.tsv) => list_ensembl_gid.tsv <br>

    awk -F '\t' -v OFS='\t' '{sub(/\.[0-9]*/, "", $1)} 1' list.tsv > list_ensembl_gid.tsv;

Then use R & Biomart to retrieve corresponding genes names

    R
    data = read.table("list_ensembl_gid.tsv")
    colnames(data)[1] <- "ensembl_gene_id"
    colnames(data)[2] <- "counts"

    library('biomaRt')

    hsapiens = useMart("ensembl",
    					dataset="hsapiens_gene_ensembl")

    hsapiens_infos <- getBM(attributes=c('ensembl_gene_id',
	    								 'external_gene_name'),
		    				mart = hsapiens)

    merge_infos <- merge(x = data,
                         y = hsapiens_infos,
                         by = "ensembl_gene_id",
                         all.x = TRUE)

    head(merge_infos)

> ensembl_gene_id   counts   external_gene_name <br>
> ENSG00000000003  366      TSPAN6 <br>
> ENSG00000000005   26               TNMD <br>
> ENSG00000000419 1905               DPM1 <br>
> ENSG00000000457  775              SCYL3 <br>
> ENSG00000000460  377           C1orf112 <br>
> ENSG00000000938  316        FGR <br>