Is Only programming language knowledge required for coding ?
To become a good programmer You must be good at Data structure and algorithms, rather than the syntax of the code itself.
To write an efficient programme you must be aware with the time programme takes to do a certain task and the amount of memory required to do a specific task. You are given a task of shorting elements of an array there are lots of methods so a good programmer writes a programme which sort it in minimum possible time and minimum possible space.
In order to become a good programmer, you need to take a course on the following topics.
1.Probability and statistics
2.Discrete Mathematics
3.Algorithms and Data structures.
4 Mathematics for computing.
You can take above courses on online platforms such as Coursera, and MIT.
Not at all, coding means you have to implement it practically. Which you can not without building logic. There are subjects in CSE like Data structures, Analysis of algorithm etc which are very useful. Without these also you can code but a good proframmer who has to write an efficient code should have a knowledge of all of this eventually.