Quantcast

Maximum PC

It is currently Mon Sep 01, 2014 6:10 pm

All times are UTC - 8 hours




Post new topic Reply to topic  [ 34 posts ]  Go to page 1, 2  Next
Author Message
 Post subject: Where to start?
PostPosted: Sun Sep 04, 2005 10:31 pm 
Thoroughbred
Thoroughbred

Joined: Tue Nov 30, 2004 8:03 am
Posts: 1943
I want to start learning how to program. The closest thing to programming I've done is HTML.

What's the first language I should learn? What're the things I need to know before I start learning?

Mod Edit: I've made this thread sticky to help new members choose their first programming language. The thread isn't locked, so feel free to add (constructive) suggestions and ideas.

A good place to start is to read this article. added Aug 4 2010

</edit>


Top
  Profile  
 
 Post subject:
PostPosted: Mon Sep 05, 2005 12:54 pm 
Smithfield*
Smithfield*
User avatar

Joined: Fri Jul 09, 2004 9:17 am
Posts: 7159
Location: In HyperTransport
a lot of people are starting with visual basic. I started tinkering with python but never got into it. Now I'm taking a computer programming course in college and we're learning java. As a first real language that i've learned it comes with a recommendation. I would learn java.


Top
  Profile  
 
 Post subject:
PostPosted: Wed Sep 07, 2005 10:47 am 
Thoroughbred
Thoroughbred

Joined: Tue Nov 30, 2004 8:03 am
Posts: 1943
What programs are must-haves? Are compilers and decompilers the same program? Are they free?

I'm learning VB right now. Watching and learning some flash tutorials on the program.


Top
  Profile  
 
 Post subject:
PostPosted: Wed Sep 07, 2005 11:53 am 
Bitchin' Fast 3D Z8000
Bitchin' Fast 3D Z8000
User avatar

Joined: Thu Jul 22, 2004 11:11 am
Posts: 5108
Location: RFC 1149 - Pidgeon Network
most of what you'll want is free

java sdk is free from sun - it's not compiled, but turned into a "bytecode" - think of it as a faster way for computer to read it, without turning it, just shy of turning it into machine code.
netbeans ide for java is free

perl is free - activestate.org or net or google it. for an ide, use scite or crimson.

the visual c++ compiler is free from microsoft, and you can look around for a free ide like crimson editor, or scite. I also believe MS has trial versions of vb/vc/c#... .net for students, will check up on it more when home.

Then there's other c compilers - gcc ming etc. bloodshed C++ is a fairly complete and small compiler/ide you can get it off download.com

visual studio's ide is fantastic though. It would let you declare a watch on the root of a tree, and let you click and open up the nodes letting you see the values as they fill out during the debug.
$55


Top
  Profile  
 
 Post subject:
PostPosted: Wed Sep 07, 2005 12:14 pm 
SON OF A GUN
SON OF A GUN
User avatar

Joined: Mon Nov 01, 2004 5:41 am
Posts: 11605
You can get the Betas for VS for free right now. (http://lab.msdn.microsoft.com/express/)

I would get Bloodshed Dev C++ from source forge. Eclipse (for java).

I would start with C++ and make sure you know C... it is a must (but if you know C++ you know C basically).


Top
  Profile  
 
 Post subject: Re: Where to start?
PostPosted: Wed Sep 07, 2005 2:36 pm 
Bitchin' Fast 3D Z8000
Bitchin' Fast 3D Z8000
User avatar

Joined: Mon Jun 14, 2004 4:04 pm
Posts: 985
Location: Earth
Koopsta Knicca wrote:
I want to start learning how to program. The closest thing to programming I've done is HTML.

What's the first language I should learn? What're the things I need to know before I start learning?


There are a couple of languages I do recommend, I'll put some reasons why:

1) Java - the construct is simple, it enforces good OOP (Object Oriented Programming), Java 1.5 SDK is free, and there's plenty of help available. I've never had trouble learning Java, I had more issues with PERL than Java.

