Help - Search - Members - Calendar
Full Version: Where To Start?
BleepingComputer.com > Software > Programming
   
Sp1d3r
Hey there,
First of all, I'm not sure if this is in the right section but if it isn't then please can a mod move it?

Anyway. I would basically like some help, i've always thought of learning a programming language, I would basically like to learn to "hack" BUT before anyone rants at me for wanting to learn that, I would like to learn for the better, not to ruin peoples computers, but to help secure my computer etc and just basically learn some new tricks etc..

I'm new to everything about this certain topic and hopefully you won't dismiss it because I'm new to it but like I said, i've love to learn a handy programming language, but need guidence and help about where to start and where to get the right links from.

Anyway, please help.
Thanks
Matt Daniels
raw
The first question is what platform do you want to write programs for?
Visual Basic for Windows is pretty simple to learn.
You want to 'hack' the web you will need to know PHP.

Groovicus will probably chime in with Java and/or PERL.

Here's a nice link:
Teach Yourself Programming in Ten Years
http://norvig.com/21-days.html

You should familiarize yourself with network protocols.
Understand how TCP/IP works.

Read: 'smashing the stack for fun and profit'


QUOTE
'Remember, hacking is more than just a crime. It's a survival trait. '
groovicus
QUOTE
Groovicus will probably chime in with Java and/or PERL.


Heh. Someone has been paying attention. Java would not really be applicable, but perl would. So would shell code. As Raw stated, it really depends what you want to do. Penetration testing (of servers) is one set of skills; software vulnerabilities are a different set of skills.
ill_Nino
Is there a basic in anything though?

Like, one area is similar to another?
groovicus
Do you mean a basic skill set that is applicable in all areas?
Alan-LB
Intelligence, maybe??

And a love of hard work?

Alan
ill_Nino
Yeah, for example if you wanted to do anything science related, maths is definitely an essential for most science-related subjects and so on.

You also refer to it as a "language", is this literal?
raw
QUOTE(Sp1d3r @ May 9 2008, 03:39 PM) *
i've always thought of learning a programming language,

Yes, the term language is literal as the response to Sp1d3r's question.
Technically you don't have to learn any one language, but have a grasp
of programming basics...file structures, reading program code, functions,
variables, etc.
For web related learning you should know how a Linux server works, what Apache
is and what it does. How it interacts with the Operating System. Get familiar with MySQL
and PHP.

If you are seriously considering this path there is no "Click this link, run this program ... You are now a hacker"
Can I Be a Hacker?
Alan-LB
In the old days (circa 1962) we programmers were known as hackers. The term then meant a person who would work hard, tenaciously and in a thoroughly professional manner at a problem until it was solved. Rather in the way a sculptor may slowly and carefully "hack" away at a piece of marble until he had produced a statue.

The link in the above post has some very apt comments

There was no derogatory meaning to "hacker" at all. I have seen references that this meaning of the word is being resurrected.

Alan
ill_Nino
QUOTE(raw @ Jun 11 2008, 10:36 AM) *
Technically you don't have to learn any one language, but have a grasp
of programming basics...file structures, reading program code, functions,
variables, etc.
For web related learning you should know how a Linux server works, what Apache
is and what it does. How it interacts with the Operating System. Get familiar with MySQL
and PHP.

So just go to google and type "how to ____" sort of and so I can begin to grasp the basics of programming?

My ideal goal, would to create my own software, say for example, a small game, via be it on Java online. Or if possible as an .exe file, nothing huge, but something to understand how a computer really does work.
Alan-LB
QUOTE(ill_Nino @ Jun 14 2008, 02:26 PM) *
So just go to google and type "how to ____" sort of and so I can begin to grasp the basics of programming?

My ideal goal, would to create my own software, say for example, a small game, via be it on Java online. Or if possible as an .exe file, nothing huge, but something to understand how a computer really does work.


Your approach to learning a computer language would be like taking a dictionary when you visited a foreign country. Whenever you wanted to say something you could look the word up!! You seem to think that after a few days you could become a professional interpreter. This would hardly be learning a language including the syntax and grammar.

First of all, choose which language you want to use, get a good textbook on the language, or find a good tutorial. Read it one chapter at a time until you thoroughly understand it, then type out each of the examples - even if you think you know the material. Typing them out will give you good practice. Work slowly and thoroughly right to the end. After this you will have just learned the language.

It will take another year of hard work to become proficient and five years to become anywhere near professional.

First learn one language properly so that you can use it, then worry about learning others like PHP or whatever.

Apart from learning a language, you will also need to learn systems analysis and design, program design, data design and many more things before you could be called a programmer. After all, how are you going to create your own software, even a game, unless you can analyse the problem and design a good solution? Then how are you going to create a program from that design?

