views:

612

answers:

21

Hello, I currently have been learning and coding a lot with html and css. I'm not sure if I should get into php or javascript. I heard if you get into javascript it's very hard to then learn php. I might even learn python or lisp? After I learn the web languages I would like to go to something like c and objective c and maybe even get into hacking. Can anyone help me? Thanks :)

+4  A: 

If you plan to make programming as your career, I would go to job sites like monster.com and search for different languages to see what is most desired language skills for an employer.

I believe that more important to find a good book for a beginner. And there are many different books for many different languages.

Currently I'm teaching my 7 year old to code in Python using Hello World! book.

Vadim
Did you teach your kid to count from 0?
Glenn Nelson
+3  A: 

It depends on what do you expect to use language for...

If you plan to create applications for iOS - learn Objective C

If you want to try hacking - learn C and Assembler.

If you want to try modern Web development tools - look at C# + ASP.NET

So everythins is up to your goals..

Andriy Sholokh
I think having a good knowledge of how assembler works and the different processor instructions is important for almost anyone. Actually being able to write code in assembler is usually not worth the time unless you are a C expert who wants even more control IMHO.
CrazyJugglerDrummer
+2  A: 

The "best" programming language to learn right now is the one that will either help you build a project you're planning, or if you don't plan anything specific - will teach you well the programming foundations (e.g. OOP).

For the former I don't have enough info to answer you, for the latter, there really are so many.. (I guess c# and java are the most popular)

Oren A
+8  A: 

There's no best programming language, but only your most favorite PL and the most suitable PL for a particular problem.

Since you want to "get into hacking", I think this classic article written by ESR may help you: http://www.catb.org/esr/faqs/hacker-howto.html

Feil
I love pointing people at the hacker-howto. I esp. love to use it to counter people who start learning with VBA!
Joel
+1  A: 

If you want to be a web developer, you're going to need to know both Javascript (the universal client-side language) and a server-side language such as PHP, Java, or C#. If you had PHP in mind that's fine, but I'd suggest learning both PHP and Javascript at the same time. Come up with a simple website idea that uses both, and build it, learning as you go.

Kaleb Brasee
A: 

If you are OK with html and css then your next step has to be JavaScript so that it completes you ideal skill set of web development . After completing JavaScript then you can go for PHP.


Although you didnt asked but best tutorials for javacript - HeadFirst Javascript and w3schools

Ayush Goyal
+1  A: 

I think you have to weigh short term practicality (JavaScript and PHP) vs. better, deeper understanding and style. For the latter I would probably suggest Python from your list. I'm not too well up on current implementations of LISP - so no comment there.

For a modern object oriented language, then there's Java and C#. They might be worth learning to get the idea of object oriented programming in a general purpose language. Yes there's C++ but it is more messy - Java and C# are cleaner and I think you'll learn more. Which? Personally I prefer C# but I suspect Java will meet your needs better - pointless wars have been fought about such subjective arguments!

After learning something like Java or C#, JavaScript will then make a lot of sense: You will be disciplined enough that your code isn't a mess, and you'll appreciate JavaScript's strengths.

winwaed
The other answers are leaning towards shorter term practicality. It definitely helps your "skill set package" going that way.
winwaed
+2  A: 

I wuld vote you down, but, unfortunatelly, I reached my limits. Marked as fav to come back. What's with the "hacking" thing? Forget about that.

What language you learn is up to you, just make sure you know what each is capable of. HTML is a markup language and CSS is just styling, none of them match the definition of a programming language, so there you fail.

Javascript runs on the client side (mostly, with a few exceptions) and PHP runs on the server. If you want to do database manipulation, file manipulation, file uploads, a blog framework and such, PHP is the answer (or ASP, JSP, Python - I think). If you want to make some dynamic stuff on the page, like moving things around after the page has loaded, animation, load content without refreshing the page (AJAX) and things like that, then go with Javascript. You're going to need to learn them both in order to be able to pull of any kind of website that would fit in the standards used now.

