How I went from a noob to a Hackathon Winner
Tags: devjournal, java, beginners, motivation
Published: 2021-03-02 18:32:56

To be frank, learning a new language is no easy feat and is certainly not everyone's cup of tea. For someone with no prior experience in programming or computing, learning a whole language might seem like an impossible task. However, with all things alike, nothing is quite impossible unless you think it is. Here, I share with you some of my tips to learn not one but four different programming languages in six months.
### Have a Goal in mind
__Learning without a goal is one of the worst mistakes you can make.__ Without a motivating goal, you will easily lose track of why you are learning the language in the first place.  You won't have an idea about where to apply the language and the attempt would end up in failure. Without any use cases, I also did not manage to learn past the syntax of those languages.
However, things were different for me when I started learning Java. Learning java is part of my plan of to master data structures and algorithms and possibly crack some coding interviews. Hence, I am not learning  just for the sake of learning. I need a working knowledge of Java to work on some complex problems, require understanding an array of libraries to start on my projects. I have a bigger purpose to learn Java.
Setting an initial goal is getting the job half done. Find an application for the language you are learning and you will be one step closer to mastering it.

### Resources
There is no lack of resources online. My only advice is not to rely solely on one. Make use of the vast variety of resources available that utilised different mode of delivery to enhance your learning experience. Here are some of the resources I used to learn Java:

#### 1.[Udemy](https://www.udemy.com/)
Complete Java Bootcamp and Java for beginners covered the basics of java programming and data structures essential for competitive programming. These courses come in the form of video lectures with assignments.

#### 2. [GeeksForGeeks](https://www.geeksforgeeks.org/)
With a wide number of questions to practice and improve your analytical skills, GeeksForGeeks is your go-to website. They provide an interactive environment for you to practice as you go, allowing concepts to stick and familiarize yourself with coding.. A programming language is similar to natural language, practice and practice is the only way to learn.

#### 3. [JavaTpoint](https://www.javatpoint.com/)
This website provides in-depth knowledge of all the important java concepts an. These assignments are well thought of and require learners to code basic algorithms which serve as a great exercise for logical thinking.

#### 4. Blogs
There is no lack of blogs providing recommendation or advice on the resources to learn a programming language. One such blog I encountered recently was across the CodeCamp website where they actively push out contents that help beginners to get started in their programming journey. They also present it in a clear and concise manner, providing their reviews and recommendation in an objective way. Depending on your preferences, you might prefer some over others. Look around and see which blogs suit your learning style.

#### 5. Projects
You would not know how much you know unless you apply what you learned. Project is a great way to assess your knowledge and definitely a great addition for your resume. Work on a project that interests you and you might just learn much more than going through courses. Practical application is always the best approach to learning a technical skill.
As an example, I myself worked on creating a machine learning model to boost the self esteem of the user. I spent a whole month coding every day, googling and getting hang of the new found concept. I strongly believed that this has contributed much more to my mastery in machine learning than any courses I took. You can read more about the project [here](https://github.com/Anu-MADMAX/PowerUp) .

#### 6. [GitHub](https://github.com/)
Having a GitHub profile is a must if you plan to move into the tech space. You can find helpful sample/starting codes for all kind of application that you want to build and even contribute to interesting projects. So what does GitHub got to do with learning programming? Almost everything. Programmers learn from looking at other's codes and GitHub is just a great repository of codes in one place. There are a few ways you can learn coding from GitHub:
- Learn from others and apply the learning to your application
- Develop your own package for others and get feedback
- Contribute to existing projects
That's how I was able to learn four different programming languages in just six months. You can certainly do it too, let me know how it goes in the comment section.

_To have another language is to possess a second soul – Charlemagne._