Does coding is enough to become a good backend engineer?
we are living in a world where most of the things are dominated by targeted ads and search engine ranking, whenever I try to watch anything on YouTube I always greeted with ads and to be honest these ads sometimes misleading for example now days I am seeing so many people are promoting there websites to learn data structures, algorithms etc. so here is the main question does coding or DS, algorithm or programming language if enough to be a GOOD software engineer?
this can be a very controversial topic but this is my thoughts so if you have any disagreement please add a comment.
before I start this blog let me introduce myself, I am a software engineer born in India, got a CSE degree from an average college and after 4 years I am in Germany and working for a good organization.
when I say India you will imagine either a lot of people, IT engineers or scammers, which is correct, Indian education system produces more the 10Lakh engineer every year and most of them join big service based companies in India but I was not one of them, I got an offer from big MNC but I choose to work in a startup.
Lets come back to the question, and the answer is NO. coding is not enough.
so now you will be asking so what is important, should I stop practicing coding? what should I do?
Don't worry I will provide a list of things a backend software should know.
Coding is only 30% of total backend engineering. if you have an degree of CSE then you are expected to know something and it should work, so what additional things you should know?
- CI/CD -> Now days whenever I take interviews I always prefer people who knows how to create a build and release pipelines and TBH it is essential because if you know coding you should be able to automate the building process and deployment process. (20%)
- Databases -> I think you already knowing some of the databases mostly relational databases which is great but always try to learn one NoSQL database like MongoDb. I am not saying become an master just see how you connect to the database from you project and what are the popular framework you can use. (10%)
- Docker and Kubernetes -> Docker or containerization is not a new thing in the market but for now only DevOps are the one who knows about these things, so as a backend engineer you should know how these things works, how you can deploy your workload in a container, I am not saying learn everything but you should know basic stuff, basic commands. (10%)
- Cloud computing -> Cloud computing is now becoming a major hiring criteria in tech world, in each opening you will be seeing AWS, Azure or GCP, in old days we use to deploy everything on servers which was managed by us, but now bug tech companies are providing there server to us and we can just use the services, this is not it there are more concept like server less, queues etc. I would recommend to learn one of the main cloud provider and become master in it. (20%)
- Terraform -> This is good to have thing, if you know terraform then you can crack any of the startup jobs, startup prefer people who has all the stack knowledge, BTW Terraform is IAAC (you can write code to create you infra on cloud), its good to have but not mandatory (5%)
- Design and Architecture -> Last but not least design and architecture, if you want to become an software architecture or principal engineer this is a mandatory things to adopt, just see how you can design a system from scratch, take feedback from you peers and keep on improving. (5%)
becoming a developer is easy but becoming an engineer takes sweat, tears and a lot of hard work. DS and Algorithm is important but they are not that much important, whenever I design a system I never thought of graph, or SDFS or something, you can become an good engineer just start leaning.