Take the 2-minute tour ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free, no registration required.

Recently my girlfriend decided to switch career and invest on programming. (Wow, I must admit I was a good influence to her).

I suggested her to learn JavaScript as this language evolves a lot and also appears on server-side now (using Node.js) (combined with HTML5 and CSS3).

Right now, I found this book for JavaScript: Eloquent JavaScript A Modern Introduction to Programming by Marijn Haverbeke

However, I still have to decide what tools she will have to use.

She will need a debugger, and an IDE (probably with JavaScript autocomplete/intellisense if possible).

Any thoughts, advices, recommendations are more than welcome :)

Update: I am interested in tools. What tools (IDE, etc) would be better for someone new to JavaScript and new to programming in general?

share|improve this question
4  
Good job, everyone, for turning a perfectly good question into flame bait. –  Robert Harvey Aug 27 '11 at 20:18
1  
Hi Nikos, unfortunately this question went off the rails, but the question's scope is a little too broad for Programmers.SE. As the FAQ says, "if you can imagine an entire book that answers your question, you’re asking too much." –  user8 Aug 27 '11 at 21:57
    
However, there are several questions that duplicate aspects of your question that you might find useful: Good resources and tools for modern, heavy JavaScript development?, How do I "ease into" programming coming from a designer background?, and What should a developer know before building a public web site? –  user8 Aug 27 '11 at 21:57
    
Thanks Mark. np :) –  Nikos Baxevanis Aug 28 '11 at 7:43
add comment

closed as not constructive by Mark Trapp Aug 27 '11 at 21:51

As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.If this question can be reworded to fit the rules in the help center, please edit the question.

1 Answer

First of all I'd say that Python is a better way to start programming. Don't get me wrong, I'm doing hard core JS as my day Job it's fun. That is, if you're really pain resistent. As she presumably never did any real programming before, she will get frustated really fast with JS and for sure with the DOM and all the cross browser issues.

I'll give you some pro's and cons for both JS and Python:

PRO for beginners

JavaScript:

  • Cross Platform even on mobile
  • Upload and show friends
  • Easy to use for simple things
  • Incredible easy to have graphical stuff done with the DOM
  • Powerful concepts can be learned from the start (prototypes, first class functions, closures)
  • Good documentation for some browsers (mostly by Mozilla)
  • Lots and lots of really great books
  • Many great JS talks my Douglas Crockford on YUI Theater / GoogleTechTalks

Python:

  • Cross Platform without browser
  • Real access to the system (files etc.)
  • HUGE standard library helps you to have fast progress when learning
  • Helps with coding style by forcing indentation
  • Classes and all the other classical structures
  • Good mix of OOP and functional stuff (e.g. list comprehensions)
  • EXCELLENT official documentation
  • Good debugger and good IDE support

CONTRA for beginners

JavaScript:

  • Cross Browser mess Bugs, missing features in older browser versions
  • DOM is the WORST API in existence
  • jQuery (making people use above API without understanding it)
  • Complex topics: Hoisting, Closures, Prototype lookup, type coercion
  • Differs vastly from most other languages
  • Many books are to be read to understand all the quirks and issues above
  • Inconsistent Debuggers (WebKit and FX are good, rest sucks)
  • Hardly any decent IDE

Python:

  • No "instant show" effect, takes a bit longer to have a blinking thing on the screen
  • Portability across Operating Systems might be a bit complicated at times

I'm not biased towards Python. I love both languages, but when I had the choice to learn programming again, I'd choose Python as my first language. Where you need one line of Python, you need 10 lines of JavaScript for really really simple things.

Learning how to program should first be about understanding program flow and concepts, not about re-implementing sorting algorithms and stuff because the language does not provide it. It's also good to have a huge arsenal of libraries at your finger tips and a consitent documentation at hand when you run into trouble. Python programs are quick to write and easy to read, further helping beginners to see results.

Again, JavaScript is a beautiful language in its own way, but it is also a hard and complicated one. Python is also beautiful but it is a lot "nicer" as a programmer and especially a beginner :)

Sure JS is possible as a first language, so in case you are an absolute JS pro and got enough time to help out your girlfriend, go ahead. In case you are missing out on one of these two things, better choose Python as it will be easier for her to make progress on her own! This not only gives her the feeling that she can accomplish programming things on her own (which will also allow her to better understand your coding mindset) but it will also give you too more time to spend doing non-debugging stuff ;)

share|improve this answer
    
+1 for good information, even though you didn't actually answer the question asked. :) –  Robert Harvey Aug 27 '11 at 20:14
    
Ivo, thank you for your detailed answer. As I updated my question now, I am interested in the tools (IDE, etc). I am not a Pro JS, also I am not a Pro Python. However, I will have the time and will to help her. I will consider what you wrote however. Thanks again. –  Nikos Baxevanis Aug 27 '11 at 20:15
1  
I just want to prevent the evil from happening. I'd not teach my girlfriend (if I had one..) JavaScript as a first language, just too high risk of her getting frustrated which would have side effects for our relationship when she fails at learning the language (even worse since I tried to help her but failed) ;) –  Ivo Wetzel Aug 27 '11 at 20:17
add comment

Not the answer you're looking for? Browse other questions tagged or ask your own question.