Warning: include(header.php) [function.include]: failed to open stream: No such file or directory in /var/www/kamibu.com/html/42.php on line 2

Warning: include() [function.include]: Failed opening 'header.php' for inclusion (include_path='.:/usr/share/php:/usr/share/pear') in /var/www/kamibu.com/html/42.php on line 2

What are the 21 questions?

These 21 questions will guide you in how to become a programmer capable of learning. If you're interested to contribute to Kamibu, this might be a good place to start. If you're interested in contributing in an area other than Information Technology, such as marketing, this page is not for you. This page does not tell you whether you're an expert programmer. It simply tells you whether you have the absolutely fundamental knowledge to start learning how to actually program. In Kamibu, we value your spirit and your knowledge. We will be glad to teach you how to contribute and become better through our work.

Before becoming a Kamibu hacker, make sure you can answer these 21 questions on your own. If you can't, try to expand your knowledge by reading online and experimenting; most of them are easy enough. A great way to find answers is to search online using a search engine such as Google. Each question is designed to allow you to test your knowledge in a very particular and specific field. These fields may be software engineering itself, mathematics, or may concern the hackerdom culture. The reason why each question is in the list is described next to the question itself.

We won't provide answers to these questions here. Nor will we test your knowledge by asking you these questions in any type of interview. These are here for your own help in becoming a more capable developer. In addition, these questions simply touch slightly on some areas of knowledge. They aren't advanced and represent a very limited subset of the knowledge in each of the areas. Mastering just the particular answers won't get you far, but we're hoping it'll be a stimulus for further research. Some questions contain links that will help you get an answer.

21 questions

  1. Searching: What would you search for in Google to find out the date the program "vim" started being developed? Being able to search for the information you need on the web will help you learn and fill your missing gaps.
  2. E-mail: What is the difference between Cc and Bcc in e-mails? You must know how to use the basic communication way of the Internet, if you want to master it.
  3. English: What is the difference between "it's" and "its"? Writing properly and following correct grammar is an essential communication skill, especially when you work remotely. Conversational English will be necessary for you to be able to communicate with people around the world, but also to read the code, guides, and examples of others.
  4. Logic: Mom, Dad, and 2 kids have come to a river, and they find a boat. It is small and can only carry one adult or 2 kids at a time. Both kids are good rowers, but how can the whole family reach the other side of the river? Resourcefulness and logic will be helpful when solving technology problems.
  5. IRC: What IRC command would you use to join a channel? IRC is a great medium to communicate with other programmers, especially when you are in need of technical help.
  6. Open Source: What are the names of two popular open source licenses? A background in the open source culture plays a critical role for any programmer. Most of the software we use for development is open source.
  7. HTML: What HTML tag would you use to create an ordered list?
    Knowing how to write in the Web's markup language is an essential skill for any programmer.
  8. CSS: What CSS would you use to create a thick black border around an element? Understanding the semantics behind the World Wide Web at a basic level will help you think more productively, even if you're not a front-end developer.
  9. Javascript: What javascript code would you use to make an item on a webpage toggleable through a simple link? Being able to program for the web is important even if you don't decide to work on front-end web programming.
  10. Mathematics: How would you prove that 1 + 2 + 3 + ... = ( N * ( N + 1 ) ) / 2 for any natural number N? The understanding of basic mathematics and their proofs will be an invaluable resource in understanding more advanced programming techniques.
  11. Cryptography: How would you encrypt the word "secret" using a Caesar cipher? Advanced cryptography is in use in our daily communications. Understanding cryptography principles is, therefore, helpful.
  12. Linux: What command would you use to search for a file of a particular name recursively within a given directory in Linux? Even if you don't use Linux yourself, the world's servers live in it, and you must understand the essentials behind it to be able to use it.
  13. Networks: What is a TCP port? Understanding how networks work and their terminology will help you in a world where the network is the computer.
  14. HTTP: How does a typical HTTP header look like? HTTP is the basic means of communication over the web. Whether you're a web programmer or not, you ought to know the basics behind it.
  15. Version control: What command would you use to check out a subversion repository? Basic knowledge of a version control system and terminology is a required skill.
  16. Data structures: What is a linked list? Basic understanding of data structures never misses from a good programmer.
  17. Algorithms: Given an array, what code, in your programming language of preference, would you use to sort it in ascending order, without using build-in functions for sorting? You will find fundamental algorithms useful in your every-day programming life.
  18. PHP: In a simple PHP script that is fired using HTTP POST, how would you dump a specific POST variable passed to your script, given its name? PHP is the server-side language of the web, and a basic understanding is necessary to be able to do web programming at any level.
  19. SQL: What SQL statement would you use to read all the data from an SQL table? Even if you're not interested in SQL, basic knowledge will help you understand the code of your peers.
  20. Object orientation: What is the difference between a class and an object? Object-oriented programming is the pattern used to develop most modern software in high-level languages.
  21. Regular expressions: What regular expression would you use to match one or more lower-case latin characters? Regular expressions are a tool that will sooner or later come to use to you as a programmer.
« back to kamibu.com

Warning: include(footer.php) [function.include]: failed to open stream: No such file or directory in /var/www/kamibu.com/html/42.php on line 161

Warning: include() [function.include]: Failed opening 'footer.php' for inclusion (include_path='.:/usr/share/php:/usr/share/pear') in /var/www/kamibu.com/html/42.php on line 161