Wednesday, 5 June 2013

       How do you define a real programmer? There are many facets that you can use to judge someone’s skill as a programmer: ability, experience, enthusiasm, dedication, etc. But I recently read an article by RethinkDB blogger Slava, and he boils all of these points down to one item, memorization. Some people agree with this idea, but I do not, at all.
I have heard several companies bragging about having interview scripts like this, saying that this kind of testing is the most effective way to filter out unqualified applicants. However I think that the post by Slava perfectly demonstrates just how flawed this concept is. If there is one thing you should have learned in school, it’s that standardized tests are a terrible metric for gauging skill or intelligence.
But more to the point, I think that this is the wrong way to define a real programmer. Allow me to present you with my definition of a real programmer.

What is a real programmer?
             This comes from one of my favorite quotes in all of history:
“Real knowledge is to know the extent of ones ignorance” – Confucius
Having an encyclopedic knowledge of a college curriculum is not required to be a great programmer. Real world software development isn’t about memorizing low-level  programming techniques, or math formulas. These are great tools to have at your disposal, but are certainly not the end-all-be-all of development. It’s all about problem solving, in  the most efficient and elegant way that circumstances allow.
As a programmer you will be supplied with problems every day, and it’s your job to figure out how to solve these problems. To do this you need to know what your language of choice is capable of, this comes with experience. You will also need to be able to look at the possible solutions and pick the best one for the situation at hand.
Now here’s the fact that breaks the machine, you do not know every possible solution for every problem, and you never will. I don’t care how experienced you are, how much education you have had, or how many millions of lines of code you have written, because there are so many possible ways to approach the practical problems you find in software development that it is literally impossible to know everything. So you need to have a mix of creativity and resources that let you learn how to solve new problems.
Real programmers are the ones who can learn fast, and learn by doing.  These are the people who constantly strive to keep up with the  technology they love. They have ample real world experience building,  learning and growing their craft, but know that they still don’t know everything.
In short the defining characteristic of real programmers is that they never stop learning.
My experience with real programmers
        I’ve worked as a peon coder, link-in-the-chain guy, I’ve worked as a manager who did the hiring and firing, I’ve worked as a one-man-shop serving milti-billion dollar corporations, and I’ve worked as a solo freelancer. This experience has taught me two things:
  1. I am not the greatest programmer in the world, despite what my website says, and
  2. That you can rarely tell a good programmer from a bad one by the resume, or the interview.
I’ve seen guys with terrible resumes turn out to be so far above my level that I still have them on my guru list, and I’ve seen guys with amazing resumes who couldn’t grasp even the most basic concepts.
How to find a real programmer
           It is true that there is often a gap between what candidates say they can do and what they’re really capable of. That is why testing candidates is still a very good idea, but you need to test for higher level skills and abilities. Testing a candidate’s knowledge on obscure techniques and patterns means passing off great people for not remembering stuff that they simply do not  need to be top notch coders.
In my experience, it is very easy to separate the wheat from the chaff: go through the normal interview process to see if this is a person you can work with (and let’s face it, that’s all that the interview is really for). Then give them a small project, something realistic that resembles what their real work would be like, and send them home. Not a knowledge test, but a real “build something that does this” task.
When you get the finished result of their labor you will know if you’ve got the real deal. Is it done the way you would have expected (or better)? Is it high quality, showing some love some thought? Did they get it back to you reasonably quickly? Did they do anything cool to show off? If so, congratulations! You’ve just found a great programmer!
code_by_google != bad_programmer
             Yes, they could have just coded by Google. But you know what? That shows  they can learn and adapt. I have plenty of respect for a person who doesn’t immediately know how to accomplish a complex task, but can quickly find out how and do it on their own without bothering the other programmers on your team.
