WANT TO BE A HACKER HERE IS WHAT YOU NEED TO KNOW

in #hacking8 years ago

LEARN TO CODE (PROGRAMMING)

This kind of, of course, is the fundamental hacking skill. Building your own programs will go a long way, In the event|If perhaps} you don't know any computer languages, I recommend beginning with Python. {This is|That is} cleanly designed, well documented, and relatively kind to beginners. Despite being a good first {vocabulary|terminology|dialect}, it is not {simply a} toy; {it is extremely|it is quite|it is rather} powerful and flexible and {perfect for|suitable for} large projects. I have written a more detailed {analysis} of Python. Good {lessons are|courses are|training are} obtainable at the Python web site; {there is|will be certainly|discover} {a fantastic|an outstanding} third-party one at Computer Science Circles.

{We|I actually|My spouse and i} did previously recommend Javas a good {vocabulary|terminology|dialect} to learn early, but this critique has {transformed|altered|improved} my mind (search for "The Pitfalls of Javas a First {Development|Encoding|Coding} Language" within it). A hacker cannot, as they devastatingly put it "approach problem-solving {just like a|such as a} plumber in a hardware store"; you have to {really know what} the components actually do. {We|I actually|My spouse and i} think it is probably best to learn C and Lisp first, then Java.

There is perhaps a more general point here. If {a vocabulary|a terminology|a dialect} does too much for you, {it could be|it can be} simultaneously a good tool for {creation|development} and {a poor|a negative|an undesirable} one for learning. It is not only languages {which may have|that contain} this problem; web application frames like RubyOnRails, CakePHP, Django may make it too easy to reach a superficial sort of understanding that will leave you without resources if you need to tackle a hard problem, {and also|and even} debug the solution to {a fairly easy} one.

