How to become a good programmer

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

Comments

Content

 

How to become a good 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 t alked about this issue previously and I think it’s time to take some real steps to improve the situation so that we do not face a disaster in the near future. 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 programmer should have the followings: 1. Strong Strong skill of one or or more good good languag languages es like like C++, Java Java and C#. C#. a. Must have strong strong skills skills with with control control structures. structures. Don’t Don’t mess up up if you’re you’re asked to print print out triangle or other shaped piles of ‘x’s with loops. b. Must have strong strong skills skills with with recursion. recursion. You must must know how how to transform transform a looped looped task task into a recursive one and vice versa, ve rsa, for example: multiplication using addition recursively. c. If your language language is is C/C++, C/C++, you must know know how to play play with pointers pointers and and references references.. d. Und Unders erstan tand d pass pass by value value and and refere reference nce.. e. Clear Clearly ly understand understand scopes scopes and memory memory allocation, allocation, de-allo de-allocatio cation. n. Know when when a object is destroyed and when to destroy. f. Kno Know w the usage usage of all all opera operator torss includi including ng bit-wi bit-wise se ones. ones. 2. In In-d -dep epth th kno knowl wled edge ge of of OOP. OOP. a. Only being being able to write write classes classes and and doing encapsul encapsulation ation and and inheritance inheritance is not not what you should call good OOP. b. Clear Clearly ly understand understand how function function overload overloading, ing, overridin overriding, g, polymorphis polymorphism m works. c. Clear Clearly ly understand understand how constr constructor uctor/destr /destructor uctor (if (if any) works works with with inheritance. inheritance. d. Clear Clearly ly know the differen difference ce and use use of Interfaces Interfaces and Abstra Abstract ct classes. classes. e. Know how how to overload overload operators operators.. Why and how copy copy constructo constructorr is defined/use defined/used. d. 2. Kn Know ow com commo mon n data data struc structu ture ress a. At least know know the common common data data structures structures like like stack, stack, queue, linked linked list, list, doubly doubly linked list (know circular version of all of them) and trees. b. Be a skilled skilled implementer implementer of of any of those, those, have clear clear concept concept of how how push, pop, pop, add, delete, peek etc method works on those data structures. 2. Kno Know w most most comm common on alg algori orithms thms wel welll a. You don’t don’t need to memor memorize ize pseudo pseudo codes codes line line by line but but you need need to have have clear concept of most common algorithms of sorting(bubble, quick, merge, heap, bucket, etc), searching (including DFS, BFS), etc. b. As a fresher fresher you you must know know their time time and space space complex complexities, ities, pitfal pitfalls ls and improvements (if any). 2. Gen Genera erall com comput puting ing con concep cepts: ts: a. Know process processes es and threads, threads, how are are they related related to each each other, other, how to program program them, etc.

 

b. Understand Understand TCP/IP: TCP/IP: Don’t Don’t think it’s it’s only the the network network administrato administrator’s r’s task to 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 debug debugging ging in IDEs IDEs:: a. Be skilled skilled in any or many many of Visual Visual Studio/Vis Studio/Visual ual Studio.Net Studio.Net,, Eclipse, Eclipse, Netbeans, Netbeans, KDevelop, etc. b. Kn Know ow how how to to debug debug yo your ur cod code. e. 2. Have basic basic knowl knowledge edge of of Softwar Software e Engineeri Engineering ng and SDLC. Some advice for college freshmen: 1. Start with C++ or Java, Java, avoid avoid starting starting with with scripting scripting languages languages:: a. If you’re you’re learning learning programming programming for for the first time, time, avoid avoid starting starting with scriptin scripting g or loosely typed languages like: PHP, ASP, Perl, etc or Visual Basic. It may destroy your understanding of program execution, data types, memory allocation, etc. b. Start with with C++ or Java. Java. If you you want to me to be be specific, specific, start start with C++, C++, you’ll 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, ask, do you you need to know C to start with with C++? C++? Or should 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 want to be good progra programmer, mmer, keep keep on coding coding at least least 20 hours hours a week for for next 4 years :). 3. Never stop stop learning learning new technolog technologies ies that that are coming coming out out everyday. everyday. 4. Know something somethingss of many things things but be master master of one. one. Know at least least one languag language e very well. 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