Good luck anyway.

Alan.
Billy O'Neal
For the record, I taught myself to program (For I know possibly very badly) and I started with Visual Basic .NET.

Billy3
McGuywer
QUOTE(raw @ May 10 2008, 01:32 AM) *
Here's a nice link:
Teach Yourself Programming in Ten Years
http://norvig.com/21-days.html



10 years? Is that a joke?



groovicus
More like a typo......
raw
That's the actual title of the article.
ill_Nino
I understand that there is no easy way for anything, but how is it possible then, that there are people out there, that can stop trains in other parts of the country, at the age of 14?

Yes, it is true, I heard it on the news... or where they lying? lol
groovicus
QUOTE
Yes, it is true, I heard it on the news..


My eight year old could stop a train simply by dialing the phone and stating that there is a bomb on the train. What is your point?
ill_Nino
He apparently coded some software, that could change the train lines in my country. Thus making the time tablers panic and hold trains before they moved onto a different line.

My point is, how is it possible some kid can learn how to do these sorts of things?
raw
14 year old ambition + lot's of free time + Google = Bad things! hysterical.gif
groovicus
Exactly. It doesn't take too many brains to download something else written by someone else and run it....

Beside, I'm calling bullsh*t. I want to see the story that you are referring to. If it really happened, it will be all over the net on reputable sources.
raw
Oh Groovy One...tis true,
http://www.telegraph.co.uk/news/worldnews/...ram-system.html
Alan-LB
In this story he adapted a remote control to change the track points - the illustration would suggest a hardware adaptation. This is not the same as writing software to do the damage.

Alan
ill_Nino
Even so, at the bottom they talk about a 20 year sending out spyware to get into bank accounts.

Note also, I do not have the heart to do that, but like I've stated, I would like to enjoy writing my own programs, gives me that extra security if you know what I mean.

Obviously there are young kids who can do damage like this, if you know, I would like to know how they are able to obtain this sort of information? I know this question is out of topic, and also could be used in the wrong hands, although, if they can find this stuff out, is anything obtainable from the internet?
Alan-LB
There are sources of malicious software available.

I doubt whether anyone here would think it reasonable to advise other people how to obtain such software. It would be against everything that most of us professionals stand for!!!

I certainly would never help anyone get anything like it!!

It ia really not the sort of question that should be asked in a forum like this.

Alan.
ill_Nino
Yeah I understand, I'm not asking for direct links to downloads but. I am merely asking if there is websites that teach how to program software, like a forum like this that people could go to for more expert advice. Here it is only mainly for Computer Support...

EDIT:

For example, where did you, if you learnt, learn to program?
Alan-LB
I learned to program in 1962 - in machine code in octal on a mainframe Ferranti Pegasus Mark I (look it up in Wikipedia). Then I moved to an AEI 1010 and we coded in decimal - big step up!!!

Then I went to Fortran on CDC computers and later used many other languages. I started before there were any college courses in computing, before there were any textbooks (apart from the machine code instruction manual that came with the computers), long before the Internet.

We taught ourselves and helped each other. We learned by reading the manuals, trying out instructions step by step, making our own mistakes and finding the solutions for ourselves (no forums to ask in!!). We learned mainly by very hard work, persistence, using our intelligence and a sense of being professional. Remember that intelligence is often defined as the ability to solve problems - not as the ability to copy other people's code. smile.gif

But programming is not only learning a language - if you are going to be a REAL programmer you must also learn Systems Analysis, Systems Design, Data Structures, Program Design, debugging procedures and a host of other things. Without these things you are just another script kiddy! smile.gif

After 46 years I am still programming and learning - though it is for my own pleasure now not for soemone else.

If you apply the same principals today you will succeed. If you are looking for shortcuts, quick fixes, solutions from other people, avoiding reading the textbooks, avoiding typing in the examples one by one - you will NEVER succeed. Why not start a car wash business? smile.gif

Alan
ill_Nino
I thought there was never a short cut. Wow, congratulations on such a history...

My game looks further away than ever before lol

Thanks for you quick, and direct replies Alan.

~ Nino
aommaster
Hi there!

I do a lot of programming in a language called "Autoit!" (some of the members here may be familiar with it). Autoit! is a macro scripting language that basically has most of the functions pre-defined, so there is less time spent on writing the functions and more time writing the program to do your task.

As far as I know, Autoit! only works with Windows and Internet Explorer (if you want it to interact with IE). With Autoit!, you can simulate mouse movements, key presses, interect with GUI's and pages opened in IE.

I think it's a good starting point so that you can get the general 'feel' of how programming works (programmers love the time when it comes to debugging a logic error tongue.gif)

