Web Hosting Talk







View Full Version : Can't Decide what language to learn :(


Halofreak117
08-17-2003, 05:51 PM
Hi.
I'm having problems deciding what language to learn. I'm 14 and i'm interested in a future career in programming. I learned HTML, moved on to something else, got frustrated and quit all programming for a few months, forgot basically everything. I'm planning on giving HTML a quick run through, so i can refresh my mind etc... Anyway, I can't decide between which first, PHP or Java. I noticed PHP seems much easier than Java, and I also thought that Java has A LOT to learn compared to PHP, so if I decided to go Java first then PHP, I wouldn't be with PHP for atleast 3 months, probably more with school, computer 'permissions' (Sharing a computer with familY :( ). Anyway, I'm having a problem deciding which one to learn first.
Also, I'd appreciate any help regarding where to start, and where to go from there, and what books to read/tutorials to read through online. If you know what I mean, it would be nice if someone supplied me with a general path of where to start, for example go With PHP, then once you reached the advanced level start with ASP, then go onto blah... etc... I also can't start learning until I buy my own computer, because this one is STUFFED with viruses and a hacker, and I don't think I'll get anywhere by having to share with family and trying to learn beside a TV. One last request; if anybody knows where the best place to get the most power for the buck, I want to buy a computer ranging between 300-500$ CDN, and then once I get more money upgrade it a bit if needed, so if anyone knows where I would get the most power for the money somewhere in mississauga/toronto area, it would be very much appreciated.
Anyway, I'm blabbing yet again. Thanks for any/all help

krumms
08-17-2003, 06:39 PM
I learned Java when I was 13 or 14, so it's not impossible - but in retrospect, it would have been nice to start with PHP. To offset the lack of structure you would otherwise encounter, however, I'd recommend reading some software engineering and/or construction books. Code Complete, Art of Computer Programming, maybe a book or two on UML

Look at http://www.phpbuilder.net to get started - lots of articles there. Also, http://www.hotscripts.com seems nice. But once you learn the PHP language, your greatest friend will be http://www.php.net.

And remember: there's always more to learn. Keep a level head.

Or you'll end up a cocky bastard like me that doesn't actually accomplish anything useful ;)

Halofreak117
08-17-2003, 06:50 PM
Thanks!
The java thing, what I meant is that I keep hearing all over the internet that there's so much to learn in Java, so I thought I'd learn PHP first because it would take me 2 months or so to reach the advanced level, but Java it would take much longer than that.
I forgot in my previous post, can anyone give me URLs for graphics design? I'm starting to realize that graphics design is getting more and more important on computers, and it can be very useful to learn for school and then it would be easier to learn how to make graphics while learning a programming language, instead of learning 2 programming languages at a time.
Thanks again! I just found these forums, I think from a link on developerfusion.com and i'm loving it here, everyone so friendly and seems like a very good place to help me out a lot.

krumms
08-17-2003, 07:01 PM
Calm down, you don't become a programmer over night.

To reach a really advanced level with PHP, especially as your first language, it's going to take you at least six months - a year if you're not constantly at the computer.

There's more to being a programmer than just learning how to program. However confusing that sounds, it'll come to make sense eventually.

My point is, don't rush it. Keep your head on. Within 2 months you might be able to build a site that works with a database or something, but I promise the code will be ****. That's where you need a motivation to not just know your stuff, but to know that you can be better than what you are. You never stop learning once you start to learn programming. It's a continuous thing. There's always a problem to solve.

And that's another issue with learning PHP, to do anything useful you'll have to pick up SQL - which isn't really a problem if you can manage PHP. Still, keep it in mind.

- TL

Halofreak117
08-17-2003, 07:14 PM
Thanks a lot, and yes i do realize it won't happen overnight, but then saying 2 months is wrong, as u said 6-12 months is probably right. So as soon as I get a new PC, hopefully in mid september, i'll be working on programming like crazy :) thanks again
EDIT: o i forgot, the scroll bar on this site is coloured - is it possible to do that with PHP? or would it be easier to use CSS?

raulgonzalez
08-17-2003, 07:33 PM
a teacher once told me that java would open the doors for any other programming language out there.

Halofreak117
08-17-2003, 07:42 PM
I'd agree from everything I read about it

raulgonzalez
08-17-2003, 07:45 PM
I saw a website with a nice flashing red scrolling bar.


