How to Become a Good Programmer

Published on March 2017 | Categories: Documents | Downloads: 31 | Comments: 0 | Views: 408
of 2
Download PDF   Embed   Report

Comments

Content

 

Friday, November 30, 2007 How to become a good programmer  programmer  At ReliSource, many of the times I am involved in the hiring process and need to take several interviews per week/month. Over the last two years, I’m observing one unfortunate truth which is: Bangladesh is lacking enough skilled programmers. Some people have talked about this issue  previously andin I think it’sfuture. time to take some real steps to improve the situation so that we do not face a disaster the near I’m putting some suggestions here for the fresh graduates and the college freshmen on how to  become a good programmer. In my own definition, a fresh graduate good/skilled go od/skilled programmer should have the followings: 1. Strong Strong skill skill of one or more good good languages languages like C++, C++, Java Java and C#. a.

Must have strong skills with control structures. Don’t mess up if you’re asked to  print out triangle or other shaped piles of ‘x’s with loops.

 b. Must hav havee strong strong skills skills with recursi recursion. on. You must must know how to to transform transform a looped looped task into a recursive one and vice versa, for example: multiplication using addition recursively. c. If your your language language is C/C++, C/C++, you you must know how to to play with with pointers pointers and and references. d. Underst Understand and pass pass by by value value and and refere reference. nce. e.

Clearly understand scopes and memory allocation, de-allocation. Know Kno w when a object is destroyed and when to destroy.

f. Know the the usage usage of all all operato operators rs includ including ing bit-w bit-wise ise ones. ones. 2. In-d In-dept epth h knowl knowled edge ge of of OOP. OOP. a. Only being being able able to write write classes classes and doing encapsul encapsulation ation and and inheritanc inheritancee is not what you should call good OOP.  b. Clearly Clearly understand understand how function function overloadi overloading, ng, overriding, overriding, polymorph polymorphism ism works. works. c. Clearly Clearly understand understand how constr constructor uctor/dest /destructo ructorr (if any) any) works with with inherit inheritance. ance. d. Clearly Clearly know the the difference difference and and use of Interfaces Interfaces and and Abstract Abstract classes classes.. e. Know how to overload overload operator operators. s. Why and and how copy copy construct constructor or is defined defined/used /used.. 2. Know Know comm common on data data str struc uctu ture ress a. At least least know the the common common data structu structures res like like stack, stack, queue, queue, linked list, list, doubly linked list (know circular version of all of them) and trees.  b. Be a skilled skilled implemen implementer ter of any any of those, those, have have clear clear concept concept of how push, push, pop, pop, add, delete, peek etc method works on those data structures. 2. Know most most commo common n algor algorit ithms hms well well a. You don’t don’t need to to memorize memorize pseudo pseudo codes line line by line line but you need to to have clear  clear  concept of most common algorithms of sorting(bubble, quick, merge, heap,  bucket, etc), searching (including DFS, BFS), etc.

 

 b. As a fres fresher her you must must know their their time time and space complex complexities ities,, pitfalls pitfalls and improvements (if any). 2. Gener General al comput computin ing g concep concepts ts:: a. Know processe processess and threads, threads, how are they they related related to each each other, other, how to to program program them, etc.  b. Understand Understand TCP/IP: TCP/IP: Don’t Don’t think think it’s only the the network adminis administrato trator’s r’s task to understand TCP/IP. All programmers ever doing any network or web  programming should have clear TCP/IP concepts and understanding. 2. Be skil skilled led in debu debuggi gging ng in in IDEs IDEs:: a.

Be skilled in any or many of Visual Studio/Visual Studio.Net, Eclipse, Netbeans, KDevelop, etc.

 b.  b. Know Know how how to deb debug ug you yourr code code.. 2. Have basic basic knowledge knowledge of Software Software Enginee Engineering ring and S SDLC. DLC. Some advice for college freshmen: 1. Start Start with C++ C++ or Java, Java, avoid avoid startin starting g with script scripting ing languages: languages: a. If you’re you’re learning learning programm programming ing for the the first first time, time, avoid startin starting g with scripti scripting ng or  loosely typed languages like: PHP, ASP, Perl, etc or Visual Basic. It may destroy your understanding of program execution, data d ata types, memory allocation, etc. b.

Start with C++ or Java. If you want to me to be specific, start with C++, you’ll love it for the rest of your life.. :) It’ll be easier for you to learn (almost) any other  language (like: C#, PHP, ASP, etc).

c. If you ask, do you you need to to know C to to start start with C++? Or should you learn learn C first first and then C++? C definitely helps a lot for learning C++ but it's not necessary to start with C. 2. If you want to be good programm programmer, er, keep on on coding at least least 20 hours hours a week for for next 4 years :). 3. 4.

 Never stop learning new technologies that are coming out everyday.

Know somethings of many things but be master of one. Know at least one language very well. Good luck.

Sponsor Documents

Or use your account on DocShare.tips

Hide

Forgot your password?

Or register your new account on DocShare.tips

Hide

Lost your password? Please enter your email address. You will receive a link to create a new password.

Back to log-in

Close