1 . Learn Data Structures & Algorithms
"You don't know the fundamentals". I was told this by one of my co-workers and I never really understood it until later in my career. I always thought "What are they talking about, I know what arrays, functions, lists, are and I know how they work". But, it wasn't until I heard it again, and it reminded me of a quote by Linus Torvalds, "Bad programmers worry about code. Good programmers worry about data structures and their relationships". Good data structures can make your code easier to follow and understand, will make your code easier to maintain, and will help your career as it develops, long term. A poor understanding of data structures and algorithms and your code will look like spaghetti and be hard to follow. Structuring how your code will look, what it should return, how it should work, line by line will give a deeper understanding of the code you write. Learning these fundamentals and concepts can be applied to any programming language, this is why it is important to know them and practice them. Great recommendations that has helped me learn them are:
2 . Attend Virtual or Online Meetups(Networking)
Networking is a very important skill when you are looking for a job. It is one of the most important techniques to land your dream job. Even if you go to one virtual meetup a week, there is still at least 50% percent chance you might meet someone, who is one of these three people, a recruiter for the job you want, an employee who works for that company, or even better, a direct client that is trying to fulfill a vacancy for the position you have been looking for. Either way, it goes, meeting people creates a connection that brings you one step closer to your goal. Think of it this way, you can meet some one day, and the same person could get you into a position that you wanted or an interview at your dream company, all based on that connection. Networking creates connections and connections create opportunities.
3 . Practice, Practice, Practice
Code Everyday. Seriously. Have you ever worked out at the gym and stopped. Then maybe a couple months later, tried to workout again, and your muscles are hurt and sore for the first week and wonder why. Its because your body wasn't conditioned to the same workout you have done a couple months ago. So you have to retrain your body again. It is the same when you code, imagine you are in the middle of writing a program or maybe you built an application. And you stepped away for a week or two. When you come back, you will have no idea what you were working on and might even get lost in your application. So, it is vital to code everyday. If not everyday, at least two to three times a week. Practicing will challenge your mind, and help you grow as a programmer. Which leads to my next point...
4 . Comment Your Code
Commenting your code is a good tip, if you step away from your code or need a break to rest your mind for a few days. Write pseudo code or comments that specifically explain what your code is doing and how your code is supposed to work. Be descriptive. Imagine if you had to give a presentation to a group of new developers explaining how the classes or functions you wrote should work. For example, if you have a function that takes some parameters. Write what parameters, the function may expect, whether it is a string, a boolean or an integer. Write what the return value should look like, is it going to return dictionary? a list? or an object ? Commenting your code, can help you and other developers understand the code you have written.
5 . Learn, Build, Teach...Then Repeat.
The last step to finding your dream job is to learn a new skill, something you don't have domain knowledge about. It could be a new language you are learning, a data structure you learned about, a new topic you are interested in etc. This is the learning phase. Next is build. Build something using what you learned.
It doesn't have to be complex, it can be simple. What matters is recycling what you have learned and being able to implement it. Remember being a good developer and getting your career where you see it, is about taking small consistent steps everyday towards that goal. Another good way to learn is building a todo list, or calculator.
Everyday, you can add or implement a new feature or concept to your todo list. The last phase is important. Teach, what you have learn and build. I have always went by this rule, if you can teach it to someone who knows nothing about it, and they can understand maybe not every technical detail but based on how you explain it able to understand the concepts. Then you know it.
Another option is writing. Write an article. If you learn about recursion, linked lists, redux, or whatever you learn, write about it. It will not only cement what you know but also help other developers. One last option is give a talk or presentation at a meetup, about what you learned. Not only will that help teach others but will help build your network. And might possibly land you your dream job!