Help - Search - Members - Calendar
Full Version: I Want To Learn To Program.
BleepingComputer.com > Software > Programming
   
Ascendancy
Overall on computers, i have a decent knowlage in html, networking i know very well. Some assembly language / bios + registry mechanics i know, but not alot.

Anyways i want to learn some computer programmnig language, where do i start what language what programs to use etc? any help or anyone who wants to take me under the wing and teach me - much appreicated , mike
jgweed
I would suggest you start by reading this thread, which is one of the more complete discussions about which programming language is best to learn:
http://www.bleepingcomputer.com/forums/topic1817.html

Cheers,
John
rookie147
Hello Ascendancy!
John- that link doesn't work, try this instead..
I'd personally say C++, although it is quite complex, many other languages are based around it. Therefore, once you have mastered this, others will be easy to learn.
Hope this helps,
Charles
Max-T
i would say that three goot languages to go for are: C, Python, C++
jgweed
Thanks, Rookie147, for the correct link to the thread to which I was referring.
I agree that C++ is the best language, right now, to learn.
Regards,
John
DarkRaika
My advice is buy a book.

In my experience I have found when I want to learn a new language or even yes in the beginning when I was starting to learn all about programming, doing the research into finding the best language to start off on and buying a suitable book is critical. thumbup2.gif Learning how to Touch Type too helps if you know you are serious about becoming a programmer.

Other advice would be to ask around just like your doing, what other programmers did to start off and what is good to start learning from, not just forums, but chat rooms, websites and maybe even if you can find a programming teacher or someone who knows how to program face to face.

I myself started programming BASIC on the Commodore 64 which was 3rd Generation programming that looked something like this:

10 REM My first program
20 A$ = "Hello World"
30 FOR I = 1 TO 10
40 PRINT A$
50 NEXT I

A language you would rarely see being used today, but my reason for showing you this is to also point out that what I did to learn programming at such a young age was to actually find code and just type it up and run it. I didn't know what the code did but through this practice I started to understand what different commands meant in BASIC. Another good way to learn how to program.

What language should you learn first? C++ is a good idea, maybe Visual Basic is another, what you will find after learning one programming language is that other programming languages work almost the same, with the exception of Assembly. You just need to learn the new Syntax and Symantecs of different languages.

Have fun, and I hope you find your new adventure into the challenging world of programming has enjoyable as I do. thumbup2.gif

DR
nick james corbett
i am interesting in computer programing but i don't know where to start to learn about it i know that it's command propt but how is it downloaded Software or something
petocities
I would say that a good language to start with would be C++, or maybe C# or Java.
Why would i say this? Because OO (Object Oriented) programming is where to programming is evolving rigth now. Besides, it is a good way to help you struct your ideas when programming.

I learned with C#. But it is also a very good idea to start with C++, because it gives you a wider view of what programming is and how powerful it can be.

Also, as DarkRaika says, it is very (VERY!) helpful to have a good book with you, specially when you are starting. It is not enough to see some examples. You need a nice well written descripcion of what can you do with what you are learning, so you can trully use it later, with all it's potential.

Once you get some knowledge, it is good to get a look over some older languages, like C (lol.. old?) or those more "memory working codes". I would think that maybe half the people who learn programming techniques don't even know how this really works. Programming isn't just if, for, while, etc., it also haves the "dark side": memory allocating and what this really mean. My experience isn't very nice with this, but it is helpful to never forget your origins...

Good Luck dude..
brooksey!!!
visual basic programming is the easiest programming to learn, c++ is hard.
ryce
but what about someone who doesnt know anything about programming. i myself for example also want to learn programming particularly java but i doesnt know any languages. what do u suggest i should do? should i first start with program logic formulation or can i immediately start learning the language? there are actually schools that offer short courses. im thinking of enrolling myself to it but apparently its a pre requisite to have ACCPAC Program Logic Formulation; Basic HTML or CIPP. should you guys suggest for to take visual basic or html?
groovicus
At the risk of confusing you more, HTML is not a programming language. It is a language that tells a browser how to display information, and that is all it does. It can not perform logic, one can not create a data structure, etc.

Java is just as good as any other language, and the question of which language is best to learn is largely a wasted argument. A programming language is a programming language is a programming language. They all have strong points and weaknesses. If you want to learn Java, then learn Java. The Java Ranch has a small online "college" to help people learn the language.
http://saloon.javaranch.com/cgi-bin/ubb/ultimatebb.cgi