If you get into serious programming, you will have to learn C, the core {vocabulary|terminology|dialect} of Unix. C++ is extremely closely related to C; if you know one, learning the other will not be difficult. Neither language is a good one to try learning as your first, however. And, actually, the more you can avoid programming in C the more productive {you'll be|you're going to be|you'll certainly be}.

C is very efficient, and very sparing of your machine's resources. Unfortunately, C gets that efficiency by requiring you to do a lot of low-level management of resources (such memory) manually,. All that low-level code is {complicated|intricate|sophisticated} and bug-prone, {and can|and may|and definitely will} {bathe|saturate|dip} up huge amounts of your time on debugging. With today's machines as powerful as they are, it is a bad tradeoff -- it's {better|wiser|cleverer} to use {a vocabulary|a terminology|a dialect} that uses the machine's time less efficiently, but your time much more efficiently. Thus, Python.

{Additional|Various other|Different} languages of particular importance to hackers include Perl and LISP. Perl is worth learning for good reasons; it's very {broadly|extensively|generally} used for active web pages and system {supervision|government|operations}, so that {although you may|in case you} never write Perl you should learn to read it. Many people use Perl {in the manner|in how} I suggest you should use Python, to avoid C programming on jobs that do not require C's machine efficiency. {You will have to|You need to} be able to understand their code.

LISP is worth learning for a different reason -- the profound enlightenment experience {you may have|you should have|you will possess} when you finally get it. That experience {can make|could make|is likely to make} you {an improved} {developer|coder|designer} {throughout|for the remainder of} your days, {although you may|in case you} never actually use LISP itself a lot. (you actually can get some {starting|start} experience with LISP {pretty|reasonably|quite} easily by writing and modifying editing modes for the Emacs text {publisher|manager|editor tool}, or Script-Fu plugins for the GIMP. )

{It can|Is actually|Really} best, actually, to learn all five of Python, C/C++, Java, Perl, and LISP. Besides being {the main} hacking languages, they {symbolize|stand for|signify} very different approaches to programming, {every|and} will {teach|instruct|inform} you in valuable ways.

But be aware that {you will not|you may not|you'll not} reach the skill level {of the|of any|of your} hacker or even {simply a|just a} programmer simply by accumulating languages -- you need to {find out how|understand how|discover how} to think about {development|encoding|coding} problems in {a basic|a standard} way, independent of any one language. To be a real hacker, you need to get to the stage where you can learn a new language in days by relating what's in the manual {as to what|about what|as to the} you already know. This means you should learn several very different languages.

I {cannot|aren't|won't be able to} give complete instructions {how} to {learn how to|figure out how to|discover how to} program here -- 2 weeks. {complicated|intricate|sophisticated} skill. But You need to know that {literature|catalogs} and courses won't do it -- many, maybe {almost all of} the best {cyber-terrorist are|cyber criminals are|online hackers are} self-taught. You can study language features -- components of knowledge -- from books, but the mind-set that makes that knowledge into living skill can be learned only by practice and apprenticeship. What will do it is (a) reading code and (b) writing code.

Peter Norvig, who is one of Google's top hackers and the co-author of the most {broadly|extensively|generally} used textbook on {AJE|AJAI}, has written {a fantastic|an outstanding} {article|composition|dissertation} called Teach Yourself {Development|Encoding|Coding} in {10 years|A decade}. His "recipe for programming success" is worth careful attention.

{Learning how to|Finding out how to|Understanding how to} program is like learning to write good natural language. {The easiest method to|The simplest way to|The ultimate way to} do it is to read some stuff written by {experts|professionals|owners} of the form, write some things yourself, read a lot more, write {a bit more|a bit more}, read {a great deal|a whole lot} more, write {more|even more|extra}... and repeat until your writing {commences} to develop {the sort of} strength and economy {you observe|the thing is|the truth is} in your models.

{I possess|I use|I've} had more to say about this learning process in How To {Find out|Study|Master} Hacking. It's a simple {group of|pair of} instructions, but not {a fairly easy} one.

Finding good code {to see|to learn|to study} used to be hard, simply because there were few large programs available in source for fledgeling hackers to read and tinker with. This has changed {significantly|considerably|drastically}; open-source software, programming tools, and operating systems (all built by hackers) {are actually|have become|are} widely available. Which brings me neatly to our next topic...

GET USE TO TERMINAL BASED O.S AND NOT GUI
I'll expect you have a PC or can access one. (Pause for a minute to acknowledge how much that implies. The programmer culture initially developed back when PCs were expensive to the point that people couldn't possess them.) The absolute most essential stride any beginner can take toward gaining programmer aptitudes is to get a duplicate of Linux or one of the BSD-Unixes, introduce it on an individual machine, and run it.

Yes, there are other working frameworks on the planet other than Unix. However, they're disseminated in twofold — you can't read the code, and you can't change it. Attempting to figure out how to hack on a Microsoft Windows machine or under some other shut source framework resemble attempting to figure out how to move while wearing a body cast.

Under Macintosh OS X it's conceivable, however just part of the framework is open source — you're prone to hit a ton of dividers, and you must be mindful so as not to build up the propensity for relying upon Apple's restrictive code. In the event that you focus on the Unix in the engine you can take in some helpful things.

Unix is the working arrangement of the Web. While you can figure out how to utilize the Web without knowing Unix, you can't be a Web programmer without comprehension Unix. Hence, the programmer culture today is pretty firmly Unix-focused. (This wasn't generally valid, and some old fashioned programmers still aren't cheerful about it, yet the beneficial interaction amongst Unix and the Web has gotten to be sufficiently solid that even Microsoft's muscle doesn't appear to be ready to genuinely mark it.)

In this way, raise a Unix — I like Linux myself yet there are different ways (and yes, you can run both Linux and Microsoft Windows on the same machine). Learn it. Run it. Tinker with it. Converse with the Web with it. Perused the code. Change the code. You'll improve programming instruments (counting C, Stutter, Python, and Perl) than any Microsoft working framework can long for facilitating, you'll have a great time, and you'll drench up more information than you understand you're learning until you think back on it as an ace programmer.

For additional about learning Unix, see The Loginataka. You may likewise need to observe The Specialty Of Unix Programming.

The blog We should Go Larval! is a window on the learning procedure of an another Linux client that I believe is surprisingly clear and supportive. The post How I Learned Linux makes a decent beginning stage.

To get your hands on a Linux, see the Linux Online! webpage; you can download from that point or (better thought) locate a nearby Linux client gathering to help you with establishment.

Amid the initial ten years of this present HOWTO's life, I reported that from another client's perspective, all Linux conveyances are practically proportionate. Be that as it may, in 2006-2007, a real best decision rose: Ubuntu. While different distros have their own territories of quality, Ubuntu is by a wide margin the most available to Linux beginners. Be careful, however, of the ghastly and near unusable "Solidarity" desktop interface that Ubuntu presented as a default a couple of years after the fact; the Xubuntu or Kubuntu variations are better.

You can discover BSD Unix help and assets at www.bsd.org.

A decent approach to dunk your toes in the water is to boot up what Linux fans call a live Album, an appropriation that runs totally off a Disc or USB stick without modifying your hard plate. This might be moderate, since Discs are moderate, however it's an approach to get a gander at the conceivable outcomes without doing anything extraordinary.

I have composed an introduction on the nuts and bolts of Unix and the Web.

I used to prescribe against introducing either Linux or BSD as a performance extend in case you're a novice. These days the installers have become sufficient that doing it altogether all alone is conceivable, notwithstanding for a novice. All things considered, despite everything I prescribe reaching your nearby Linux client's gathering and requesting help. It can't hurt, and may smooth the procedure.
GET EXTREMELY GOOD IN USING THE WEB AS YOUR KEY SOURCE FOR INFORMATION AND MANIPULATING HTML CODES.

Sort:  

Source: http://www.catb.org/esr/faqs/hacker-howto.html#skills1

Not indicating that the content you copy/paste is not your original work could be seen as plagiarism.

Some tips to share content and add value:

  • Using a few sentences from your source in “quotes.” Use HTML tags or Markdown.
  • Linking to your source
  • Include your own original thoughts and ideas on what you have shared.

Repeated plagiarized posts are considered spam. Spam is discouraged by the community, and may result in action from the cheetah bot.

Creative Commons: If you are posting content under a Creative Commons license, please attribute and link according to the specific license. If you are posting content under CC0 or Public Domain please consider noting that at the end of your post.

If you are actually the original author, please do reply to let us know!

Thank You!

Congratulations @spanzy! You have received a personal award!

Happy Birthday - 1 Year on Steemit Happy Birthday - 1 Year on Steemit
Click on the badge to view your own Board of Honor on SteemitBoard.

For more information about this award, click here

By upvoting this notification, you can help all Steemit users. Learn how here!

Congratulations @spanzy! You have received a personal award!

2 Years on Steemit
Click on the badge to view your Board of Honor.

Support SteemitBoard's project! Vote for its witness and get one more award!

Congratulations @spanzy! You received a personal award!

Happy Birthday! - You are on the Steem blockchain for 3 years!

You can view your badges on your Steem Board and compare to others on the Steem Ranking

Do not miss the last post from @steemitboard:

SteemitBoard supports the SteemFest⁴ Travel Reimbursement Fund.
Vote for @Steemitboard as a witness to get one more award and increased upvotes!