From Civil Engineer To Software Developer
I Amit Shekhar, writing this article to share my journey: My transition from a Civil Engineer to a Software Engineer.
I graduated with a degree of Bachelor of Technology in Civil Engineering from IIT in the year 2014. I really had no clue what to do next.
I started thinking: 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 problem-solving skills 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 Steve Jobs.
I read Civil Engineering for 4 years in college. I 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 skills.
First of all, I believe every programmer is a self-taught programmer. We can not become better programmers without 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 problem-solving skills. They interviewed me and gave me a project on Android. I successfully completed that. I received the offer letter in my inbox with a flight ticket to New Delhi from my hometown(Patna, Bihar).
After experiencing the flight journey for the first time in my life, I reached my next destination.
I had to start working on 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 did hard work to learn to program.
The most important takeaway from here are:
- Learn by Doing: The best way to learn something is by building something.
- Do programming on a 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 4000 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 did so many mistakes of which one was that I used to promote my project everywhere blindly everywhere(like posting the link on Reddit). This was a huge mistake. Few developers pointed it out. But yes, humans learn from the mistake. I am very sorry about that. I started correcting these types of mistakes.
In Nov 2016, I open-sourced another project Android-Debug-Database which received a wonderful response from the developer community with more than 2000 stars on the project in less than 2 days.
The important takeaway 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 started MindOrks which is currently the largest Android Learning Platform in the world. Through MindOrks, we started sharing the knowledge which has helped most of us in becoming a better developer.
I started learning things in-depth, implementing them, and writing about them.
Now, MindOrks have reached more than 2 million developers.
I am happy to see, every developer helping each other on this platform.
Learning is a journey, let’s learn together.
The important takeaway from here is:
- Every developer should write blogs. You will get a deeper understanding of the topic by writing on it.
In Dec 2016, I received a job offer from dream world's largest tech company. But I was sure that I was learning much more at a startup at that particular 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 left. Then, I got a chance to attend a startup event in New York. And then I decided to go to the USA to see the technology outside of India in addition to that event. I planned the complete USA trip myself with my savings. I gave a tech talk at a conference in New York City. Then I visited my dream place Silicon Valley. I went to many companies like Google, Facebook, TwitchTV only to talk to the developers and learn what and how they are doing differently.
I had great learning from that trip.
The important takeaway:
- Meet more and more developers. It helps us know about the other’s perspective.
- Go to the tech conferences and meet developers. (Now only online)
After coming back from the USA, I joined a tech company in India. Then, In 2018, after a wonderful 1 year, I left the high-paying job only to do the thing which I love which is to educate developers by sharing my knowledge.
Education is very close to my heart. I always want to share whatever I learn. I think I am very fortunate to be able to work in the education domain.
I must admit, we have just started. Miles to go.
Thanks for reading about my journey. Let me conclude with the following words.
There is no luck, only hard work. Keep doing hard work.
Happy HardWorking :)
Show your love by sharing this blog with your fellow developers.