<script language="JavaScript">
var rate = 500
var C1 = "#004F75"
var C2 = "#0070A6"
var i = 0
function doScrollbarColors(){
if (document.all){
i++
if (i==1) C = C1
if (i==2) C = C2
document.body.style.scrollbarBaseColor = C
if (i>1) i=0
t=setTimeout("doScrollbarColors()", rate)
}
}
</script>
<style>
BODY{
scrollbar-arrow-color: #FFFFFF;
scrollbar-track-color: #000000;
}
</style>










These set the flashing colors.
var C1 = "#004F75"
var C2 = "#0070A6"


These set the arrow and track colors.
scrollbar-arrow-color: #FFFFFF;
scrollbar-track-color: #000000;

// Add the line below to the existing body tag of the page.

onload="doScrollbarColors()"

Joe Bonanno
08-17-2003, 07:48 PM
Krumms is giving you good advice. I second the SQL suggestion.

One question you might ask yourself is what kinds of applications you expect to be programming. For web apps, PHP is extremely useful and very easy to learn.

Learning PHP first has made is easier for me to pick up enough Perl and Ruby to be productive (read modify open source code for my use). I also gave Python a good look but have not had and opportunity to use it for anything yet.

krumms
08-17-2003, 08:02 PM
Joe - get wxPython and the world is your snake ;)

Oh and Halo - once you come to terms with the PHP language itself, make sure you get stuck into XML/SOAP/WSDL. SOAP web services are rapidly gaining popularity (*points to .NET, J2EE/Axis*)

Google for NuSOAP if you want some soap stuff for PHP. But yeah - a while down the track. You've got to learn the language yet.

Halofreak117
08-17-2003, 08:13 PM
Never heard of soap, what makes it special?
EDIT: that didn't come out the way i wanted it - what's unique about it?

acidhoss
08-17-2003, 08:38 PM
I started with java, that gave me SOME insight, but my true passion at that time was javascript. I think you should just familiarize yourself with the languages that apply to you at that time. Need a guestbook? Learn perl. Need a cool animation? Learn javaScript or java. It's an experience thing.

Good luck, and have fun. You are entering into a vast world of amazing technology. :D

Tee
08-17-2003, 08:58 PM
Any suggestions where to sites on learning java / what programs you need?

acidhoss
08-17-2003, 09:02 PM
Well, you need the sdk. Go to java.sun.com/, and choose from either the micro edition, the standard edition, or the enterprise edition. I chose the standard edition, primarily for size, and it was the step (or so) up from the previous edition that I had used. I would recommend getting a code editor, I'm sure C|Net ('http://cnet.com') has some good one's. Java has excellent tutorials, but you have to read through them carefully. DevShed also has good tutorials, much easier on the eyes. That should be about it, if I think of anymore, I'll post 'em.

Cheers

-hoss

krumms
08-17-2003, 09:17 PM
Standard edition is the way to go with Java, at least while you're getting started. J2EE is where the jobs are Java-wise, however - http://jboss.sf.net

Never heard of soap, what makes it special?

Too much to explain, but it more or less allows you to build distributed applications.

acidhoss
08-17-2003, 09:19 PM
SOAP is a very simple, much like html protocol language that allows you to do certain server side jobs, from what I've read.

Halofreak117
08-17-2003, 09:24 PM
Thanks a lot everyone!
One last question, hopefully it's not OT
I need to find a place to buy some cheap computer in Mississauga area, something along these specs:
1.0 - 1.5 GHz Intel Celeron Processor
256MB DDR Ram
32 - 64MB radeon/nvidia video card
Standard sound
Ethernet
atleast 1 USB port
any type of ok motherboard :stickout:
and most preferably include monitor 15" / 17" not flat screen (1024 * 768 pixels)
and I need the price to range from 300-600$, hopefully these specs being within that range, most preferably at 500$
anyone know of such a computer in some store?
Thanks again!

Burhan
08-17-2003, 11:16 PM
Just adding my two cents to the already great advice here.