Learning to program is a two part discipline. First, learning the basics; variables, data structures, control logic, etc. The basics of programming are applicable to all languages. The second part is learning a language in which to use these building blocks. You have to learn both of them at the same time, so initially it is frustrating. With time, it all becomes easier. If you have the opportunity to take a programming course, do so. It is much easier to learn when you have someone that you can ask. Once you have the basics, then you can build on those skills to learn more.
MattV
I would not recommend C, C++, C#, or C-anything else to someone that is a total beginner to programming. A beginner needs a way to learn the basic methods of programming, and a language which he can learn to use without becoming bogged down in minutiae which are outside of the scope of what a beginner needs to know. Despite it's idiosyncrasies, Visual Basic 6 is probably one of the best packages for someone to learn with; it's still widely used, so there is no dearth of support material available. It interfaces well with Access databases, which is important for someone that is a beginner at working with databases files. Most other programming languages require knowledge of writing, programming, and manipulating SQL databases - you need to learn that language before you can do any data-access with the language that you are trying to learn!!*

Another language that has a shallow learning curve is Python/wxPython. The first time I ever even looked at any Python code, even though I didn't understand exactly what it did, I could follow it well enough to get the general idea of what the code was meant to accomplish. Even after spending some time learning C++ before deciding that it wasn't what I wanted or needed to learn, I can't look at C++ code and even get a clue as to what it's supposed to be doing. And Boa Constructor is a well-documented GUI for development of Python apps. There are others available, though I'd recommend Boa Constructor to a novice.

I used a bad analogy the other day that no one's complained about (that I've seen, anyways), so I'll use it again.

If you want to design and machine every little part that goes into a motor, then build the motor, and then design and build a car around that motor, learn C-whatever. If you want to be able to take an off-the-shelf motor and put it in a car, then start with VB 6 or another crass language that allows you to simply take a control and use it, rather than having to manufacture the control from the ground up, first.


* Now that I've decided that Python is another language I want to know, I've been looking for ways to interface it with Access db's, or Open Office db's. I really want to avoid anything that contains the string "SQL". From what I've seen, SQL is primarily used for web development. Since I have no need or desire to develop anything for the web (yet), and since SQL is so tediously complex, I'd rather not get involved with it. If involvement with SQL is going to be unavoidable, then is there a simple-to-use package that is designed for use with Python? I haven't been able to find a whole lot on Python or wxPython database programming, yet.
groovicus
QUOTE
SQL is primarily used for web development


Sql is not used primarily for web development, and I can't even imagine how you would hve gotten that idea. Sql is often used in web based applications, and is also used as an internal database for many stand alone applications. So is MS Sql, Oracle, Access, and any other number of relational databases.

QUOTE
SQL is so tediously complex

Sql is an incredibly rich and robust language, and is no more or less complex than any other mature language. You might want to try Googling for "relational databases" and see what you come up with. I can take a database on pollution patterns, weather patterns, and bird migration patterns, and discover new knowledge about how pollution levels effect bird migration. In fact, any data mining process are going to use some sort of relational database to automate the discovery of knowledge, from computer forensics to genomic sequence correlation. You go and be bored with it though. I personally find it incredibly fun to discover relationships between datasets that nobody else has ever seen.

QUOTE
without becoming bogged down in minutiae which are outside of the scope of what a beginner needs to know.

What exactly does a beginner need to know? I can teach programming without actually programming anything. Programming has been around since before there were computers (finite automaton and Turing machines come to mind). Understanding the difference between a stack and a queue needs no programming skills, but teaches one what to use when. Understanding data types requires no programming either. Right off hand, I can't think of any any logic control structure that can't be taught without a lick of programming. But all of those skills go together to be an effective programmer, no matter the language chosen.