Oh... and may I add that once you learn how to program in one language, you'll notice trends in other languages too, such as types of variables, types of loops, etc. It won't be difficult to get the hang of another language once you've gotten one language down.
Alan-LB
As you say AutoIt is a macro scripting language. This is a lot different from procedural languages such as FORTRAN, BASIC, COBOL, C and others. It is also very much different from Object Oriented languages like C++, JAVA and all the other more modern languages. All these are far more complex and much more versatile than a scripting language.

If AutoIt will only work with Windows and Internet Explorer then it is very limited, would not be portable nor stand alone and can hardly be compared with the other languages available.

Macro scripts and computer languages are very different!!

Alan
aommaster
Yes Alan. The downfall of Autoit is that you are very limited as to where you can apply Autoit. I, however, do believe that it may be a good start for new people because it still does have the basic stucture to programs (although the functions may be different):
*Declare a variable
*Declaring arrays
*Main body of functions
*Loops
*Calling Functions

Indeed, it is not as versatile as a language such as Java, or C++, which are more popular and useful. But it can provide new programmers (when I say 'new programmers', I mean 'never seen programming before') with appropriate knowledge to move on to a more powerful language.

Another thing I like about Autoit is that you can very quickly see yourself progress through programming. Your programs will very quickly become more complex and fancy. It's quite encouraging smile.gif
Code Poet
You can use some of the wizards in VB and in Access to help with the learning curve some. If you get into the code that they generate and start tweaking it and then debugging it. Once you actually get into serious programming though the wizards will be more trouble that they are worth. Half the time if you want to customize something that a wizard has generated for you it has put some hidden piece of code in some completely illogical place that is next to impossible to find and that will screw up the customizations that you are trying to apply.


I firmly believe that one of the most important things that you learn while programming is good debugging techniques. If you have that then you can learn from any code that you can get your hands on. Learn to step through code, print statements in any language are invaluable. I KNOW that I told it to do this therefore that is what it HAS to be doing. Bull. How many times have you set a print statement only to realize that you only thought that you told the program to do something? Learn many different techniques of printing. Print to a window, print to a message box, print to a file. Yeah, end users lie too so you need to be able to print to a file and capture exactly what they are doing in the case of some mysterious random appearing error that they get. NO! They would never hit the delete button and then ignore the warning message that pops up. Never. End users never ignore message boxes and never delete files.


Stepping through code, especially in a windows environment will reveal so much. Windows applications don't necessarily perform in the manner that you think you are telling to perform.


Testing, learn how to stub programs and test the extremes of procedures and functions.


Really the best way to learn how to program is to jump in and start doing it. Don't be afraid to ask for help from someone with experience and when they have something to tell you then LISTEN. Don't ever think that just because they only code is some other program that they don't know anything. My mentor was COBOL programmer. He taught me more about the basics of programming than any professor or book ever did. Now I'm teaching him about OOP.


If your in school look into a COOP or internship position so that you can get hands on experience with real applications. They understand that you are there to learn and most of the time you get paid for it and many times end up with a job when you get out of school.


Good luck!
siddhant
this is a very interesting topic and 1 that is prooving to be intensely useful to me!!ive read the entire topic ,followed the links , done my own research and have found that python is probably the best place to start for me and also for u if u like!!ive decided on learning pthon and then moving up to ooc++ and thereafter braching out to wherever i learn will suit me!!comments??

ps:is anyone here an expert at python,so that i know who too look for wen im stranded!! gathering.gif

thumbup2.gif
nigglesnush85
Python is a good choice, as are any object orientated languages.
KingOfIdiocy
There is a free online course in C which may be a good starting point for absolute beginners.

http://www.programmingebooks.tk/

Click on C under Categories.

Scroll down to near the bottom of the page for the videos.
siddhant
forgive me if i am wrong but is the c programming language not obsolete now?i thought that learning ooc++ was actually easier than c??
groovicus
QUOTE
c programming language not obsolete now

Not at all. Unix wouldn't exist without it (and by extension, Linux), Windows either. Nor would your hardware work, television, microwave, etc.

QUOTE
i thought that learning ooc++ was actually easier than c

Easier how? Do you know both languages? Actually, I have never heard of ooc++. Object Orientation is a programming paradigm that has nothing to do with a particular language, although some languages lend themselves to OO much better. C could be used to do OO programming if one desired.
siddhant
i completely understand wat u just said but u took my asumption wrong!!i meant was learning c over c++ of any use now?? is c++ not an extended and easier version of c?and ty for correcting me on the oo bit lol!
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Invision Power Board © 2001-2008 Invision Power Services, Inc.