How to become a Rockstar Software Engineer
Sleep
There are so many research that backs the benefits of good sleep. This is particularly important for Software Engineers as it will improve cognitive ability. A well rested brain can solve problems efficiently and no amount of caffeine can replace a good 6+ hours of sleep. So stop using your electronics at least 1 hour prior to your sleeping time and sleep like a baby!
Read
“Reading completes a human” — Sinhalese Proverb
Reading technical and non technical content improves your knowledge exponentially and keeps you up to date in this fast paced industry which changes at break neck speed. I usually devote my morning 1st one hour right after waking up for reading.
Exercise
Exercising has so many benefits in general but for Software Engineers I think it is a must. Software Engineers are very prone to stress with tight deadlines and demanding tasks. Stress is just anxiety which is left untreated, So in order to coop with stress you should control anxiety. Exercising specially in the morning helps you achieve this because anxiety causing hormone “Cortisol” which resides in your sweat glands can be excreted out of your body.
I have tried running 20–30 minutes in the morning on my home treadmill and saw results personally. Try it and you will feel the wonders of exercising and will not stop.
Practice
Competency = (Knowledge + Experience) * Practice
In order to reach competent level on any skill you need to first gain knowledge, experience and practice whatever you gained in the real world. This is like an experiment which cements the knowledge, experience you gained into your profession.
I usually learn something, then out of memory I will open an IDE and try out what I learnt. Also I create a made up requirement and try to implement it using the technologies I learnt which helps me to practice.
Watch/Read Humor
Software Engineering is mostly about problem solving. The client gives us a problem they have in the form of a requirement and we are to find a solution for that problem creatively. Humor can help us in improving our problem solving skills.
In the research, reported in a recent issue of The Journal of Personality and Social Psychology, Dr. Isen found that people who had just watched a short comedy film of television ‘’bloopers’’ were better able to find a creative solution to a puzzling problem than were people who had watched a film about math or who had exercised.
The famous Candle Problem could be solved more quickly and efficiently right after watching a comedy video according to Dr. Alice M. Isen, a psychologist at the University of Maryland in Baltimore.
Network/Collaborate
Your network is your net worth
Software Engineers are “Knowledge Workers”, according to prominent Business maven Peter Drucker a knowledge worker’s expertise is highly specialized to the point where their productivity depends on their efforts being managed as part of an organizational team.
Software Engineers depend on Business Analysts to get the correct requirement on what needs to be built. Quality Assurance Engineers depend on Software Engineers and Business Analysts on getting the requirement and a software solution which can to be tested and so forth. At least in a professional setting (there can be 1 person Software Engineers who does everything) this seems to be the case.
So in order to be highly productive, learn new things and solve unsolvable problems faster you will need to be a part of a network with members who can help you out.
You can network in platforms like LinkedIn.com, Stackoverflow.com, etc. where you can get your problems answered as well as build relationships among like minded Software Engineers. Joining Developer Groups, User Groups also helps if you fancy that.
Share/Contribute
There is a notion among some Software Engineers that the less they share and keep it to themselves the more successful they will be. This would have been true in early days of Software Engineering where becoming proficient in a technology involved hours and hours worth of reading manuals, books, etc. which were not digitally available at the touch of a button.
In the modern days where everything and everyone is digital, this no longer holds completely true. Anyone can learn anything at a key press or a mouse click. It is seldom that you know something which no one else does or no one else can learn through the internet.
By sharing your knowledge, experience through platforms like Stackoverflow.com by answering questions or by writing about technical difficulties you faced and how you solved them will definitely enable you to get more visibility in the industry as an active, front running Software Engineer. Also contributing to Open Source projects also helps to showcase your skills and expertise all the while helping to achieve a great good cause. Trust me I have done it and it has worked for me.
In Conclusion
Software Engineering is a very pleasant and dynamic profession. No matter what stage you are at it right now the most important thing is to be passionate, enjoy what you are doing and keep improving. This is a non exhaustive list of things that has worked for me and can definitely be improved. If you have any suggestion please mention in the comments so I can also learn more.