How to code as an expert

I will assume you start from scratch.

First choose a paradigm. Functional or imperative.

I don’t know much about functional languages and I assume you want ultimately learn how to code applications in C++ or Java or websites in Javascript, so here’s my todo list for an imperative language. For every point on that list, you will have to do a web search, there are plenty of ressources, including wikipedia or online books, and really master the concept before moving to the next point. Be prepared for a long and captivating journey ! 🙂

Choose a language to start from. My advice would be either Python or C. If you choose Python it will be simpler to begin with but with C, you learn all the concepts that will need next (for example : pointers which show you how a computer really works inside) . Depends on how you want your learning curve to be. Contrary to the other answers, I strongly discourage you to start with an Object Oriented Language. Those are supersets of what I’m saying bellow and I really think you have to master that first.

If you want to start easy choose Python. If you are ready to not understand everything at the beginning but then dig deeper, choose C. In my life, I chose C and never looked back.

On the next points I will assume you chose C.

Setup your environment : chose an easy IDE (Integrated development environment). It can be Visual Studio on Windows (they have free editions), XCode on Mac or Code::Blocks on Linux for example. You can also, if you’re really brave, use a text editor and gcc on a command line…but I discourage this approach because you’d be quickly overwhelmed (although that’s how I started).