Remember the key point of my real programmers definition, they never stop learning. Google is the greatest programming resource that has ever existed. You cannot look down on someone for using the most powerful learning tool computer science has ever known. I would go so far as to say knowing how to code by Google is the single most important skill in a programmers tool box, because if you want to grow as a programmer this is going to be the tool to use.
Someone who knows how to search for code examples and how to learn from the work of others will be more or less self-sufficient. They can learn and grow their skills on their own without needing someone else to do it for them. The ability to learn and grow your knowledge is the single most important skill for any developer. Without the ability to grow you will find yourself quickly deprecated.
I do expect people to know how to use the language and/or framework they were hired to work in, but I judge them primarily based on the work they submit. A guy who can figure out how to do things that he doesn’t know how to do, on his own, on the fly, is a real programmer.
The catch-22 of impossibly high standards
          Of course it’s pretty absurd to require knowledge that 99% of programmers  have absolutely no need for in real life. But perhaps you don’t entirely know why. If you have very strict hiring standards then you are only going  to find people who match your specific model, and your code will suffer  because of this.
Computer science grows at a fantastical rate, every day  there is another small innovation that someone came up with. This small innovation will  slowly propegate out to the rest of the programming community and become part of everyone’s toolbox. This happens because  some creative programmer tried some alternative idea and found a new way to solve a problem.
If your team consists entirely of people with  the same background, skills and knowledge then your creativity bucket  will be quite small. This means you will not see as much innovation as a  varied team with people asking questions that wouldn’t normally be  asked, and people offering solutions that wouldn’t normally be offered.
Most alternative idea’s will, of course, be immediately shot down. But that one in a hundred that actually sticks will give your team an advantage. This alternative idea has given a level of innovation to your project that would not have existed if you didn’t have a radical element thinking in a unique way.
Get real
This was a rather long-winded rant, but let me sum it up in a few nice bullet points.
  • People who are more interested in the buzz words and CS theory than actual experience and a history of practical application of skills are a perpetual thorn in the side of the programming industry.
  • Don’t look down on other programmers because they don’t fit your model definition of a programmer, they just might be better than you.
  • If 99 out of 100 candidates fail your interview then you are looking for something that doesn’t exist.
  • Without a varied group of developers in your team you will suffer from a lack of creativity.
  • Don’t test a CS curriculum, test the ability to create.
  • If you ever finish learning, then your career as a programmer is over. Go study law.
In short
Look for someone who truly understand the concepts, who can offer creative and alternative ideas, and who shows the ability to grow as a programmer. Then you will finally find a real programmer.
Src: http://stevenbenner.com/2010/08/will-the-really-real-programmers-please-stand-up/


The following is a list of 48 interesting programming books that were released in 2011. While technically some of them are only programming-related and not about coding per se, each one is sure to be of interest to some programmers.
As some of you know, I run a service called Any New Books?, which emails you a list of new books that are related to the categories of your choice each week. For the most part I pulled this list from the weekly staff picks there throughout this past year, just in time for your Christmas shopping.
The books are ordered by their current sale rank on Amazon (from the most popular to the least popular at the moment, with hardcovers first). I hope this page will help you discover a few titles you may have not have noticed yet
Heres the Link : http://programmingzen.com/2011/12/16/interesting-programming-books-2011/?utm_source=twitterfeed&utm_medium=twitter&utm_campaign=Feed%3A+ZenAndTheArtOfRubyProgramming+%28Zen+and+the+Art+of+Programming%29&utm_content=FaceBook

C++ Useful Books download links

Schuam's C++ outlines


C++ How to program 4e by Deitel

Basic C++ Programming Excercises

  1. Check odd or even
  2. convert seconds to minutes
  3. convert seconds to hours
  4. convert seconds to minutes and hours
  5. convert minutes to seconds
  6. convert minutes to hours
  7. convert minutes to minutes and hours
  8. convert hours to minutes
  9. convert hours to seconds
  10. convert Fahrenheit to Celsius
  11. convert Fahrenheit to kelvin
  12. convert Celsius to Fahrenheit
  13. convert Celsius to kelvin
  14. convert kelvin to Celsius
  15. convert kelvin to Fahrenheit
  16. table of any number
  17. calculate HCF
  18. calculate LCM
  19. check perfect number
  20. reverse number
  21. display next prime number
  22. Program to add 2 numbers
  23. Find maximum of 2 numbers
  24. Find maximum of 3 numbers
  25. Find maximum of n numbers
  26. Swap 2 numbers
  27. Fibonacci series
  28. average of n numbers
  29. palindrome
  30. Calculate sum of digits
  31. Calculate reverse of a number
  32. Check a number prime or not
  33. Check a year leap year or not
  34. Check a character is vowel or not
  35. Check a character is digit or not
  36. Count number of vowels in a string
  37. Program to perform arithmetic operation
  38. Display list of 1 to 10 factorials
  39. Display list of 1 to 10 squares
  40. Program to add n integers
  41. Sum of 1 to 100 even number
