I have come across this question a lot, even myself asked it too. It’s the burning question for all freshers to programming or CSE or EEE. Everyone asks once or twice or may be a lot – what should I read , how should I read, which books should I choose to read, whom to ask, where to start, what tools should I use etc etc. Actually these questions are meant to confuse you ! Trust me, they are created to confuse you and delay your learning ! Here I will structure the learning procedure for any programming language for you and for myself as well. So stop asking too many questions and just read it thoroughly.
Learning any programming language has 2 phases –
- Phase 1 : the basics ….
- Phase 2 : the world outside ….
Let’s talk about them in details and clear our confusions –
This phase is for basics. It will take a few days depending on your learning speed. Don’t rush ! Don’t force ! Always remember to give some rest to your brain.
At this phase you should focus on the following stuffs and ignore anything else. I have made the list in a priority tree so that you will know what comes first and what comes next –
- Language selection : Be specific about what language you want to learn. There are a lot of programming languages out there and all of them have their usage. So be sure and specific about what language you want to learn.
- Learn the tools : Don’t get into learning the language right now. Collect information about the language specific tools – compiler/interpreter, debugger etc. For example, if you want to learn Python you will need to learn about the python interpreter and it’s debugger. Use some example code(you may copy-paste them) to check out how to use these tools. Also learn about their switches (different options they provide) and how to use them. When you are comfortable using the tools, head to the next stage.
REMINDER : Don’t use IDE !!! Use the compiler/interpreter, debugger from command line and a text editor (like notepad), not anything like codeblocks, eclipse, netbeans and so on. It’s important !
- Learn the syntax : Now is the time to get familiarize with the language itself. You can choose any book you want / prefer / others preferences to get this stage done. At this stage you should focus on –
- Data types
- Declaration style
- Commenting style(it’s important)
- Other language specific syntax (i.e for C – macros)
- File handling
At this stage you should also learn proper way to code and write clean and readable code. Like avoiding naming variables properly.
REMINDER : Still you avoid IDEs. Actually you shouldn’t use IDEs at this Phase at all.
REMINDER : Don’t burden yourself learning built-in functions and libraries, that part comes later. Just focus on the syntax.
- Learn to use other’s code : If you are comfortable with the syntax, it is time to learn using other’s code. Start by using built-in functions and libraries. And again don’t flood your brain by using too much built-in libraries right now. Just get to know how to use them.
- Learn to create libraries : You’ve already used someone else’s library(the built-ins) by now (not too many but enough to know how to use them), now you should write something of your own, it doesn’t have to be unique or big, but it must teach you how to write your own library/API. Do some small tryouts and you are ready to jump in the next phase.
This is the stage which never ends ! Well, don’t get mad at me right now. Still you have to follow some stages to go on. At this phase you will learn the rest of the world of the language. So obviously it will never end as there will always be something new to learn. Here you may use IDEs, but don’t get attached to them. Remember, they are just tools to help you automating some stuffs.
Let’s talk about the stages first –
- Learn the built-ins : Try to learn the built-in functions, libraries and other functionalities now.
- Learn the damn world : Surely a language is not of any help these days unless there are 3rd party libraries. If there isn’t any library out there which provides the functionalities you want, you will have to fallback to the built-ins and language features to build your own library. So learning the 3rd party libraries is a great deal and you will always have something new on your plate.
Happy Programming !
Well, now you know what to do when you decide to learn a programming language. But there were some stuffs I haven’t talk about. They are always true and will help you on the way.
- Don’t memorize : Never memorize anything about programming. There are always documents about these things. You may want to collect them though.
- Learn by practicing : Learn anything and everything by tryouts and practice.
- Follow the standards : Every language has its coding standards. Follow them always. Don’t write unreadable code please !
- Documentation : Never forget to make documents of your code. And try to be as clear as possible on functionalities and usage of it.
- Don’t overwrite, keep copies : Never overwrite code unless you are sure about it and always keep copies of it.
- Follow a project structure : Well it’s not really a restriction but a practice. You should maintain/follow a project structure whenever you do some project.
- Be open : Don’t think your way is the best way ! There are a lot of people out in the world programming regularly. Their idea may be better than yours. So try to be more open-minded and try to accept and appreciate other’s work.
- Write tests : Test your own code ! It’s a very good practice to test your own code. They ensure code’s functionalities and prevents future bugs.
This list isn’t complete. Readers may want to suggest some more. Any suggestion will be much appreciated.
As I said, my way is not the best way. So if you think there is other better way please share here. Let us know how you learn a programming language. People may find it helpful.