2) C++ - a tough language to learn but most colleges/universities do use C++ as their main language. However, once you get the hang of C++, a lot of languages become easier to learn (C#/Java).

3) Python - it's one of those weird languages that you never hear me recommend unless you're a beginner. Python enforces good code structure, that is, it forces you to indent. The reason why Python is weird is that while most languages use brackets for code blocks, Python uses tabbed spaces. It's a tad awkward, but it's a fairly simplistic language.

Before you begin, remember to read, practice and ask. Learning a language is pretty difficult at first sodon't give up. The solution almost always never comes to you on the first try, so don't worry. Try to shoot for a solution first, then ask someone (either someone you know who can program in the language you're learning or an internet forum) and have them critique your code. Go slow, again, tackle a problem before you ask questions. The effort may help you determine the answer, so try at it before asking.

Anyhow, have fun. I started programming in 7th grade but never really got into it until College. It's fun and challenging, I almost always enjoy typing code in a text editor because it's fun.


Top
  Profile  
 
 Post subject:
PostPosted: Sun Sep 18, 2005 8:07 am 
8086
8086

Joined: Sat Sep 17, 2005 10:44 pm
Posts: 7
OK, I'm a little late to the chase here, but I've got a quick take for you.

If you are using a general purpose programming language (particularly of the MS .NET variety), then you can implement all of the same basic functionality in all of them.

(room for flames here)

The most current languages are C#, VB.NET and Java. New applications are being written in these languages every day and books / tutorials / websites / forums all abound for all three of these languages.

C and C++ are still around, but mostly for legacy purposes. To give you an idea, Unix was written in C in 1973 and C++ developed in the 1980's. Creating windows apps under C++ can be a pain b/c you have to interface with Microsoft's API for creating windows and other visual objects (known as the Microsoft Foundation Classes or MFC).

With a good development environment all of C#, VB.NET and Java will give you the same effective functionality (except that Java will run in other OSes). In terms of syntax, C# and Java will be very similar and VB.NET looks a hybrid of Java and BASIC of the old days.

I would not advise using any languages but the above three. If you are a career programmer, you can learn C++ and older languages but this is like learning to drive stick even when you have an automatic around; it's good to know how to drive stick, but why make your life more complicated?

As to the language differences, you will find that VB is slightly more legible and forgiving than either C# or Java. So pick one of these three and you will be just fine (as a note Maximum PC used VB.NET for their Programming How-Tos, so there's my suggestion)

If you're interested in free tools, just remember that you get what you pay for. Making user interfaces without the help of good tools add a degree of complexity (and hours of work). At the professional level, I believe that there are free versions of Eclipse (for Java) and both C# and VB.NET are available in 2005 Beta, which should actually be good for a full year.

NB: This may go without saying, but when you do buy the book for one of these three languages, type all of the big examples, don't just copy the solutions from the CD. There is no experience that rivals typing, compiling and running these examples, no matter how simple they seem when you read them.


Top
  Profile  
 
 Post subject:
PostPosted: Sun Sep 18, 2005 12:11 pm 
Bitchin' Fast 3D Z8000
Bitchin' Fast 3D Z8000
User avatar

Joined: Mon Jun 14, 2004 4:04 pm
Posts: 985
Location: Earth
C#, C++, Java are great languages to start with. They are rigorous and nitpicky. I never, ever recommend VB.NET - sure, it's forgiving, but as a new programmer rigidity pays off in the end. I have spent countless hours finding bugs during my first foray into programming, but now, it's practically second nature - majority of my errors are usually run-time/logic errors but never syntax. Write good once, and you never have to worry about coming back to it later.

Another reason to learn "legacy" languages like C/C++ is because they are the standard for almost all languages out there. I learned C++ first, Java and C# came naturally when I picked it up. Also, as per the analogy "why drive stick when automatics are around?" is a terrible one: while learning stick seems mundane and archaic, if you get a job in C++ development, you'll get paid more than Java and C# developers overall. So in sense, learning something archaic pays off, plus a lot of C/C++ fundamentals carry over to Java and C#, so there's another added benefit.

Granted that this sounds almost like re-inventing the wheel, but it pays off in the end - especially if you become a full time programmer. One of the goals for the next year is to pick up C++ again and do some heavy development in that language (especially when it comes to UNIX/Linux). Anyhow, I do recommend staying away from VB.NET - I really do, it's far too lax of a language, and I stand by rigidity - it teaches you to pay attention to code both in the format and the logic.


Top
  Profile  
 
 Post subject: Rigidity? Paid?
PostPosted: Sun Sep 18, 2005 4:13 pm 
8086
8086

Joined: Sat Sep 17, 2005 10:44 pm
Posts: 7
Whoa Whoa, let's back off a second here... Koopsta says "I want to start learning how to program..." not "I want to make a profession of programming...".

If any soul wants to make a profession of programming, then they can go to school and learn like everyone else. There, they will get a full taste for the whole gamut of languages. I've done Assembly (68k and RISC), C, C++, Java, VB6, Access (& VBA), Prolog, J (an APL descendant), T-SQL, Javascript (or JScript), VBScript and of course, .NET Languages (C# and VB). And I still don't recommend any but the big three (Java, C#, VB.NET) to dabblers and enthusiasts.

Comments about rigidity and structure, are really just junk in the .NET era. C# and VB.NET are nearly identically functional languages (this was not the case with VB6). With an IDE in front of them there is no difference in rigidity or "nitpickiness", they are interfacing with the same .NET Assemblies and the syntax checker saves you either way.

You state that
Quote:
Another reason to learn "legacy" languages like C/C++ is because they are the standard for almost all languages out there. I learned C++ first..
Which is really incomplete logic. I mean if it was good to learn C++ first, then why not learn C first? Wouldn't that be better? Heck why don't we just start all newbies at Assembly code? That would be the best. Because then when they "get a job in RISC development" they'll get paid more than the C#, the Java and the C++ programmers? Hey ,why not just teach them RPG and move them right to the top of the niche-market pay scale?

All of these languages (except RPG) are
Quote:
standards for almost all languages out there
, but I'm not going to walk in to my computer programming night course and show my 101 students the wonders of coding in 68k.

Newbies and enthusiasts want results for their time and .NET / Java, deliver those results with a minimum of hassle, time and learning curve.

Let them drive automatic for a while and if they really like it, then I'll show them how to drive stick.


Top
  Profile  
 
 Post subject:
PostPosted: Fri Oct 07, 2005 1:04 pm 
Bitchin' Fast 3D Z8000*
Bitchin' Fast 3D Z8000*
User avatar

Joined: Tue Jun 29, 2004 11:32 pm
Posts: 2555
Location: Somewhere between compilation and linking
Beomagi wrote:
technically c++ is java's base since java started off as a subset with a bunch of net libraries. but it does have easier memory management - no pointer arithmetic for your complex stuff, and instead of multiple inheritance, you use interfaces in java plus some other minor stuff.

Java uses C syntax, but it is not based on C++. C++ contains several somewhat controversial language features that are not found in Java (casting, operator overloading and multiple inheritance are obvious examples). Java also contains language features not found in C++ (a single Object model as in Smalltalk, meta attributes, JavaDoc, greater type checking, first class arrays, immutable vs mutable objects, etc).

My opinion is that knowing both of these languages is good thing. My rule of thumb is that most applications should be written in Java (between C/C++ and Java). Much better portability and greater productivity. If a portion of the app is running slow, consider writing that portion in C and calling it from Java via JNI.


Beomagi wrote:
Java is easier, but c++ is a far better base. If you know C++ learning java is easy

Why is C++ a 'far better base'? I know plenty of C++ programmers that suck eggs in Java. Many C++ programmers don't really understand OOP, which is more of a requirement in Java since the language is all OOP, the API design is heavily influenced by design patterns, etc. On the surface, they look similiar; dig deeper by creating a complex app and you'll see some differences.


Beomagi wrote:
If you use a lot of javascript then yes programming is a lot like that. It's not 100x harder come on man. same thing, different skin.

So what you are saying is that these HTML kiddies understand the difference between greedy and dynamic programming algorithms? They spend oodles of time thinking about optimal solutions? They discuss an there 'html algorithms' run-time complexity? They probably have a deep understanding of computer architecture and systems right?

Wow, why have we gone to so much trouble seperating the presentation from the logic in web applications? We could have just let the art interns do everything. Man, I really missed the boat on that one. I didn't even realize there are control statements in html.

Come on. A 14 year old girl using Dreamweaver to create a blog does not a programmer make! Real programming and creating an html site have _nothing_ in common. They are as different as applied mathematics and marketing. Think about that.


Top
  Profile  
 
 Post subject:
PostPosted: Fri Oct 07, 2005 1:21 pm 
Bitchin' Fast 3D Z8000*
Bitchin' Fast 3D Z8000*
User avatar

Joined: Tue Jun 29, 2004 11:32 pm
Posts: 2555
Location: Somewhere between compilation and linking
Beomagi wrote:
perl actually has obfuscation contests.

This has happened at work more than once. Trying to figure out what is wrong with a Perl program, we bring the person who wrote the code in the office and ask if they can debug/fix it. The usual response is....

I don't know what the hell that is supposed to be doing - You should get so and so in here because _he is the one_ always doing stupid things like this.
Well, actually, you wrote this part for him.
I wrote that?
Yes, you.
Well, I really don't want to fix it. Can't he do it?
No. We let him go, but we were going to talk to Greg (the boss) about porting it to Java anyways.
Wait - we're not doing any more Perl apps now... are we?
No.
And that means I'll also...
Yes.
I'll just go ahead and fix that.
Thank you.


Top
  Profile  
 
 Post subject:
PostPosted: Fri Oct 07, 2005 3:44 pm 
Bitchin' Fast 3D Z8000
Bitchin' Fast 3D Z8000
User avatar

Joined: Mon Jun 14, 2004 4:04 pm
Posts: 985
Location: Earth
Gadget wrote:
This has happened at work more than once. Trying to figure out what is wrong with a Perl program, we bring the person who wrote the code in the office and ask if they can debug/fix it. The usual response is....

I don't know what the hell that is supposed to be doing - You should get so and so in here because _he is the one_ always doing stupid things like this.
Well, actually, you wrote this part for him.
I wrote that?
Yes, you.
Well, I really don't want to fix it. Can't he do it?
No. We let him go, but we were going to talk to Greg (the boss) about porting it to Java anyways.
Wait - we're not doing any more Perl apps now... are we?
No.
And that means I'll also...
Yes.
I'll just go ahead and fix that.
Thank you.


:lol: :lol: :lol:

THAT is HILARIOUS!!! I don't know why people haven't discovered the joys of commenting. Seriously, if you wrote code that hardly anyone can interpret and it's been going on for a period of time, it makes sense to comment.

OTOH, I'm finding that you can write obfuscated code in just about any language. :P


Top
  Profile  
 
 Post subject:
PostPosted: Sat Oct 08, 2005 4:58 am 
Bitchin' Fast 3D Z8000
Bitchin' Fast 3D Z8000
User avatar

Joined: Mon Jun 14, 2004 4:04 pm
Posts: 985
Location: Earth
Beomagi wrote:
I'd say C++, calling precompiled code can work. Still from using sun's java desktop, oracle's java based interface and installshield 10's java ide, it's still premature to say more productive.


Why waste so much time? I love C++ but there are things that I can write in Java that will run as effectively as if they were written in C++. Why waste time writing an application's UI in C++ only to find yourself having to re-write it for better portability? Write the general in Java, and any optimizations should be written in C/C++ via JNI. Gadget's argument makes sense (I, too, work in development).

Also, I disagree with Java being pre-mature. Productivity is not necessarily measured in performance but also in efficiency. Java is definitely more robust as an application development language and it's far more portable than C++ will ever be. You're basing your judgment on a very narrow selection of Java software whereas you really ought to judge using a wider scope. One of Java's productivity is in its capacity to be portable off the box. Believe you me, I really don't want to have to re-write my application simply because I want to port it over to some other platform.

To give you an idea of how powerful Java is, I have a friend who works in the Finance district here in Chicago. Their server software is written in C++ - they didn't care about portability, all they cared about was that it performed. They wrote their UI's in Java because they run multiple systems (the traders use Windows while they use Linux). Their reporting software is in Java and they have a new subscription system that's written in Java. Why not C++? Well, partly because writing portable software in C++ sucks and secondly, Java just made sense (obviously, portability). Gadget isn't saying that everything should be written in Java, but one should pay attention to requirements and use what's appropriate. As much as I love C++, I'm definitely not going to write an entire CRM system out of it just because I don't like Java or C#.


Top
  Profile  
 
 Post subject:
PostPosted: Tue Nov 14, 2006 8:14 pm 
Bitchin' Fast 3D Z8000*
Bitchin' Fast 3D Z8000*
User avatar

Joined: Tue Jun 29, 2004 11:32 pm
Posts: 2555
Location: Somewhere between compilation and linking
Koopsta Knicca wrote:
What are the languages that one MUST know. C+ and C++ are a given, I bet. What else?

I just downloaded Visual Basic. Didn't know it was free.

Someone please delete this thread before it gets any worse!

There is no such thing as C+. And although I'm not sure what you meant by MUST know, C++ is not a 'requirement'. It is a very popular language if you plan on working as a software developer someday; otherwise, I would suggest that you skip it and learn Python, Java and Lisp instead.

Writing HTML and writing code is literally as different as writing a document in Word and writing Word. Think about it.


Top
  Profile  
 
 Post subject:
PostPosted: Tue Nov 14, 2006 9:07 pm 
Bitchin' Fast 3D Z8000*
Bitchin' Fast 3D Z8000*
User avatar

Joined: Tue Jun 29, 2004 11:32 pm
Posts: 2555
Location: Somewhere between compilation and linking
DJSPIN80 wrote:
...if you get a job in C++ development, you'll get paid more than Java and C# developers overall.

Where is that coming from? I doubt Google pays their C++ coders more than their Java or Python coders. Or that Sun pays the Solaris team more than the Java team. Ditto for Microsoft and C++ vs C#.

I've heard of instances when knowing an obscure language pays big dividends... Cobol 1973z for the IBM 2342 or something equally artificial... but we're going to have to wait another 30 years for that paycheck. =)


Top
  Profile  
 
 Post subject:
PostPosted: Tue Nov 14, 2006 9:59 pm 
Bitchin' Fast 3D Z8000*
Bitchin' Fast 3D Z8000*
User avatar

Joined: Tue Jun 29, 2004 11:32 pm
Posts: 2555
Location: Somewhere between compilation and linking
Beomagi wrote:
I'd say C++, calling precompiled code can work. Still from using sun's java desktop, oracle's java based interface and installshield 10's java ide, it's still premature to say more productive.

Studies have shown that people are more productive in Java. 20% to 40% more productive depending on the tasks tested.

Beomagi wrote:
but by better base, i was referring more to the use of pointers to create complex data structures. What seems at first a near low level necessity for C++ becomes easy fast, and playing with those structures can help any programmer's ability.

What data structure are you thinking of? After all, both languages are Turing complete.

C programmers use pointer arithmatic because it is fast, not because it lets them implement more complex data structures. If anythign, the opposite is true since they're more likely to screw up when using pointer arithmatic.

Beomagi wrote:
Gatget wrote:
So what you are saying is that these HTML kiddies understand the difference between greedy and dynamic programming algorithms? They spend oodles of time thinking about optimal solutions? They discuss an there 'html algorithms' run-time complexity? They probably have a deep understanding of computer architecture and systems right?

Wow, why have we gone to so much trouble seperating the presentation from the logic in web applications? We could have just let the art interns do everything. Man, I really missed the boat on that one. I didn't even realize there are control statements in html.

Come on. A 14 year old girl using Dreamweaver to create a blog does not a programmer make! Real programming and creating an html site have _nothing_ in common. They are as different as applied mathematics and marketing. Think about that.

I wanna say "duh"... but you're really not thinking of any decent examples. That first paragraph while true for most, I can say holds true for MANY programmers. Most of the software your bank, and even hospital is using, is slow, clunky, using suboptimal algorithms. Try asking those devs about their application of big O. Have you ever tried to do any complex javascript? while i admit it's not very complex, it still presents functions, string and math operations which can do quite a bit. Programming isn't hard. and you can start off simple.

In LIFO order...

Programming is as hard as a project's requirements. Writing an OS is extremely hard. Writing critical real-time flight software, nuclear powerplant software, or ATM software is extremely hard. Writing distributed hash tables and search algorithms is extremely hard. Computational geometry (hell computational anything) is hard.

Didn't you have to take a software engineering class? The first days topic is always why software systems are the most complex things ever created by man. How software is the most expensive, most complex and most likely to fail subsystem... yada yada yada. If you don't believe that programming is hard, you should try writing software so that a robot navigate a 100 mile course in the desert is extremely hard. DARPA didn't call it the Grand Challenge because they thought it was going to be easy.

Keep in mind that the original statement was something like "aren't html and programming the same thing", not "is it possible to implement quick sort in Javascript". So the question isn't whether or not complex algorithms can be implented in Javascript, but rather do html kiddies implement complex algorithms in JavaScript, which I feel is a resounding no. You can search MySpace all of 2007, but I doubt you're going to find any html or Javascript that is going to impress anyone.

And finally... No, I'm not surprised that banks and hospitals have crappy software written by twits that don't know the difference between O and o. However, I suspect the applications you're refering to (ie the ones that the twits work on) are more along the lines of customer billing, medical history, and some php for the company website. Not the software found inside a heart monitor, the image and geometry algorithms inside a MRI machine, or software used by the medical company to search the genome. Ditto for banks... sure, they probably have some really stupid internal apps, but I think you'll find they're pretty paticular about who writes code that goes inside/interfaces with their ATM machines.


Top
  Profile  
 
 Post subject:
PostPosted: Sat Sep 01, 2007 6:21 pm 
8086
8086

Joined: Wed Aug 29, 2007 6:10 pm
Posts: 58
Vb.net is really good language to start learning - but you really can't make anything too complicated with it. A decent game on a windows form is hard to do, and it doesn't properly support transparencies.

Java is a pain in the ass to distribute your programs and make them into .exes. And if you want to put your program online you gotta get them signed which I never entirely got working :(

C++ is more of a pain in the ass because then you are getting into memory allocations :


Top
  Profile  
 
 Post subject:
PostPosted: Sun Sep 02, 2007 3:48 am 
Java Junkie
Java Junkie
User avatar

Joined: Mon Jun 14, 2004 10:23 am
Posts: 24222
Location: Granite Heaven
You don't need to use malloc with C++ ... that is C.

Java doesn't need to be turned into an .exe .. in fact, that destroys the main point of using Java .. portability.


Top
  Profile  
 
 Post subject:
PostPosted: Mon Sep 03, 2007 8:43 pm 
Bitchin' Fast 3D Z8000*
Bitchin' Fast 3D Z8000*
User avatar

Joined: Tue Jun 29, 2004 11:32 pm
Posts: 2555
Location: Somewhere between compilation and linking
Barrock wrote:
Java is a pain in the ass to distribute your programs and make them into .exes. And if you want to put your program online you gotta get them signed which I never entirely got working :(

Adding to Jipstyle's comment...

A) Java is the only _language_ that I am aware of with the capability of deploying applicatons over a network. JWS is a great piece of technology.

How are you deploying C++ applications over the internet?

To multiple platforms?

And what about cell phones?

B) Signing is only necessary when your application needs to access system resources outside of the sandbox.

C) If you weren't able to sign your jar, you need to RTM. It isn't hard.

http://java.sun.com/products/javawebstart/


Top
  Profile  
 
 Post subject:
PostPosted: Mon Jan 21, 2008 5:09 pm 
8086
8086

Joined: Mon Jan 21, 2008 8:19 am
Posts: 1
As far as C++ goes, DevC++ is a great compiler.

http://www.bloodshed.net/devcpp.html

Type you code in, and hit F9. cant get any easier.


Top
  Profile  
 
Display posts from previous:  Sort by  
Post new topic Reply to topic  [ 34 posts ]  Go to page 1, 2  Next

All times are UTC - 8 hours


Who is online

Users browsing this forum: No registered users and 3 guests


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group