42. Sum of 1 to 100 odd numbers
43. Sum of 1 to 100 numbers divisible by 4
44. Sum of 1 to 25 numbers
  45. Average of 1 to 35 numbers

Array Related-
  1. Reverse a array values
  2. Traversing
  3. Insert an element in array-
a)      At the begin
b)      At middle or any position except start or last
c)       At the end
d)      Insert an element in an array based on its position
e)      Insert an element in an array based on its value
4. Delete an element in array
a)    At the begin
b)      At middle or any position except start or last
c)      At the end
d)      Delete an element from an array based on its value
e)      Delete an element from an array based on its position
5. Searching an element in array
a)      Linear Search
b)      Binary Search
6. Sorting elements
a)      Bubble sort
b)      Selection sort
c)       Insertion sort
d)      Quick sort
e)      Merge sort
f)       Radix sort
g)      Tree sort
h)      Heap sort
7. Program to Swap First half with Last half of an Array
8. Program to Count numbers greater than 5
9. Program to Swap neighbor elements in an array
10. Program to print array values through Pointers
11. Program to find sum of an array using pointers
12. Program to find maximum in an array

String--
  1. Program to Concatenate Two Strings using strcat( )
  2. Program to Concatenate Two Strings without using strcat( )
  3. Program to Compare Two Strings using strcmp( )
  4. Program to Compare Two Strings without using strcmp( )
  5. Program to Copy String using strcpy( )
  6. Program to Copy String without using strcpy( )
  7. Program to Find Length of a String using strlen( )
  8. Program to Reverse a String using strrev( )
  9. Program to Reverse a String without using strrev( )
  10. Program to Input-Output Strings using Character Functions
  11. Program to Input-Output Strings using gets( ) and puts( )
  12. Program to Input-Output Strings using printf( ) and scanf( )
  13. Program to Find Length of a String Without using strlen( )
  14. Program to Find Whether a String is Palindrome or Not
  15. java charAt() mehod or extract a particular position character from String
  16. Program to Find Whether a String is Palindrome or Not without using String Functions

File Handling
  1. Program to Copy Contents of One File to Another 
  2. Program to Print a File and Count Number of Characters
  3. Program to Print a File and Count Number of words
  4. Program to Print a File and Count Number of lines

Matrix
  1. Sum of Individual Rows and Columns of a Matrix
  2. Program to find Sum of Diagonals in a Matrix
  3. Program to perform matrix Multiplication
  4. Program to perform transpose of a matrix
  5. Program to Display numbers divisible by 10 in a Matrix
  6. Program to find Sum of numbers divisible 2 or 3 in a Matrix
  7. Program to display Both Diagonal elements of a Matrix
       For Example:

Matrix:        1   2   3
                       4   5   6
                       7   8   9

        Diagonal 1: 1   5   9
        Diagonal 2: 3   5   7

  8. Program to Display Lower triangle of a Matrix
       For Example:

Input:       1   2   3             Output:    1
                4   5   6                              4   5
                7   8   9                              7   8    9
  9. Program to Display Upper triangle of a Matrix
       For Example:

Input:       1   2   3             Output:    1   2    3
                4   5   6                                 5    6
                7   8   9                                       9
10. Program to display Matrix with elements numbered with row < column else "0"
       For Example:

Output:       1   0   0   0  
                  1    2   0   0                              
                  1    2   3   0
1    2   3   4