First, let me explain what SOAP is. SOAP is an acronym for Simple Object Access Protocol. What it does is allow you to, using the internet, call functions (that's an easy way to explain it) that are part of the code of some program on another computer.

There are a few examples of SOAP floating around. For example, Google's API (Application Programming Interface) allows you to perform queries from a program, and it uses SOAP. Amazon has a similar API that allows you to search their gargantuan database and basically provide a "mini" Amazon at your site, and have the user check out at the main Amazon.com site.

Webservices is an umbrella term for any service that's accessible using common internet protocols. I wouldn't worry too much about SOAP yet, seeing as how you are just starting out with programming.

I would suggest starting with a more "traditional" language, like Java or C++. Why? You'll find that the concepts that you learn in these languages (like looping, functions, variables, etc.) are common to almost every other programming language. Most of the time, when a programmer is comfortable with C++ or Java, picking up a new language (like PHP), is just a matter of understanding the syntax differences. Once you understand the syntax (that is, the way to write the code, its language), the rest just boils down to looking up the documentation for a specific function.

As far as your computer question ... you can find an Emachine computer at your local WalMart that will be more than enough for what you want. The high end ones run around $700. I found one at WalMart that was a p4 2.4 ghz, 256 meg ram, 60 gig hdd for $698. I'm sure the price has gone down since I checked.

I would also suggest that you consider starting off on Linux. Linux comes with compilers for almost all of the popular languages, its free, and you'll have a head start on the people that are used to Windows and have to deal with Linux.

A final note about books. Dietel & Dietel have excellent books on C++ and Java. They are bit on the expensive side, but well worth the investment.

Good luck.

Penguin
08-18-2003, 03:41 AM
PHP and Java is for quite different use. I mean, PHP is a webprogramming language, while the most common Java programs are applications and applets (unless you're talking about javascript?)

So, what do you wanna learn?

krumms
08-18-2003, 04:51 AM
It's strange, but I feel the boundary between desktop application and web application is blurring these days, Penguin. The only concrete difference between the two, really, is that one renders with HTML, the other doesn't.

I think that's true of lots of network-enabled (web) applications.

Even those that are not network enabled ... DHTML, while limited, provides enough functionality for you to implement fairly decent user interfaces. Granted, JavaScript/the DOM is painfully unportable, but it's possible to work around it. Generally.

And I feel you're wrong about your statement regarding Java - Java is now more popular for its server end stuff (i.e. J2EE) than it is for applets and the like. Applets, IMHO, died with the improvement of Flash. Java applications are nice, and Java has a rich toolkit but Swing sucks. SWT is better, but requires a bit of memory management which can be horrible. Still worth checking out tho - http://www.eclipse.org

- TL

Halofreak117
08-18-2003, 10:40 AM
Ok thanks a lot everyone! though i still cant decide between the two. I'll go look at the walmart website to see if they have any. And I think i'll try installing both windows and linux; it's possible right? I remember someone doing it
Thanks again!
EDIT: I forgot, I need the price to be CDN

rooshine
08-18-2003, 10:55 AM
Originally posted by Halofreak117
Ok thanks a lot everyone! though i still cant decide between the two. I'll go look at the walmart website to see if they have any. And I think i'll try installing both windows and linux; it's possible right? I remember someone doing it
Thanks again! Yes, it is possible to install both as a dual boot.

My 2cents: I learned Java first, and as someone else mentioned, it made learning other languages easier. The plus for PHP is that it's easier to learn and you can put your knowledge to use faster. With Java (or c++), you'll spend more time learning the fundamentals and writing programs out of textbooks that aren't immediately useful in the real world. But that's not necessarily a bad thing. In the end the fundamentals, the algorithms, the thought patterns, the data structures, etc you learn can apply to virtually any language you explore in the future.

Penguin
08-18-2003, 11:41 AM
Originally posted by krumms

And I feel you're wrong about your statement regarding Java - Java is now more popular for its server end stuff (i.e. J2EE) than it is for applets and the like.

I didn't have the word for it, so I quoted the official java page

Halofreak117
08-18-2003, 11:44 AM
So most of you people think I should start out with Java ?

rooshine
08-18-2003, 12:09 PM
Well, you're 14, so you have a long road ahead of you. Presumably you'll go to college and graduate when you're 22 or so. That means you have 8 years until you join the "real world." Obviously, the programming landscape will be different by the, but starting in java should keep you on track to be on top of whatever will be current then. If you can do some programming for yourself or get a part time job before you finish school you should be in great shape.

Halofreak117
08-19-2003, 05:55 PM
Ok Thanks, I guess I'll start out with Java then.
Thanks again

jb4mt
08-19-2003, 06:03 PM
Originally posted by Halofreak117
Ok Thanks, I guess I'll start out with Java then.
Thanks again

I'll add my two cents at this late juncture. I'm a mid level IT professional and did not learn Java until I had over 3 years experience. I think it's a terrible choice for a complete beginner, because it forces you to use object orientation. This is a good concept, but hard for the beginner. You will have enough to think about -- and master -- with conditionals, looping, arrays, and the like.

If I could do it all over again, I'd learn C first. Then it would not have taken me 3 years to feel as though I was ready to tackle Java: I'd have had a much better foundation

Halofreak117
08-19-2003, 08:57 PM
heh thanks for the 2 cents! addeed more options heh
C or java... :confused:

krumms
08-20-2003, 01:50 AM
C will make you cry, and you'll have to make twice the effort for lesser results. C is painful for a beginner, and not something I would recommend without instruction from somebody else. It's possible, but it's not a great idea for getting started.

Stick with Java or PHP.

Or even .NET's answer to Java, C#, if you want another alternative.

jb4mt
08-20-2003, 02:21 AM
Originally posted by krumms
C will make you cry, and you'll have to make twice the effort for lesser results. C is painful for a beginner, and not something I would recommend without instruction from somebody else. It's possible, but it's not a great idea for getting started.

Stick with Java or PHP.

Or even .NET's answer to Java, C#, if you want another alternative.

Java and PHP themselves are written in C. Therefore C is the foundation that should be learned first. Once C is learned PHP will be a piece of cake. But in learning C the beginner does not have to grapple with object orientation, as required by Java and C#, before he or she is ready. The only thing worse than poor non object oriented code, is poor object oriented code. I reiterate, beginners will have enough to grapple with with conditionals, looping, arrays and the like, without also adding Object Oriented concepts such as inheritance, interfaces and modifiers.

krumms
08-20-2003, 05:03 AM
I reiterate, beginners will have enough to grapple with with conditionals, looping, arrays and the like, without also adding Object Oriented concepts such as inheritance, interfaces and modifiers.

Personally, I think inheritance is an easier concept to grasp than it is to grasp pointers. Preprocessor inclusion/exclusion will add to the headaches.

An interface is NOT an Object Oriented concept - do you use header files?

Modifiers are NOT Object Oriented concepts. Modifiers exist in C too - static, volatile, register, dllimport/export (for Win32) - C even has Data Type modifiers: unsigned/signed, long and short.

Yes Java and PHP are written in C.

Yes it would be relatively easy to learn Java and PHP after learning C.

But no, that doesn't make it more suitable for a beginner.

Juarez
08-20-2003, 06:12 AM
I would actually recommend to learn Perl.... It'll help you alot in UNIX admin later on...


Also, if you want to do some real man's coding, try C, or even ASM (if you dare).

Juarez
08-20-2003, 06:17 AM
How about instead of talking about learning the language, you actually go and learn it...

You probably could've finished the PHP manual at php.net by now...

mlauzon
08-20-2003, 10:45 AM
Originally posted by Halofreak117
Thanks a lot everyone!
One last question, hopefully it's not OT
I need to find a place to buy some cheap computer in Mississauga area, something along these specs:
1.0 - 1.5 GHz Intel Celeron Processor
256MB DDR Ram
32 - 64MB radeon/nvidia video card
Standard sound
Ethernet
atleast 1 USB port
any type of ok motherboard :stickout:
and most preferably include monitor 15" / 17" not flat screen (1024 * 768 pixels)
and I need the price to range from 300-600$, hopefully these specs being within that range, most preferably at 500$
anyone know of such a computer in some store?
Thanks again!


If you could get your hands on the August edition of the Computer Paper, or is it Canada Computes...there are a lot of stores listed for Mississauga, and if you want to keep your costs at a minimum, get a computer with an AMD Duron or Athlon XP.

rooshine
08-20-2003, 01:32 PM
Just to pipe in on the java/c discussion, I think jb4mt makes some good points about the difficulty of object oriented programming. But krumms makes an equally good point about pointers. I was lucky enough to learn c in a classroom environment with an excellent professor. Even with that, I will never forget the look on half the students faces when we learned about pointers. Still, pointers are not as big and broad of a topic as object oriented programming, so I hear where jb is coming from. But the bottom line is that any language you choose is going to have pluses and minuses. The most important thing to remember, regardless of your choice, is to learn the fundamentals solidly before moving on. That is the advantage of c: you pretty much have to learn the fundamentals to do anything. With java, there is more a beginner could do without mastering the fundamentals. That's good for motivation, but you're going to need those fundamentals in the long run.

I think both languages have a lot to offer the beginner, and you won't regret either choice.

krumms
08-20-2003, 06:11 PM
Cheers to that rooshine.

I still feel higher level languages are the way to go, but you're pretty much spot on - any language will have its ups and downs.

- TL

Halofreak117
08-20-2003, 08:48 PM
K Thanks a lot everyone.
Well, I guess what I'll have to do is try reading from a C book at the same time as Java, and then make up my mind from there. Thanks everyone.
And mlauzon, I'll check some computer magazines, thanks
I also agree with what Juarez said
anyway thanks again everyone, I'll start off tomorrow morning