C is a wonderful language to learn, so is Perl, or Cobol, or C++, or any other number of languages. They each have their place, so wouldn't you agree that the type of programming language one learns should sort of depend on what they want to learn and what they want to be able to do?
MattV
I tried to respond directly to the above post, but it seems that you may have "cut and pasted" to quote parts of mine (didn't seem to be nested properly) so I shall respond in kind.

QUOTE
Sql is not used primarily for web development, and I can't even imagine how you would hve gotten that idea. Sql is often used in web based applications, and is also used as an internal database for many stand alone applications. So is MS Sql, Oracle, Access, and any other number of relational databases.

OK, so "web-based application development", if that makes you happy. Still not anything I want or need to get involved with.
QUOTE
Sql is an incredibly rich and robust language, and is no more or less complex than any other mature language. You might want to try Googling for...
No, I don't. I use a good search engine.
QUOTE
... "relational databases" and see what you come up with. I can take a database on pollution patterns, weather patterns, and bird migration patterns, and discover new knowledge about how pollution levels effect bird migration.
Good for you.
QUOTE
In fact, any data mining process are going to use some sort of relational database to automate the discovery of knowledge, from computer forensics to genomic sequence correlation.

Show me where I said I want to do anything like that.
QUOTE
You go and be bored with it though. I personally find it incredibly fun to discover relationships between datasets that nobody else has ever seen.
You do that, then. Have fun. Isn't even near what I need to be able to do.
QUOTE
What exactly does a beginner need to know? I can teach programming without actually programming anything. Programming has been around since before there were computers (finite automaton and Turing machines come to mind). Understanding the difference between a stack and a queue needs no programming skills, but teaches one what to use when. Understanding data types requires no programming either. Right off hand, I can't think of any any logic control structure that can't be taught without a lick of programming. But all of those skills go together to be an effective programmer, no matter the language chosen.

All of that is true, but do you know what you sound like? You sound like a PH.D. that assumes everyone else knows exactly what you're talking about. Someone with a lot of education and no common sense. I'm not implying that that's what you are, just saying that that's what you sound like.

I started using computers in the mid-seventies, in High School. The first machine was a DEC PDP-8; I/O was by way if IBM Selectric TTY's; storage was on punched paper tape. I'd never even heard of stacks, queues, buffer overflows, etc. but than in no way impeded me in learning how to program in BASIC (back when BASIC still was). Then the military and the concerns of making a living introduced a very long gap (about twenty years*) in even keeping up with new developments in the computing world, let alone having the time to try to learn all of the myriad languages and systems that kept popping up. My wife and I now both gey by on SS disability, so I finally do have the time to try to catch up. I started with VC++ but it soon became apparent that it went too deep for what I wanted to do. Then I switched over to VB 6 and still use it now. My interest in learning another language (one to start with, anyways) stemmed from my desire to learn Linux. Since there is no VB 6 for Linux, I needed to find something comparable. After doing quite a bit of searching, Python looked like it would suit my needs quite well, and there is a very good IDE (Boa Constructor) available for Python.

So, I do now know what stacks, queues, buffers and their overflows, etc. are. And that's all I need to know about them. When I develop a program in VB, for instance, the IDE handles all of the minute concerns for me, leaving me free to concentrate on the application I'm developing.
QUOTE
C is a wonderful language to learn, so is Perl, or Cobol, or C++, or any other number of languages. They each have their place, so wouldn't you agree that the type of programming language one learns should sort of depend on what they want to learn and what they want to be able to do?

I suppose that would be a matter of personal taste. You may think C++ is the next best thing since cotton candy, while I don't. It simply doesn't fit my needs. And you're correct, they each have their place. Something like C-whatever, though, is far to complex for someone with absolutely no knowledge/experience of programming to try to learn. The sheer complexity of it doesn't make it a good language for a beginner, first starting to learn to program, to start with. After learning the basics and being comfortable with the program design and implementation process, if that person wants to continue elarning and delve into the depths of C-whatever, fine. But I wouldn't recommend starting there.

The concepts of programming can be taught without there even being a computer in the room, granted, but it's far easier for someone to learn them if he can see them in use and put them to use. Actual hands-on experience is an invaluable part of the learning process. If you had an engine problem, and had a choice between a mechanic that's actually been working on cars for twenty years, or someone that's studied them for twenty years but has never touched a wrench, which one would you take your car to? I didn't study books on VB for a year and then sit down and start coding wonders. I started with the basics, and the more I learned, through study and hands-on use, the more I was able to continue to learn. But my first VB program opened up a window that said "Hi, dummy!!" That's all.

Do you think someone that has never even started a car before could suddenly jump into one and start winning NASCAR races?


* I spent one year working in software development, for a company now long defunct, for the TRS-80 disaster and the first Apples and Apple IIs. I even owned one of the first portable computers - the Osborne I. Can you say "hernia"? grinner.gif
groovicus
QUOTE
Do you think someone that has never even started a car before could suddenly jump into one and start winning NASCAR races?

No, but I don't think that anybody who doesn't understand wedge, shocks, brake bias, shocks and springs, and tire pressures can win either.

QUOTE
OK, so "web-based application development",

It's not a question of me being happy. It is simply that such a statement completely ignores the fact that SQL is used in production. Saying that it is only used in a developmental role implies that it is somehow a development tool, which it is not. It is a language for accessing and manipulating data.

QUOTE
You sound like a PH.D. that assumes everyone else knows exactly what you're talking about

It may sound like that, but if you look a little deeper, you'll see that I actually assume the opposite. I assume that when people come here asking questions about things that they have no knowledge. I also assume because that they would have no way of knowing a statement like "SQL is primarily used for web development." is largely inaccurate. I also assume that those who come here also want to know more than enough to just get by. smile.gif
Cameus
C'mon, girls, cut it out dry.gif .

In no way this argument is helping Ascendancy, you're both right and are both beside the point.

I have used almost every language from Assembler to Cobol, Fortran, BASIC, C, C++ (and I like them all) and I have to agree that VB6 is the easiest to learn and use, there are thousands of web pages devoted to it's support and you can quickly whip out a usable application without having to reinvent the wheel everytime.
There are many building blocks available in the form of .ocx and source code routines you can just plug into your application.

I only use C++ when there's something I can't do in VB6, and in the last few years that has happened only once (I needed to interface to some obscure libraries).

VB6 is also good at interfacing with almost any type of database (from Access to SQL Server to MySQL and many mainframe variations), it's also good at controlling hardware (many free libraries are available) if you ever need such a thing.

It can also be programmed structurally if desired, you don't have to use Objects right off the bat (which can be confusing to a beginner), and then transition to OOP once the basics are mastered.

The only drawback I see it that is not portable (you can only make Windows apps).

That's my two cents. wink.gif
groovicus
QUOTE
C'mon, girls, cut it out


Takes one to know one. hysterical.gif

What makes one language 'best' or 'easiest', since both of those are purely subjective? Did you learn visual basic before you learned Fortran? If that is the case, then you can really only say that it was easy compared to Fortran. If you were to say that VB is syntactically easier than C because VB is an interpreted language and thus a higher level language, and thus more human readable, then there you would have an actual case. Higher level languages allow for complex functions to be broken up into smaller functions that are easier to digest and debug. But the same argument can be made of Java or C#.

QUOTE
The only drawback I see it that is not portable (you can only make Windows apps).

Thank you. That is how a discussion of languages should be approached. Strengths and weaknesses. Help the person that asked the question in the first place explore their goals to see what it is that they truly want to accomplish. Do they want to learn Network management? Web Apps? Legacy Database management? Or simple parlor tricks?

We do a disservice to people when we make blanket statements without some sort of corroboration. It drives me nuts, especially since we are trying to help people.
MattV
QUOTE(groovicus @ Oct 1 2007, 10:53 AM) *
I also assume that those who come here also want to know more than enough to just get by. smile.gif

Who said anything about "Just getting by?" Did you skip over the part where I said that after a person knows the basics and is comfortable programming in Python, Basic, Simple Simon*, etc., then, if that person wants or needs to delve into something deeper, that person would be prepared to tackle C-whatever - or any other extremely complicated, buggy, and sometimes just plain strange, language. Would you try to teach someone that's never driven anything to drive tractor trailer to begin?

But, anyways, my original question was pretty muddy - which is what happens when I try to ask questions late at night, when my brain is only at about 60% power. First, I'll explain.

Before I decided to explore another OS, when I needed to do something with databases I'd create the database, tables, relationships, etc. with M$ access, enter some dummy data for testing purposes, and save it - then I'd quit Access.

My next step would be to start VB 6, connect to the DB, and write a program that would do all of the necessary data-manipulation. I may go back to Access to design queries, then copy the SQL statements those queries would generate for use in the program.

For example, if the program happened to be a library catalogue, Id use the query builder to create a query that would return all of the books by a particular author. I could then copy the SQL statement, modify it for use in the program so that it would find all of the books written by an author whose name would be provided by the user. Using one SQL statement and a couple of lines of code, the user could search for everything written by any author. (There would be a number of different search options, but they'd all basically use one SQL statement and a couple of lines of code. And there would, of course, be methods for adding, deleting, and editing records in the DB. Wouldn't be of much use without 'em, eh?)

The databases I work with are those that contain specific data on specific items. The Library DB could have catalogues of books, CDs, DVDs, etc., but they would still be quite specific in the types of data they'd hold. But a mish-mash of completely unrelated data from a bunch of different sources in who knows what formats isn't something I'm really interested in manipulating. Maybe, sometime, but not now**.

So what I need now is a way to connect to a DB using Python so that I can write programs to manipulate those DBs. OOo has a DB program that's comparable to Access, and it's what I'm probably going to be using, although it doesn't really matter what the DB was created with - I just need to be able to access the DB and manipulate the objects it contains.

Now, I'm just a couple of months shy of fifty, and I'm doing these things for my own edification, primarily. Computers, programming, different OSs - these make up my hobby. I'm not some whiz-kid that teethed on a keyboard, and as I said before, I was away from this world for a long time.

So, instead of extolling the virtues of things that I have no need for or interest in at this time***, can you perhaps point me in a direction that might help me find something I might use?

* I don't think there really is a programming language called Simple Simon. But who knows?

** Not to say I won't need or desire to try to teach myself those things in the future. I probably will. But not right now.

*** I'm still a beginner with Linux, and with Python. I'm trying to break out of the M$ box.
MattV
QUOTE(groovicus @ Oct 1 2007, 07:00 PM) *
Help the person that asked the question in the first place explore their goals to see what it is that they truly want to accomplish.

In this case, the person clearly stated that he knows absolutely nothing about programming and wants to learn. Why he wants to learn is irrelevant, since his goal at this time is to start to learn. And the best way to start to learn something is with what's simplest. Which did you learn first, to add and subtract, or how to factor quadratic equations?
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-2009 Invision Power Services, Inc.