Structure
  1. Example on Structure
  2. Program to illustrate returning structure from function
  3. Program to pass entire Structure from an Array
  4. Program for passing individual structure members through Function
  5. Program to illustrate Array of Structure
  6. Program to illustrate Nested Structure
  7. Program to Implement Structure with Array
  8. Program to Implement Structure with Function
  9. Program to Implement Structure with Pointers


Class
  1. Example on Class
  2. Friend Function Example
  3. Example 1 on Class
  4. Example 2 on Class

Constructor and Destructor
  1. Constructor and Destructor Example

Inheritance
  1. Inheritance with same Function name in Base and Derived Class
  2. Inheritance: Virtual Base Class Example

File Handling
  1. File Handling: Copy entire contents of a file into another
  2. File Handling: Searching a telephone number from a file

Stack and Queue
  1. Stack: Implemented using Array
  2. Queue: Implemented using Array
  3. Circular Queue: Implemented using Array

Linked List
  1. Stack: Implemented using Linked List
  2. Queue: Implemented using Linked List
  3. Circular Queue: Implemented using Linked List

Trick Main Free Dalam Cyber Cafe

1. mula2 korang download dulu process suspender kat http://4shared.com/zip/1P10MspK/Process_Suspender.html
2. pas da siap download, korang buka aplikasitu dan dia akan keluarkan banyak nama cyber cafekat dlm dunia termasukyang korang tengah guna,,


3. pilih salah satu yangkorang tengah guna, pastu korang nampak add time,pause time, dll,,

pastu korangpilih pause time dan main la sampai muntah,,hehehe


Catatan ini adalah tentang melindungi akaun facebook anda daripada orang lain. banyak orang berkongsi ada maklumat peribadi dan gambar di facebook jadi mereka mesti melindungi akaun mereka. sesetengah orang menghantar nombor bank mereka akaun nombor kad kredit pada sembang jadi jika mereka kehilangan akaun mereka beberapa orang lain boleh menggunakan akaun mereka dan maklumat peribadi. dalam post ini saya akan memberikan anda beberapa nasihat untuk melindungi akaun Facebook anda.

Pertama sekali mari kita lihat bagaimana kita boleh longgar akaun kami atau bagaimana orang lain mencuri nama pengguna dan kata laluan kami. Facebook Hacker - Penggodam menggunakan banyak kaedah untuk mendapatkan maklumat anda. Perkara yang paling popular phishing. membaca post ini untuk mempelajari apa yang phishing bagaimana untuk melindungi akaun anda mereka menggunakan halaman palsu 100% kelihatan sama seperti laman web facebook untuk orang helah dan mendapatkan nama pengguna dan kata laluan mereka. Tetapi jika anda telah membolehkan kelulusan login facebook anda tidak perlu takut mendapat digodam kerana walaupun mereka mempunyai username dan password anda, mereka tidak boleh login dari komputer baru tanpa pengesahan kod facebook hantar ke telefon anda. membaca bagaimana untuk membolehkan kelulusan login Facebool.Ancaman besar seterusnya ialah pembalak utama. Logger utama adalah satu perisian mudah atau web addon pelayar yang boleh merakam segala-galanya yang anda taip.

Saya telah melihat pembalak utama dalam beberapa kafe internet. kebanyakan pembalak utama perisian mendapat disekat oleh perisian antivirus tetapi terdapat beberapa alat yang tersedia yang boleh bekerja dengan sempurna walaupun ada antivirus working.key pelayar addons logger tidak terjebak oleh antiviruses. jadi apabila anda login dari tempat lain, anda perlu memastikan bahawa anda adalah selamat. Saya akan memberikan anda beberapa tips untuk melindungi akaun facebook anda. Jika anda menggunakan facebook atau laman web lain di kafe internet atau tempat sebahagian ahli cuba untuk menggunakan alat papan kekunci skrin tingkap. jangan biarkan pelayar web anda menyimpan kata laluan anda. Selepas anda telah selesai internet melayari jelas sejarah pelayar dan kuki anda. mengeluarkan apa-apa kata laluan yang disimpan. sentiasa menggunakan fre komputer atau peranti untuk menggunakan facebook dan menamakan mereka. supaya anda boleh melihat jika orang lain telah log masuk dari komputer lain. mari kita lihat bagaimana untuk menamakan komputer dan peranti lain

