| Some random thoughts: 1) Depending on where you live, there will be hundreds/thousands of new CS graduates every year, but a smaller number of available jobs for juniors. So, you need to differentiate yourself from the rest. Starting from there, there are two paths you can follow to increase your chances of finding a good job (not mutually exclusive): - Do what everyone does, but better. - Do different things then everyone 2) First principles thinking. It has been an invaluable thinking method for me to improve myself, in all areas of life. Some random links: https://jamesclear.com/first-principles https://www.theengineeringmanager.com/growth/first-principle... Some examples on how you can apply it to software development: - You will be using various languages/frameworks/libraries when creating software, with various level of abstractions. At the beginning, you won't have the necessary experience to understand how everything works underneath. Whenever you find time, try to dig through the abstractions to discover why they were built the way they built, how they work together. This understanding will make you a better engineer. - When working with non-technical clients/project shareholders, what they say they want and what they really want will usually be different. Often, you will have to dig through their requests to find out how you should continue. |