Now, Bit-tech doesn't have a specialised programming area, so I felt that this is probably the best place to put this question. Quite simply, after doing HTML and CSS quite quickly, I hope to start learning some more programming languages. The two I hope to learn so far are Java and Javascript (which I know are different.) Does anyone have any good resources for learning these languages (not W3Schools)? Or does anyone think I should do something different? Many Thanks. Blazza EDIT: I've just been recommended starting with Python. Any opinions?
When I started programming in Java, I did so via a very good book. It was very easy to follow and it comes with a CD from which you can install a program called BlueJ (Better to download Latest version online) as well as extract a number of example applications. The book has a number of tasks it asks you to complete as you progress through the chapter. The book is called "Objects First with Java" by David Barnes & Michael Koling. It is a fantastic book and I recommend it highly. EDIT: C# and VB are very popular nowadays so you can consider them. However I found it extremely easy to program in C# and VB after learning Java .
Friends of Ed write some really good books in my opinion. Their DOM Scripting book is top-notch but to be honest, I read it over 6 years ago and I am sure they have some more up-to-date materials.
If you live near a university maybe you could sit in on some lectures I'm doing Electronic and Computer Engineering in Uni and we do some Java but I must admit, progress is a bit slow. I'd much rather be doing something where programming was more central because the other modules are not as interesting. Anyways, Eclipse was recommended to us as an IDE (I believe that is the term, Integrated Development Environment), if you want to check that out, here's a link: http://www.eclipse.org/downloads/
The first language i started on was Java, that was pre-uni then when i went to uni we've covered Java, C, C# and Assembly. In my placement year so far i've got a major grasp on Python and learning Perl as well. Python is actually quite fun once you get your head round some of things it does. The O'reilly books on programming are always worth a look. Also no-one can forget the holy grail of programming books K&R's The C Programming Language. I would also suggest you pick up a book or two on Object Oriented Programming becuase although each language has its own implementation the concepts are still the same. You can try looking at online tutorials for the different langauges but you may miss out on the finer points and theoretical knowledge that comes with a uni course.
I started off on a language called Blitz Basic and then moved onto C++. Recently I 'learned' perl in the space of 1 week (to the extent that I wrote a functional script with real-world implementations). Once you know a couple of languages, the rest follows easily.
I 2nd the Eclipse IDE suggestion. I have used it a LOT and it's good for more than just Java. I find it intuitive after a couple runs and hey it's free. john
C#, C#, C# and more C# would be my recommendation. Essentially it's Microsoft's version of Java, and very quickly becoming one of the more popular programming languages. And it's very, very friendly to beginners. It's managed, which means it'll catch you up on every small error you make - C++ and the like will let you make a lot of mistakes without even telling you, which can be a real headache when it comes to debugging. It's garbage collected, which means you don't have to worry all that much about memory management. It's also incredibly powerful with features like Generics & Interfaces and a whole bunch of other stuff. You can get it as part of the .NET framework, which comes with a whole heap of libraries that can be consumed by your programs (and that really will make your life easier). Yes, I know I'm making C# sound like a paragon of the programming world but I honestly cannot fault it - mostly. The only real downside is that managed code is a little slower than unmanaged - but as long as your PC is less than about 10 years old or you're doing some incredibly intensive stuff you won't notice. Oh, and you can get it for free (non-commercial) alongside a pared-down version of visual studio, which still has some useful features such as step-through debugging, breakpoints, and a whole bunch of other stuff. And it you understood nothing in that post, then TL;DR: C# is easy to pick up, hard to break and incredibly powerful for just about everything. And here's a bunch of learner resources EDIT: NOOOOO! Not VB. For example: got asked by my current employer about my history of programming languages. Said I did VB for a couple years, to which they replied, "yeah, but that aside..." ANOTHER EDIT: HTML and CSS aren't programming languages, they're markup languages . YET ANOTHER EDIT: This book is given out to all the first years on the Comp Sci course at my university. It's a nice easy introduction, and some of the humour is priceless.
I found this good for HTML and CSS, but past that, I always found massive gaping holes meaning I had no idea what they were talking about.
W3 Schools is exclusively web development, so if you're looking to break into desktop programming it's not really any use.
now w3Schools.com has been posted, let me mention it's not affiiated with W3C. It never has been. http://w3fools.com. Also, some good stuff can be found at http://zetcode.com
It's impossible to mention w3schools without someone mentioning w3fools. But it is important to note that w3schools is not affiliated with the w3c. Javascript is web based, so w3schools might be a good place to start. That being said, plain old Javascript is not used that much anymore, in favour of some of the frameworks out there (most notably, IMHO - JQuery). Your best Java source would probably be books/unis, but I'd suggest going C# as well. Not least because Visual Studio is the best IDE in the world.
I'd recommend C# as well. Visual Studio + Intellisense for C# = WIN. Java is such a pain in the ass to develop with.
I love Java, but I agree that C# is the way to go. C# is already very easy to program in, but Visual Studio makes it so much easier .
@OP: For web side, you still nead to learn Javascript, that is a must have, you cannot do any real web stuff without JS knowledge. What you learn for server side depends on you. PHP, Java, C# (ASP.NET), Python, Ruby - whatever you like. Both are pain in the ass. Sure, C# part is not that bad... But once you reach WPF, XAML, MVVM, Silverlight, you will start scratching your C# head in same way as you are scratching your Java head when you reach the crazier J2EE stuff in Java . Of course, the best thing is to know both languages at least on medium level, then all you need to worry are the crazy libraries on both sides.
My apologies. I crossed the line. As for C#, it's a nice language, certainly reccommend it over Java for OO based features, though not sure how developed Mono is for Linux/UNIX based systems. Also, I say +1 to the fact that XAML is a pain. That said, Java's a nice one to start, and is what I started with. What do I use now? I use a mix of C, Java and Scala, which can be written functionally or using OOP, and is interoperable with Java code. I'm also in the process of learning C++ and Haskell.
C++, you like adventures then . I still didn't got the strength to try it. But i will have to find the strength to learn the crazy brother of C++ - Objective C. Windows Phone 7 has nice C#, Android has Java (sort of), but iOS has this ugly Objective C .
Really? If you know HTML then XAML is really easy to pick up IMHO. I never had any real issues with it. Admittedly it's much easier with a tool like Expression Blend but I had no issue hand-coding XAML after about 2 hours of first encountering it.