I'm very confuse with the term Data Engineer and Data Scientist. There are lot of jobs available for both roles in current market with almost same technical skills requirement. Are they same or different ? Which role is recommended for someone from coding background (C++, Java, Python) along with RDBMS knowledge ?
Data engineering is infrastructure work; maintaining "big data" pipelines from ingestion to output. Today you might be expected to know things like SQL, Hadoop, Spark, Docker, and AWS.
Data science is an umbrella term, so it can mean a lot of things, including data engineering. But it can also mean pure data analysis without any production work. It really depends on who's using the term; read the job description and ask the company for details.
Actually both roles are recommended for someone from coding background. It depends more on the specific characteristics of each role in a company.
Data engineering is more about infrastructure work, which means parsing data files, storing data in particular databases (SQL or NoSQL e.g. Mongo-DB), designing databases or designing the pipeline of the data process.
Data Science is more about building models, selecting appropriate variables, performing exploration or validation of statistical models, hypothesis testing etc.. All these need good knowledge of at least one scripting programming language like Python, Matlab and R. In some cases there is also a need of Software Engineer skills for the implementation of applications related to Predictive Analytics or Machine Learning(or Statistical Learning).