My transition from a Civil Engineer to a Software Engineer.
I had graduated as a Civil Engineering from IIT in the year 2014. I really had no clue what to do next.
I had started thinking that: Have I wasted my 4 years of life at college. But, every time, I got the following answer from my heart.
You have made great connections and learned the problem-solving skill at college.
The problem-solving skill is the single most important skill because it applies everywhere in your life whatever it is.
Fortunately, I saw a video of Steve Jobs in which he was articulating the following:
“You’ve got to find what you love. And that is as true for your work as it is for your lovers. Your work is going to fill a large part of your life, and the only way to be truly satisfied is to do what you believe is great work. And the only way to do great work is to love what you do. If you haven’t found it yet, keep looking. Don’t settle. As with all matters of the heart, you’ll know when you find it. And, like any great relationship, it just gets better and better as the years roll on. So keep looking until you find it. Don’t settle…
I strongly believe in the above words of the Steve Jobs.
I had read Civil Engineering for 4 years in college. I had never tried for placement in the college as I was not sure what I will be doing next.
But somehow internally I had an interest in knowing how the software works.
Almost at the end of 2014, I started reading programming for the first time from the Head First Java Book. Somehow I started loving it because of the way it requires our problem-solving skill.
First of all, I believe every programmer is a self-taught programmer. We can not become a better programmer without the hard work from our side.
Then, fortunately within one month, I was hired by a startup in New Delhi, India . The interview was completely based on the problem-solving skill. They interviewed me and gave me a project on Android. I successfully completed that. I had received the offer letter into my inbox with a flight ticket to New Delhi from my hometown.
After experiencing the flight journey for the first time in the life, I had reached my next destination.
I had to start working on the Android. But I was knowing that every work will be completely new to me. It will be interesting and I had to give more than 100% as they hired me with the trust that I can solve any problem.
The only thing I used to do: Learn and implement.
In every meeting, even though I was not sure how the feature will be implemented, I used to tell that yes this is easily doable and it will not take too much time to complete.
In order to keep my words, I had to do hard work.
My routine was like: Wakeup -> Get fresh -> Breakfast -> Learn and implement -> Lunch -> Learn and implement -> Dinner -> Learn and implement -> Sleep -> Wakeup.
This is how I had done hard work to learn programming.
The most important take away from here are:
- Learn by implementing something: The best way to learn something is by building something.
- Do programming on daily basis: If you want to be a better programmer then you will have to code daily.
Success isn’t always about greatness. It’s about consistency. Consistent hard work leads to success. Greatness will come.
- Dwayne Johnson
Till now, I was just able to implement things. I was not able to write better code. I was not following any best practices in my coding.
The time was to learn the best programming practices.
In April 2016, I started with an open-source project Fast-Android-Networking which is currently being used by more than 1000 apps on the Google PlayStore. This was my first open-source project.
In order to work on open-source, I started reading other’s open-source projects which helped me a lot in learning. Now I have open-sourced so many projects. With every project, I have improved myself as a programmer. Here is my Github profile link.
Here, I had done so many mistakes in which one was that I used to promote my project everywhere blindly everywhere(like posting link on reddit). This was the huge mistake. Few developers had pointed it out. But yes, humans learn from the mistake. I am very sorry about that. I had started correcting myself on these type of mistakes.
In Nov 2016, I open-sourced another project Android-Debug-Database which received the wonderful response from the developer community with more than 2000 stars on the project in less than 2 days.
The important take away from here is:
- You can learn most of the awesome things about programming by reading other’s code. You should read other’s open-source code.
Then it was time to start sharing whatever I used to learn.
In Dec 2016. Janishar Ali and I had started the Mindorks which is currently the largest Android community in the world. Through Mindorks, we started sharing knowledge which have helped most of us in becoming a better developer.
I started learning things into the depth, implementing and writing about it.
Now the Mindorks publication on Medium is having more than 200 writers and 20,000 subscribers.
I am happy to see, every developer helping each other on this platform.
Learning is a journey, let’s learn together.
The important take away from here is:
- Every developer should write the blog. You will get the deeper understanding of the topic by writing on it. Earlier I had written a blog on “Why Every Developer Should Write Blog”. Give it a read.
In Dec 2016, I had received a job offer from a dream world largest tech company. But I was sure that I was learning much more at a startup at that particular point of time. It was very difficult for me to decline that offer.
I continued my journey of learning and implementing. Then after more than 2 years of the wonderful journey at that startup, I had left. Then, I got a chance to attend a startup event in New York. And then I had decided to go to the USA to see the technology outside of India in addition to that event. I had planned the complete USA trip myself with my savings. I had given a tech talk at a conference in the New York City. Then I had visited my dream place Silicon Valley. I had gone to many companies like Google, Facebook, TwitchTV only to talk to the developers and learn what and how they are doing differently.
I had a great learning from that trip.
The important take away:
- Meet more and more developers. It helps us know about the other’s perspective.
- Go to the tech conferences and meet developers.
After coming back from the USA, I had joined a tech company in India. Then I have left it after a wonderful 1 year only to help more students, developers, and startups.
Now, I have left the high paying job only to do the things which I love which is to help everyone.
How will I be helping students, developers, and startups?
- Creating awesome contents on Mindorks & AfterAcademy which will help students and developers in learning tech skills.
- Helping startups in building better applications through GetMeAnApp.
- Helping individuals or small business owners in getting the office where they can work collaboratively in a shared area at an affordable price through HackerSpace.
Want to know more about me? Visit amitshekhar.me.
Thanks for reading about my journey. Let me conclude it with the following words.
There is no luck, only hard work. Keep doing hard work.
Happy HardWorking :)
Clap, share if you like it and follow me for the updates.