Here are a few suggestions if you want to learn to program, especially if you are a student.
The first programming language you learn should be fun. It should be something that is easy to learn, easy to create things with, easy to iterate and does not dumb you down.
This language should help you get your feet wet in programming and interesting enough for you to persist through early challenges. It needs to have a thriving community that is helpful and lots of open source projects you can learn from.
I suggest Python or Ruby to start with.
If you dig programming, then you can try to intern for startups. You will learn from more experienced people, build stuff others can use. You will learn other important aspects of software development like testing and usability.
During this phase, you will learn to work with others and also learn to explore and do research. This best part of this phase will be your increased confidence.
If you decide to make software development as your career choice, you need to learn a language used by businesses. These tend to be Java, C and C#, PHP, Ruby or Python. Don’t worry about learning multiple languages. After a couple of languages, learning new ones will be fun.
When you work for a company, the software you develop will be used by others. You will r have different set of responsibilities. In addition to programming, you may need to learn testing, estimating, maintaining code written by others and several other skills.
After you get your job and you are kind of settled into a rhythm, you may want to continue learning. Take a look at Programming competency matrix and decide where you want to be.
Once you are confident and start enjoying programming please start a blog and share your discoveries with others. Participate in the community and help others who start. Find some time and contribute to the open source community in anyway you can.
Discussions on First Programming Language
- Why do most universities teach Python as a primary language for teaching scientific computing? – Quora
- SchoolsUsingPython – Python Wiki
- Why MIT switched from Scheme to Python
- Using Python as the “CS 1” programming language
Thanks for the link to the programming competency matrix. It is an exhaustive enumeration of all the aspects of programming I can think of. However, I do not find emphasis on inline documentation in the code as one of the necessities. Or have I missed it?
Good call. I think that is a bit of a debate on inline documentation in code. The biggest worry seems to be keeping it(the doc) in synch with the code.
Interesting! I have always found it difficult to keep separate, external documentation in sync with changing code and specifications and re-organization of program structure. I used to find it easier to document these features in the code itself either as a comment paragraph before the routine or as a comment with each line of code.
The reference to documentation were in these snippets (but not a separate section):
However, my dilemma has always been when the comment and code tell two different (conflicting) stories, which one to believe. I have seen code like that.