I have wasted 3 starting years of my career. Is there any way to start over?
You have not lost any years, you learned many things. http://norvig.com/21-days.html is providing a mind-provoking insight. And you need to read Bullshit jobs, it is mind provoking and covers quite well software development jobs, since most software projects (more than half of them) are somehow "failing".
And you also learned how to behave at the workplace. And that is valuable on a resume. If you dream (IMHO wrongly) of climbing the management ladder, be aware today of Peter's principle and the related Dilbert principle.
At last, please realize that software technology is by essence very brittle and don't last long. What was a buzzword in 2016 will become old-fashion (or legacy code) in 2022.
What matters much more are programming concepts and software development skills (see also softwareheritage for an important insight), and ability to learn new things, including even new problem domains. All this last for an entire career, and all of them are appreciated and valuable on the job market.
As instances of programming concepts, consider non-exhaustively for example : algorithms that you have used in your code, independently of the programming language; computer science concepts - including operating systems and their API such as POSIX or WinAPI or Sockets, protocols such as HTTP or SMTP, DBMS such as PostGreSQL or MongoDB, distributed computing techniques such as MapReduce, asynchronous message passing or remote procedure calls, etc... Mention a short list of high-level programming concepts in your resume.
As software development skills, consider the various programming languages you know (C++, Java, SQL, your shell), other more or less "computer" languages you are familiar with (such as CSS, HTML, PDF, LaTeX, OOXML, DocBook, XML, JSON, DOM ...), and your familiarity with several software engineering tools (version control tools like
git, build automation tools like
ant, source code editors or IDEs like
emacs or Eclipse) that you practice daily. Write about all of them (in a single paragraph!) in your resume. But emphasize in that CV your ability to quickly learn how to use new software engineering tools and learn new computer languages.
For example, I first programmed in 1974 on punched cards, but the programming language used at that time (PL/1), and the OS I did use (MVS with JCL) at that time have been forgotten, and I forgot many details about them. Later, I professionally programmed in C (actually I was mostly metaprogramming in C around 1990), but today C is out of fashion (so I'm also using C++14), and I might learn Rust and I did code, a few years ago, some software in Go.
The dead-end: I spent almost 2 years of my career at this place - learned almost nothing
Wrong perception of yours. You did learn a lot (including stuff I mentioned above), because you have improved some skills, you just are not yet capable of writing all the stuff you did learn on your resume. In simpler words, you just don't know all the things you did learn. And learning is unrelated to any training your company is paying for you. With an access to Wikipedia and to many other internet resources (including StackOverflow), you can (and probably did) learn a lot from your workplace. There is a Russian saying Век живи - век учись (my late parents repeated that weekly to me when I was a kid): if you live for a century, you have to learn during a century. It applies to both you and me.
3) I will be just bitterly honest here - I am not eligible (skills wise) to get a job with a position expected of a 3 years experience guy.
Read about the impostor's syndrome (even now at the age of 60, I still tend to feel it). Be however aware that most job offers (written by HR) are requiring an unreasonable amount of skills. Understand that the job market (and corporate life in general) is a theater.
I am 60 years old in august 2019, and have spent all my career (except one sabattical year at INRIA) as some computer scientist research engineer at CEA, since 1985, working in the same organization (of 16000 people). I essentially had two roles: one at its DEN division, and another at its DRT division. I switched teams only a few times -perhaps 3 times- in my entire career (e.g. the colleagues I have today are nearly the same I did have in 1999, and the unit I am working in, called a lab of about 25 permanent staff, keeps the same name).
I have written more than a million lines of code during my career. If I consider amongst them what code has actually been used by other people in real life (not just cited in some paper), then honestly I could only name the GCC plugin feature and the less than 10KLOC I contributed to GCC. During the last 20 years, it honestly is the only piece of code, written by me, that is useful to others.
And I am not alone. If you start reading papers and books on software project management (start with the Mythical-man month please, it is a classic of its kind) you'll understand that most software projects are failing. The typical failure rate of software projects is still about 50% even in 2019.
But I did have a lot of fun writing all the code that I did write during my career, so what else can I expect?
I have been naive enough to only understand very recently that my actual role (not the one mentioned on contracts, of course) is to be the support of corporate tax optimization, (by research tax credit done by corporations).
In other words, you just need to grow up. You learned lot of things in 3 years, and these can go in a valuable resume.
And the most precious thing a software developer learns is not about any particular kind of software technology (such as Java Servlets). It is related to practice, and the relation between your day-to-day job and computer science. Just ask yourself honestly: have you understood all the details of Introduction to Algorithms (or any equivalent book or university course)? Between you and me, I did not. And that is more than thirty years that I am reading such books. My hairs are white, I am grand-father 7 times....
What should I do?
If you want to learn even more things, I can give a very simple recipe: contribute, during your personal free time (e.g. a few hours every week-end, and perhaps 30 minutes every other working day, during the evening, at home), on any existing free software project (you'll find thousands of them on github & gitlab), but don't choose a huge project (but one with only a few hundred thousand lines of code, and several dozen of fellow programmers). Use your own personal computer for that (not a PC belonging to your employer). Mention that in your resume.
Perhaps even take time to learn a new programming language while doing that, e.g. contribute to some free software project in a language you are not using at work. You'll become more competitive than your fellow programmers who did not that. Of course, install some Linux distribution on your home personal computer (since Linux is mostly made of free software, and since it provides an excellent development environment for coders). And since you contribute to an existing free software project, you'll learn even more how to work in a team, and the team working on that particular project will teach a lot of things to you.
For example, you are now a Java expert. Then contribute, on your free time, to some existing Guile extension project. You'll learn both a new programming language (Scheme, the language used in SICP, a freely downloadable book -still today, the best introduction to programming I know- that every programmer should have read) and a new approach to programming (embedding an interpreter in some existing program). And that is very valuable on the job market place (much more than any particular technology), because you then show -to potential employers- that your mind is flexible: you are able to learn another programming language, and another way of programming.
Of course, don't become tied to one particular programming technology. But you know that already!
NB. For me, IDE is a buzzword for source code editors. My favorite IDE is
emacs. Also, hyperlinks are above to give bibliographical references (since I am old enough to have written technical reports before the existence of the Web).
PS. If you want to contribute to some weird free software project (to which a very active contributor is an Indian software developer, Abhishek, working on that project on his spare time while being employed full-time), read this draft technical report (skipping the few mandatory pages for European bureaucracy) then, if the ideas there are interesting you, contact me by email to
firstname.lastname@example.org. But the free software project I have in mind is more a research project than a development one, and it does share most of (but not all) the ideas explained in that report, while having different goals. And that Abhishek is learning a lot of new things while working on that free software project.