I have seen a lot of people think of programming as something which is hard to do, can only be done by nerds, requires extraordinary ability, etc. I was possibly that person a while back. So what is programming to me now?


For me, programming is just thinking in systems. Or thinking abstractly. Learning a new programming language is never the hard part. All languages are derived from a subset of concepts which are mathematically true and hence once you grasp the concepts you can pick up new languages easily.


I program by thinking visually. Once I can visualize how various "parts" of the system interact I can express that in code. If I am learning something new I will keep on regurgitating the concept till I have an intuitive visualization of all the moving parts in my head. From there on the process of learning is highly accelerated.


If you can visualize you can program. Now go do it.