Web Hosting


cara2 memilih web hosting yang bagus, bagi yang nak buat website sendiri,,

1. Web server yang kita sewa mesti laju dengan kelajuan yang baik masa digunakan dan juga terjamin,,
sekurang2nya 99,5% dalam masa 1tahun web server  dapat digunakan,,
perhatikan perkhidmatan
yang bersedia memberi potongan harga jika
 server mengakibatkan web tidak  dapat diakses,,

2. ada sokongan teknikal, sokongan teknikal ini jangan dianggap remeh, suatu ketika kalau terjadi sesuatu pada web server, petugas teknikal inilah yang mesti dapat dihubungi,, amat baik kalau pegawai sokongan teknikal ini siap sedia membantu 24jam sehari, 7hari dalam seminggu,, jangan siap sedia menerima aduan saja, pegawai sokongan teknikal juga mesti boleh memberikan penyelesaian,,

3. pemberi perkhidmatan
web hosting tidak  membenarkan installation PHP, script CGI tanpa izin,, seandainya laman web
yang memerlukan PHP, script CGI, Telnet, akses SSH dan sebagainya,, beberapa masa diperlukan sebelum laman web boleh dihostkan ke server,,

4. System Server Operation yang digunakan web server juga mesti dititik beratkan, seandainya saja
web yang dihostkan dibina
menggunakan ASP, mau tak mau web server bersistem operasi Windows yang dipilih,,
pilihan lain adalah server yang mempunyai sistem operasi berasaskan linux,,

5. Kuota Transfer Data yang Memadai Kuota Pemindahan Data yang juga disebut dengan traffic atau bandwith, adalah jumlah
byte yang dipindahkan dari jumlah orang yang melawat disesuatu web,,
Browser milik tetamu akan memuat turun beberapa
fail milik web yang dilawat,,
Jumlah data yang dipindahkan dari web
server ke komputer pengunjung adalah terhad, contohnya sebuah perkhidmatan yang memberikan kuota
1GB perbulan,,
Semakin banyak pengunjung pada web, semakin cepat kuota 1GB itu habis,, kalau
dalam 1 bulan data yang
dipindahkan lebih dari 1GB, maka setiap 1MB lebihnya akan dikenakan bayaran, juga menghalang akses pada web,,

6. Control Panel Yang Ada Pada User Friendly Control
Panel, tempat
mengawal web,, kegunaannya
menambah dan memadam file
atau alamat email serta
menukar password,,
untuk
menambah dan memadam fail
yang sepertinya akan selalu
dilakukan dan mesti dilakukan oleh
pegawai sokongan teknikal,,

7. Subdomain Web yang
memiliki subdomain, maka
pastikan pemberi perkhidmatan
web hosting memberikan ciri Subdomain,,

8. Terdapat perkhidmatan Email, selalunya setiap perkhidmatan
 akan membenarkan pembuatan
email, perhatikan ada
 tidak POP3 respon automatic dan forwarding,,

9. Ruang Yang cukup pada  web yang
dibina dari pelbagai fail, saiz yang berbeza2,  elemen pembina web,
gambar, teks, animasi dan
elemen lainnya,,
Perhatikan jumlah ruang yang disewakan dan
bandingkan dengan harganya, selalunya pakej awal
 menawarkan ruang server
sebanyak 20MB,,
Pilih
perkhidmatan yang membolehkan kita menaik taraf ruang atau
 space untuk website kita,,

10. Harga dan perkhidmatan
yang diberikan mesti seimbang,, se
baiknya, bezakan dulu dengan
beberapa perkhidmatan yang lain
sebelum memilih,,
kita mesti betul2 mengetahui
kualiti yang mereka tawarkan,
supaya kita tidak akan kecewa
 di kemudian hari