C/Objective C runs on computers and mobile devices (iPhone uses Objective C if I'm not wrong) and you can do all sort of stuff with them, but I would recommend C++ as it's more OOP than Objective C and deffinately more OOP than C (which only supports a very basic form of objects, namely structures and the such).

PHP and Javascript have a much more steep learning curve so you should be able to pick them up immediately, while C, C++, Java and the such take a lot more time to get some decent results.

It's your call on what you want to learn, but judging by your answer I would go with PHP and Js for the moment, probably by the time you get to learn them you'll also grow up and judge things differently.

Good luck!

Claudiu
A: 

If you'd like to be a web developer, you should know javascript. Also as you already know html and css well and if you'd like to be a front-end developer, javascript knowledg will help you to create web UI. If you'd like to develop web applications server side - choose from C# or Ruby.

ika
A: 

Go Lang is an interesting language to learn http://golang.org/ ... not coz it's from google. Because it's the best of C and Python. It's concise and more import concurrent by it's very nature.

Ankur Gupta
+18  A: 

If it is about learning programming, learn Python. It's easy and well-designed, and by the way, Python might be the new PHP :-) i.e., you have practical use for Python.

I kind of regret having learned PHP because of its bad, inconsistent design, bloated syntax and complicated, error-prone frameworks.

Johann Philipp Strathausen
A: 

To get the most bang for you buck, learn Javascript and node (node.js) simultaneously. Node is an implementation of server-side Javascript and it's very fast and powerful.

A warning about Javascript though: it's a very powerful language with some really excellent advanced programming features, but it also has some really terrible ideas (global variables, overly agressive automatic type conversion, etc). So learn to use the good without the bad.

Node is really just getting started but growing extremely fast and with a very dynamic community. Here are some cool things done with the combination in the recent Node Knockout competition: http://nodeknockout.com/

And if you really want to be a hacker (in the deep sense) then you really must read Eric Raymond's How to Be a Hacker. It's old but still necessary reading for all would be hackers. And some other links from Raymond about being a hacker.

kanaka
+1  A: 

I think it totally depends on what you want to do. But to learn programming, to begin, I would stand by Python. But then again, depends on what you are interested in doing.

AJ
A: 

If I were starting from scratch right now I would go for one of the ML family, these are the perfect blend of theoretical CS and practical programming. On Unix, I'd say OCaml and on Windows, F#.

Gaius
+1  A: 

If i was you i would go C#

Reasons being:

  1. Easy to learn. All functions make sense to a beginner and Visual Studios code completion feature makes learning a breeze. The error reporting is the best out there and doesn't leave you trying to figure out what the hell is going on.

  2. Once you learn it you can then create desktop apps, websites (asp.net), web services, silverlight apps, XNA games and more. Its also very similar to Java and action script so you'll have no drama's picking them up once you learn C#

  3. Its a beautifully written language. Takes the best things from java and adds to them.

  4. So many features in the framework to make work simple. LINQ, i love it.

  5. Great community and resources. Video are always nice. Check out www.asp.net

  6. It just bloody works.

Reasons against other languages.

PHP: living in the dark ages.

Java, Actionscript: Not as versatile and are easy to pick up once you know C#.

C++: Very low level and gets kinda complex. Memory management a bitch. You will really only use it your getting in to game development.

Object C: Syntax (way its written) is too different from other languages. Xcode is the worst IDE going.

Perl, python, etc: Development time too slow. Also not enough leaning resources.

Javascript: Only used in browsers and I tend to stay away from it as it is the biggest cause for malfunctioning websites. I lot of people actually deactivate javascript in there browsers. FireFox's no javascript plug in is pretty popular. Use it only where you really have to.

"Perl, python, etc: Development time too slow. Also not enough leaning resources." I like to lean back while learning, so I'd never be able to learn Python... I don't understand how so many people can learn it standing/sitting up straight.
WernerCD
-1 point. #1, #3, #5, #6 and the evaluation of other languages are really just personal opinion and can be argued the opposite. And nobody argues that python development time is slow or that perl doesn't have enough learning resources.
kanaka
+1 for C#, then -1 for your other comments. So -0?
DMan
If you can't find learning resources for python you're probably not looking very hard. I don't think the development time is that slow either.
CrazyJugglerDrummer
-1 for negative comments about other languages that are completely unfounded.
lambacck
"Javascript: Only used in browsers"? node.js dude, node.js.
rochal
+2  A: 

It's depends on what you want to do with your programming skills.

To me, basically programming divide into 2 section : desktop and web programming.

If you want to create desktop apps the best bet is C++ and .NET (both vb.net and C#.net). Or consider learning Java.

Or, if you want to be Marc Zuckerberg (some sort of) you should master HTML and CSS first and then if you to play with data - learn PHP and MySQL. PHP is easy server-side language to learn compare with others.

You don't need OOP knowledge to store $_GET[''] data to MySQL or other DB provider. PHP will help you manipulate it with 4 line of code.

And finally, get along with Javascript.. learn the simple things first and then switch to jQuery.

I've only got 20% of javascript skills and I dont know what the heck DOM is but JQuery make everything easier to you.

mike
Mark Zuckerberg has probably mastered c++ and c though lol.
austin
yeah.. but we discuss it on online apps scope. People know Marc Zuckerberg from Facebook which is online application developer and not Dennis Ritchie.
mike
A: 

Unfortunately there is no set answer. The sooner you realise this, the better off you'll be. If you pursue one then you'll suffer from analysis paralysis. You will end up bogged down and probably hold yourself back. You can ask away but you're going to get a lot of different answers based on preference and past experience -- most of it will be of little help. That should be a hint within itself.

Here's a secret: all programming languages have something to offer be it good or bad.

You're in a position where you have all the time in the world to develop your skill base. So don't worry about learning something you're not going to use or something you might come to dislike. You'll benefit from applying yourself and the thought process involved will do wonders.

With that said, this might be of use to you: While researching a few months ago I found that Java, C/C++, C# and PHP (coupled with HTML/JS/CSS) are your main industry languages as of now. The thing is, they're used for different things and if there is one other thing I've learned over the past few months is that it’s all about the right tool for the job. So ask yourself, what is your ultimate goal?

Natural progression is good when it comes to self-improvement so perhaps build on what you know. You said you know HTML and CSS, the natural extension to that is probably JavaScript and PHP or another web based language. They're worth learning as HTML and CSS are not programming languages and whatever server side language you do choose will be of a great benefit.

If that's not of much help (and it probably isn't) then you should just pick something and run with it and then pick something else and run with that. It doesn't matter what, just apply yourself. Enjoy it, embrace it and work with an open mind.

aLostMonkey
A: 

Hi,

Like most of the members advised you to go for MS.Net Technologies. If I were you, I would definately learn some basics in Programming language.

You have have to have some basics in programming language(just go thru the concepts in C language) as well as some basic undesrtanding of the database(SQL).

Once you are comfortable with the above two just pick a programming language.

You may pick JAVA or MS.NET or PHP.

Regardless of which ever you chose you need to learn client side scripting language (javascript or jquery). to help in your web development coding only.

There are plenty resources for MS.NET , Good Forums, Good Videos and Microsoft provided best environment for its .net technologies.

Easy debbugging, intellisense and Whatyouseeiswhatyouget Interface.

So your life would be much relaxed in learning MS.NET technologies. You can switch to windows applications or web applications.

But remember get some good idea of programming basics and database!!

Rest is upto you Austin!! Hari

Hari Gillala
A: 

Don't learn a language, learn how to program. This, way, you could switch yourself to new languages fast when market needs to.

Nowadays, for the web, I'll go with Python/PHP/Javascript, but this is my personal opinion.

LucaB
A: 

HTML and CSS deals with the appearance of a webpage. Its for designing. Personally, I wouldn't call it programming.

If you want to do web development then learn PHP and Javascript. PHP is used for server side and javascript is used for client side development. Learning a particular language, any language, will not make learning some other language harder. Most of them follow similiar syntactic rules, structures etc. Exceptions are there but it doesn't apply for javascript and php.

For desktop apps, I'd say go for C# or Java. C/C++ might be a little too complicated for starting out. Python is good language but I found its lack of braces and semicolons disconcerting. It reminded me of VB6. This is just my opinion and probably had to do with the fact that I started programming in C. Lots of people like Python's style and since you haven't studied any other language, it might be easier for you,

I don't know what you mean by "hacking" here. Whatever it is you have in mind, its not going to be as easy as you think.

rohit89
A: 

Go for Python and Django.

Chankey Pathak