Basic Skills Every Good Programmer Should Have

15 March 2014
A first year CS student asked for career advice, even though I'm not the right person to answer this question I have some advice for every aspiring Computer Science student and programmers in general.

Intended audience: Aspiring Computer Science students and New programmers.

So, without further ado, let's make a list:
1. Learn to Type Properly: As basic as it seems, it's quite common to see people typing inefficiently. As a programmer, you will be typing as much as you can throughout your career and it would be impossible to improve your productivity if you don't know how to type properly. Use services like Keybr to improve typing. 

2. Learn to Read: Professional programmers are required to read lots of documentation, blog posts, books etc. stay abreast. If you are not a good reader, then you probably won't be a good programmer either. How to be a good reader? Read as much as you can. Read blog posts, read comments, read new and interesting books about the topic of your choice(as a programmer you should choose Programming books). Prefer Ruby? find a recommended list of Good Ruby and Ruby on Rails Books.

3. Learn to Write: As a programmer, you are required to interact with other programmers, customers, higher authorities etc. and more often than not you will be communicating with them over email, chat etc., so writing is one of the must-have skills. How to improve your writing skills? Leave a comment or two on your favourite blog post, start participating in relevant discussions on Reddit, Hacker News etc and finally start blogging.
Recommended Service: Grammarly


4. Learn to Learn: I know it sounds silly, but it's not. Learning 'how to learn' is the most important skill anyone can have. As a programmer, you are required to learn new & interesting technologies quickly and efficiently. Be a good learner
Recommended ResourceLearning how to learn

5. Learn to Think: This is the hardest skill you'll ever acquire. It's not easy to learn how to think in a highly structured manner, most of it comes with experience, but fortunately, there are some good literature out there. Learning "how to think" can be hard and time-consuming, but don't get frustrated by it, in time you'll get better. Progress is more important than anything.


6. Learn how to use Google and other search engines: This is the most important skill for programmers. Googling is probably as important as learning debugging and understanding error messages.

7. Learn when to use Google, when to ask for help, and when to stop programming: Errors are inevitable and you as a programmer should know when to to Google, when to ask for help and when to stop programming.

8. Learn how to stop Procrastinating: Procrastination is a normal habit among programmers and don't get frustrated when you find yourself procrastinating for no reasons. We all procrastinate, learning when to stop procrastinating is another skill every programmer should have.

9. Learn to Read & Understand Error Messages: Whenever you get an error message, try to understand what these error messages are trying to say. Error messages aren't there to scare you, but to help you, and you should be able to understand these messages and act accordingly.

10. Learn how to get Help: You are supposed to get stuck, if you are not, then you probably are not working hard. Getting help is another important skill that every programmer should have. How to get help effectively? Ask good questions, twist your question and make it more general, Use Google and StackOverflow, hangout on IRC etc.

Have fun improving yourself and always remember this.

one does not simply become a programmer overnight



PS: Because I'm a fan of short and concise blog post I'll elaborate each point in a separate blog post.

No comments: