
If your college is one of those few excellent colleges out there that teaches you how to code practically, how the professional workspace is structured, how a full stack developer is different from a backend developer, which tools you should know to not only be job-ready but to achieve outstanding performance appraisals in the job, then this is not an article for you.
This article is about what you should be doing from the beginning of your college journey, or as soon as possible, to land your dream jobs and to be ready to achieve outstanding performance appraisals during internships and full-time jobs. In this article, I will be taking the role of Full Stack Java Developer as an example, but even if you find another job position more attractive, this article will still be of use to you. This is reverse engineering the process of searching and landing a job.
Before we begin, I am assuming you do have basic knowledge about programming and stuff. For example, what are objects in java, how you initialize them, how you pass arguments, and so on? If you do not have any idea about any programming language, then start by reading a bunch of articles on programming. If you would like links, comment below, and I can share some of the materials to get started.
Now, to start with the first on the list.
1. Research on what you may want to be
If you have a vague idea of what kind of developer you want to be, for example, a data scientist maybe, or an application developer, or perhaps a web developer, that’s awesome. Regardless, the best way to find something you relate/ resonate with would be looking up resumes of a software developer with five years of experience or of an android developer with eight. Be proactive, and research resumes. It will give you an idea, and you may find something that you resonate to, more than the other. I know those resumes will have a lot, and a lot of it will be things that you have never heard of. But you will find at least a few things that you have used yourself or heard of at least. Considering these things, and a little more looking up on that particular field you would be interested in, it should be enough to get you started.
2. A more in-depth look into the resume
A resume will help you decide, even if it is just a little, on which path to follow. Do not be afraid of choosing the wrong path; do not worry if you select the path of an Android Developer and later on find it boring. You always have time to change, and the sooner you find the right path for you, the better. So why a more in-depth look into the resume?
Once you figure out or at least choose a path, look for technologies and tools the person worked with as the person moved forward with his/her career. You will find the tools and technologies that will belong to mainly three different categories: Presentation layer, Application layer, and Database layer. This is based on the 3 tier architecture, which is used vastly nowadays.

For example, in a Full Stack Developer resume, you will find things like JSP, JSTL, HTML, CSS, JavaScript, ReactJs, AngularJs. These belong to the first layer, the presentation layer.
Things like Java, Spring, Spring Boot belong to the Application layer of the architecture.
Finally, things like ORM, Oracle, SQL, MySQL, PL/SQL, Triggers belong to the final layer of the architecture.
Having the birds-eye view about where each technology lies will give you a clearer understanding of the workflow in the professional environment. Once you research thoroughly on a resume, you can then slowly, look up tutorials, or ask questions on forums or blogs like these about where you can learn what you need to learn, or any questions regarding the whole thing.
3. Design Patterns
Apart from technologies and tools, what you may also find are something called design patterns. Design patterns are recommendations on how you should be writing your programs, how they should be structured to achieve optimal performance and scalability. In the most basic sense, if you follow those recommendations, your application will be more or less the industry standard.
Some of them are Singleton pattern, Iterator pattern, Observer pattern, Data access object, Data transfer object, MVC, Factory pattern, …etc.
4. Algorithms and Data Structures
A vital part that will not be in most of the resumes will be the algorithms and data structures. An algorithm is the set of steps to solving a problem. For example, if we need to sort a given set of numbers, we need to follow specific steps even as we do it by hand. Writing those steps that you do by hand into code is what you should be able to do for as many kinds of problems as you can. The more efficient algorithms you write, the better it is in any context. P.S. working with algorithms teaches your brain how to think, and will improve your intelligence as well.
Data structures, on the other hand, are storage formats where you can store data in bulk. For example, if you need to store your food in the fridge, you first transfer it into a box and put it in the fridge, right? Similarly, you put a bunch of numbers in a list, and then store it in the memory. The list here is an example of a data structure.
Practicing data structures and algorithms will help you in very much in the long run. This comes in handy, especially during coding interviews, where you will have to solve such algorithm problems to get the job.
5. Experiment and learn
Once you have a list of things, you need to learn, gather the courses, and start learning. A crucial thing to do is as you watch videos and take courses, after every course you take, each video you watch, try to implement it yourself, try to break the code, try adding a few stuff or remove some.
When you learn by experimenting, you understand the content better, and not only that, this cycle of breaking and fixing the code as you learn will give you thousands of hours of debugging experience on the first day of the job.
Take breaks as you learn
The things you need to know, the things you need to practice and master are a lot. Knowing what to learn is a tremendous head start, and some of us may start grinding 24/7 nonstop. That’s great, but this will harm you in the long run. If you do not take proper breaks and time offs, your capacity to learn will decrease, your stress will go over the roof, and all of the efforts will be useless. So take proper breaks, the Pomodoro technique is a great way to manage breaks and working times.
Why all of this?
So why follow this approach? This approach could also be looked at as reverse engineering. Following this, you will have a solid idea of what you need to be knowing when you start working to ace the job from day one after landing it!
Thank you for reading!