Sunday, April 12, 2009

What to learn to become a J2EE Developer

- Learn Java.
- Read about the J2EE platform and architecture.
- Learn JSP.
- Learn Servlets.
- Choose your frameworks (Struts, Spring, Hibernate, ...etc).
- Do some projects.

(this is just a skeleton! I am waiting to switch to a wiki to request contribution and expand these articles.)

Saturday, April 11, 2009

What to learn to become a Hacker

First thing I should say is that you should forget about the password thingies and what the whole community has agreed to call "script kiddies" for the following reasons:
1 - You learn NOTHING this way!! you are just reusing already made scripts and programs to blindly reproduce widely known (and usually nasty) effects on other people's machines.
2- Talking about script kiddies in a true hackers community is the best way to instantly reduce your reputation to zero!

If you are serious about becoming a hacker you will soon discover that hacking is 50% knowledge (strong and deep knowledge that you need to start building right now!) and 50% attitude, to describe what a typical hacker attitude and mind-set can be I will give you this imaginary example:

Let's assume that you are watching a Turkish movie that was translated into English, you like the soundtrack and you'd like to know who is the artist behind that!
Then a good (and yet simple) hack in this situation would be to:
1 - Look up the name of the movie in your favourite search engine to find the original Turkish name.
2 - Download the original Turkish movie.
3 - Use a web translation tool to find out how we say "music" in Turkish.
4 - Watch the titles at the ending of the movie and look for that string you found (that means "music").
5 - Get the name of the artist and search for further info in the search engines.
Got it?
Hacking is all about thinking like that! it doesn't have to do with breaking into systems or even white hack security (or any other hat colour, .. except maybe red if you like that distro ;-)

When you are a hacker, you love to know about things and to modify things and see how it works, it's all about having a very techy mindset.

For the knowledge part of the thing, as long as you have the mindset you shouldn't be on a harry, take your time, and start learning a programming language if you hadn't already, you have many choices regarding that but the language that I find is mandatory for you to know is the C language!! all true hackers are C gurus! please don't be an exception, not on this one ;)

Second knowledge you should ABSOLUTELY acquire is the Unix (or commonly *nix) environment! there are many free Unixes and Unix likes out there, GNU/Linux, FreeBSD, OpenSolaris, are just a few, .. If you are new to that I suggest you start by installing something like Ubuntu Linux or Mandriva and later switch to a more hard-core distro such as the mighty Debian.

Now that you got yourself a free operating system and that you can do some programming on it, it is time to learn a scripting language, in the Unix world of today your main two options are Python and Perl, I suggest you google on them to find which of them you find best for you.

Right after that I suggest you grab a good networking book and do some marathon diving into it, this will give you a good understanding of how things work in a network and how the major protocols work with one another.

When you will get all this knowledge, you will probably no longer need me to lead you any further :)

What to learn to become a C/C++ Programmer

1 - Grab and read a C or C++ Book.
2 - Learn Unix.
3 - Do some series of exercises.
4 - Do some small projects.
5 - Join an open source project.
(this is still to be completed of course, I am just starting).