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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- Data structures:
What is a linked list?
Basic understanding of data structures never misses from a good
programmer.
- 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.
- 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.
- 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.
- 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.
- 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