A decade long of NotImplementedException
10 years back this day, I officially kick-started my "this.life". I have come a long way since then and as usual I did not realized that today till end of the day and a small incident which pushed me to evaluate my geek journey.
I am just planning to journal my 10 years of experience, learning, memories and conclusions in this post. Readers, if you looking for anything technical or code solution, please skip this and help bump-up my bounce rate, thanks for visiting :)
Bill's Skill
I was stack biased when I started, my whole academic raising was to love and religious-ly follow Java and that eco-system. But I got pushed into the real-world on the eve of the big I.T. recession and had one offer on table with .NET written all over it. I felt all my hard work and preparation in college has gone to waste now that I have to start fresh and learn the Microsoft and .NET stack. I quickly got over the grudge as I learned C# and fell in love with it. Again, not being stack-biased but C# has been my comfort language since then.
I started my first job creating mail parsing and sending applications and did a lot of things since then. Quickly learned that I have to learn and adapt to anything that comes my way and cannot marry a single stack or language, this have helped me grow at every milestone and achieve what I want to in short and long term goals of professional life.
List of stack I have got involved with, is very long. Many I am still up-to-date with and some I have lost touch with now or those have deprecated over the years.
Things that I have learned and stayed relevant till this point in general: C#, JavaScript, jQuery, Web-programming (server stack), WPF, Socket programming, Security fundamentals, Hosting and Server Admin skills.
I call myself a full-stack programmer now because I know how to build a mature solution for Desktop, Web, Backend, Middleware and Mobile (somewhat IOT).
Burn to Hell
Three mistake I will always remember and remind myself to never repeat again:
- I accidentally execute an update SQL statement without the where clause in a PRODUCTION database in first year of my work. "If you are doing anything that is not local only - be mindful of it every second - else shutdown and get fresh air" - lesson learned.
- I sent a really harsh email to my manager giving him feedback on how he performs (he never asked for it) because I was treated badly for trivial bug I introduced. "Be a sport, accept your failures and mistakes. Instead of crying for it, learn and improve. Code for Version 2" - lesson learned.
- I had a serious fight with my wife and almost broke the relationship for sake of working more on something important while I was expected to be there for her and family. "You work for success and family, but family comes first. Always have people to share your success, alone at the top sucks" - lesson learned.
Work-life Balance
In last ten years, I have given more time of my day to work. This is by choice and support of my family. I really love technology and everything about it, family understands that (most of the time) and gives me space to be in it. My hobbies and habits are geeky - I have spent a fortune amount of money behind gadgets, software and anything that makes the Geek in me happy. I do not regret this at all as I learnt to save well too.
Being in IT and life around it is hard IMO, your family have to be on-board to make it work. I am glad, I got mine strong and supporting me since day one.
One more thing I learned with experience is you have to lookout for your health and your body. Most of us who stretch on after-hours, work on weekends and sit with wrong posture for most of our day. Please start getting mindful of it, if your body is not going to support you - your mind cannot do wonders your aim for. Learn the right way to sit, stand, look at your screen(s), screen-time, timely breaks, fresh air, workout, healthy eating and sleeping habits will go long way to support you in what you want to do.
Learn Every Second
Our world is having so many options, patterns, practices, stacks - there is no end to it. Don't be overwhelmed but definitely don't deprecate. Keep up with the new trends, technology shift, buzz words, community adaptation, networking and learning.
I ask this to myself every single day - "What new did I learned today?" It doesn't have to be something big or too small, but learning is important in all aspects. If you find yourself left-out of a conversation completely at any point, that is because you have stopped learning and being up-to-date. You don't have to be "know it all" but you should know enough to make sense of it.
Be like water - can blow, flow and stay
Talented programmers are always appreciated well and respected for it. Remember when to blow hard, when to go with the flow and when to stay still and steady. I have learned to use the right words (still learning) to communicate, not get frustrated and not be impatience with my work. It is hard but you can master this by giving it time and retrospection of what you do in your day-to-day.
Stream your powers - don't fire and forget
Communicating well and being pro-active has helped me get into the good books for everyone I worked for. Stay consistent and communicating and you will always see positive outcome. Consistency can be in your speed, delivering capabilities, quality, follow-up and such more things. I always keep working on my holistic skills along with trying to be good at coding something out.
Socialize and gain perspective
On the second year, I realize that I need to socialize more so I don't become idealistic and stuck with it. Blog, write side projects, work on ideas, try "hello world" where you can, interact, observe, follow and read. Living in your 15'inch world will confine your thoughts, creativity and ability to evolve. Keep an open mind and welcome feedback positively, there is always room for improvement.
Too much?
As programmer and especially from India we keep on trying to compete and push to prove yourself to be best. This validation fog has to go, there is no one right way of doing it and when it comes to code - there is no limit to how much dynamic something can be, learn the right balance and dance to that rhythm. Over-doing something will just spoil it at some point. Same as I am doing with this post.
The End
I wrote too much of my mind philosophically today, but I want it to be out there, for myself to read at some point in future and to share my mind if it can help anyone even a little bit. Also, I want to use this post as my triggering come-back to blog a lot more. I hope to keep up this time much longer.
Happy Coding!